Function: org-element--headline-parse-title
org-element--headline-parse-title is a byte-compiled function defined
in org-element.el.gz.
Signature
(org-element--headline-parse-title HEADLINE RAW-SECONDARY-P)
Documentation
Resolve title properties of HEADLINE for side effect.
When RAW-SECONDARY-P is non-nil, headline's title will not be parsed as a secondary string, but as a plain string instead.
Throw :org-element-deferred-retry signal at the end.
Source Code
;; Defined in /usr/src/emacs/lisp/org/org-element.el.gz
(defun org-element--headline-parse-title (headline raw-secondary-p)
"Resolve title properties of HEADLINE for side effect.
When RAW-SECONDARY-P is non-nil, headline's title will not be
parsed as a secondary string, but as a plain string instead.
Throw `:org-element-deferred-retry' signal at the end."
(with-current-buffer (org-element-property :buffer headline)
(org-with-point-at (org-element-begin headline)
(let* ((begin (point))
(true-level (prog1 (skip-chars-forward "*")
(skip-chars-forward " \t")))
(level (org-reduced-level true-level))
(todo (and org-todo-regexp
(let (case-fold-search) (looking-at (concat org-todo-regexp "\\(?: \\|$\\)")))
(progn (goto-char (match-end 0))
(skip-chars-forward " \t")
(org-element--get-cached-string (match-string-no-properties 1)))))
(todo-type
(and todo (if (member todo org-done-keywords) 'done 'todo)))
(priority (and (looking-at "\\[#.\\][ \t]*")
(progn (goto-char (match-end 0))
(aref (match-string 0) 2))))
(commentedp
(and (let ((case-fold-search nil))
(looking-at org-element--headline-comment-re))
(prog1 t
(goto-char (match-end 0))
(skip-chars-forward " \t"))))
(title-start (point))
(tags (when (re-search-forward
"\\(:[[:alnum:]_@#%:]+:\\)[ \t]*$"
(line-end-position)
'move)
(goto-char (match-beginning 0))
(mapcar #'org-element--get-cached-string
(org-split-string (match-string-no-properties 1) ":"))))
(title-end (point))
(raw-value
(org-element-deferred-create
t #'org-element--headline-raw-value
(- title-start begin) (- title-end begin))))
(org-element-put-property headline :raw-value raw-value)
(org-element-put-property headline :level level)
(org-element-put-property headline :priority priority)
(org-element-put-property headline :tags tags)
(org-element-put-property headline :todo-keyword todo)
(org-element-put-property headline :todo-type todo-type)
(org-element-put-property
headline :footnote-section-p org-element--headline-footnote-section-p)
(org-element-put-property headline :archivedp org-element--headline-archivedp)
(org-element-put-property headline :commentedp commentedp)
(org-element-put-property
headline :title
(if raw-secondary-p
org-element--headline-raw-value
(org-element--parse-objects
(progn (goto-char title-start)
(skip-chars-forward " \t")
(point))
(progn (goto-char title-end)
(skip-chars-backward " \t")
(point))
nil
(org-element-restriction
(org-element-type headline))
headline))))))
(throw :org-element-deferred-retry nil))