|
@@ -165,10 +165,10 @@ This overrides `org-email-link-description-format' if set."
|
|
|
(defun org-contacts-db-need-update-p ()
|
|
|
"Determine whether `org-contacts-db' needs to be refreshed."
|
|
|
(or (null org-contacts-last-update)
|
|
|
- (some (lambda (file)
|
|
|
- (or (time-less-p org-contacts-last-update
|
|
|
- (elt (file-attributes file) 5))))
|
|
|
- (org-contacts-files))))
|
|
|
+ (org-find-if (lambda (file)
|
|
|
+ (or (time-less-p org-contacts-last-update
|
|
|
+ (elt (file-attributes file) 5))))
|
|
|
+ (org-contacts-files))))
|
|
|
|
|
|
(defun org-contacts-db ()
|
|
|
"Return the latest Org Contacts Database."
|
|
@@ -207,10 +207,10 @@ If both match values are nil, return all contacts."
|
|
|
(org-string-match-p name-match
|
|
|
(first contact)))
|
|
|
(and tags-match
|
|
|
- (some (lambda (tag)
|
|
|
- (org-string-match-p tags-match tag))
|
|
|
- (org-split-string
|
|
|
- (or (cdr (assoc-string "ALLTAGS" (caddr contact))) "") ":"))))
|
|
|
+ (org-find-if (lambda (tag)
|
|
|
+ (org-string-match-p tags-match tag))
|
|
|
+ (org-split-string
|
|
|
+ (or (cdr (assoc-string "ALLTAGS" (caddr contact))) "") ":"))))
|
|
|
collect contact)))
|
|
|
|
|
|
(when (not (fboundp 'completion-table-case-fold))
|
|
@@ -369,10 +369,13 @@ prefixes rather than just the beginning of the string."
|
|
|
completions))
|
|
|
|
|
|
(defun org-contacts-test-completion-prefix (string collection predicate)
|
|
|
- (find-if (lambda (el)
|
|
|
- (and (or (null predicate) (funcall predicate el))
|
|
|
- (string= string el)))
|
|
|
- collection))
|
|
|
+ ;; Prevents `org-find-if' from redefining `predicate' and going into
|
|
|
+ ;; an infinite loop.
|
|
|
+ (lexical-let ((predicate predicate))
|
|
|
+ (org-find-if (lambda (el)
|
|
|
+ (and (or (null predicate) (funcall predicate el))
|
|
|
+ (string= string el)))
|
|
|
+ collection)))
|
|
|
|
|
|
(defun org-contacts-boundaries-prefix (string collection predicate suffix)
|
|
|
(list* 'boundaries (completion-boundaries string collection predicate suffix)))
|
|
@@ -444,7 +447,7 @@ A group FOO is composed of contacts with the tag FOO."
|
|
|
collect (org-contacts-format-email contact-name email))))
|
|
|
(completion-list (org-contacts-all-completions-prefix
|
|
|
string
|
|
|
- (remove-duplicates completion-list :test #'equalp))))
|
|
|
+ (org-uniquify completion-list))))
|
|
|
(when completion-list
|
|
|
(list start end
|
|
|
(org-contacts-make-collection-prefix completion-list)))))
|