changeset 95054:31c82b39ac3c

Use state prettyprinter in vc-dir buffers.
author Eric S. Raymond <esr@snark.thyrsus.com>
date Fri, 16 May 2008 22:42:36 +0000
parents b2c592fe4194
children 422c9dc4e561
files doc/emacs/ChangeLog doc/emacs/vc1-xtra.texi lisp/ChangeLog lisp/vc.el
diffstat 4 files changed, 24 insertions(+), 11 deletions(-) [+]
line wrap: on
line diff
--- a/doc/emacs/ChangeLog	Fri May 16 22:39:45 2008 +0000
+++ b/doc/emacs/ChangeLog	Fri May 16 22:42:36 2008 +0000
@@ -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
--- a/doc/emacs/vc1-xtra.texi	Fri May 16 22:39:45 2008 +0000
+++ b/doc/emacs/vc1-xtra.texi	Fri May 16 22:42:36 2008 +0000
@@ -43,8 +43,8 @@
 @smallexample
 @group
     DIRECTORY            ./
-    edited               file1.c
-    up-to-date           file2.c
+    (modified)           file1.c
+    (update)            file2.c
 @end group
 @end smallexample
 
--- a/lisp/ChangeLog	Fri May 16 22:39:45 2008 +0000
+++ b/lisp/ChangeLog	Fri May 16 22:42:36 2008 +0000
@@ -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.
--- a/lisp/vc.el	Fri May 16 22:39:45 2008 +0000
+++ b/lisp/vc.el	Fri May 16 22:42:36 2008 +0000
@@ -1808,24 +1808,24 @@
 (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 @@
   (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