diff options
| author | Juri Linkov | 2018-11-08 00:52:50 +0200 |
|---|---|---|
| committer | Juri Linkov | 2018-11-08 00:52:50 +0200 |
| commit | 6b7e492f6cf7fd2cb7e02320224a615952fffc58 (patch) | |
| tree | 1a4be2fb2c5c55d8a22e58f93036a78bce4bf111 | |
| parent | 7aa5056b574a4bf05a2cbf629f173e6d94e125da (diff) | |
| download | emacs-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.el | 18 |
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 |