From: Dmitry Gutov Date: Sun, 4 Jul 2021 01:38:35 +0000 (+0300) Subject: Speed up fido-mode X-Git-Tag: emacs-28.0.90~1971 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=9b318d5c58fef6faf344f0377cbf169b5e1f0e09;p=emacs.git Speed up fido-mode * lisp/icomplete.el (icomplete-completions): Speed up fido-mode (bug#48841). --- diff --git a/lisp/icomplete.el b/lisp/icomplete.el index 26698c43cfd..576fced015a 100644 --- a/lisp/icomplete.el +++ b/lisp/icomplete.el @@ -859,13 +859,16 @@ matches exist." (base-size (prog1 (cdr last) (if last (setcdr last nil)))) (most-try - (if (and base-size (> base-size 0)) + ;; icomplete-hide-common-prefix logic is used + ;; unconditionally when there is single match. + (when (or icomplete-hide-common-prefix (not (cdr comps))) + (if (and base-size (> base-size 0)) + (completion-try-completion + name candidates predicate (length name) md) + ;; If the `comps' are 0-based, the result should be + ;; the same with `comps'. (completion-try-completion - name candidates predicate (length name) md) - ;; If the `comps' are 0-based, the result should be - ;; the same with `comps'. - (completion-try-completion - name comps nil (length name) md))) + name comps nil (length name) md)))) (most (if (consp most-try) (car most-try) (if most-try (car comps) ""))) ;; Compare name and most, so we can determine if name is