Function: org-element-planning-parser

org-element-planning-parser is a byte-compiled function defined in org-element.el.gz.

Signature

(org-element-planning-parser LIMIT)

Documentation

Parse a planning.

LIMIT bounds the search.

Return a new syntax node of planning type containing :closed,
:deadline, :scheduled, :begin, :end, :post-blank and
:post-affiliated properties.

Source Code

;; Defined in /usr/src/emacs/lisp/org/org-element.el.gz
;;;; Planning

(defun org-element-planning-parser (limit)
  "Parse a planning.

LIMIT bounds the search.

Return a new syntax node of `planning' type containing `:closed',
`:deadline', `:scheduled', `:begin', `:end', `:post-blank' and
`:post-affiliated' properties."
  (save-excursion
    (let* ((case-fold-search nil)
	   (begin (point))
	   (post-blank (let ((before-blank (progn (forward-line) (point))))
			 (skip-chars-forward " \r\t\n" limit)
			 (skip-chars-backward " \t")
			 (unless (bolp) (skip-chars-forward " \t"))
			 (count-lines before-blank (point))))
	   (end (point))
	   closed deadline scheduled)
      (goto-char begin)
      (while (re-search-forward org-element-planning-keywords-re end t)
	(skip-chars-forward " \t" end)
	(let ((keyword (match-string 0))
	      (time (org-element-timestamp-parser)))
	  (cond
           ((equal keyword org-element-closed-keyword) (setq closed time))
	   ((equal keyword org-element-deadline-keyword) (setq deadline time))
	   (t (setq scheduled time)))))
      (org-element-create
       'planning
       (list :closed closed
	     :deadline deadline
	     :scheduled scheduled
	     :begin begin
	     :end end
	     :post-blank post-blank
	     :post-affiliated begin)))))