aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--lisp/ChangeLog2
-rw-r--r--lisp/vc-dispatcher.el20
-rw-r--r--lisp/vc.el20
3 files changed, 24 insertions, 18 deletions
diff --git a/lisp/ChangeLog b/lisp/ChangeLog
index 71f5f8797f1..15445ce113b 100644
--- a/lisp/ChangeLog
+++ b/lisp/ChangeLog
@@ -3,6 +3,8 @@
3 * vc-dispatcher.el: Fix an incorrect buffer name and remove an 3 * vc-dispatcher.el: Fix an incorrect buffer name and remove an
4 unneeded defalias. 4 unneeded defalias.
5 5
6 * vc.el, vc-dispatcher.el (vc-dir-menu-map-filter): Moved.
7
62008-05-15 Glenn Morris <rgm@gnu.org> 82008-05-15 Glenn Morris <rgm@gnu.org>
7 9
8 * vc-hooks.el (vc-directory-resynch-file): Fix declaration. 10 * vc-hooks.el (vc-directory-resynch-file): Fix declaration.
diff --git a/lisp/vc-dispatcher.el b/lisp/vc-dispatcher.el
index 876ea020d4f..f04dc4dc7cd 100644
--- a/lisp/vc-dispatcher.el
+++ b/lisp/vc-dispatcher.el
@@ -656,14 +656,16 @@ See `run-hooks'."
656 file-to-info 656 file-to-info
657 file-to-state 657 file-to-state
658 file-to-extra 658 file-to-extra
659 updater)) 659 updater
660 extra-menu))
660 (:conc-name vc-client-object->)) 661 (:conc-name vc-client-object->))
661 name 662 name
662 headers 663 headers
663 file-to-info 664 file-to-info
664 file-to-state 665 file-to-state
665 file-to-extra 666 file-to-extra
666 updater) 667 updater
668 extra-menu)
667 669
668(defvar vc-ewoc nil) 670(defvar vc-ewoc nil)
669(defvar vc-dir-process-buffer nil 671(defvar vc-dir-process-buffer nil
@@ -750,6 +752,19 @@ See `run-hooks'."
750 map) 752 map)
751 "Menu for dispatcher status") 753 "Menu for dispatcher status")
752 754
755;; This is used to that vlient modes can add mode-specific menu
756;; items to vc-dir-menu-map.
757(defun vc-dir-menu-map-filter (orig-binding)
758 (when (and (symbolp orig-binding) (fboundp orig-binding))
759 (setq orig-binding (indirect-function orig-binding)))
760 (let ((ext-binding
761 (funcall (vc-client-object->extra-menu vc-client-mode))))
762 (if (null ext-binding)
763 orig-binding
764 (append orig-binding
765 '("----")
766 ext-binding))))
767
753(defvar vc-dir-mode-map 768(defvar vc-dir-mode-map
754 (let ((map (make-keymap))) 769 (let ((map (make-keymap)))
755 (suppress-keymap map) 770 (suppress-keymap map)
@@ -781,7 +796,6 @@ See `run-hooks'."
781 (define-key map [(down-mouse-3)] 'vc-dir-menu) 796 (define-key map [(down-mouse-3)] 'vc-dir-menu)
782 (define-key map [(mouse-2)] 'vc-dir-toggle-mark) 797 (define-key map [(mouse-2)] 'vc-dir-toggle-mark)
783 798
784 ;; FIXME: Calls back into vc.el
785 ;; Hook up the menu. 799 ;; Hook up the menu.
786 (define-key map [menu-bar vc-dir-mode] 800 (define-key map [menu-bar vc-dir-mode]
787 '(menu-item 801 '(menu-item
diff --git a/lisp/vc.el b/lisp/vc.el
index b332f0e8446..0f522ffb9c4 100644
--- a/lisp/vc.el
+++ b/lisp/vc.el
@@ -1836,20 +1836,6 @@ specific headers."
1836(defun vc-default-extra-status-menu (backend) 1836(defun vc-default-extra-status-menu (backend)
1837 nil) 1837 nil)
1838 1838
1839;; This is used to that VC backends could add backend specific menu
1840;; items to vc-dir-menu-map.
1841(defun vc-dir-menu-map-filter (orig-binding)
1842 (when (and (symbolp orig-binding) (fboundp orig-binding))
1843 (setq orig-binding (indirect-function orig-binding)))
1844 (let ((ext-binding
1845 (vc-call-backend (vc-responsible-backend default-directory)
1846 'extra-status-menu)))
1847 (if (null ext-binding)
1848 orig-binding
1849 (append orig-binding
1850 '("----")
1851 ext-binding))))
1852
1853(defun vc-dir-refresh-files (files default-state) 1839(defun vc-dir-refresh-files (files default-state)
1854 "Refresh some files in the VC status buffer." 1840 "Refresh some files in the VC status buffer."
1855 (let ((backend (vc-responsible-backend default-directory)) 1841 (let ((backend (vc-responsible-backend default-directory))
@@ -1978,6 +1964,9 @@ outside of VC) and one wants to do some operation on it."
1978 (let ((backend (vc-responsible-backend dir))) 1964 (let ((backend (vc-responsible-backend dir)))
1979 (vc-dir-headers backend dir))) 1965 (vc-dir-headers backend dir)))
1980 1966
1967(defun vc-dir-extra-menu ()
1968 (vc-call-backend (vc-responsible-backend default-directory) 'extra-status-menu))
1969
1981(defun vc-make-backend-object (file-or-dir) 1970(defun vc-make-backend-object (file-or-dir)
1982 "Create the backend capability object needed by vc-dispatcher." 1971 "Create the backend capability object needed by vc-dispatcher."
1983 (vc-create-client-object 1972 (vc-create-client-object
@@ -1987,7 +1976,8 @@ outside of VC) and one wants to do some operation on it."
1987 #'vc-generic-status-printer 1976 #'vc-generic-status-printer
1988 #'vc-generic-state 1977 #'vc-generic-state
1989 #'vc-generic-status-fileinfo-extra 1978 #'vc-generic-status-fileinfo-extra
1990 #'vc-dir-refresh)) 1979 #'vc-dir-refresh
1980 #'vc-dir-extra-menu))
1991 1981
1992;;;###autoload 1982;;;###autoload
1993(defun vc-dir (dir) 1983(defun vc-dir (dir)