diff options
| author | Dan Nicolaescu | 2010-06-30 15:03:07 -0700 |
|---|---|---|
| committer | Dan Nicolaescu | 2010-06-30 15:03:07 -0700 |
| commit | d0cb23caf4c6a1fffaceddecc3eadb80c8948176 (patch) | |
| tree | 9dd9034e1b70f94f7c0594aaec37a948ff2780af | |
| parent | 01b229d127055ee20a38a1461b29533689e77543 (diff) | |
| download | emacs-d0cb23caf4c6a1fffaceddecc3eadb80c8948176.tar.gz emacs-d0cb23caf4c6a1fffaceddecc3eadb80c8948176.zip | |
Avoid displaying files with a nil state in vc-dir.
* 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.
| -rw-r--r-- | lisp/ChangeLog | 8 | ||||
| -rw-r--r-- | lisp/vc-dir.el | 36 |
2 files changed, 28 insertions, 16 deletions
diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 45d12bff8db..e791d21f507 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog | |||
| @@ -1,3 +1,11 @@ | |||
| 1 | 2010-06-30 Dan Nicolaescu <dann@ics.uci.edu> | ||
| 2 | |||
| 3 | Avoid displaying files with a nil state in vc-dir. | ||
| 4 | * vc-dir.el (vc-dir-update): Obey the noinsert argument in all | ||
| 5 | cases that cause insertion. | ||
| 6 | (vc-dir-resynch-file): Tell vc-dir-update to avoid inserting files | ||
| 7 | with a nil state. | ||
| 8 | |||
| 1 | 2010-06-30 Chong Yidong <cyd@stupidchicken.com> | 9 | 2010-06-30 Chong Yidong <cyd@stupidchicken.com> |
| 2 | 10 | ||
| 3 | * xml.el (xml-parse-region): Avoid infloop (Bug#5281). | 11 | * xml.el (xml-parse-region): Avoid infloop (Bug#5281). |
diff --git a/lisp/vc-dir.el b/lisp/vc-dir.el index 6428e8b9ddb..a32e5b35e08 100644 --- a/lisp/vc-dir.el +++ b/lisp/vc-dir.el | |||
| @@ -398,22 +398,24 @@ If NOINSERT, ignore elements on ENTRIES which are not in the ewoc." | |||
| 398 | (setq entry (car entries)) | 398 | (setq entry (car entries)) |
| 399 | (setq node (ewoc-next vc-ewoc node))) | 399 | (setq node (ewoc-next vc-ewoc node))) |
| 400 | (t | 400 | (t |
| 401 | (ewoc-enter-before vc-ewoc node | 401 | (unless noinsert |
| 402 | (apply 'vc-dir-create-fileinfo entry)) | 402 | (ewoc-enter-before vc-ewoc node |
| 403 | (apply 'vc-dir-create-fileinfo entry))) | ||
| 403 | (setq entries (cdr entries)) | 404 | (setq entries (cdr entries)) |
| 404 | (setq entry (car entries)))))) | 405 | (setq entry (car entries)))))) |
| 405 | (t | 406 | (t |
| 406 | ;; We might need to insert a directory node if the | 407 | (unless noinsert |
| 407 | ;; previous node was in a different directory. | 408 | ;; We might need to insert a directory node if the |
| 408 | (let* ((rd (file-relative-name entrydir)) | 409 | ;; previous node was in a different directory. |
| 409 | (prev-node (ewoc-prev vc-ewoc node)) | 410 | (let* ((rd (file-relative-name entrydir)) |
| 410 | (prev-dir (vc-dir-node-directory prev-node))) | 411 | (prev-node (ewoc-prev vc-ewoc node)) |
| 411 | (unless (string-equal entrydir prev-dir) | 412 | (prev-dir (vc-dir-node-directory prev-node))) |
| 412 | (ewoc-enter-before | 413 | (unless (string-equal entrydir prev-dir) |
| 413 | vc-ewoc node (vc-dir-create-fileinfo rd nil nil nil entrydir)))) | 414 | (ewoc-enter-before |
| 414 | ;; Now insert the node itself. | 415 | vc-ewoc node (vc-dir-create-fileinfo rd nil nil nil entrydir)))) |
| 415 | (ewoc-enter-before vc-ewoc node | 416 | ;; Now insert the node itself. |
| 416 | (apply 'vc-dir-create-fileinfo entry)) | 417 | (ewoc-enter-before vc-ewoc node |
| 418 | (apply 'vc-dir-create-fileinfo entry))) | ||
| 417 | (setq entries (cdr entries) entry (car entries)))))) | 419 | (setq entries (cdr entries) entry (car entries)))))) |
| 418 | ;; We're past the last node, all remaining entries go to the end. | 420 | ;; We're past the last node, all remaining entries go to the end. |
| 419 | (unless (or node noinsert) | 421 | (unless (or node noinsert) |
| @@ -888,10 +890,12 @@ If it is a file, return the corresponding cons for the file itself." | |||
| 888 | (vc-dir-resync-directory-files file) | 890 | (vc-dir-resync-directory-files file) |
| 889 | (ewoc-set-hf vc-ewoc | 891 | (ewoc-set-hf vc-ewoc |
| 890 | (vc-dir-headers vc-dir-backend default-directory) "")) | 892 | (vc-dir-headers vc-dir-backend default-directory) "")) |
| 891 | (let ((state (vc-dir-recompute-file-state file ddir))) | 893 | (let* ((complete-state (vc-dir-recompute-file-state file ddir)) |
| 894 | (state (cadr complete-state))) | ||
| 892 | (vc-dir-update | 895 | (vc-dir-update |
| 893 | (list state) | 896 | (list complete-state) |
| 894 | status-buf (eq (cadr state) 'up-to-date)))))))))) | 897 | status-buf (or (not state) |
| 898 | (eq state 'up-to-date))))))))))) | ||
| 895 | ;; Remove out-of-date entries from vc-dir-buffers. | 899 | ;; Remove out-of-date entries from vc-dir-buffers. |
| 896 | (dolist (b drop) (setq vc-dir-buffers (delq b vc-dir-buffers))))) | 900 | (dolist (b drop) (setq vc-dir-buffers (delq b vc-dir-buffers))))) |
| 897 | 901 | ||