emacs-elpa-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[elpa] externals/ebdb 365fa1c 04/12: Add nicknames to person record cach


From: Eric Abrahamsen
Subject: [elpa] externals/ebdb 365fa1c 04/12: Add nicknames to person record cache 'alt-names
Date: Tue, 12 Jun 2018 22:06:10 -0400 (EDT)

branch: externals/ebdb
commit 365fa1c2a3d7dd4d9460392bbcba2f8912e43a4f
Author: Eric Abrahamsen <address@hidden>
Commit: Eric Abrahamsen <address@hidden>

    Add nicknames to person record cache 'alt-names
    
    * ebdb.el (ebdb-init-field): For simple name fields and person
      records: also store a combination of "nickname surname" in the
      cache's alt-name, so people can search and complete on that.
---
 ebdb.el | 29 +++++++++++++++++++++++++----
 1 file changed, 25 insertions(+), 4 deletions(-)

diff --git a/ebdb.el b/ebdb.el
index 0ef1816..9c5ae76 100644
--- a/ebdb.el
+++ b/ebdb.el
@@ -1168,9 +1168,30 @@ simple or complex name class."
   (let ((name (ebdb-read-string "Name: " (when obj (slot-value obj 'name)))))
     (cl-call-next-method class (plist-put slots :name name) obj)))
 
-(cl-defmethod ebdb-init-field ((name ebdb-field-name-simple) &optional record)
-  (when record
-    (ebdb-puthash (ebdb-string name) record))
+(cl-defmethod ebdb-init-field ((name ebdb-field-name-simple) record)
+  (ebdb-puthash (ebdb-string name) record)
+  (cl-call-next-method))
+
+(cl-defmethod ebdb-delete-field ((name ebdb-field-name-simple) record
+                                &optional _unload)
+  (ebdb-remhash (ebdb-string name) record)
+  (cl-call-next-method))
+
+(cl-defmethod ebdb-init-field ((name ebdb-field-name-simple)
+                              (record (subclass ebdb-record-person)))
+  (object-add-to-list
+   (ebdb-record-cache record) 'alt-names
+   (concat (ebdb-string name) " "
+          (slot-value (slot-value record 'name) 'surname)))
+  (cl-call-next-method))
+
+(cl-defmethod ebdb-delete-field ((name ebdb-field-name-simple)
+                                (record (subclass ebdb-record-person))
+                                &optional _unload)
+  (object-remove-from-list
+   (ebdb-record-cache record) 'alt-names
+   (concat (ebdb-string name) " "
+          (slot-value (slot-value record 'name) 'surname)))
   (cl-call-next-method))
 
 (cl-defmethod ebdb-parse ((class (subclass ebdb-field-name-simple)) str 
&optional slots)
@@ -1242,7 +1263,7 @@ first one."
                 (format "%s " given))
               (when prefix
                 (format "%s " prefix))
-              (slot-value name 'surname)
+              (ebdb-name-last name)
               (when suffix
                 (format ", %s" suffix)))))))
 



reply via email to

[Prev in Thread] Current Thread [Next in Thread]