Function: diary-icalendar-find-entry-with-uid
diary-icalendar-find-entry-with-uid is a byte-compiled function
defined in diary-icalendar.el.gz.
Signature
(diary-icalendar-find-entry-with-uid UID &optional DIARY-FILENAME)
Documentation
Search DIARY-FILENAME (default: diary-file) for an entry containing UID.
The UID must occur on a line matching diary-icalendar-uid-regexp. If
such an entry exists, return markers (START END) bounding it.
Otherwise, return nil.
Source Code
;; Defined in /usr/src/emacs/lisp/calendar/diary-icalendar.el.gz
(defun di:find-entry-with-uid (uid &optional diary-filename)
"Search DIARY-FILENAME (default: `diary-file') for an entry containing UID.
The UID must occur on a line matching `diary-icalendar-uid-regexp'. If
such an entry exists, return markers (START END) bounding it.
Otherwise, return nil."
(let* ((diary-file (or diary-filename diary-file))
(diary-buffer (or (find-buffer-visiting diary-file)
(find-file-noselect diary-file))))
(with-current-buffer diary-buffer
(save-excursion
(save-restriction
(widen)
(goto-char (point-min))
(catch 'found
(while (re-search-forward di:uid-regexp nil t)
(when (equal uid (match-string 1))
(throw 'found (di:entry-bounds))))
;; continue search in included files:
;; TODO: is this a good idea?
;; (goto-char (point-min))
;; (while (re-search-forward
;; (rx line-start (regexp diary-include-string)
;; ?\" (group-n 1 (one-or-more (not ?\")) ?\"))
;; nil t)
;; (let ((entry (di:find-entry-with-uid uid (match-string 1))))
;; (when entry
;; (throw 'found entry))))
;; nothing to return:
nil))))))