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

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

[elpa] externals/org-contacts 1a6554bb2a 2/4: Add a function `org-contac


From: ELPA Syncer
Subject: [elpa] externals/org-contacts 1a6554bb2a 2/4: Add a function `org-contacts-search-contact` for search name in org-contacts database.
Date: Tue, 3 Dec 2024 15:59:03 -0500 (EST)

branch: externals/org-contacts
commit 1a6554bb2afc684701a289f284ee425960944425
Author: stardiviner <numbchild@gmail.com>
Commit: stardiviner <numbchild@gmail.com>

    Add a function `org-contacts-search-contact` for search name in 
org-contacts database.
---
 org-contacts.el | 20 +++++++++++++++++++-
 1 file changed, 19 insertions(+), 1 deletion(-)

diff --git a/org-contacts.el b/org-contacts.el
index 14d22f5add..13a75ec5ac 100644
--- a/org-contacts.el
+++ b/org-contacts.el
@@ -310,6 +310,24 @@ buffer."
         (progress-reporter-done progress-reporter)))
     org-contacts-db))
 
+(defun org-contacts-search-contact (name)
+  "Search contact NAME in cached database and return org element POM."
+  (let (epom)
+    (dolist (contact (org-contacts-all-contacts) epom)
+      (when (string-equal (plist-get contact :name) name)
+        (with-current-buffer (find-file-noselect (expand-file-name (car 
org-contacts-files)))
+          (or (save-excursion
+                (goto-char (plist-get contact :position))
+                (setq epom (org-element-context)))
+              (progn
+                (org-goto-marker-or-bmk (org-find-exact-headline-in-buffer 
name))
+                (setq epom (org-element-context)))))))
+    epom))
+
+;;; TEST:
+;; (org-contacts-search-contact "stardiviner")
+;; (org-element-property :title (org-contacts-search-contact "stardiviner"))
+
 (defun org-contacts-at-point (&optional pom)
   "Return the contacts at point or marker POM or current position."
   (setq pom (or pom (point)))
@@ -1436,7 +1454,7 @@ are effectively trimmed.  If nil, all zero-length 
substrings are retained."
     (cdr (reverse proplist))))
 
 
-;; Add an Org link type `org-contact:' for easy jump to or searching 
org-contacts headline.
+;;; Add an Org link type `org-contact:' for easy jump to or searching 
org-contacts headline.
 ;; link spec: [[org-contact:query][desc]]
 ;;;###autoload
 (if (fboundp 'org-link-set-parameters)



reply via email to

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