[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Emacs-diffs] /srv/bzr/emacs/emacs-23 r99829: * lisp/vc-dir.el (vc-dir-u
From: |
Dan Nicolaescu |
Subject: |
[Emacs-diffs] /srv/bzr/emacs/emacs-23 r99829: * lisp/vc-dir.el (vc-dir-update): Remove entries with a nil state (bug#5539). |
Date: |
Tue, 01 Jun 2010 21:54:55 -0700 |
User-agent: |
Bazaar (2.0.3) |
------------------------------------------------------------
revno: 99829
committer: Dan Nicolaescu <address@hidden>
branch nick: emacs-23
timestamp: Tue 2010-06-01 21:54:55 -0700
message:
* lisp/vc-dir.el (vc-dir-update): Remove entries with a nil state (bug#5539).
Backport from trunk.
modified:
lisp/ChangeLog
lisp/vc-dir.el
=== modified file 'lisp/ChangeLog'
--- a/lisp/ChangeLog 2010-06-01 02:06:09 +0000
+++ b/lisp/ChangeLog 2010-06-02 04:54:55 +0000
@@ -1,3 +1,7 @@
+2010-06-02 Dan Nicolaescu <address@hidden>
+
+ * vc-dir.el (vc-dir-update): Remove entries with a nil state (bug#5539).
+
2010-06-01 Stefan Monnier <address@hidden>
* vc-bzr.el (vc-bzr-revision-completion-table): Apply
=== modified file 'lisp/vc-dir.el'
--- a/lisp/vc-dir.el 2010-01-17 20:36:21 +0000
+++ b/lisp/vc-dir.el 2010-06-02 04:54:55 +0000
@@ -357,6 +357,7 @@
;; Insert directory entries in the right places.
(let ((entry (car entries))
(node (ewoc-nth vc-ewoc 0))
+ (to-remove nil)
(dotname (file-relative-name default-directory)))
;; Insert . if it is not present.
(unless node
@@ -383,10 +384,16 @@
((string-lessp nodefile entryfile)
(setq node (ewoc-next vc-ewoc node)))
((string-equal nodefile entryfile)
- (setf (vc-dir-fileinfo->state (ewoc-data node)) (nth 1 entry))
- (setf (vc-dir-fileinfo->extra (ewoc-data node)) (nth 2 entry))
- (setf (vc-dir-fileinfo->needs-update (ewoc-data node)) nil)
- (ewoc-invalidate vc-ewoc node)
+ (if (nth 1 entry)
+ (progn
+ (setf (vc-dir-fileinfo->state (ewoc-data node)) (nth 1
entry))
+ (setf (vc-dir-fileinfo->extra (ewoc-data node)) (nth 2
entry))
+ (setf (vc-dir-fileinfo->needs-update (ewoc-data node))
nil)
+ (ewoc-invalidate vc-ewoc node))
+ ;; If the state is nil, the file does not exist
+ ;; anymore, so remember the entry so we can remove
+ ;; it after we are done inserting all ENTRIES.
+ (push node to-remove))
(setq entries (cdr entries))
(setq entry (car entries))
(setq node (ewoc-next vc-ewoc node)))
@@ -422,7 +429,10 @@
vc-ewoc (vc-dir-create-fileinfo rd nil nil nil entrydir))))
;; Now insert the node itself.
(ewoc-enter-last vc-ewoc
- (apply 'vc-dir-create-fileinfo entry)))))))))
+ (apply 'vc-dir-create-fileinfo entry))))))
+ (when to-remove
+ (let ((inhibit-read-only t))
+ (apply 'ewoc-delete vc-ewoc (nreverse to-remove)))))))
(defun vc-dir-busy ()
(and (buffer-live-p vc-dir-process-buffer)
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Emacs-diffs] /srv/bzr/emacs/emacs-23 r99829: * lisp/vc-dir.el (vc-dir-update): Remove entries with a nil state (bug#5539).,
Dan Nicolaescu <=