mirror of
https://git.savannah.gnu.org/git/emacs.git
synced 2024-12-02 08:22:22 +00:00
Avoid errors in completion due to 'completion-regexp-list'
* doc/lispref/minibuf.texi (Basic Completion): * src/minibuf.c (syms_of_minibuf) <completion-regexp-list>: Document that global non-nil settings of 'completion-regexp-list' are not safe. * lisp/minibuffer.el (completion-pcm--merge-completions): Avoid errors in 'try-completion' when PREFIX is nil. (Bug#64351)
This commit is contained in:
parent
15ff876177
commit
37ed3d15f3
@ -1052,6 +1052,12 @@ This is a list of regular expressions. The completion functions only
|
||||
consider a completion acceptable if it matches all regular expressions
|
||||
in this list, with @code{case-fold-search} (@pxref{Searching and Case})
|
||||
bound to the value of @code{completion-ignore-case}.
|
||||
|
||||
Do not set this variable to a non-@code{nil} value globally, as that
|
||||
is not safe and will probably cause errors in completion commands.
|
||||
This variable should be only let-bound to non-@code{nil} values around
|
||||
calls to basic completion functions: @code{try-completion},
|
||||
@code{test-completion}, and @code{all-completions}.
|
||||
@end defvar
|
||||
|
||||
@defmac lazy-completion-table var fun
|
||||
|
@ -4027,7 +4027,8 @@ the same set of elements."
|
||||
(setq ccs (nreverse ccs))
|
||||
(let* ((prefix (try-completion fixed comps))
|
||||
(unique (or (and (eq prefix t) (setq prefix fixed))
|
||||
(eq t (try-completion prefix comps)))))
|
||||
(and (stringp prefix)
|
||||
(eq t (try-completion prefix comps))))))
|
||||
(unless (or (eq elem 'prefix)
|
||||
(equal prefix ""))
|
||||
(push prefix res))
|
||||
|
@ -2471,7 +2471,12 @@ The basic completion functions only consider a completion acceptable
|
||||
if it matches all regular expressions in this list, with
|
||||
`case-fold-search' bound to the value of `completion-ignore-case'.
|
||||
See Info node `(elisp)Basic Completion', for a description of these
|
||||
functions. */);
|
||||
functions.
|
||||
|
||||
Do not set this variable to a non-nil value globally, as that is not
|
||||
safe and will probably cause errors in completion commands. This
|
||||
variable should be only let-bound to non-nil values around calls to
|
||||
basic completion functions like `try-completion' and `all-completions'. */);
|
||||
Vcompletion_regexp_list = Qnil;
|
||||
|
||||
DEFVAR_BOOL ("minibuffer-allow-text-properties",
|
||||
|
Loading…
Reference in New Issue
Block a user