summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--etc/NEWS3
-rw-r--r--lisp/vc/vc-hooks.el6
2 files changed, 6 insertions, 3 deletions
diff --git a/etc/NEWS b/etc/NEWS
index 2bdcb6434b7..d80b9c0e66f 100644
--- 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
+++
diff --git a/lisp/vc/vc-hooks.el b/lisp/vc/vc-hooks.el
index 06123106401..b7760e3bba5 100644
--- a/lisp/vc/vc-hooks.el
+++ b/lisp/vc/vc-hooks.el
@@ -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)))
(defsubst vc-parse-buffer (pattern i)
"Find PATTERN in the current buffer and return its Ith submatch."