emacs-elpa-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[elpa] master cef7d95 20/36: Functions with errors still:


From: Alexey Veretennikov
Subject: [elpa] master cef7d95 20/36: Functions with errors still:
Date: Wed, 27 Jan 2016 23:50:55 +0000

branch: master
commit cef7d9520a012223453d2ceb0a9dcffec160889b
Author: Alexey Veretennikov <address@hidden>
Commit: Alexey Veretennikov <address@hidden>

    Functions with errors still:
    ztree-diff-model-partial-rescan
    ztree-diff-delete-file
    and probably (need to test)
    ztree-diff-copy
---
 ztree-diff-model.el |   45 ++++++++++++++++++++++++---------------------
 ztree-diff.el       |   17 +++++++----------
 2 files changed, 31 insertions(+), 31 deletions(-)

diff --git a/ztree-diff-model.el b/ztree-diff-model.el
index 984834c..dbcc713 100644
--- a/ztree-diff-model.el
+++ b/ztree-diff-model.el
@@ -79,8 +79,6 @@
                            (funcall string-or-nil (ztree-diff-node-different 
x)))))
     (concat "Node: " (ztree-diff-node-short-name node)
             "\n"
-            ;; " * Parent: " (let ((parent (ztree-diff-node-parent node)))
-            ;;                 (if parent (ztree-diff-node-short-name parent) 
"nil"))
             " * Parent: " (funcall string-or-nil (ztree-diff-node-parent node))
             "\n"
             " * Status: " (funcall string-or-nil (ztree-diff-node-different 
node))
@@ -164,16 +162,25 @@ Filters out . and .."
         (isdir (ztree-diff-node-is-directory node))
         (left (ztree-diff-node-left-path node))
         (right (ztree-diff-node-right-path node)))
-    ;; if node is a directory - traverse
-    (when (and left right
-               (file-exists-p left)
-               (file-exists-p right))
-      (if isdir ;; traverse directory
-          (ztree-diff-node-traverse node)
-        ;; node is a file
-        (ztree-diff-node-set-different
-         node
-         (ztree-diff-model-files-equal left right))))))
+    (if (not parent)      ;; if no parent - traverse
+        (ztree-diff-node-traverse node)
+      ;; verify if the node is not ignored by any chance
+      (when (or (ztree-diff-node-ignore-p node)
+                (eql (ztree-diff-node-different node) 'ignore))
+        (ztree-diff-node-set-different node 'ignore))
+      ;; if node is a directory - traverse
+      (when (and left right
+                 (file-exists-p left)
+                 (file-exists-p right))
+        (if isdir ;; traverse directory
+            (ztree-diff-node-traverse node)
+          ;; node is a file
+          (ztree-diff-node-set-different
+           node
+           (if (ztree-diff-node-ignore-p node) 'ignore
+             (ztree-diff-model-files-equal left right)))))
+      ;; update all parents statuses
+      (ztree-diff-node-update-all-parents-diff node))))
 
 (defun ztree-diff-model-subtree (parent path side diff)
   "Create a subtree with given PARENT for the given PATH.
@@ -208,15 +215,11 @@ Argument DIFF different status to be assigned to all 
created nodes."
 (defun ztree-diff-node-update-diff-from-children (node)
   "Set the diff status for the NODE based on its children."
                                         ;(unless (eq 
(ztree-diff-node-different node 'ignore))
-  (let ((children (ztree-diff-node-children node))
-        (diff nil))
-    (dolist (child children)
-      (unless (ztree-diff-model-ignore-p child)
-        (setq diff
-              (ztree-diff-model-update-diff
-               diff
-               (ztree-diff-node-different child)))))
-    (ztree-diff-node-set-different node diff))) ;)
+  (let ((diff (cl-reduce 'ztree-diff-model-update-diff
+                         (ztree-diff-node-children node)
+                         :initial-value 'same
+                         :key 'ztree-diff-node-different)))
+    (ztree-diff-node-set-different node diff)))
 
 (defun ztree-diff-node-update-all-parents-diff (node)
   "Recursively update all parents diff status for the NODE."
diff --git a/ztree-diff.el b/ztree-diff.el
index 9e0f3f3..89bc2c5 100644
--- a/ztree-diff.el
+++ b/ztree-diff.el
@@ -184,10 +184,8 @@ By default paths starting with dot (like .git) are 
ignored")
     (if (not parent)
         (when ztree-diff-dirs-pair
           (ztree-diff (car ztree-diff-dirs-pair) (cdr ztree-diff-dirs-pair)))
-      (progn
-        (ztree-diff-model-partial-rescan common)
-        (ztree-diff-node-update-all-parents-diff node)
-        (ztree-refresh-buffer (line-number-at-pos))))))
+      (ztree-diff-model-partial-rescan common)
+      (ztree-refresh-buffer (line-number-at-pos)))))
 
 
 (defun ztree-diff-partial-rescan ()
@@ -418,18 +416,17 @@ COPY-TO-RIGHT specifies which side of the NODE to update."
                     ;; and update the parents with a new status
                     ;; of this node
                     (when (file-directory-p remove-path)
-                      (ztree-diff-model-partial-rescan node)
-                      (ztree-diff-node-update-all-parents-diff node)))
+                      (ztree-diff-model-partial-rescan node)))
                 ;; if everything ok 
                 (progn
                   ;; remove the node from children
                   (setq children (ztree-filter
                                   #'(lambda (x) (not (ztree-diff-node-equal x 
node)))
                                   children))
-                  (ztree-diff-node-set-children parent children))
-                (ztree-diff-node-update-all-parents-diff node)
-                ;;(ztree-diff-model-partial-rescan node)
-                (ztree-refresh-buffer (line-number-at-pos))))))))))
+                  (ztree-diff-node-set-children parent children)))
+              (ztree-diff-node-update-all-parents-diff node)
+              ;;(ztree-diff-model-partial-rescan node)
+              (ztree-refresh-buffer (line-number-at-pos)))))))))
 
 
 



reply via email to

[Prev in Thread] Current Thread [Next in Thread]