]> git.eshelyaron.com Git - emacs.git/commitdiff
Avoid displaying files with a nil state in vc-dir.
authorDan Nicolaescu <dann@ics.uci.edu>
Wed, 30 Jun 2010 22:03:07 +0000 (15:03 -0700)
committerDan Nicolaescu <dann@ics.uci.edu>
Wed, 30 Jun 2010 22:03:07 +0000 (15:03 -0700)
* lisp/vc-dir.el (vc-dir-update): Obey the noinsert argument in all
cases that cause insertion.
(vc-dir-resynch-file): Tell vc-dir-update to avoid inserting files
with a nil state.

lisp/ChangeLog
lisp/vc-dir.el

index 45d12bff8dbcd2bbabcb7647f298726f091af22d..e791d21f507c8ba509b1db2b641e720a3a6a0b13 100644 (file)
@@ -1,3 +1,11 @@
+2010-06-30  Dan Nicolaescu  <dann@ics.uci.edu>
+
+       Avoid displaying files with a nil state in vc-dir.
+       * vc-dir.el (vc-dir-update): Obey the noinsert argument in all
+       cases that cause insertion.
+       (vc-dir-resynch-file): Tell vc-dir-update to avoid inserting files
+       with a nil state.
+
 2010-06-30  Chong Yidong  <cyd@stupidchicken.com>
 
        * xml.el (xml-parse-region): Avoid infloop (Bug#5281).
index 6428e8b9ddb6a7307fa74eb77cad34f7a193b63a..a32e5b35e083c0c35ab0c23e7a65d851496f748b 100644 (file)
@@ -398,22 +398,24 @@ If NOINSERT, ignore elements on ENTRIES which are not in the ewoc."
                (setq entry (car entries))
                (setq node (ewoc-next vc-ewoc node)))
               (t
-               (ewoc-enter-before vc-ewoc node
-                                  (apply 'vc-dir-create-fileinfo entry))
+               (unless noinsert
+                 (ewoc-enter-before vc-ewoc node
+                                    (apply 'vc-dir-create-fileinfo entry)))
                (setq entries (cdr entries))
                (setq entry (car entries))))))
           (t
-           ;; We might need to insert a directory node if the
-           ;; previous node was in a different directory.
-           (let* ((rd (file-relative-name entrydir))
-                  (prev-node (ewoc-prev vc-ewoc node))
-                  (prev-dir (vc-dir-node-directory prev-node)))
-             (unless (string-equal entrydir prev-dir)
-               (ewoc-enter-before
-                vc-ewoc node (vc-dir-create-fileinfo rd nil nil nil entrydir))))
-           ;; Now insert the node itself.
-           (ewoc-enter-before vc-ewoc node
-                              (apply 'vc-dir-create-fileinfo entry))
+           (unless noinsert
+             ;; We might need to insert a directory node if the
+             ;; previous node was in a different directory.
+             (let* ((rd (file-relative-name entrydir))
+                    (prev-node (ewoc-prev vc-ewoc node))
+                    (prev-dir (vc-dir-node-directory prev-node)))
+               (unless (string-equal entrydir prev-dir)
+                 (ewoc-enter-before
+                  vc-ewoc node (vc-dir-create-fileinfo rd nil nil nil entrydir))))
+             ;; Now insert the node itself.
+             (ewoc-enter-before vc-ewoc node
+                                (apply 'vc-dir-create-fileinfo entry)))
            (setq entries (cdr entries) entry (car entries))))))
       ;; We're past the last node, all remaining entries go to the end.
       (unless (or node noinsert)
@@ -888,10 +890,12 @@ If it is a file, return the corresponding cons for the file itself."
                      (vc-dir-resync-directory-files file)
                      (ewoc-set-hf vc-ewoc
                                   (vc-dir-headers vc-dir-backend default-directory) ""))
-                  (let ((state (vc-dir-recompute-file-state file ddir)))
+                  (let* ((complete-state (vc-dir-recompute-file-state file ddir))
+                        (state (cadr complete-state)))
                     (vc-dir-update
-                     (list state)
-                     status-buf (eq (cadr state) 'up-to-date))))))))))
+                     (list complete-state)
+                     status-buf (or (not state)
+                                   (eq state 'up-to-date)))))))))))
     ;; Remove out-of-date entries from vc-dir-buffers.
     (dolist (b drop) (setq vc-dir-buffers (delq b vc-dir-buffers)))))