From 3afae6690f6bd932fb60ab66b132b9a972501310 Mon Sep 17 00:00:00 2001 From: Ihor Radchenko Date: Mon, 25 Dec 2023 12:20:10 +0100 Subject: [PATCH] org-element-with-buffer-copy, org-export-with-buffer-copy: Fix expansion MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * 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 Link: https://yhetil.org/emacs-devel/CALDnm53p7nXdnbA2PuH-VHL7EeGQUXYy3x_87hp3oj2pkyWS9Q@mail.gmail.com/ --- lisp/org-element.el | 2 ++ lisp/ox.el | 2 ++ 2 files changed, 4 insertions(+) diff --git a/lisp/org-element.el b/lisp/org-element.el index 0924c56fe..ab81abebd 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 diff --git a/lisp/ox.el b/lisp/ox.el index b661b59c3..46994f0e2 100644 --- a/lisp/ox.el +++ b/lisp/ox.el @@ -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