From: Lars Ingebrigtsen Date: Mon, 24 Jan 2022 13:55:35 +0000 (+0100) Subject: Don't loop so much in gud-query-cmdline on remote systems X-Git-Tag: emacs-29.0.90~2793 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=edeb220d310f189023b232407deb55f49445358b;p=emacs.git Don't loop so much in gud-query-cmdline on remote systems * lisp/progmodes/gud.el (gud-query-cmdline): Avoid looping over large numbers of files on remote systems (bug#21528). --- diff --git a/lisp/progmodes/gud.el b/lisp/progmodes/gud.el index b42279415bc..7092ca2041f 100644 --- a/lisp/progmodes/gud.el +++ b/lisp/progmodes/gud.el @@ -759,13 +759,18 @@ The option \"--fullname\" must be included in this value." (concat (or cmd-name (symbol-name minor-mode)) " " (or init - (let ((file nil)) - (dolist (f (directory-files default-directory) file) - (if (and (file-executable-p f) - (not (file-directory-p f)) - (or (not file) - (file-newer-than-file-p f file))) - (setq file f))))))) + (let ((file nil) + (files (directory-files default-directory))) + ;; On remote systems, this may be slow, so avoid it. + (when (or (not (file-remote-p default-directory)) + (length< files 50)) + (dolist (f files) + (if (and (file-executable-p f) + (not (file-directory-p f)) + (or (not file) + (file-newer-than-file-p f file))) + (setq file f))) + file))))) gud-minibuffer-local-map nil hist-sym)))