aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--lisp/ChangeLog4
-rw-r--r--lisp/net/tramp.el25
2 files changed, 20 insertions, 9 deletions
diff --git a/lisp/ChangeLog b/lisp/ChangeLog
index 1401f4b8cd8..d2cd49750b2 100644
--- a/lisp/ChangeLog
+++ b/lisp/ChangeLog
@@ -1,7 +1,7 @@
12008-08-13 Andreas Schwab <schwab@suse.de> 12008-08-13 Andreas Schwab <schwab@suse.de>
2 2
3 * net/tramp.el (tramp-handle-shell-command): Correctly handle 3 * net/tramp.el (tramp-handle-shell-command): Handle output going
4 output going to current buffer. Don't disable undo. 4 to current buffer like shell-command. Don't disable undo.
5 5
62008-08-13 Glenn Morris <rgm@gnu.org> 62008-08-13 Glenn Morris <rgm@gnu.org>
7 7
diff --git a/lisp/net/tramp.el b/lisp/net/tramp.el
index 67e679b2ef3..828c1d2442f 100644
--- a/lisp/net/tramp.el
+++ b/lisp/net/tramp.el
@@ -3878,7 +3878,10 @@ Lisp error raised when PROGRAM is nil is trapped also, returning 1."
3878 (error nil)) 3878 (error nil))
3879 (error "Shell command in progress"))) 3879 (error "Shell command in progress")))
3880 3880
3881 (unless current-buffer-p 3881 (if current-buffer-p
3882 (progn
3883 (barf-if-buffer-read-only)
3884 (push-mark nil t))
3882 (with-current-buffer output-buffer 3885 (with-current-buffer output-buffer
3883 (setq buffer-read-only nil) 3886 (setq buffer-read-only nil)
3884 (erase-buffer))) 3887 (erase-buffer)))
@@ -3900,12 +3903,20 @@ Lisp error raised when PROGRAM is nil is trapped also, returning 1."
3900 (with-current-buffer error-buffer 3903 (with-current-buffer error-buffer
3901 (insert-file-contents (cadr buffer))) 3904 (insert-file-contents (cadr buffer)))
3902 (delete-file (cadr buffer))) 3905 (delete-file (cadr buffer)))
3903 ;; There's some output, display it. 3906 (if current-buffer-p
3904 (when (with-current-buffer output-buffer (> (point-max) (point-min))) 3907 ;; This is like exchange-point-and-mark, but doesn't
3905 (if (functionp 'display-message-or-buffer) 3908 ;; activate the mark. It is cleaner to avoid activation,
3906 (funcall (symbol-function 'display-message-or-buffer) 3909 ;; even though the command loop would deactivate the mark
3907 output-buffer) 3910 ;; because we inserted text.
3908 (pop-to-buffer output-buffer))))))) 3911 (goto-char (prog1 (mark t)
3912 (set-marker (mark-marker) (point)
3913 (current-buffer))))
3914 ;; There's some output, display it.
3915 (when (with-current-buffer output-buffer (> (point-max) (point-min)))
3916 (if (functionp 'display-message-or-buffer)
3917 (funcall (symbol-function 'display-message-or-buffer)
3918 output-buffer)
3919 (pop-to-buffer output-buffer))))))))
3909 3920
3910;; File Editing. 3921;; File Editing.
3911 3922