Function: org-element--get-node-properties
org-element--get-node-properties is a byte-compiled function defined
in org-element.el.gz.
Signature
(org-element--get-node-properties &optional AT-POINT-P?)
Documentation
Return node properties for headline or property drawer at point.
Upcase property names. It avoids confusion between properties obtained through property drawer and default properties from the parser (e.g. :end and :END:). Return value is a plist.
When AT-POINT-P? is nil, assume that point as at a headline. Otherwise parse properties for property drawer at point.
Source Code
;; Defined in /usr/src/emacs/lisp/org/org-element.el.gz
;;;; Headline
(defun org-element--get-node-properties (&optional at-point-p?)
"Return node properties for headline or property drawer at point.
Upcase property names. It avoids confusion between properties
obtained through property drawer and default properties from the
parser (e.g. `:end' and :END:). Return value is a plist.
When AT-POINT-P? is nil, assume that point as at a headline. Otherwise
parse properties for property drawer at point."
(save-excursion
(unless at-point-p?
(forward-line)
(when (looking-at-p org-element-planning-line-re) (forward-line)))
(when (looking-at org-property-drawer-re)
(forward-line)
(let ((end (match-end 0)) properties)
(while (< (line-end-position) end)
(looking-at org-property-re)
(let* ((property-name (concat ":" (upcase (match-string 2))))
(property-name-symbol (intern property-name))
(property-value (match-string-no-properties 3)))
(cond
((and (plist-member properties property-name-symbol)
(string-match-p "\\+$" property-name))
(let ((val (plist-get properties property-name-symbol)))
(if (listp val)
(setq properties
(plist-put properties
property-name-symbol
(append (plist-get properties property-name-symbol)
(list property-value))))
(plist-put properties property-name-symbol (list val property-value)))))
(t (setq properties (plist-put properties property-name-symbol property-value)))))
(forward-line))
properties))))