From 4005ae23754a326df7b88fc933bc4f325060164d Mon Sep 17 00:00:00 2001 From: Juri Linkov Date: Thu, 19 Sep 2024 09:14:34 +0300 Subject: [PATCH] * lisp/dired-aux.el (dired-do-open): Optimize (bug#73004). Detect system-type only once, then iterate over files for every system type separately. (cherry picked from commit 8816b4f342983468d49f93decf216151e9c6ffbc) --- lisp/dired-aux.el | 26 +++++++++++++++----------- 1 file changed, 15 insertions(+), 11 deletions(-) diff --git a/lisp/dired-aux.el b/lisp/dired-aux.el index cf453a44a55..b8dd1a876ce 100644 --- a/lisp/dired-aux.el +++ b/lisp/dired-aux.el @@ -1459,17 +1459,21 @@ system is determined by `shell-command-guess-open'." (equal command "start")) (setq command "open")) (if command - (dolist (file files) - (cond - ((memq system-type '(ms-dos)) - (shell-command (concat command " " (shell-quote-argument file)))) - ((memq system-type '(windows-nt)) - (w32-shell-execute command (convert-standard-filename file))) - ((memq system-type '(cygwin)) - (call-process command nil nil nil file)) - ((memq system-type '(darwin)) - (start-process (concat command " " file) nil command file)) - (t + (cond + ((memq system-type '(ms-dos)) + (dolist (file files) + (shell-command (concat command " " (shell-quote-argument file))))) + ((memq system-type '(windows-nt)) + (dolist (file files) + (w32-shell-execute command (convert-standard-filename file)))) + ((memq system-type '(cygwin)) + (dolist (file files) + (call-process command nil nil nil file))) + ((memq system-type '(darwin)) + (dolist (file files) + (start-process (concat command " " file) nil command file))) + (t + (dolist (file files) (call-process command nil 0 nil file)))) (error "Open not supported on this system")))) -- 2.39.5