]> git.eshelyaron.com Git - emacs.git/commitdiff
Make `&' in dired be more consistent wrt. user input
authorLars Ingebrigtsen <larsi@gnus.org>
Thu, 19 May 2022 23:35:58 +0000 (01:35 +0200)
committerLars Ingebrigtsen <larsi@gnus.org>
Thu, 19 May 2022 23:35:58 +0000 (01:35 +0200)
* lisp/dired-aux.el (dired-do-async-shell-command): Mention that
commands here don't accept input.

lisp/dired-aux.el

index d2bac5c467ccec9201fe2f75afcd9ae32c463001..a98425d129084bc7d18a9fd660ea1de6cec8166a 100644 (file)
@@ -819,7 +819,9 @@ are executed in the background on each file sequentially waiting
 for each command to terminate before running the next command.
 In shell syntax this means separating the individual commands with `;'.
 
-The output appears in the buffer named by `shell-command-buffer-name-async'."
+The output appears in the buffer named by `shell-command-buffer-name-async'.
+
+Commands that are run asynchronously do not accept user input."
   (interactive
    (let ((files (dired-get-marked-files t current-prefix-arg nil nil t)))
      (list
@@ -997,7 +999,13 @@ Also see the `dired-confirm-shell-command' variable."
          (when (cdr file-list)
            (setq files (concat dired-mark-prefix files dired-mark-postfix)))
          (funcall stuff-it files))))
-     (or (and in-background "&") ""))))
+     (or (and in-background
+              (if (not w32-shell)
+                  ;; Work the same as the `on-each' case -- don't
+                  ;; accept user input in the output buffer.
+                  "&wait"
+                "&"))
+         ""))))
 
 ;; This is an extra function so that it can be redefined by ange-ftp.
 ;;;###autoload