=== modified file 'lisp/minibuffer.el' --- lisp/minibuffer.el 2012-01-05 09:46:05 +0000 +++ lisp/minibuffer.el 2012-01-16 09:05:45 +0000 @@ -1180,6 +1180,9 @@ of the differing parts is, by contrast, slightly highlighted." :group 'completion) +(defvar completion-hilit-commonality-p nil + "Internal variable. Bound to t in `minibuffer-completion-help'.") + (defun completion-hilit-commonality (completions prefix-len base-size) (when completions (let ((com-str-len (- prefix-len (or base-size 0)))) @@ -1195,17 +1198,18 @@ (car (setq elem (cons (copy-sequence (car elem)) (cdr elem)))) (setq elem (copy-sequence elem))))) - (put-text-property 0 - ;; If completion-boundaries returns incorrect - ;; values, all-completions may return strings - ;; that don't contain the prefix. - (min com-str-len (length str)) - 'font-lock-face 'completions-common-part - str) - (if (> (length str) com-str-len) - (put-text-property com-str-len (1+ com-str-len) - 'font-lock-face 'completions-first-difference - str))) + (when completion-hilit-commonality-p + (put-text-property 0 + ;; If completion-boundaries returns incorrect + ;; values, all-completions may return strings + ;; that don't contain the prefix. + (min com-str-len (length str)) + 'font-lock-face 'completions-common-part + str) + (if (> (length str) com-str-len) + (put-text-property com-str-len (1+ com-str-len) + 'font-lock-face 'completions-first-difference + str)))) elem) completions) base-size)))) @@ -1314,12 +1318,13 @@ (end (field-end)) (string (field-string)) (md (completion--field-metadata start)) - (completions (completion-all-completions - string - minibuffer-completion-table - minibuffer-completion-predicate - (- (point) (field-beginning)) - md))) + (completions (let ((completion-hilit-commonality-p t)) + (completion-all-completions + string + minibuffer-completion-table + minibuffer-completion-predicate + (- (point) (field-beginning)) + md)))) (message nil) (if (or (null completions) (and (not (consp (cdr completions))) @@ -2411,14 +2416,15 @@ (setq str (copy-sequence str)) (unless (string-match re str) (error "Internal error: %s does not match %s" re str)) - (let ((pos (or (match-beginning 1) (match-end 0)))) - (put-text-property 0 pos - 'font-lock-face 'completions-common-part - str) - (if (> (length str) pos) - (put-text-property pos (1+ pos) - 'font-lock-face 'completions-first-difference - str))) + (when completion-hilit-commonality-p + (let ((pos (or (match-beginning 1) (match-end 0)))) + (put-text-property 0 pos + 'font-lock-face 'completions-common-part + str) + (if (> (length str) pos) + (put-text-property pos (1+ pos) + 'font-lock-face 'completions-first-difference + str)))) str) completions))))