aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAndreas Schwab2008-08-13 19:33:36 +0000
committerAndreas Schwab2008-08-13 19:33:36 +0000
commitf34db3167f6d743f86d85cd4adfa439e5bdfb1e8 (patch)
treee5d9578d45569ccd02744b4c405332278099c49a
parent5d2ebd96ecaa30e227674cb6bb0dd9ede7b50987 (diff)
downloademacs-f34db3167f6d743f86d85cd4adfa439e5bdfb1e8.tar.gz
emacs-f34db3167f6d743f86d85cd4adfa439e5bdfb1e8.zip
(tramp-handle-shell-command): Handle output going
to current buffer like shell-command. Don't disable undo.
-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