]> git.eshelyaron.com Git - emacs.git/commitdiff
Fix completing-read functional REQUIRE-MATCH behavior
authorJoseph Turner <joseph@breatheoutbreathe.in>
Sun, 12 Nov 2023 21:21:50 +0000 (13:21 -0800)
committerEshel Yaron <me@eshelyaron.com>
Sun, 4 Feb 2024 10:59:23 +0000 (11:59 +0100)
* lisp/minibuffer.el (completion--complete-and-exit): If
minibuffer-completion-confirm is a function which returns nil,
immediately fail to complete.

See bug#66187.

(cherry picked from commit 77f5d4d523a406650036b7cd0d872d39a114a9ac)

lisp/minibuffer.el

index e45eeab06c01434c241aafc2cd071a3e90db6c63..c1b407d09546c6cab80b62f5342e249c9004fd63 100644 (file)
@@ -2127,10 +2127,13 @@ appear to be a match."
    ;; Allow user to specify null string
    ((= beg end) (funcall exit-function))
    ;; The CONFIRM argument is a predicate.
-   ((and (functionp minibuffer-completion-confirm)
-         (funcall minibuffer-completion-confirm
-                  (buffer-substring beg end)))
-    (funcall exit-function))
+   ((functionp minibuffer-completion-confirm)
+    (if (funcall minibuffer-completion-confirm
+                 (buffer-substring beg end))
+        (funcall exit-function)
+      (unless completion-fail-discreetly
+       (ding)
+       (completion--message "No match"))))
    ;; See if we have a completion from the table.
    ((test-completion (buffer-substring beg end)
                      minibuffer-completion-table