diff --git a/lisp/minibuffer.el b/lisp/minibuffer.el index 804afe9cb43..4ac231171b6 100644 --- a/lisp/minibuffer.el +++ b/lisp/minibuffer.el @@ -2613,7 +2613,6 @@ minibuffer-completion-help (buffer-substring (point) end)))) (point))) (field-char (and (< field-end end) (char-after field-end))) - (base-position (list (+ start base-size) field-end)) (all-md (completion--metadata (buffer-substring-no-properties start (point)) base-size md @@ -2623,6 +2622,12 @@ minibuffer-completion-help (aff-fun (completion-metadata-get all-md 'affixation-function)) (sort-fun (completion-metadata-get all-md 'display-sort-function)) (group-fun (completion-metadata-get all-md 'group-function)) + (ignore-after-point (completion-metadata-get all-md + 'ignore-after-point)) + (base-position (list (+ start base-size) + (if ignore-after-point + (point) + field-end))) (mainbuf (current-buffer)) ;; If the *Completions* buffer is shown in a new ;; window, mark it as softly-dedicated, so bury-buffer in @@ -3778,6 +3783,13 @@ completion-emacs22-all-completions point (car (completion-boundaries beforepoint table pred ""))))) +(put 'emacs22 'completion--adjust-metadata 'completion--emacs22-adjust-metadata) + +(defun completion--emacs22-adjust-metadata (metadata) + `(metadata + (ignore-after-point . t) + ,@(cdr metadata))) + ;;; Basic completion. (defun completion--merge-suffix (completion point suffix)