]> git.eshelyaron.com Git - emacs.git/commitdiff
Avoid double argument evaluation in vc-call macro
authorBasil L. Contovounesios <contovob@tcd.ie>
Sun, 19 Sep 2021 21:39:20 +0000 (22:39 +0100)
committerBasil L. Contovounesios <contovob@tcd.ie>
Tue, 21 Sep 2021 11:30:58 +0000 (12:30 +0100)
* lisp/vc/vc-hooks.el (vc-call): Ensure second argument is evaluated
only once (bug#50690).
* etc/NEWS (Change Logs and VC): Announce this change in behavior.

etc/NEWS
lisp/vc/vc-hooks.el

index 2bdcb6434b794b3565afc0ad5a8d417020fd7b0a..d80b9c0e66f795bf49b65ad747d75f3d0543414d 100644 (file)
--- a/etc/NEWS
+++ b/etc/NEWS
@@ -1749,6 +1749,9 @@ tags to be considered as well.
 *** New user option 'vc-git-log-switches'.
 String or list of strings specifying switches for Git log under VC.
 
+---
+*** The macro 'vc-call' no longer evaluates its second argument twice.
+
 ** Gnus
 
 +++
index 0612310640146748b079b375313ac4314bec2785..b7760e3bba52f262468c87edf48e32dffc2dc12f 100644 (file)
@@ -256,9 +256,9 @@ It is usually called via the `vc-call' macro."
 (defmacro vc-call (fun file &rest args)
   "A convenience macro for calling VC backend functions.
 Functions called by this macro must accept FILE as the first argument.
-ARGS specifies any additional arguments.  FUN should be unquoted.
-BEWARE!! FILE is evaluated twice!!"
-  `(vc-call-backend (vc-backend ,file) ',fun ,file ,@args))
+ARGS specifies any additional arguments.  FUN should be unquoted."
+  (macroexp-let2 nil file file
+    `(vc-call-backend (vc-backend ,file) ',fun ,file ,@args)))
 \f
 (defsubst vc-parse-buffer (pattern i)
   "Find PATTERN in the current buffer and return its Ith submatch."