branch: externals/ebdb commit 365fa1c2a3d7dd4d9460392bbcba2f8912e43a4f Author: Eric Abrahamsen <e...@ericabrahamsen.net> Commit: Eric Abrahamsen <e...@ericabrahamsen.net>
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)))))))