diff options
Diffstat (limited to 'lisp')
-rw-r--r-- | lisp/net/rlogin.el | 4 | ||||
-rw-r--r-- | lisp/org/org.el | 1 | ||||
-rw-r--r-- | lisp/simple.el | 32 | ||||
-rw-r--r-- | lisp/vc/vc-git.el | 8 |
4 files changed, 27 insertions, 18 deletions
diff --git a/lisp/net/rlogin.el b/lisp/net/rlogin.el index 646adef2f0a..3bfc4d7f356 100644 --- a/lisp/net/rlogin.el +++ b/lisp/net/rlogin.el @@ -219,7 +219,7 @@ variable." ;; function, to avoid a gratuitous resync check; the default ;; should be the user's home directory, be it local or remote. (setq comint-file-name-prefix - (concat "/" rlogin-remote-user "@" rlogin-host ":")) + (concat "/-:" rlogin-remote-user "@" rlogin-host ":")) (cd-absolute comint-file-name-prefix)) ((null rlogin-directory-tracking-mode)) (t @@ -253,7 +253,7 @@ local one share the same directories (e.g. through NFS)." (setq rlogin-directory-tracking-mode t) (setq shell-dirtrackp t) (setq comint-file-name-prefix - (concat "/" rlogin-remote-user "@" rlogin-host ":"))) + (concat "/-:" rlogin-remote-user "@" rlogin-host ":"))) ((< prefix 0) (setq rlogin-directory-tracking-mode nil) (setq shell-dirtrackp nil)) diff --git a/lisp/org/org.el b/lisp/org/org.el index 5272061ccc9..4e4620549c5 100644 --- a/lisp/org/org.el +++ b/lisp/org/org.el @@ -7,6 +7,7 @@ ;; Maintainer: Carsten Dominik <carsten at orgmode dot org> ;; Keywords: outlines, hypermedia, calendar, wp ;; Homepage: http://orgmode.org +;; Version: 9.1.6 ;; ;; This file is part of GNU Emacs. ;; diff --git a/lisp/simple.el b/lisp/simple.el index 375ee31e9cb..0c54c8f2926 100644 --- a/lisp/simple.el +++ b/lisp/simple.el @@ -3356,15 +3356,15 @@ to execute it asynchronously. The output appears in the buffer `*Async Shell Command*'. That buffer is in shell mode. -You can configure `async-shell-command-buffer' to specify what to do in -case when `*Async Shell Command*' buffer is already taken by another +You can configure `async-shell-command-buffer' to specify what to do +when the `*Async Shell Command*' buffer is already taken by another running shell command. To run COMMAND without displaying the output in a window you can configure `display-buffer-alist' to use the action `display-buffer-no-window' for the buffer `*Async Shell Command*'. In Elisp, you will often be better served by calling `start-process' -directly, since it offers more control and does not impose the use of a -shell (with its need to quote arguments)." +directly, since it offers more control and does not impose the use of +a shell (with its need to quote arguments)." (interactive (list (read-shell-command "Async shell command: " nil nil @@ -3433,8 +3433,8 @@ In an interactive call, the variable `shell-command-default-error-buffer' specifies the value of ERROR-BUFFER. In Elisp, you will often be better served by calling `call-process' or -`start-process' directly, since it offers more control and does not impose -the use of a shell (with its need to quote arguments)." +`start-process' directly, since they offer more control and do not +impose the use of a shell (with its need to quote arguments)." (interactive (list @@ -3552,14 +3552,20 @@ the use of a shell (with its need to quote arguments)." ;; carriage motion (see comint-inhibit-carriage-motion). (set-process-filter proc 'comint-output-filter) (if async-shell-command-display-buffer + ;; Display buffer immediately. (display-buffer buffer '(nil (allow-no-window . t))) - (add-function :before (process-filter proc) - (lambda (process _string) - (let ((buf (process-buffer process))) - (when (and (zerop (buffer-size buf)) - (string= (buffer-name buf) - bname)) - (display-buffer buf)))))))) + ;; Defer displaying buffer until first process output. + ;; Use disposable named advice so that the buffer is + ;; displayed at most once per process lifetime. + (let ((nonce (make-symbol "nonce"))) + (add-function :before (process-filter proc) + (lambda (proc _string) + (let ((buf (process-buffer proc))) + (when (buffer-live-p buf) + (remove-function (process-filter proc) + nonce) + (display-buffer buf)))) + `((name . ,nonce))))))) ;; Otherwise, command is executed synchronously. (shell-command-on-region (point) (point) command output-buffer nil error-buffer))))))) diff --git a/lisp/vc/vc-git.el b/lisp/vc/vc-git.el index 2d6ca1386a3..47172dd52fa 100644 --- a/lisp/vc/vc-git.el +++ b/lisp/vc/vc-git.el @@ -999,7 +999,7 @@ This prompts for a branch to merge from." (autoload 'vc-setup-buffer "vc-dispatcher") (defcustom vc-git-print-log-follow nil - "If true, follow renames in Git logs for files." + "If true, follow renames in Git logs for a single file." :type 'boolean :version "26.1") @@ -1024,8 +1024,10 @@ If LIMIT is non-nil, show no more than this many entries." (append '("log" "--no-color") (when (and vc-git-print-log-follow - (not (cl-some #'file-directory-p files))) - ;; "--follow" on directories is broken + (null (cdr files)) + (car files) + (not (file-directory-p (car files)))) + ;; "--follow" on directories or multiple files is broken ;; https://debbugs.gnu.org/cgi/bugreport.cgi?bug=8756 ;; https://debbugs.gnu.org/cgi/bugreport.cgi?bug=16422 (list "--follow")) |