summaryrefslogtreecommitdiff
path: root/lisp
diff options
context:
space:
mode:
authorKevin Ryde <user42@zip.com.au>2020-09-14 15:40:07 +0200
committerLars Ingebrigtsen <larsi@gnus.org>2020-09-14 15:40:07 +0200
commit15d2f6af000625640b3c47d2aeec3114ac1ac544 (patch)
tree3b46b4fa6ab85e26eac0fec2c93604a4c43cee2f /lisp
parent312da4871925b9a575c5e3bffd4bf4db4c1108da (diff)
downloademacs-15d2f6af000625640b3c47d2aeec3114ac1ac544.tar.gz
emacs-15d2f6af000625640b3c47d2aeec3114ac1ac544.tar.bz2
emacs-15d2f6af000625640b3c47d2aeec3114ac1ac544.zip
Tweak the `C-x v =' command when done from a diff buffer
* lisp/vc/vc.el (vc-diff): Offer to save the relevant buffer(s) when doing `C-x v =' from a diff buffer (bug#5773).
Diffstat (limited to 'lisp')
-rw-r--r--lisp/vc/vc.el13
1 files changed, 10 insertions, 3 deletions
diff --git a/lisp/vc/vc.el b/lisp/vc/vc.el
index 4cbd2658f80..3852a64550a 100644
--- a/lisp/vc/vc.el
+++ b/lisp/vc/vc.el
@@ -1895,9 +1895,16 @@ saving the buffer."
(interactive (list current-prefix-arg t))
(if historic
(call-interactively 'vc-version-diff)
- (when buffer-file-name (vc-buffer-sync not-urgent))
- (vc-diff-internal t (vc-deduce-fileset t) nil nil
- (called-interactively-p 'interactive))))
+ (let ((fileset (vc-deduce-fileset t)))
+ (vc-buffer-sync-fileset fileset not-urgent)
+ (vc-diff-internal t fileset nil nil
+ (called-interactively-p 'interactive)))))
+
+(defun vc-buffer-sync-fileset (fileset not-urgent)
+ (dolist (filename (cadr fileset))
+ (when-let ((buffer (find-buffer-visiting filename)))
+ (with-current-buffer buffer
+ (vc-buffer-sync not-urgent)))))
;;;###autoload
(defun vc-diff-mergebase (_files rev1 rev2)