emacs-elpa-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[elpa] externals/org-contacts 75021a1fc2 080/154: contrib/lisp/org-conta


From: ELPA Syncer
Subject: [elpa] externals/org-contacts 75021a1fc2 080/154: contrib/lisp/org-contacts.el: Fix a bug when contacts don't have an email address
Date: Fri, 9 Sep 2022 15:58:33 -0400 (EDT)

branch: externals/org-contacts
commit 75021a1fc2bd8bd4b56cae2fdb43a600aac8b516
Author: Grégoire Jadi <gregoire.jadi@gmail.com>
Commit: Grégoire Jadi <gregoire.jadi@gmail.com>

    contrib/lisp/org-contacts.el: Fix a bug when contacts don't have an email 
address
    
    * contrib/lisp/org-contacts.el (org-contacts-complete-tags-props,
    org-contacts-complete-group): Fix a bug when contacts don't have an
    email address.
---
 org-contacts.el | 28 ++++++++++++++++------------
 1 file changed, 16 insertions(+), 12 deletions(-)

diff --git a/org-contacts.el b/org-contacts.el
index 9ddf28d472..583da4ab10 100644
--- a/org-contacts.el
+++ b/org-contacts.el
@@ -516,11 +516,12 @@ A group FOO is composed of contacts with the tag FOO."
                                       ;; returned by `org-contacts-filter'.
                                       for contact-name = (car contact)
                                       ;; Grab the first email of the contact
-                                      for email = (org-contacts-strip-link 
(car (org-contacts-split-property
-                                                        (or
-                                                         (cdr (assoc-string 
org-contacts-email-property
-                                                                            
(caddr contact)))
-                                                         ""))))
+                                      for email = (org-contacts-strip-link
+                                                   (or (car 
(org-contacts-split-property
+                                                             (or
+                                                              (cdr 
(assoc-string org-contacts-email-property
+                                                                               
  (caddr contact)))
+                                                              ""))) ""))
                                       ;; If the user has an email address, 
append USER <EMAIL>.
                                       if email collect 
(org-contacts-format-email contact-name email))
                                 ", ")))
@@ -528,7 +529,7 @@ A group FOO is composed of contacts with the tag FOO."
                (completion-table-case-fold completion-list
                                            (not 
org-contacts-completion-ignore-case))))))))
 
-(defun org-contacts-complete-tags-props (start end matcher)
+(defun org-contacts-complete-tags-props (start end string)
   "Insert emails that match the tags expression.
 
 For example: FOO-BAR will match entries tagged with FOO but not
@@ -538,25 +539,28 @@ See (org) Matching tags and properties for a complete
 description."
   (let* ((completion-ignore-case org-contacts-completion-ignore-case)
         (completion-p (org-string-match-p
-                             (concat "^" org-contacts-tags-props-prefix) 
string)))
+                       (concat "^" org-contacts-tags-props-prefix) string)))
     (when completion-p
       (let ((result
             (mapconcat
              'identity
              (loop for contact in (org-contacts-db)
                    for contact-name = (car contact)
-                   for email = (org-contacts-strip-link (car 
(org-contacts-split-property
+                   for email = (org-contacts-strip-link (or (car 
(org-contacts-split-property
                                                               (or
                                                                (cdr 
(assoc-string org-contacts-email-property
                                                                                
   (caddr contact)))
-                                                               ""))))
+                                                               ""))) ""))
                    for tags = (cdr (assoc "TAGS" (nth 2 contact)))
                    for tags-list = (if tags
                                        (split-string (substring (cdr (assoc 
"TAGS" (nth 2 contact))) 1 -1) ":")
                                      '())
-                   if (let ((todo-only nil))
-                        (eval (cdr (org-make-tags-matcher matcher))))
-                   
+                   for marker = (second contact)
+                   if (with-current-buffer (marker-buffer marker)
+                        (save-excursion
+                          (goto-char marker)
+                          (let (todo-only)
+                            (eval (cdr (org-make-tags-matcher (subseq string 
1)))))))
                    collect (org-contacts-format-email contact-name email))
              ",")))
        (when (not (string= "" result))



reply via email to

[Prev in Thread] Current Thread [Next in Thread]