浏览代码

contrib/lisp/org-contacts.el: Remove calls to cl functions

* contrib/lisp/org-contacts.el(org-contacts-test-completion-prefix)
(org-contacts-complete-name, org-contacts-db-need-update-p)
(org-contacts-filter): Remove calls to cl functions.
Grégoire Jadi 12 年之前
父节点
当前提交
02fd5d1c22
共有 1 个文件被更改,包括 16 次插入13 次删除
  1. 16 13
      contrib/lisp/org-contacts.el

+ 16 - 13
contrib/lisp/org-contacts.el

@@ -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)))))