diff options
author | Glenn Morris <rgm@gnu.org> | 2007-11-07 03:33:16 +0000 |
---|---|---|
committer | Glenn Morris <rgm@gnu.org> | 2007-11-07 03:33:16 +0000 |
commit | 1b3f94df29c903411b6550fdd5a4f73a3e48943c (patch) | |
tree | a92e0f0e46e826e9602784b05da7dd7da8d54147 /lisp/eshell | |
parent | 3b32d9a56a6287840a777bd94158fd345d5eee6b (diff) | |
download | emacs-1b3f94df29c903411b6550fdd5a4f73a3e48943c.tar.gz |
Johan Bockg� <bojohan at gnu.org>
(eshell-insertion-filter, eshell-sentinel): Use `with-current-buffer'.
Diffstat (limited to 'lisp/eshell')
-rw-r--r-- | lisp/eshell/esh-proc.el | 56 |
1 files changed, 28 insertions, 28 deletions
diff --git a/lisp/eshell/esh-proc.el b/lisp/eshell/esh-proc.el index fb226cf51fb..7338756e3f8 100644 --- a/lisp/eshell/esh-proc.el +++ b/lisp/eshell/esh-proc.el @@ -335,39 +335,39 @@ Used only on systems which do not support async subprocesses.") PROC is the process for which we're inserting output. STRING is the output." (when (buffer-live-p (process-buffer proc)) - (set-buffer (process-buffer proc)) - (let ((entry (assq proc eshell-process-list))) - (when entry - (setcar (nthcdr 3 entry) - (concat (nth 3 entry) string)) - (unless (nth 4 entry) ; already being handled? - (while (nth 3 entry) - (let ((data (nth 3 entry))) - (setcar (nthcdr 3 entry) nil) - (setcar (nthcdr 4 entry) t) - (eshell-output-object data nil (cadr entry)) - (setcar (nthcdr 4 entry) nil)))))))) + (with-current-buffer (process-buffer proc) + (let ((entry (assq proc eshell-process-list))) + (when entry + (setcar (nthcdr 3 entry) + (concat (nth 3 entry) string)) + (unless (nth 4 entry) ; already being handled? + (while (nth 3 entry) + (let ((data (nth 3 entry))) + (setcar (nthcdr 3 entry) nil) + (setcar (nthcdr 4 entry) t) + (eshell-output-object data nil (cadr entry)) + (setcar (nthcdr 4 entry) nil))))))))) (defun eshell-sentinel (proc string) "Generic sentinel for command processes. Reports only signals. PROC is the process that's exiting. STRING is the exit message." (when (buffer-live-p (process-buffer proc)) - (set-buffer (process-buffer proc)) - (unwind-protect - (let* ((entry (assq proc eshell-process-list))) -; (if (not entry) -; (error "Sentinel called for unowned process `%s'" -; (process-name proc)) - (when entry - (unwind-protect - (progn - (unless (string= string "run") - (unless (string-match "^\\(finished\\|exited\\)" string) - (eshell-insertion-filter proc string)) - (eshell-close-handles (process-exit-status proc) 'nil - (cadr entry)))) - (eshell-remove-process-entry entry)))) - (run-hook-with-args 'eshell-kill-hook proc string)))) + (with-current-buffer (process-buffer proc) + (unwind-protect + (let* ((entry (assq proc eshell-process-list))) +; (if (not entry) +; (error "Sentinel called for unowned process `%s'" +; (process-name proc)) + (when entry + (unwind-protect + (progn + (unless (string= string "run") + (unless (string-match "^\\(finished\\|exited\\)" string) + (eshell-insertion-filter proc string)) + (eshell-close-handles (process-exit-status proc) 'nil + (cadr entry)))) + (eshell-remove-process-entry entry)))) + (run-hook-with-args 'eshell-kill-hook proc string))))) (defun eshell-process-interact (func &optional all query) "Interact with a process, using PROMPT if more than one, via FUNC. |