Mercurial > emacs
comparison lisp/vc.el @ 94974:3a282ce8370c
Make vc-deduce-fileset do the right thing in derived buffers.
author | Eric S. Raymond <esr@snark.thyrsus.com> |
---|---|
date | Wed, 14 May 2008 17:12:38 +0000 |
parents | 9e19bca35d7f |
children | b8d24d4a4bdc |
comparison
equal
deleted
inserted
replaced
94973:c7204aaea55b | 94974:3a282ce8370c |
---|---|
980 (vc-file-tree-walk | 980 (vc-file-tree-walk |
981 node (lambda (f) (when (vc-backend f) (push f flattened))))) | 981 node (lambda (f) (when (vc-backend f) (push f flattened))))) |
982 (push node flattened)) | 982 (push node flattened)) |
983 (nreverse flattened))) | 983 (nreverse flattened))) |
984 | 984 |
985 (defun vc-derived-from-dir-mode (&optional buffer) | |
986 "Are we in a VC-directory buffer, or do we have one as an ancestor?" | |
987 (let ((buffer (or buffer (current-buffer)))) | |
988 (cond ((derived-mode-p 'vc-dir-mode) t) | |
989 (vc-parent-buffer (vc-derived-from-dir-mode vc-parent-buffer)) | |
990 (t nil)))) | |
991 | |
985 (defun vc-deduce-fileset (&optional observer) | 992 (defun vc-deduce-fileset (&optional observer) |
986 "Deduce a set of files and a backend to which to apply an operation and | 993 "Deduce a set of files and a backend to which to apply an operation and |
987 the common state of the fileset. Return (BACKEND . FILESET)." | 994 the common state of the fileset. Return (BACKEND . FILESET)." |
988 (let* ((fileset (vc-dispatcher-selection-set observer)) | 995 (let* ((fileset (vc-dispatcher-selection-set observer)) |
989 ;; FIXME: Store the backend in a buffer-local variable. | 996 ;; FIXME: Store the backend in a buffer-local variable. |
990 (backend (if (derived-mode-p 'vc-dir-mode) | 997 (backend (if (vc-derived-from-dir-mode (current-buffer)) |
991 (vc-responsible-backend default-directory) | 998 (vc-responsible-backend default-directory) |
992 (assert (and (= 1 (length fileset)) | 999 (assert (and (= 1 (length fileset)) |
993 (not (file-directory-p (car fileset))))) | 1000 (not (file-directory-p (car fileset))))) |
994 (vc-backend (car fileset))))) | 1001 (vc-backend (car fileset))))) |
995 (cons backend fileset))) | 1002 (cons backend fileset))) |