From: Juri Linkov Date: Wed, 7 Nov 2018 22:52:50 +0000 (+0200) Subject: Support VC single file operations from Dired (bug#32596). X-Git-Tag: emacs-27.0.90~4202 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=6b7e492f6cf7fd2cb7e02320224a615952fffc58;p=emacs.git 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. --- 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