summaryrefslogtreecommitdiff
path: root/lisp/vc-dir.el
diff options
context:
space:
mode:
authorDan Nicolaescu <dann@ics.uci.edu>2009-08-26 06:45:36 +0000
committerDan Nicolaescu <dann@ics.uci.edu>2009-08-26 06:45:36 +0000
commitb8e5436265d002cbcc66e1d84712a0a471058be6 (patch)
tree9dbb8f3d20ce55e608d7e59a42afe0592d51aaac /lisp/vc-dir.el
parent239b334087306fbde4a847b255c88062c1345dd1 (diff)
(vc-dir-node-directory, vc-dir-update): Get the parent
directory correctly in case the item is a directory itself.
Diffstat (limited to 'lisp/vc-dir.el')
-rw-r--r--lisp/vc-dir.el18
1 files changed, 12 insertions, 6 deletions
diff --git a/lisp/vc-dir.el b/lisp/vc-dir.el
index 2c1138f858..1efd0bc09d 100644
--- a/lisp/vc-dir.el
+++ b/lisp/vc-dir.el
@@ -326,8 +326,9 @@ If BODY uses EVENT, it should be a variable,
(or (vc-dir-fileinfo->directory data)
;; Otherwise compute it from the file name.
(file-name-directory
- (expand-file-name
- (vc-dir-fileinfo->name data))))))
+ (directory-file-name
+ (expand-file-name
+ (vc-dir-fileinfo->name data)))))))
(defun vc-dir-update (entries buffer &optional noinsert)
"Update BUFFER's ewoc from the list of ENTRIES.
@@ -343,8 +344,10 @@ If NOINSERT, ignore elements on ENTRIES which are not in the ewoc."
;; names too many times
(sort entries
(lambda (entry1 entry2)
- (let ((dir1 (file-name-directory (expand-file-name (car entry1))))
- (dir2 (file-name-directory (expand-file-name (car entry2)))))
+ (let ((dir1 (file-name-directory
+ (directory-file-name (expand-file-name (car entry1)))))
+ (dir2 (file-name-directory
+ (directory-file-name (expand-file-name (car entry2))))))
(cond
((string< dir1 dir2) t)
((not (string= dir1 dir2)) nil)
@@ -362,8 +365,10 @@ If NOINSERT, ignore elements on ENTRIES which are not in the ewoc."
(while (and entry node)
(let* ((entryfile (car entry))
- (entrydir (file-name-directory (expand-file-name entryfile)))
+ (entrydir (file-name-directory (directory-file-name
+ (expand-file-name entryfile))))
(nodedir (vc-dir-node-directory node)))
+ (message "entryfile %s entrydir %s" entryfile entrydir)
(cond
;; First try to find the directory.
((string-lessp nodedir entrydir)
@@ -406,7 +411,8 @@ If NOINSERT, ignore elements on ENTRIES which are not in the ewoc."
(unless (or node noinsert)
(let ((lastdir (vc-dir-node-directory (ewoc-nth vc-ewoc -1))))
(dolist (entry entries)
- (let ((entrydir (file-name-directory (expand-file-name (car entry)))))
+ (let ((entrydir (file-name-directory
+ (directory-file-name (expand-file-name (car entry))))))
;; Insert a directory node if needed.
(unless (string-equal lastdir entrydir)
(setq lastdir entrydir)