summaryrefslogtreecommitdiff
path: root/lisp/minibuffer.el
diff options
context:
space:
mode:
authorStephen Berman <stephen.berman@gmx.net>2013-07-30 16:42:15 -0400
committerStefan Monnier <monnier@iro.umontreal.ca>2013-07-30 16:42:15 -0400
commit158bc55c6e715be476acacbef2aa8ca9b50c94c6 (patch)
tree986f060c205d15818af98c45797dd16d4ba2943c /lisp/minibuffer.el
parentac38e731d9113628bd6823372d11b895f67a5e33 (diff)
downloademacs-158bc55c6e715be476acacbef2aa8ca9b50c94c6.tar.gz
* lisp/minibuffer.el (completion--twq-all): Try and preserve each
completion's case choice. Fixes: debbugs:14907
Diffstat (limited to 'lisp/minibuffer.el')
-rw-r--r--lisp/minibuffer.el11
1 files changed, 11 insertions, 0 deletions
diff --git a/lisp/minibuffer.el b/lisp/minibuffer.el
index 8bcf3afae05..e07d28a54d0 100644
--- a/lisp/minibuffer.el
+++ b/lisp/minibuffer.el
@@ -568,6 +568,17 @@ for use at QPOS."
(cl-assert (string-prefix-p prefix completion 'ignore-case) t)
(let* ((new (substring completion (length prefix)))
(qnew (funcall qfun new))
+ (qprefix
+ (if (not completion-ignore-case)
+ qprefix
+ ;; Make qprefix inherit the case from `completion'.
+ (let* ((rest (substring completion
+ 0 (length prefix)))
+ (qrest (funcall qfun rest)))
+ (if (completion--string-equal-p qprefix qrest)
+ (propertize qrest 'face
+ 'completions-common-part)
+ qprefix))))
(qcompletion (concat qprefix qnew)))
;; FIXME: Similarly here, Cygwin's mapping trips this
;; assertion.