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
3 changed files with 14 additions and 2 deletions
|
@ -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
|
consider a completion acceptable if it matches all regular expressions
|
||||||
in this list, with @code{case-fold-search} (@pxref{Searching and Case})
|
in this list, with @code{case-fold-search} (@pxref{Searching and Case})
|
||||||
bound to the value of @code{completion-ignore-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
|
@end defvar
|
||||||
|
|
||||||
@defmac lazy-completion-table var fun
|
@defmac lazy-completion-table var fun
|
||||||
|
|
|
@ -4027,7 +4027,8 @@ the same set of elements."
|
||||||
(setq ccs (nreverse ccs))
|
(setq ccs (nreverse ccs))
|
||||||
(let* ((prefix (try-completion fixed comps))
|
(let* ((prefix (try-completion fixed comps))
|
||||||
(unique (or (and (eq prefix t) (setq prefix fixed))
|
(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)
|
(unless (or (eq elem 'prefix)
|
||||||
(equal prefix ""))
|
(equal prefix ""))
|
||||||
(push prefix res))
|
(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
|
if it matches all regular expressions in this list, with
|
||||||
`case-fold-search' bound to the value of `completion-ignore-case'.
|
`case-fold-search' bound to the value of `completion-ignore-case'.
|
||||||
See Info node `(elisp)Basic Completion', for a description of these
|
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;
|
Vcompletion_regexp_list = Qnil;
|
||||||
|
|
||||||
DEFVAR_BOOL ("minibuffer-allow-text-properties",
|
DEFVAR_BOOL ("minibuffer-allow-text-properties",
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue