diff --git a/lisp/org-element-ast.el b/lisp/org-element-ast.el index c47cdb671..e550a0ed8 100644 --- a/lisp/org-element-ast.el +++ b/lisp/org-element-ast.el @@ -829,6 +829,9 @@ It has to accept one argument: the node itself. When TYPES is t, call FUN for all the node types. +FUN can also be a Lisp form. The form will be evaluated as function +with symbol `node' bound to the current node. + When optional argument IGNORE is non-nil, it should be a list holding nodes to be skipped. In that case, the listed nodes and their contents will be skipped. @@ -864,6 +867,7 @@ Nil values returned from FUN do not appear in the results." (_ (list types)))) (no-recursion (if (listp no-recursion) no-recursion (list no-recursion))) + (fun (if (functionp fun) fun `(lambda (node) ,fun))) --acc) (letrec ((--walk-tree (lambda (--data) diff --git a/lisp/org-element.el b/lisp/org-element.el index e7cd49186..248a01c85 100644 --- a/lisp/org-element.el +++ b/lisp/org-element.el @@ -4568,6 +4568,9 @@ one argument: the element or object itself. When TYPES is t, call FUN for all the elements and objects. +FUN can also be a lisp form. The form will be evaluated as function +with symbol `node' bound to the current node. + When optional argument INFO is non-nil, it should be a plist holding export options. In that case, elements of the parse tree \\(compared with `eq') not exportable according to `:ignore-list'