diff options
| author | Ihor Radchenko <yantar92@posteo.net> | 2023-12-25 12:20:10 +0100 |
|---|---|---|
| committer | Ihor Radchenko <yantar92@posteo.net> | 2023-12-25 15:50:04 +0100 |
| commit | 3afae6690f6bd932fb60ab66b132b9a972501310 (patch) | |
| tree | 62b25164990a51d5ff957f9ee7486229a2e712a9 | |
| parent | f59ac10257e865236753171e326e286428b421dd (diff) | |
| download | org-mode-3afae6690.tar.gz | |
org-element-with-buffer-copy, org-export-with-buffer-copy: Fix expansion
* lisp/org-element.el (org-element-with-buffer-copy):
* lisp/ox.el (org-export-with-buffer-copy): Make sure that keyword
arguments in the macro are not duplicated into BODY, which happens for
&rest body + &allow-other-keys in `cl-defmacro'.
Reported-by: João Távora <joaotavora@gmail.com>
Link: https://yhetil.org/emacs-devel/CALDnm53p7nXdnbA2PuH-VHL7EeGQUXYy3x_87hp3oj2pkyWS9Q@mail.gmail.com/
| -rw-r--r-- | lisp/org-element.el | 2 | ||||
| -rw-r--r-- | lisp/ox.el | 2 |
2 files changed, 4 insertions, 0 deletions
diff --git a/lisp/org-element.el b/lisp/org-element.el index 0924c56..ab81abe 100644 --- a/lisp/org-element.el +++ b/lisp/org-element.el @@ -669,6 +669,8 @@ Optional keys can modify what is being copied and the generated buffer copy. TO-BUFFER, DROP-VISIBILITY, DROP-NARROWING, DROP-CONTENTS, and DROP-LOCALS are passed as arguments to `org-element-copy-buffer'." (declare (debug t)) + ;; Drop keyword arguments from BODY. + (while (keywordp (car body)) (pop body) (pop body)) (org-with-gensyms (buf-copy) `(let ((,buf-copy (org-element-copy-buffer :to-buffer ,to-buffer @@ -2599,6 +2599,8 @@ DROP-CONTENTS, and DROP-LOCALS. In addition, buffer-local variables are set according to #+BIND: keywords." (declare (debug t)) + ;; Drop keyword arguments from BODY. + (while (keywordp (car body)) (pop body) (pop body)) (org-with-gensyms (bind-variables) `(let ((,bind-variables (org-export--list-bound-variables))) (org-element-with-buffer-copy |
