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

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

[elpa] externals/ebdb d4dbf34 07/11: New ebdb-record-change-name methods


From: Eric Abrahamsen
Subject: [elpa] externals/ebdb d4dbf34 07/11: New ebdb-record-change-name methods for strings
Date: Sun, 22 Oct 2017 13:17:02 -0400 (EDT)

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

    New ebdb-record-change-name methods for strings
    
    * ebdb.el (ebdb-record-change-name): One for people and organizations.
      I think I was failing this before because I was trying to call
      cl-call-next-method, when I should have been restarting the method
      call altogether.
    * ebdb-mua.el (ebdb-annotate-message): Now we don't need to know the
      record class.
---
 ebdb-mua.el | 12 +++---------
 ebdb.el     | 10 ++++++++++
 2 files changed, 13 insertions(+), 9 deletions(-)

diff --git a/ebdb-mua.el b/ebdb-mua.el
index 3746d37..33130d6 100644
--- a/ebdb-mua.el
+++ b/ebdb-mua.el
@@ -815,9 +815,6 @@ Return the records matching ADDRESS or nil."
         (record-class (if (eql (nth 3 address) 'organization)
                           'ebdb-record-organization
                         ebdb-default-record-class))
-        (name-class (if (eql record-class 'ebdb-record-organization)
-                        'ebdb-field-name-simple
-                      ebdb-default-name-class))
          (records (ebdb-message-search name mail))
          created-p new-records)
     (if (and (not records) (functionp update-p))
@@ -855,8 +852,7 @@ Return the records matching ADDRESS or nil."
 
         ;; Analyze the name part of the record.
         (cond (created-p               ; new record
-               (ebdb-record-change-name
-               record (ebdb-parse name-class name)))
+               (ebdb-record-change-name record name))
 
               ((or (not name)
                    ;; The following tests can differ for more complicated names
@@ -887,8 +883,7 @@ Return the records matching ADDRESS or nil."
                                      (format "Keep name \"%s\" as an AKA? " 
old-name))
                      (ebdb-record-insert-field
                       record (slot-value record 'name) 'aka)))
-               (ebdb-record-change-name
-               record (ebdb-parse name-class name))
+               (ebdb-record-change-name record name)
                (setq change-p 'name))
 
               ;; make new name an AKA?
@@ -953,8 +948,7 @@ Return the records matching ADDRESS or nil."
                         (progn
                           (setq record (make-instance 
ebdb-default-record-class))
                          (ebdb-db-add-record (car ebdb-db-list) record)
-                          (ebdb-record-change-name
-                          record (ebdb-parse name-class name))
+                          (ebdb-record-change-name record name)
                           (setq created-p t))))
 
                (let ((mails (ebdb-record-mail record)))
diff --git a/ebdb.el b/ebdb.el
index f9a12a8..1c9249a 100644
--- a/ebdb.el
+++ b/ebdb.el
@@ -3147,6 +3147,11 @@ priority."
       (push `(organizations . ,o) f-list)))
   (cl-call-next-method record f-list all))
 
+(cl-defmethod ebdb-record-change-name ((record ebdb-record-person)
+                                      (name-string string))
+  (let ((name (ebdb-parse ebdb-default-name-class name-string)))
+    (ebdb-record-change-name record name)))
+
 (cl-defmethod ebdb-record-related ((_record ebdb-record-person)
                                   (field ebdb-field-relation))
   (or
@@ -3316,6 +3321,11 @@ priority."
     '((domain . ebdb-field-domain))
     alist)))
 
+(cl-defmethod ebdb-record-change-name ((record ebdb-record-organization)
+                                      (name-string string))
+  (let ((name (ebdb-parse ebdb-field-name-simple name-string)))
+    (ebdb-record-change-name record name)))
+
 (cl-defmethod ebdb-record-current-fields ((record ebdb-record-organization)
                                          &optional f-list all)
   (with-slots (name domain) record



reply via email to

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