Avoid errors in 'icomplete-vertical-mode'

* lisp/minibuffer.el (completion--hilit-from-re): Avoid signaling
an error if STRING does not match REGEXP.  Fix doc string and
indentation.  (Bug#72176)
This commit is contained in:
Eli Zaretskii 2024-07-20 08:58:39 +03:00
parent 55110d1fda
commit 96f1db89ee

View file

@ -4051,17 +4051,19 @@ details."
(defun completion--hilit-from-re (string regexp &optional point-idx) (defun completion--hilit-from-re (string regexp &optional point-idx)
"Fontify STRING using REGEXP POINT-IDX. "Fontify STRING using REGEXP POINT-IDX.
`completions-common-part' and `completions-first-difference' are Uses `completions-common-part' and `completions-first-difference'
used. POINT-IDX is the position of point in the presumed \"PCM\" faces to fontify STRING.
pattern that was used to generate derive REGEXP from." POINT-IDX is the position of point in the presumed \"PCM\" pattern
from which REGEXP was generated."
(let* ((md (and regexp (string-match regexp string) (cddr (match-data t)))) (let* ((md (and regexp (string-match regexp string) (cddr (match-data t))))
(pos (if point-idx (match-beginning point-idx) (match-end 0))) (pos (if point-idx (match-beginning point-idx) (match-end 0)))
(me (and md (match-end 0))) (me (and md (match-end 0)))
(from 0)) (from 0))
(while md (while md
(add-face-text-property from (pop md) 'completions-common-part nil string) (add-face-text-property from (pop md)
'completions-common-part nil string)
(setq from (pop md))) (setq from (pop md)))
(if (> (length string) pos) (if (and (numberp pos) (> (length string) pos))
(add-face-text-property (add-face-text-property
pos (1+ pos) pos (1+ pos)
'completions-first-difference 'completions-first-difference