branch: externals/ebdb commit a40874ba6ca8194bbe67c408d98ba37cab9bccd3 Author: Eric Abrahamsen <e...@ericabrahamsen.net> Commit: Eric Abrahamsen <e...@ericabrahamsen.net>
Use ebdb-foo-in-list for the fast lookups check * ebdb.el (ebdb-search): We want to be able to handle subclasses and all that, as per usual. * ebdb-org.el: This chunk is no longer necessary, as `ebdb-org-field-tags' subclasses `ebdb-field-tags'. --- ebdb-org.el | 6 ------ ebdb.el | 11 ++++++----- 2 files changed, 6 insertions(+), 11 deletions(-) diff --git a/ebdb-org.el b/ebdb-org.el index 162525f..5f6c3f6 100644 --- a/ebdb-org.el +++ b/ebdb-org.el @@ -122,12 +122,6 @@ italicized, in all other cases it is left unchanged." nil :human-readable "org tags") -;; Use fast lookups on org-tags, too. -(cl-pushnew (cons 'ebdb-org-field-tags - (lambda (str rec) - (ebdb-record-search rec 'ebdb-org-field-tags str))) - ebdb-hash-extra-predicates) - (cl-defmethod ebdb-read ((field (subclass ebdb-org-field-tags)) &optional slots obj) (let* ((crm-separator (cadr (assq 'ebdb-field-tags ebdb-separator-alist))) (val (completing-read-multiple diff --git a/ebdb.el b/ebdb.el index a46061c..ca440ad 100644 --- a/ebdb.el +++ b/ebdb.el @@ -5260,12 +5260,13 @@ With optional argument INVERT, invert the search results." (pcase-dolist (`(,key ,crit) clauses) (or ;; Either we get some records out the fast lookup... - (and (or (memq key (list 'ebdb-field-name - 'ebdb-field-mail - 'ebdb-field-tags)) - (assoc key ebdb-hash-extra-predicates)) - (stringp crit) + (and (stringp crit) (string-prefix-p "^" crit) + (or (ebdb-foo-in-list-p + key (list 'ebdb-field-name + 'ebdb-field-mail + 'ebdb-field-tags)) + (assoc key ebdb-hash-extra-predicates)) (setq completed-strings (all-completions (downcase (substring crit 1)) ebdb-hashtable)