From: Dmitry Gutov Date: Sat, 18 May 2024 13:30:23 +0000 (+0300) Subject: minibuffer-completion-help: Fix earlier mistake X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=83541e526653cff12071bebba582afadb2f353c8;p=emacs.git minibuffer-completion-help: Fix earlier mistake * lisp/minibuffer.el (minibuffer-completion-help): Fix earlier mistake. Instead of altering a variable whose value is immutable (and already captured in a saved list), move the reference to said list to a lexical binding and alter that list's second element instead. https://lists.gnu.org/archive/html/emacs-devel/2024-05/msg00875.html (cherry picked from commit 6badb1260a5e5107887d244507a7289fa1a30a91) --- diff --git a/lisp/minibuffer.el b/lisp/minibuffer.el index de690d83804..d9ce8c89065 100644 --- a/lisp/minibuffer.el +++ b/lisp/minibuffer.el @@ -2999,6 +2999,7 @@ completions list." (buffer-substring (point) end)))) (point))) (field-char (and (< field-end end) (char-after field-end))) + (base-position (list (+ start base-size) field-end)) (style completion--matching-style) (exceptional-candidates (or (not completions-exclude-exceptional-candidates) @@ -3119,7 +3120,7 @@ completions list." :predicate cpred :exceptional-candidates exceptional-candidates :action action - :base-position (list (+ start base-size) field-end) + :base-position base-position :base-prefix base-prefix :ignore-case completion-ignore-case :insert-choice-function @@ -3145,9 +3146,9 @@ completions list." (= (aref choice (1- (length choice))) field-char)) (setq end (1+ end))) - (cl-decf field-end (- end start (length choice))) + (cl-decf (nth 1 base-position) (- end start (length choice))) ;; FIXME: Use `md' to do quoting&terminator here. - (completion--replace start end choice) + (completion--replace start (min end (point-max)) choice) (let* ((minibuffer-completion-table ctable) (minibuffer-completion-predicate cpred) (completion-extra-properties cprops)