summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEric S. Raymond <esr@snark.thyrsus.com>2008-05-16 22:42:36 +0000
committerEric S. Raymond <esr@snark.thyrsus.com>2008-05-16 22:42:36 +0000
commit7c2ec3f97517f249902d26040e2f571852a4791b (patch)
treee8bcb9c1bdf764516f2591a7ea20ab988d205150
parentc8039c6b14d6fdb9d121129e42b376eaa43a67cd (diff)
downloademacs-7c2ec3f97517f249902d26040e2f571852a4791b.tar.gz
Use state prettyprinter in vc-dir buffers.
-rw-r--r--doc/emacs/ChangeLog5
-rw-r--r--doc/emacs/vc1-xtra.texi4
-rw-r--r--lisp/ChangeLog8
-rw-r--r--lisp/vc.el18
4 files changed, 24 insertions, 11 deletions
diff --git a/doc/emacs/ChangeLog b/doc/emacs/ChangeLog
index 54528646c7c..a8410167cf7 100644
--- a/doc/emacs/ChangeLog
+++ b/doc/emacs/ChangeLog
@@ -1,3 +1,8 @@
+2008-05-16 Eric S. Raymond <esr@snark.thyrsus.com>
+
+ * vc2-xtra.texi: Mofify an example so it reflects what vc.el
+ now does.
+
2008-05-15 Eric S. Raymond <esr@snark.thyrsus.com>
* vc2-xtra.texi, emacs.texi, files.texi: Snapshots node renamed to
diff --git a/doc/emacs/vc1-xtra.texi b/doc/emacs/vc1-xtra.texi
index a9e081cb63b..8c0dc501070 100644
--- a/doc/emacs/vc1-xtra.texi
+++ b/doc/emacs/vc1-xtra.texi
@@ -43,8 +43,8 @@ output is used. Here is an example using RCS:
@smallexample
@group
DIRECTORY ./
- edited file1.c
- up-to-date file2.c
+ (modified) file1.c
+ (update) file2.c
@end group
@end smallexample
diff --git a/lisp/ChangeLog b/lisp/ChangeLog
index 9e38b1236dc..17f42d14d5d 100644
--- a/lisp/ChangeLog
+++ b/lisp/ChangeLog
@@ -1,3 +1,11 @@
+<<<<<<< ChangeLog
+2008-05-16 Eric S. Raymond <esr@snark.thyrsus.com>
+
+ * vc.el (vc-default-status-printer)
+ (vc-default-prettify-state-info): Enhance the state prettyprinter
+ to deall better with unknown states and indirect through it when
+ painting vc-dir buffers.
+
2008-05-16 John Paul Wallington <jpw@pobox.com>
* vc-dispatcher.el (top-level): Don't require cl when compiling.
diff --git a/lisp/vc.el b/lisp/vc.el
index bcb5fd18d8b..73f0f8a013a 100644
--- a/lisp/vc.el
+++ b/lisp/vc.el
@@ -1808,24 +1808,24 @@ specific headers."
(defun vc-default-status-printer (backend fileentry)
"Pretty print FILEENTRY."
;; If you change the layout here, change vc-dir-move-to-goal-column.
- (let ((state
- (if (vc-dir-fileinfo->directory fileentry)
- 'DIRECTORY
- (vc-dir-fileinfo->state fileentry))))
+ (let* ((isdir (vc-dir-fileinfo->directory fileentry))
+ (state (if isdir 'DIRECTORY (vc-dir-fileinfo->state fileentry)))
+ (filename (vc-dir-fileinfo->name fileentry))
+ (prettified (if isdir state (vc-call-backend backend 'prettify-state-info filename))))
(insert
(propertize
(format "%c" (if (vc-dir-fileinfo->marked fileentry) ?* ? ))
'face 'font-lock-type-face)
" "
(propertize
- (format "%-20s" state)
+ (format "%-20s" prettified)
'face (cond ((eq state 'up-to-date) 'font-lock-builtin-face)
((memq state '(missing conflict)) 'font-lock-warning-face)
(t 'font-lock-variable-name-face))
'mouse-face 'highlight)
" "
(propertize
- (format "%s" (vc-dir-fileinfo->name fileentry))
+ (format "%s" filename)
'face 'font-lock-function-name-face
'mouse-face 'highlight))))
@@ -2643,16 +2643,16 @@ to provide the `find-revision' operation instead."
(let* ((state (vc-state file))
(statestring
(cond
- ((stringp state) (concat "(" state ")"))
+ ((stringp state) (concat "(locked:" state ")"))
((eq state 'edited) "(modified)")
((eq state 'needs-merge) "(merge)")
((eq state 'needs-update) "(update)")
((eq state 'added) "(added)")
((eq state 'removed) "(removed)")
((eq state 'ignored) "(ignored)")
- ((eq state 'unregistered) "?")
+ ((eq state 'unregistered) "(unregistered)")
((eq state 'unlocked-changes) "(stale)")
- ((not state) "(unknown)")))
+ (t (concat "(unknown:" state ")"))))
(buffer
(get-file-buffer file))
(modflag