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