]> git.eshelyaron.com Git - emacs.git/commitdiff
Fido-mode: don't error if case-fold-search is globally nil
authorJoão Távora <joaotavora@gmail.com>
Tue, 19 Dec 2023 10:06:45 +0000 (04:06 -0600)
committerJoão Távora <joaotavora@gmail.com>
Tue, 19 Dec 2023 10:07:17 +0000 (04:07 -0600)
bug#67884

To prevent errors, the same case-fold-search setting used for
originally selecting the candidate should be used when scoring it.

* lisp/minibuffer.el (completion--flex-score): Fix

lisp/minibuffer.el

index 1af890968d0658e617410f409c0f36bf562a6c19..905ccacb2a79311bae904110839a1c18ee72972c 100644 (file)
@@ -4059,15 +4059,16 @@ LEN is the length of the completion string."
 (defun completion--flex-score (str re &optional dont-error)
   "Compute flex score of completion STR based on RE.
 If DONT-ERROR, just return nil if RE doesn't match STR."
-  (cond ((string-match re str)
-         (let* ((match-end (match-end 0))
-                (md (cddr
-                     (setq
-                      completion--flex-score-last-md
-                      (match-data t completion--flex-score-last-md)))))
-           (completion--flex-score-1 md match-end (length str))))
-        ((not dont-error)
-         (error "Internal error: %s does not match %s" re str))))
+  (let ((case-fold-search completion-ignore-case))
+    (cond ((string-match re str)
+           (let* ((match-end (match-end 0))
+                  (md (cddr
+                       (setq
+                        completion--flex-score-last-md
+                        (match-data t completion--flex-score-last-md)))))
+             (completion--flex-score-1 md match-end (length str))))
+          ((not dont-error)
+           (error "Internal error: %s does not match %s" re str)))))
 
 (defvar completion-pcm--regexp nil
   "Regexp from PCM pattern in `completion-pcm--hilit-commonality'.")