]> git.eshelyaron.com Git - emacs.git/commitdiff
* vc.el (vc-dired-hook): Show unregistered file status as "?" in
authorEric S. Raymond <esr@snark.thyrsus.com>
Thu, 27 Dec 2007 16:17:17 +0000 (16:17 +0000)
committerEric S. Raymond <esr@snark.thyrsus.com>
Thu, 27 Dec 2007 16:17:17 +0000 (16:17 +0000)
non-terse mode.
(vc-dired-ignorable-p): Ignore Makefile when it has a peer named
Makefile.in or Makefile.am

lisp/ChangeLog
lisp/vc.el

index e1a67725f6b0e9041136c72c9a10e3d8ea4a2b5e..8c39318b324ebb70ab9b12fbc0a40124fb4f27ed 100644 (file)
@@ -5,7 +5,10 @@
        ignorted in VC-Dired listings, heading off lots of expensive calls
        to (vc-state).
 
-       * vc.el (vc-dired-hook): Refactoring step.  
+       * vc.el (vc-dired-hook): Show unregistered file status as "?" in
+       non-terse mode.
+       (vc-dired-ignorable-p): Ignore Makefile when it has a peer named
+       Makefile.in or Makefile.am
 
 2007-12-27  Vinicius Jose Latorre  <viniciusjl@ig.com.br>
 
index 3e3fa907ed992f0347fa6f6f940f882ed6481818..c5411718633af0fa62e978482110525805799e8e 100644 (file)
@@ -2330,11 +2330,18 @@ This code, like dired, assumes UNIX -l format."
 (defun vc-dired-ignorable-p (filename)
   "Should FILENAME be ignored in VC-Dired listings?"
   (catch t 
+    ;; Ignore anything that wouldn't be found by completion (.o, .la, etc.)
     (dolist (ignorable completion-ignored-extensions)
       (let ((ext (substring filename 
                              (- (length filename)
                                 (length ignorable)))))
        (if (string= ignorable ext) (throw t t))))
+    ;; Ignore Makefiles derived from something else
+    (when (string= (file-name-nondirectory filename) "Makefile")
+      (let* ((dir (file-name-directory filename))
+           (peers (directory-files (or dir default-directory))))
+       (if (or (member "Makefile.in" peers) (member "Makefile.am" peers))
+          (throw t t))))
     nil))
 
 (defun vc-dired-hook ()
@@ -2390,12 +2397,18 @@ Called by dired after any portion of a vc-dired buffer has been read in."
          (t
          (let ((backend (vc-backend filename)))
            (cond
-            ((and backend
-                  (not (and vc-dired-terse-mode
-                            (vc-up-to-date-p filename))))
+            ;; Not registered
+            ((not backend)
+             (if vc-dired-terse-mode
+                 (dired-kill-line)
+               (vc-dired-reformat-line "?")
+               (forward-line 1)))
+            ;; Either we're in non-terse mode or it's out of date 
+            ((not (and vc-dired-terse-mode (vc-up-to-date-p filename)))
              (vc-dired-reformat-line (vc-call dired-state-info filename))
              (forward-line 1))
-            (t
+            ;; Remaining cases are under version control but uninteresting 
+            (t 
              (dired-kill-line)))))))
        ;; any other line
        (t (forward-line 1))))
@@ -2405,7 +2418,7 @@ Called by dired after any portion of a vc-dired buffer has been read in."
     (widen)
     (cond ((eq (count-lines (point-min) (point-max)) 1)
            (goto-char (point-min))
-           (message "No files locked under %s" default-directory)))))
+           (message "No changes pending under %s" default-directory)))))
 
 (defun vc-dired-purge ()
   "Remove empty subdirs."