From: Stefan Monnier Date: Mon, 23 Jul 2007 21:07:03 +0000 (+0000) Subject: (vc-mode-line-map): New const. X-Git-Tag: emacs-pretest-23.0.90~11761 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=5719a0989e2cc1e155a1d0ef499aa3d84ad102ec;p=emacs.git (vc-mode-line-map): New const. (vc-mode-line): Use it. --- diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 7e3b2f3cbf3..957c05fba4e 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,8 @@ +2007-07-23 Stefan Monnier + + * vc-hooks.el (vc-mode-line-map): New const. + (vc-mode-line): Use it. + 2007-07-23 Alexandre Julliard * vc-git.el (vc-git-delete-file, vc-git-rename-file) @@ -39,7 +44,8 @@ 2007-07-23 Stefan Monnier - * emacs-lisp/copyright.el (copyright-update-year): Fix 2007-05-25 change. + * emacs-lisp/copyright.el (copyright-update-year): Fix 2007-05-25 + change by reverting a small part. 2007-07-23 Richard Stallman @@ -59,9 +65,9 @@ 2007-07-20 Kenichi Handa - * international/utf-8.el (utf-8-post-read-conversion): Temporarily - bind utf-8-compose-scripts to nil while running *-compose-region - functions. + * international/utf-8.el (utf-8-post-read-conversion): + Temporarily bind utf-8-compose-scripts to nil while running + *-compose-region functions. 2007-07-23 Dan Nicolaescu diff --git a/lisp/vc-hooks.el b/lisp/vc-hooks.el index 2d3a0886c22..1029e745cde 100644 --- a/lisp/vc-hooks.el +++ b/lisp/vc-hooks.el @@ -716,34 +716,35 @@ Before doing that, check if there are any old backups and get rid of them." ;; any VC Dired buffer to synchronize. (vc-dired-resynch-file file))))) +(defconst vc-mode-line-map + (let ((map (make-sparse-keymap))) + (define-key map [mode-line down-mouse-1] 'vc-menu-map) + map)) + (defun vc-mode-line (file) "Set `vc-mode' to display type of version control for FILE. The value is set in the current buffer, which should be the buffer visiting FILE." (interactive (list buffer-file-name)) - (let ((backend (vc-backend file)) - ml-string ml-echo) + (let ((backend (vc-backend file))) (if (not backend) (setq vc-mode nil) - (setq ml-string (vc-call mode-line-string file)) - (setq ml-echo (get-text-property 0 'help-echo ml-string)) - (setq vc-mode - (concat - " " - (if vc-display-status - (propertize - ml-string - 'mouse-face 'mode-line-highlight - 'help-echo - (concat (if ml-echo - ml-echo - (format "File under the %s version control system" - backend)) - "\nmouse-1: Version Control menu") - 'local-map (let ((map (make-sparse-keymap))) - (define-key map [mode-line down-mouse-1] - 'vc-menu-map) map)) - (symbol-name backend)))) + (let* ((ml-string (vc-call mode-line-string file)) + (ml-echo (get-text-property 0 'help-echo ml-string))) + (setq vc-mode + (concat + " " + (if (null vc-display-status) + (symbol-name backend) + (propertize + ml-string + 'mouse-face 'mode-line-highlight + 'help-echo + (concat (or ml-echo + (format "File under the %s version control system" + backend)) + "\nmouse-1: Version Control menu") + 'local-map vc-mode-line-map))))) ;; If the file is locked by some other user, make ;; the buffer read-only. Like this, even root ;; cannot modify a file that someone else has locked.