]> git.eshelyaron.com Git - emacs.git/commitdiff
(ecomplete-add-item): Preserve the more complete text
authorStefan Monnier <monnier@iro.umontreal.ca>
Sun, 6 Mar 2022 15:14:42 +0000 (10:14 -0500)
committerStefan Monnier <monnier@iro.umontreal.ca>
Sun, 6 Mar 2022 15:14:42 +0000 (10:14 -0500)
Avoid replacing "John Doe <john@doe.ch>" with "john@doe.ch".

* lisp/ecomplete.el (ecomplete-add-item): Keep the longest text

lisp/ecomplete.el

index c39c6c2ff9c1e5b9ef73360726839c3b716206e8..d5f3fc77560ec2a6aa4326024be493551745f3e5 100644 (file)
@@ -103,7 +103,11 @@ string that was matched."
     (unless elems
       (push (setq elems (list type)) ecomplete-database))
     (if (setq entry (assoc key (cdr elems)))
-       (setcdr entry (list (1+ (cadr entry)) now text))
+       (pcase-let ((`(,_key ,count ,_time ,oldtext) entry))
+         (setcdr entry (list (1+ count) now
+                             ;; Preserve the "more complete" text.
+                             (if (>= (length text) (length oldtext))
+                                 text oldtext))))
       (nconc elems (list (list key 1 now text))))))
 
 (defun ecomplete-get-item (type key)