[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH] Option for updating modeline VC state.
From: |
Óscar Fuentes |
Subject: |
[PATCH] Option for updating modeline VC state. |
Date: |
Sat, 26 Sep 2009 05:10:27 +0200 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/23.1.50 (gnu/linux) |
This comes from
http://emacsbugs.donarmstrong.com/cgi-bin/bugreport.cgi?bug=4515
In short, the VC state modeline is changed to signal `edited' the first
time the file is saved. Even if subsequent editions revert the file to
its pristine state, the VC state modeline will keep showing the `edited'
flag. As Dan is concerned about performance issues if VC asks the
backend for the state of the file, this is implemented as an option
disabled by default.
2009-09-24 Oscar Fuentes <address@hidden>
* lisp/vc-hooks.el (vc-always-update-modeline-after-save):
new defcustom.
(vc-after-save): Use it and when non-nil check the vc file state
so the modeline reflects its actual state.
diff -cp "c:/apps/emacs/lisp/vc-hooks.el" "d:/vc-hooks.el"
*** c:/apps/emacs/lisp/vc-hooks.el 2009-09-24 07:25:53.000000000 +0200
--- d:/vc-hooks.el 2009-09-24 08:10:01.062500000 +0200
*************** If nil (the default), files covered by v
*** 96,101 ****
--- 96,110 ----
:group 'vc
:group 'backup)
+ (defcustom vc-always-update-modeline-after-save nil
+ "If non-nil, always update the state shown in the modeline
+ after saving the file. This may be time-consuming for some
+ backends. If nil, the modeline changes to `edited' when the file
+ is saved for the first time and it is not updated on subsequent
+ saves."
+ :type 'boolean
+ :group 'vc)
+
(defcustom vc-follow-symlinks 'ask
"What to do if visiting a symbolic link to a file under version control.
Editing such a file through the link bypasses the version control system,
*************** Before doing that, check if there are an
*** 743,751 ****
;; to avoid confusion.
(vc-file-setprop file 'vc-checkout-time nil))
t)
- (vc-up-to-date-p file)
(eq (vc-checkout-model backend (list file)) 'implicit)
! (vc-file-setprop file 'vc-state 'edited)
(vc-mode-line file backend)
;; Try to avoid unnecessary work, a *vc-dir* buffer is
;; present if and only if this is true.
--- 752,766 ----
;; to avoid confusion.
(vc-file-setprop file 'vc-checkout-time nil))
t)
(eq (vc-checkout-model backend (list file)) 'implicit)
! (if vc-always-update-modeline-after-save
! (progn
! ;; Avoid using cached value on `vc-state':
! (vc-file-setprop file 'vc-state 'nil)
! (vc-file-setprop file 'vc-state (vc-state file backend)))
! (and
! (vc-up-to-date-p file)
! (vc-file-setprop file 'vc-state 'edited)))
(vc-mode-line file backend)
;; Try to avoid unnecessary work, a *vc-dir* buffer is
;; present if and only if this is true.
- [PATCH] Option for updating modeline VC state.,
Óscar Fuentes <=