comparison lisp/vc/vc-dir.el @ 109431:799b50142743

Merge from mainline.
author Katsumi Yamaoka <yamaoka@jpl.org>
date Sun, 11 Jul 2010 22:57:47 +0000
parents e93288477c43 60516122d066
children 1b626601d32d
comparison
equal deleted inserted replaced
109430:0b8608a36b55 109431:799b50142743
410 (push node to-remove)) 410 (push node to-remove))
411 (setq entries (cdr entries)) 411 (setq entries (cdr entries))
412 (setq entry (car entries)) 412 (setq entry (car entries))
413 (setq node (ewoc-next vc-ewoc node))) 413 (setq node (ewoc-next vc-ewoc node)))
414 (t 414 (t
415 (ewoc-enter-before vc-ewoc node 415 (unless noinsert
416 (apply 'vc-dir-create-fileinfo entry)) 416 (ewoc-enter-before vc-ewoc node
417 (apply 'vc-dir-create-fileinfo entry)))
417 (setq entries (cdr entries)) 418 (setq entries (cdr entries))
418 (setq entry (car entries)))))) 419 (setq entry (car entries))))))
419 (t 420 (t
420 ;; We might need to insert a directory node if the 421 (unless noinsert
421 ;; previous node was in a different directory. 422 ;; We might need to insert a directory node if the
422 (let* ((rd (file-relative-name entrydir)) 423 ;; previous node was in a different directory.
423 (prev-node (ewoc-prev vc-ewoc node)) 424 (let* ((rd (file-relative-name entrydir))
424 (prev-dir (vc-dir-node-directory prev-node))) 425 (prev-node (ewoc-prev vc-ewoc node))
425 (unless (string-equal entrydir prev-dir) 426 (prev-dir (vc-dir-node-directory prev-node)))
426 (ewoc-enter-before 427 (unless (string-equal entrydir prev-dir)
427 vc-ewoc node (vc-dir-create-fileinfo rd nil nil nil entrydir)))) 428 (ewoc-enter-before
428 ;; Now insert the node itself. 429 vc-ewoc node (vc-dir-create-fileinfo rd nil nil nil entrydir))))
429 (ewoc-enter-before vc-ewoc node 430 ;; Now insert the node itself.
430 (apply 'vc-dir-create-fileinfo entry)) 431 (ewoc-enter-before vc-ewoc node
432 (apply 'vc-dir-create-fileinfo entry)))
431 (setq entries (cdr entries) entry (car entries)))))) 433 (setq entries (cdr entries) entry (car entries))))))
432 ;; We're past the last node, all remaining entries go to the end. 434 ;; We're past the last node, all remaining entries go to the end.
433 (unless (or node noinsert) 435 (unless (or node noinsert)
434 (let ((lastdir (vc-dir-node-directory (ewoc-nth vc-ewoc -1)))) 436 (let ((lastdir (vc-dir-node-directory (ewoc-nth vc-ewoc -1))))
435 (dolist (entry entries) 437 (dolist (entry entries)
900 (if (file-directory-p file) 902 (if (file-directory-p file)
901 (progn 903 (progn
902 (vc-dir-resync-directory-files file) 904 (vc-dir-resync-directory-files file)
903 (ewoc-set-hf vc-ewoc 905 (ewoc-set-hf vc-ewoc
904 (vc-dir-headers vc-dir-backend default-directory) "")) 906 (vc-dir-headers vc-dir-backend default-directory) ""))
905 (let ((state (vc-dir-recompute-file-state file ddir))) 907 (let* ((complete-state (vc-dir-recompute-file-state file ddir))
908 (state (cadr complete-state)))
906 (vc-dir-update 909 (vc-dir-update
907 (list state) 910 (list complete-state)
908 status-buf (eq (cadr state) 'up-to-date)))))))))) 911 status-buf (or (not state)
912 (eq state 'up-to-date)))))))))))
909 ;; Remove out-of-date entries from vc-dir-buffers. 913 ;; Remove out-of-date entries from vc-dir-buffers.
910 (dolist (b drop) (setq vc-dir-buffers (delq b vc-dir-buffers))))) 914 (dolist (b drop) (setq vc-dir-buffers (delq b vc-dir-buffers)))))
911 915
912 (defvar use-vc-backend) ;; dynamically bound 916 (defvar use-vc-backend) ;; dynamically bound
913 917