From 7c2ec3f97517f249902d26040e2f571852a4791b Mon Sep 17 00:00:00 2001 From: "Eric S. Raymond" Date: Fri, 16 May 2008 22:42:36 +0000 Subject: [PATCH] Use state prettyprinter in vc-dir buffers. --- doc/emacs/ChangeLog | 5 +++++ doc/emacs/vc1-xtra.texi | 4 ++-- lisp/ChangeLog | 8 ++++++++ lisp/vc.el | 18 +++++++++--------- 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 + + * vc2-xtra.texi: Mofify an example so it reflects what vc.el + now does. + 2008-05-15 Eric S. Raymond * 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 + + * 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 * 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 -- 2.39.2