Function: org-datetree--find-create

org-datetree--find-create is a byte-compiled function defined in org-datetree.el.gz.

Signature

(org-datetree--find-create REGEX-TEMPLATE YEAR &optional MONTH DAY INSERT)

Documentation

Find the datetree matched by REGEX-TEMPLATE for YEAR, MONTH, or DAY.

REGEX-TEMPLATE is passed to format with YEAR, MONTH, and DAY as arguments. Match group 1 is compared against the specified date component. If INSERT is non-nil and there is no match then it is inserted into the buffer.

Source Code

;; Defined in /usr/src/emacs/lisp/org/org-datetree.el.gz
(defun org-datetree--find-create
    (regex-template year &optional month day insert)
  "Find the datetree matched by REGEX-TEMPLATE for YEAR, MONTH, or DAY.
REGEX-TEMPLATE is passed to `format' with YEAR, MONTH, and DAY as
arguments.  Match group 1 is compared against the specified date
component.  If INSERT is non-nil and there is no match then it is
inserted into the buffer."
  (when (or month day)
    (org-narrow-to-subtree))
  (let ((re (format regex-template year month day))
	match)
    (goto-char (point-min))
    (while (and (setq match (re-search-forward re nil t))
		(goto-char (match-beginning 1))
		(< (string-to-number (match-string 1)) (or day month year))))
    (cond
     ((not match)
      (goto-char (point-max))
      (unless (bolp) (insert "\n"))
      (org-datetree-insert-line year month day insert))
     ((= (string-to-number (match-string 1)) (or day month year))
      (beginning-of-line))
     (t
      (beginning-of-line)
      (org-datetree-insert-line year month day insert)))))