emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

master edeb220d31: Don't loop so much in gud-query-cmdline on remote sys


From: Lars Ingebrigtsen
Subject: master edeb220d31: Don't loop so much in gud-query-cmdline on remote systems
Date: Mon, 24 Jan 2022 08:57:33 -0500 (EST)

branch: master
commit edeb220d310f189023b232407deb55f49445358b
Author: Lars Ingebrigtsen <larsi@gnus.org>
Commit: Lars Ingebrigtsen <larsi@gnus.org>

    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).
---
 lisp/progmodes/gud.el | 19 ++++++++++++-------
 1 file changed, 12 insertions(+), 7 deletions(-)

diff --git a/lisp/progmodes/gud.el b/lisp/progmodes/gud.el
index b42279415b..7092ca2041 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)))
 



reply via email to

[Prev in Thread] Current Thread [Next in Thread]