(completion-hilit-commonality): Revert last change:
authorStefan Monnier <monnier@iro.umontreal.ca>
Fri, 2 May 2008 17:02:52 +0000 (17:02 +0000)
committerStefan Monnier <monnier@iro.umontreal.ca>
Fri, 2 May 2008 17:02:52 +0000 (17:02 +0000)
the leftover code was actually useful.

lisp/ChangeLog
lisp/minibuffer.el

index 9d7bab9..1aef1c8 100644 (file)
@@ -1,3 +1,8 @@
+2008-05-02  Stefan Monnier  <monnier@iro.umontreal.ca>
+
+       * minibuffer.el (completion-hilit-commonality): Revert last change:
+       the leftover code was actually useful.
+
 2008-05-02  Sam Steingold  <sds@gnu.org>
 
        * vc.el (vc-dir-mode-map): Enable mouse bindings.
@@ -8,8 +13,8 @@
 
 2008-05-02  Nick Roberts  <nickrob@snap.net.nz>
 
-       * progmodes/gdb-ui.el (gdb-info-breakpoints-custom): Don't
-       throw error if no file is found.
+       * progmodes/gdb-ui.el (gdb-info-breakpoints-custom):
+       Don't throw error if no file is found.
 
 2008-05-02  Juanma Barranquero  <lekktu@gmail.com>
 
@@ -18,7 +23,7 @@
 
 2008-05-02  Richard Sharman  <rsharman@pobox.com>
 
-       * hilit-chg.el (highlight-changes-mode): Removed references to
+       * hilit-chg.el (highlight-changes-mode): Remove references to
        hooks that no longer exist.  Because define-minor-mode is used the
        hook highlight-changes-mode-hook exists and can do what both the
        old hooks used to do.  The documentation at the top of the file
index 58097a9..2890978 100644 (file)
@@ -654,17 +654,24 @@ of the differing parts is, by contrast, slightly highlighted."
       (setcdr last nil)
       (nconc
        (mapcar
-        (lambda (str)
-          ;; Don't modify the string itself.
-          (setq str (copy-sequence str))
-          (put-text-property 0 com-str-len
-                             '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))
-          str)
+        (lambda (elem)
+          (let ((str
+                 ;; Don't modify the string itself, but a copy, since the
+                 ;; the string may be read-only or used for other purposes.
+                 ;; Furthermore, since `completions' may come from
+                 ;; display-completion-list, `elem' may be a list.
+                 (if (consp elem)
+                     (car (setq elem (cons (copy-sequence (car elem))
+                                           (cdr elem))))
+                   (setq elem (copy-sequence elem)))))
+            (put-text-property 0 com-str-len
+                               '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))))