branch: externals/org
commit 043e647e4e727266f40fe70423112abc380df1df
Author: Ihor Radchenko <[email protected]>
Commit: Ihor Radchenko <[email protected]>
lisp/org-element-ast.el: Fix irregularities when resolving deferred
properties
* lisp/org-element-ast.el: `Mention org-element-properties-resolve' in
the top comment.
(org-element-properties-resolve): Resolve standard properties as well.
(org-element-copy): Undefer everything.
Reported-by: Norman Walsh
Link: https://so.nwalsh.com/2025/09/02-org-to-xml
---
lisp/org-element-ast.el | 6 +++++-
1 file changed, 5 insertions(+), 1 deletion(-)
diff --git a/lisp/org-element-ast.el b/lisp/org-element-ast.el
index e930dd6ddb..7259cf9cce 100644
--- a/lisp/org-element-ast.el
+++ b/lisp/org-element-ast.el
@@ -137,6 +137,9 @@
;; properties. This is useful to generate pure (in functional sense)
;; AST.
;;
+;; To force resolving deferred properties, you can use
+;; `org-element-properties-resolve'.
+;;
;; The properties listed in `org-element--standard-properties', except
;; `:deferred' and `:parent' are never considered to have deferred value.
;; This constraint makes org-element API significantly faster.
@@ -646,7 +649,7 @@ Return the modified NODE."
(if force-undefer
#'org-element--deferred-resolve-force-rec
#'org-element--deferred-resolve-rec)
- node 'set 'no-standard)
+ node 'set)
node)
(defsubst org-element-properties-mapc (fun node &optional undefer)
@@ -831,6 +834,7 @@ When DATUM is `plain-text', all the properties are removed."
(while contents
(setcar contents (org-element-copy (car contents) t))
(setq contents (cdr contents)))))
+ (org-element-resolve-deferred node-copy 'force)
node-copy))))
;;;; AST queries