branch: externals/ebdb
commit a40874ba6ca8194bbe67c408d98ba37cab9bccd3
Author: Eric Abrahamsen <[email protected]>
Commit: Eric Abrahamsen <[email protected]>
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)