]> git.eshelyaron.com Git - emacs.git/commitdiff
Backport: Fix bug 39218
authorTino Calancha <tino.calancha@gmail.com>
Thu, 23 Jan 2020 09:56:02 +0000 (10:56 +0100)
committerTino Calancha <tino.calancha@gmail.com>
Thu, 23 Jan 2020 09:56:02 +0000 (10:56 +0100)
* lisp/simple.el (shell-command):
Ensure a shell command ending with `&' is run asynchronously.

lisp/simple.el

index 3546bef600d50cbba30663304c66c5f172cc64dc..73aea415c77e1228242135439159bc7e010c32ac 100644 (file)
@@ -3640,10 +3640,11 @@ impose the use of a shell (with its need to quote arguments)."
     (if handler
        (funcall handler 'shell-command command output-buffer error-buffer)
       (if (and output-buffer
+               (not (string-match "[ \t]*&[ \t]*\\'" command))
                (or (eq output-buffer (current-buffer))
                    (and (stringp output-buffer) (eq (get-buffer output-buffer) (current-buffer)))
                   (not (or (bufferp output-buffer) (stringp output-buffer))))) ; Bug#39067
-         ;; Output goes in current buffer.
+         ;; Synchronous command with output in current buffer.
          (let ((error-file
                  (and error-buffer
                       (make-temp-file