From 36baf3b70ed00000fe4dafe2fed72575cfd93dbd Mon Sep 17 00:00:00 2001 From: "Richard M. Stallman" Date: Sat, 20 Nov 2004 22:32:07 +0000 Subject: [PATCH] (Fminibuffer_complete_and_exit): Fixup the case of the completed value, for case-indep completion. --- src/minibuf.c | 22 +++++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) 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. */ -- 2.39.2