aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJuri Linkov2018-11-08 00:52:50 +0200
committerJuri Linkov2018-11-08 00:52:50 +0200
commit6b7e492f6cf7fd2cb7e02320224a615952fffc58 (patch)
tree1a4be2fb2c5c55d8a22e58f93036a78bce4bf111
parent7aa5056b574a4bf05a2cbf629f173e6d94e125da (diff)
downloademacs-6b7e492f6cf7fd2cb7e02320224a615952fffc58.tar.gz
emacs-6b7e492f6cf7fd2cb7e02320224a615952fffc58.zip
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.
-rw-r--r--lisp/vc/vc.el18
1 files 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."
1061 (t (error "File is not under version control"))))) 1061 (t (error "File is not under version control")))))
1062 1062
1063(defun vc-dired-deduce-fileset () 1063(defun vc-dired-deduce-fileset ()
1064 (let ((backend (vc-responsible-backend default-directory))) 1064 (list (vc-responsible-backend default-directory)
1065 (unless backend (error "Directory not under VC")) 1065 (dired-map-over-marks (dired-get-filename nil t) nil)))
1066 (list backend
1067 (dired-map-over-marks (dired-get-filename nil t) nil))))
1068 1066
1069(defun vc-ensure-vc-buffer () 1067(defun vc-ensure-vc-buffer ()
1070 "Make sure that the current buffer visits a version-controlled file." 1068 "Make sure that the current buffer visits a version-controlled file."
1071 (cond 1069 (cond
1072 ((derived-mode-p 'vc-dir-mode) 1070 ((derived-mode-p 'vc-dir-mode)
1073 (set-buffer (find-file-noselect (vc-dir-current-file)))) 1071 (set-buffer (find-file-noselect (vc-dir-current-file))))
1072 ((derived-mode-p 'dired-mode)
1073 (set-buffer (find-file-noselect (dired-get-filename))))
1074 (t 1074 (t
1075 (while (and vc-parent-buffer 1075 (while (and vc-parent-buffer
1076 (buffer-live-p vc-parent-buffer) 1076 (buffer-live-p vc-parent-buffer)
1077 ;; Avoid infinite looping when vc-parent-buffer and 1077 ;; Avoid infinite looping when vc-parent-buffer and
1078 ;; current buffer are the same buffer. 1078 ;; current buffer are the same buffer.
1079 (not (eq vc-parent-buffer (current-buffer)))) 1079 (not (eq vc-parent-buffer (current-buffer))))
1080 (set-buffer vc-parent-buffer)) 1080 (set-buffer vc-parent-buffer))))
1081 (if (not buffer-file-name) 1081 (if (not buffer-file-name)
1082 (error "Buffer %s is not associated with a file" (buffer-name)) 1082 (error "Buffer %s is not associated with a file" (buffer-name))
1083 (unless (vc-backend buffer-file-name) 1083 (unless (vc-backend buffer-file-name)
1084 (error "File %s is not under version control" buffer-file-name)))))) 1084 (error "File %s is not under version control" buffer-file-name))))
1085 1085
1086;;; Support for the C-x v v command. 1086;;; Support for the C-x v v command.
1087;; This is where all the single-file-oriented code from before the fileset 1087;; This is where all the single-file-oriented code from before the fileset