summaryrefslogtreecommitdiff
path: root/lisp/eshell/esh-proc.el
diff options
context:
space:
mode:
authorGlenn Morris <rgm@gnu.org>2011-03-04 20:11:05 -0800
committerGlenn Morris <rgm@gnu.org>2011-03-04 20:11:05 -0800
commitd783d30393eb554f9a0d780570a7946a165885fb (patch)
treee007f478b68fefc200d59c1f2718569fbeecd129 /lisp/eshell/esh-proc.el
parent4a0f18a8997ec7b4554cdc33a290654daf4a3080 (diff)
downloademacs-d783d30393eb554f9a0d780570a7946a165885fb.tar.gz
emacs-d783d30393eb554f9a0d780570a7946a165885fb.tar.bz2
emacs-d783d30393eb554f9a0d780570a7946a165885fb.zip
Default all eshell hooks to nil (bug#5375)
* eshell/esh-mode.el (eshell-kill-buffer-function): New function. (eshell-mode): Use eshell-kill-buffer-function. Run the -initialize functions independently of the -load-hooks. * eshell/esh-proc.el (eshell-kill-process-function): New function. (eshell-gather-process-output, eshell-sentinel) (eshell-interrupt-process, eshell-kill-process, eshell-quit-process): Use eshell-kill-process-function. * eshell/em-alias.el (eshell-alias-load-hook): * eshell/em-banner.el (eshell-banner-load-hook): * eshell/em-cmpl.el (eshell-cmpl-load-hook): * eshell/em-dirs.el (eshell-dirs-load-hook): * eshell/em-glob.el (eshell-glob-load-hook): * eshell/em-hist.el (eshell-hist-load-hook): * eshell/em-pred.el (eshell-pred-load-hook): * eshell/em-prompt.el (eshell-prompt-load-hook): * eshell/em-rebind.el (eshell-rebind-load-hook): * eshell/em-script.el (eshell-script-load-hook): * eshell/em-smart.el (eshell-smart-load-hook): * eshell/em-term.el (eshell-term-load-hook): * eshell/em-unix.el (eshell-unix-load-hook): * eshell/esh-arg.el (eshell-arg-load-hook): * eshell/esh-cmd.el (eshell-cmd-load-hook): * eshell/esh-ext.el (eshell-ext-load-hook): * eshell/esh-io.el (eshell-io-load-hook): * eshell/esh-mode.el (eshell-exit-hook): * eshell/esh-proc.el (eshell-proc-load-hook, eshell-kill-hook): * eshell/esh-var.el (eshell-var-load-hook): Set default hook values to nil. (Bug#5375)
Diffstat (limited to 'lisp/eshell/esh-proc.el')
-rw-r--r--lisp/eshell/esh-proc.el30
1 files changed, 19 insertions, 11 deletions
diff --git a/lisp/eshell/esh-proc.el b/lisp/eshell/esh-proc.el
index 8757f5d56a0..f3fcc52aac8 100644
--- a/lisp/eshell/esh-proc.el
+++ b/lisp/eshell/esh-proc.el
@@ -38,8 +38,9 @@ finish."
;;; User Variables:
-(defcustom eshell-proc-load-hook '(eshell-proc-initialize)
+(defcustom eshell-proc-load-hook nil
"A hook that gets run when `eshell-proc' is loaded."
+ :version "24.1" ; removed eshell-proc-initialize
:type 'hook
:group 'eshell-proc)
@@ -94,13 +95,14 @@ is created."
:type 'hook
:group 'eshell-proc)
-(defcustom eshell-kill-hook '(eshell-reset-after-proc)
+(defcustom eshell-kill-hook nil
"Called when a process run by `eshell-gather-process-output' has ended.
It is passed two arguments: the process that was just ended, and the
termination status (as a string). Note that the first argument may be
nil, in which case the user attempted to send a signal, but there was
no relevant process. This can be used for displaying help
information, for example."
+ :version "24.1" ; removed eshell-reset-after-proc
:type 'hook
:group 'eshell-proc)
@@ -113,6 +115,14 @@ information, for example."
;;; Functions:
+(defun eshell-kill-process-function (proc status)
+ "Function run when killing a process.
+Runs `eshell-reset-after-proc' and `eshell-kill-hook', passing arguments
+PROC and STATUS to both."
+ (or (memq 'eshell-reset-after-proc eshell-kill-hook)
+ (eshell-reset-after-proc proc status))
+ (run-hook-with-args eshell-kill-hook proc status))
+
(defun eshell-proc-initialize ()
"Initialize the process handling code."
(make-local-variable 'eshell-process-list)
@@ -346,7 +356,7 @@ See `eshell-needs-pipe'."
(eshell-update-markers eshell-last-output-end)
;; Simulate the effect of eshell-sentinel.
(eshell-close-handles (if (numberp exit-status) exit-status -1))
- (run-hook-with-args 'eshell-kill-hook command exit-status)
+ (eshell-kill-process-function command exit-status)
(or eshell-in-pipeline-p
(setq eshell-last-sync-output-start nil))
(if (not (numberp exit-status))
@@ -391,7 +401,7 @@ PROC is the process that's exiting. STRING is the exit message."
(eshell-close-handles (process-exit-status proc) 'nil
(cadr entry))))
(eshell-remove-process-entry entry))))
- (run-hook-with-args 'eshell-kill-hook proc string)))))
+ (eshell-kill-process-function proc string)))))
(defun eshell-process-interact (func &optional all query)
"Interact with a process, using PROMPT if more than one, via FUNC.
@@ -485,31 +495,29 @@ See the variable `eshell-kill-processes-on-exit'."
(kill-buffer buf)))
(message nil))))
-(custom-add-option 'eshell-exit-hook 'eshell-query-kill-processes)
-
(defun eshell-interrupt-process ()
"Interrupt a process."
(interactive)
(unless (eshell-process-interact 'interrupt-process)
- (run-hook-with-args 'eshell-kill-hook nil "interrupt")))
+ (eshell-kill-process-function nil "interrupt")))
(defun eshell-kill-process ()
"Kill a process."
(interactive)
(unless (eshell-process-interact 'kill-process)
- (run-hook-with-args 'eshell-kill-hook nil "killed")))
+ (eshell-kill-process-function nil "killed")))
(defun eshell-quit-process ()
"Send quit signal to process."
(interactive)
(unless (eshell-process-interact 'quit-process)
- (run-hook-with-args 'eshell-kill-hook nil "quit")))
+ (eshell-kill-process-function nil "quit")))
;(defun eshell-stop-process ()
; "Send STOP signal to process."
; (interactive)
; (unless (eshell-process-interact 'stop-process)
-; (run-hook-with-args 'eshell-kill-hook nil "stopped")))
+; (eshell-kill-process-function nil "stopped")))
;(defun eshell-continue-process ()
; "Send CONTINUE signal to process."
@@ -518,7 +526,7 @@ See the variable `eshell-kill-processes-on-exit'."
; ;; jww (1999-09-17): this signal is not dealt with yet. For
; ;; example, `eshell-reset' will be called, and so will
; ;; `eshell-resume-eval'.
-; (run-hook-with-args 'eshell-kill-hook nil "continue")))
+; (eshell-kill-process-function nil "continue")))
(defun eshell-send-eof-to-process ()
"Send EOF to process."