Function: org-entry-get-with-inheritance
org-entry-get-with-inheritance is a byte-compiled function defined in
org.el.gz.
Signature
(org-entry-get-with-inheritance PROPERTY &optional LITERAL-NIL EPOM)
Documentation
Get PROPERTY of entry or content at EPOM, search higher levels if needed.
EPOM can be a point, marker, or syntax node. The search will stop at the first ancestor which has the property defined. If the value found is "nil", return nil to show that the property should be considered as undefined (this is the meaning of nil here). However, if LITERAL-NIL is set, return the string value "nil" instead.
Source Code
;; Defined in /usr/src/emacs/lisp/org/org.el.gz
(defun org-entry-get-with-inheritance (property &optional literal-nil epom)
"Get PROPERTY of entry or content at EPOM, search higher levels if needed.
EPOM can be a point, marker, or syntax node.
The search will stop at the first ancestor which has the property defined.
If the value found is \"nil\", return nil to show that the property
should be considered as undefined (this is the meaning of nil here).
However, if LITERAL-NIL is set, return the string value \"nil\" instead."
(move-marker org-entry-property-inherited-from nil)
(let (values found-inherited?)
(org-element-lineage-map
(org-element-at-point epom)
(lambda (el)
(pcase-let ((`(,val . ,val+)
;; Force LITERAL-NIL t.
(org--property-local-values property t el)))
(if (not val)
;; PROPERTY+
(prog1 nil ; keep looking for PROPERTY
(when val+ (setq values (nconc (delq nil val+) values))))
(setq values (cons val (nconc (delq nil val+) values)))
(move-marker
org-entry-property-inherited-from
(org-element-begin el)
(org-element-property :buffer el))
;; Found inherited direct PROPERTY.
(setq found-inherited? t))))
'(inlinetask headline org-data)
'with-self 'first-match)
;; Consider global properties, if we found no PROPERTY (or maybe
;; only PROPERTY+).
(unless found-inherited?
(when-let ((global (org--property-global-or-keyword-value
property t)))
(setq values (cons global values))))
(when values
(setq values (mapconcat
#'identity values
(org--property-get-separator property))))
(if literal-nil values (org-not-nil values))))