changeset 79345:5339903c5abe

Johan Bockg? <bojohan at gnu.org> (eshell-insertion-filter, eshell-sentinel): Use `with-current-buffer'.
author Glenn Morris <rgm@gnu.org>
date Wed, 07 Nov 2007 03:33:00 +0000
parents c0cc9997f433
children 30627b782488
files lisp/eshell/esh-proc.el
diffstat 1 files changed, 28 insertions(+), 28 deletions(-) [+]
line wrap: on
line diff
--- a/lisp/eshell/esh-proc.el	Wed Nov 07 03:32:41 2007 +0000
+++ b/lisp/eshell/esh-proc.el	Wed Nov 07 03:33:00 2007 +0000
@@ -335,39 +335,39 @@
 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.