From 6b7e492f6cf7fd2cb7e02320224a615952fffc58 Mon Sep 17 00:00:00 2001 From: Juri Linkov Date: Thu, 8 Nov 2018 00:52:50 +0200 Subject: [PATCH] Support VC single file operations from Dired (bug#32596). * lisp/vc/vc.el (vc-ensure-vc-buffer): Use dired-get-filename for dired-mode. Move error-checking outside of the last branch of cond. (vc-dired-deduce-fileset): Remove unused error signaling. --- lisp/vc/vc.el | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/lisp/vc/vc.el b/lisp/vc/vc.el index 57bc3c2fc73..dcfbf26e867 100644 --- a/lisp/vc/vc.el +++ b/lisp/vc/vc.el @@ -1061,27 +1061,27 @@ BEWARE: this function may change the current buffer." (t (error "File is not under version control"))))) (defun vc-dired-deduce-fileset () - (let ((backend (vc-responsible-backend default-directory))) - (unless backend (error "Directory not under VC")) - (list backend - (dired-map-over-marks (dired-get-filename nil t) nil)))) + (list (vc-responsible-backend default-directory) + (dired-map-over-marks (dired-get-filename nil t) nil))) (defun vc-ensure-vc-buffer () "Make sure that the current buffer visits a version-controlled file." (cond ((derived-mode-p 'vc-dir-mode) (set-buffer (find-file-noselect (vc-dir-current-file)))) + ((derived-mode-p 'dired-mode) + (set-buffer (find-file-noselect (dired-get-filename)))) (t (while (and vc-parent-buffer (buffer-live-p vc-parent-buffer) ;; Avoid infinite looping when vc-parent-buffer and ;; current buffer are the same buffer. (not (eq vc-parent-buffer (current-buffer)))) - (set-buffer vc-parent-buffer)) - (if (not buffer-file-name) - (error "Buffer %s is not associated with a file" (buffer-name)) - (unless (vc-backend buffer-file-name) - (error "File %s is not under version control" buffer-file-name)))))) + (set-buffer vc-parent-buffer)))) + (if (not buffer-file-name) + (error "Buffer %s is not associated with a file" (buffer-name)) + (unless (vc-backend buffer-file-name) + (error "File %s is not under version control" buffer-file-name)))) ;;; Support for the C-x v v command. ;; This is where all the single-file-oriented code from before the fileset -- 2.39.5