From 5e94d5cef609a61b8d2b1df45f16f35de0a05b08 Mon Sep 17 00:00:00 2001 From: Ihor Radchenko Date: Fri, 28 Apr 2023 15:04:42 +0200 Subject: [PATCH] org-element-map: Allow FUN to be a lisp form * lisp/org-element-ast.el (org-element-ast-map): * lisp/org-element.el (org-element-map): Allow FUN to be a lisp form, wrapping it into lambda. --- lisp/org-element-ast.el | 4 ++++ lisp/org-element.el | 3 +++ 2 files changed, 7 insertions(+) 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'