* vc-dispatcher.el: Fix an incorrect buffer name and remove an
unneeded defalias.
+ * vc.el, vc-dispatcher.el (vc-dir-menu-map-filter): Moved.
+
2008-05-15 Glenn Morris <rgm@gnu.org>
* vc-hooks.el (vc-directory-resynch-file): Fix declaration.
file-to-info
file-to-state
file-to-extra
- updater))
+ updater
+ extra-menu))
(:conc-name vc-client-object->))
name
headers
file-to-info
file-to-state
file-to-extra
- updater)
+ updater
+ extra-menu)
(defvar vc-ewoc nil)
(defvar vc-dir-process-buffer nil
map)
"Menu for dispatcher status")
+;; This is used to that vlient modes can add mode-specific menu
+;; items to vc-dir-menu-map.
+(defun vc-dir-menu-map-filter (orig-binding)
+ (when (and (symbolp orig-binding) (fboundp orig-binding))
+ (setq orig-binding (indirect-function orig-binding)))
+ (let ((ext-binding
+ (funcall (vc-client-object->extra-menu vc-client-mode))))
+ (if (null ext-binding)
+ orig-binding
+ (append orig-binding
+ '("----")
+ ext-binding))))
+
(defvar vc-dir-mode-map
(let ((map (make-keymap)))
(suppress-keymap map)
(define-key map [(down-mouse-3)] 'vc-dir-menu)
(define-key map [(mouse-2)] 'vc-dir-toggle-mark)
- ;; FIXME: Calls back into vc.el
;; Hook up the menu.
(define-key map [menu-bar vc-dir-mode]
'(menu-item
(defun vc-default-extra-status-menu (backend)
nil)
-;; This is used to that VC backends could add backend specific menu
-;; items to vc-dir-menu-map.
-(defun vc-dir-menu-map-filter (orig-binding)
- (when (and (symbolp orig-binding) (fboundp orig-binding))
- (setq orig-binding (indirect-function orig-binding)))
- (let ((ext-binding
- (vc-call-backend (vc-responsible-backend default-directory)
- 'extra-status-menu)))
- (if (null ext-binding)
- orig-binding
- (append orig-binding
- '("----")
- ext-binding))))
-
(defun vc-dir-refresh-files (files default-state)
"Refresh some files in the VC status buffer."
(let ((backend (vc-responsible-backend default-directory))
(let ((backend (vc-responsible-backend dir)))
(vc-dir-headers backend dir)))
+(defun vc-dir-extra-menu ()
+ (vc-call-backend (vc-responsible-backend default-directory) 'extra-status-menu))
+
(defun vc-make-backend-object (file-or-dir)
"Create the backend capability object needed by vc-dispatcher."
(vc-create-client-object
#'vc-generic-status-printer
#'vc-generic-state
#'vc-generic-status-fileinfo-extra
- #'vc-dir-refresh))
+ #'vc-dir-refresh
+ #'vc-dir-extra-menu))
;;;###autoload
(defun vc-dir (dir)