Function: org-element--deferred-resolve

org-element--deferred-resolve is a byte-compiled function defined in org-element-ast.el.gz.

Signature

(org-element--deferred-resolve VALUE &optional NODE FORCE-UNDEFER)

Documentation

Resolve VALUE for NODE recursively.

Return a cons cell of the resolved value and the value to store. When no value should be stored, return org-element-ast--nil as cdr. When FORCE-UNDEFER is non-nil, resolve all the deferred values, ignoring their auto-undefer-p slot.

Throw :org-element-deferred-retry if NODE has been modified and we need to re-read the value again.

Source Code

;; Defined in /usr/src/emacs/lisp/org/org-element-ast.el.gz
(defsubst org-element--deferred-resolve (value &optional node force-undefer)
  "Resolve VALUE for NODE recursively.
Return a cons cell of the resolved value and the value to store.
When no value should be stored, return `org-element-ast--nil' as cdr.
When FORCE-UNDEFER is non-nil, resolve all the deferred values, ignoring
their `auto-undefer-p' slot.

Throw `:org-element-deferred-retry' if NODE has been modified and we
need to re-read the value again."
  (let ((value-to-store 'org-element-ast--nil) undefer)
    (while (org-element-deferred-p value)
      (setq undefer (or force-undefer (org-element-deferred-auto-undefer-p value))
            value (org-element--deferred-resolve-once value node))
      (when undefer (setq value-to-store value)))
    (cons value value-to-store)))