branch: master commit 7f1ec58b32b6373835494f9d5323e3f1b6f557fe Author: Alexey Veretennikov <alexey.veretenni...@gmail.com> Commit: Alexey Veretennikov <alexey.veretenni...@gmail.com>
Fixed topmost name in comparison tree --- ztree-diff-model.el | 18 ++++++++++++------ ztree-diff.el | 8 ++++++-- ztree-view.el | 2 +- 3 files changed, 19 insertions(+), 9 deletions(-) diff --git a/ztree-diff-model.el b/ztree-diff-model.el index ab5a42c..810d447 100644 --- a/ztree-diff-model.el +++ b/ztree-diff-model.el @@ -50,7 +50,12 @@ ;; short-name - is the file or directory name ;; children - list of nodes - files or directories if the node is a directory ;; different = {nil, 'new, 'diff} - means comparison status -(defrecord ztree-diff-node (parent left-path right-path short-name children different)) +(defrecord ztree-diff-node (parent left-path right-path short-name right-short-name children different)) + +(defun ztree-diff-node-short-name-wrapper (node &optional right-side) + (if (not right-side) + (ztree-diff-node-short-name node) + (ztree-diff-node-right-short-name node))) (defun ztree-diff-node-is-directory (node) @@ -98,6 +103,7 @@ (when (eq side 'left) file) (when (eq side 'right) file) (file-short-name file) + (file-short-name file) nil 'new)) (children (ztree-diff-model-subtree node file side))) @@ -108,6 +114,7 @@ (when (eq side 'left) file) (when (eq side 'right) file) (file-short-name file) + (file-short-name file) nil 'new) result))) @@ -156,7 +163,7 @@ the rest is the combined list of nodes" (different nil) ;; create the current node to be set as parent to ;; subdirectories - (node (ztree-diff-node-create parent file1 nil simple-name nil nil)) + (node (ztree-diff-node-create parent file1 nil simple-name simple-name nil nil)) ;; 1. find if the file is in the second directory and the type ;; is the same - i.e. both are directories or both are files (file2 (ztree-find list2 @@ -201,7 +208,7 @@ the rest is the combined list of nodes" (isdir (file-directory-p file2)) (children nil) ;; create the node to be added to the results list - (node (ztree-diff-node-create parent nil file2 simple-name nil 'new)) + (node (ztree-diff-node-create parent nil file2 simple-name simple-name nil 'new)) ;; 1. find if the file is in the first directory and the type ;; is the same - i.e. both are directories or both are files (file1 (ztree-find list1 @@ -230,9 +237,8 @@ the rest is the combined list of nodes" (setq ztree-diff-model-wait-message (concat "Comparing " dir1 " and " dir2 " ...")) (let* ((model (ztree-diff-node-create nil dir1 dir2 - (concat (file-short-name dir1) - " <--> " - (file-short-name dir2)) + (file-short-name dir1) + (file-short-name dir2) nil nil)) (traverse (ztree-diff-node-traverse model dir1 dir2))) diff --git a/ztree-diff.el b/ztree-diff.el index 020f646..5b2d5f7 100644 --- a/ztree-diff.el +++ b/ztree-diff.el @@ -353,13 +353,17 @@ apparently shall not be visible" "Creates an interactive buffer with the directory tree of the path given" (interactive "DLeft directory \nDRight directory ") (let* ((difference (ztree-diff-model-create dir1 dir2)) - (buf-name (concat "*" (ztree-diff-node-short-name difference) "*"))) + (buf-name (concat "*" + (ztree-diff-node-short-name difference) + " <--> " + (ztree-diff-node-right-short-name difference) + "*"))) (setq ztree-diff-filter-list (list ztree-diff-hidden-files-regexp)) (ztree-view buf-name difference 'ztree-node-is-visible 'ztree-diff-insert-buffer-header - 'ztree-diff-node-short-name + 'ztree-diff-node-short-name-wrapper 'ztree-diff-node-is-directory 'ztree-diff-node-equal 'ztree-diff-node-children diff --git a/ztree-view.el b/ztree-view.el index e7fdadd..c10de77 100644 --- a/ztree-view.el +++ b/ztree-view.el @@ -427,7 +427,7 @@ list of leafs" (expandable (funcall ztree-node-is-expandable-fun node)) (short-name (funcall ztree-node-short-name-fun node))) (if ztree-node-side-fun ; 2-sided tree - (let ((right-short-name short-name) + (let ((right-short-name (funcall ztree-node-short-name-fun node t)) (side (funcall ztree-node-side-fun node)) (width (window-width))) (when (eq side 'left) (setq right-short-name ""))