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 <lycomedes1814@yandex.com>.
This commit is contained in:
Eli Zaretskii 2023-05-20 17:26:52 +03:00
parent 870a078c06
commit d8d3d78e58

View file

@ -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.