]> git.eshelyaron.com Git - emacs.git/commitdiff
(comint-output-filter): Make the Comint buffer current
authorGerd Moellmann <gerd@gnu.org>
Mon, 25 Oct 1999 13:44:12 +0000 (13:44 +0000)
committerGerd Moellmann <gerd@gnu.org>
Mon, 25 Oct 1999 13:44:12 +0000 (13:44 +0000)
for the comint-preoutput-filter-functions.

lisp/ChangeLog
lisp/comint.el

index 7018a1a31a43375cf062116aba77f08ce4204655..5dd15efef8214fd408a252d0209996d7a8ad74fe 100644 (file)
@@ -10,6 +10,9 @@
        
        * indent.el (indent-region): Doc fix.
 
+       * comint.el (comint-output-filter): Make the Comint buffer current
+       for the comint-preoutput-filter-functions.
+
 1999-10-24  Stephen Eglen  <stephen@gnu.org>
 
        * progmodes/octave-mod.el (octave-auto-indent): Remove :version so
index 1e7c0ee3c2724bac3522c8305f2cc3290c753b35..48c60003b7df12c56fd86e78a33de51c7effc2c6 100644 (file)
@@ -1349,16 +1349,15 @@ This variable is buffer-local.")
 ;; is to keep comint-last-input-end from moving forward
 ;; when output is inserted.
 (defun comint-output-filter (process string)
-  ;; First check for killed buffer
   (let ((oprocbuf (process-buffer process)))
-    (let ((functions comint-preoutput-filter-functions))
-      (while (and functions string)
-       (setq string (funcall (car functions) string))
-       (setq functions (cdr functions))))
-    (if (and string oprocbuf (buffer-name oprocbuf))
-       (let ((obuf (current-buffer))
-             (opoint nil) (obeg nil) (oend nil))
-         (set-buffer oprocbuf)
+    ;; First check for killed buffer or no input.
+    (when (and string oprocbuf (buffer-name oprocbuf))
+      (with-current-buffer oprocbuf
+       (let ((functions comint-preoutput-filter-functions))
+         (while (and functions string)
+           (setq string (funcall (car functions) string))
+           (setq functions (cdr functions))))
+       (let (opoint obeg oend)
          (setq opoint (point))
          (setq obeg (point-min))
          (setq oend (point-max))
@@ -1389,8 +1388,7 @@ This variable is buffer-local.")
 
          (narrow-to-region obeg oend)
          (goto-char opoint)
-         (run-hook-with-args 'comint-output-filter-functions string)
-         (set-buffer obuf)))))
+         (run-hook-with-args 'comint-output-filter-functions string))))))
 
 (defun comint-preinput-scroll-to-bottom ()
   "Go to the end of buffer in all windows showing it.