diff options
author | Kevin Ryde <user42@zip.com.au> | 2020-09-14 15:40:07 +0200 |
---|---|---|
committer | Lars Ingebrigtsen <larsi@gnus.org> | 2020-09-14 15:40:07 +0200 |
commit | 15d2f6af000625640b3c47d2aeec3114ac1ac544 (patch) | |
tree | 3b46b4fa6ab85e26eac0fec2c93604a4c43cee2f /lisp | |
parent | 312da4871925b9a575c5e3bffd4bf4db4c1108da (diff) | |
download | emacs-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.el | 13 |
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) |