From: Richard M. Stallman Date: Sat, 20 Nov 2004 22:32:07 +0000 (+0000) Subject: (Fminibuffer_complete_and_exit): X-Git-Tag: ttn-vms-21-2-B4~3806 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=36baf3b70ed00000fe4dafe2fed72575cfd93dbd;p=emacs.git (Fminibuffer_complete_and_exit): Fixup the case of the completed value, for case-indep completion. --- diff --git a/src/minibuf.c b/src/minibuf.c index 0037bd70535..fd90a73f8eb 100644 --- a/src/minibuf.c +++ b/src/minibuf.c @@ -2082,9 +2082,29 @@ a repetition of this command will exit. */) 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. */