Mercurial > emacs
changeset 58363:f8ac0eb0faa3
(Fminibuffer_complete_and_exit):
Fixup the case of the completed value, for case-indep completion.
author | Richard M. Stallman <rms@gnu.org> |
---|---|
date | Sat, 20 Nov 2004 22:32:07 +0000 |
parents | 0301caf145d2 |
children | c8e69a3cb57f |
files | src/minibuf.c |
diffstat | 1 files changed, 21 insertions(+), 1 deletions(-) [+] |
line wrap: on
line diff
--- a/src/minibuf.c Sat Nov 20 22:09:50 2004 +0000 +++ b/src/minibuf.c Sat Nov 20 22:32:07 2004 +0000 @@ -2082,9 +2082,29 @@ if (XINT (Fminibuffer_prompt_end ()) == ZV) goto exit; - if (!NILP (Ftest_completion (Fminibuffer_contents (), + val = Fminibuffer_contents (); + if (!NILP (Ftest_completion (val, Vminibuffer_completion_table, Vminibuffer_completion_predicate))) + { + if (completion_ignore_case) + { /* Fixup case of the field, if necessary. */ + Lisp_Object compl + = Ftry_completion (val, + Vminibuffer_completion_table, + Vminibuffer_completion_predicate); + if (STRINGP (compl) + /* If it weren't for this piece of paranoia, I'd replace + the whole thing with a call to do_completion. */ + && EQ (Flength (val), Flength (compl))) + { + del_range (XINT (Fminibuffer_prompt_end ()), ZV); + Finsert (1, &compl); + } + } + goto exit; + } + goto exit; /* Call do_completion, but ignore errors. */