Mercurial > emacs
comparison lisp/vc/vc-dir.el @ 109302:60516122d066
Merge changes from emacs-23 branch.
author | Chong Yidong <cyd@stupidchicken.com> |
---|---|
date | Sat, 10 Jul 2010 14:52:53 -0400 |
parents | d928a6a7c3f2 |
children | d43e7dfda4f1 a9586dc942d5 3226ac2da7f7 280c8ae2476d |
comparison
equal
deleted
inserted
replaced
109190:8afa85da3f2d | 109302:60516122d066 |
---|---|
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 |