From: Eli Zaretskii Date: Sat, 20 May 2023 14:26:52 +0000 (+0300) Subject: Fix async invocations in Dired with 'fish' shell X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=d8d3d78e58ccf7c961d40f539a5a9773b6668030;p=emacs.git Fix async invocations in Dired with 'fish' shell * lisp/dired-aux.el (dired-shell-stuff-it): Separate '&' and ';' by blanks, for the sake of shells such as 'fish'. Suggested by Lycomedes 1814 . --- diff --git a/lisp/dired-aux.el b/lisp/dired-aux.el index 96ac9da4508..a07406e4c0d 100644 --- a/lisp/dired-aux.el +++ b/lisp/dired-aux.el @@ -957,7 +957,7 @@ Also see the `dired-confirm-shell-command' variable." ;; "&" instead. (cmd-sep (if (and (or (not w32-shell) file-remote) (not parallel-in-background)) - ";" "&")) + "; " "& ")) (stuff-it (if (dired--star-or-qmark-p command nil 'keep) (lambda (x) @@ -988,7 +988,7 @@ Also see the `dired-confirm-shell-command' variable." ;; Add 'wait' to force those POSIX shells to wait until ;; all commands finish. (or (and parallel-in-background (not w32-shell) - " &wait") + " & wait") ""))) (t (let ((files (mapconcat #'shell-quote-argument @@ -1000,9 +1000,9 @@ Also see the `dired-confirm-shell-command' variable." ;; Be consistent in how we treat inputs to commands -- do ;; the same here as in the `on-each' case. (if (and in-background (not w32-shell)) - " &wait" + " & wait" ""))))) - (or (and in-background "&") + (or (and in-background "& ") "")))) ;; This is an extra function so that it can be redefined by ange-ftp.