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

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

[elpa] externals/taxy 2e88d43 2/4: Fix: (taxy-fill) Or, apply object to


From: ELPA Syncer
Subject: [elpa] externals/taxy 2e88d43 2/4: Fix: (taxy-fill) Or, apply object to root taxy
Date: Sun, 29 Aug 2021 01:57:18 -0400 (EDT)

branch: externals/taxy
commit 2e88d43710d29d28757cd0e14aa26adcacdead1c
Author: Adam Porter <adam@alphapapa.net>
Commit: Adam Porter <adam@alphapapa.net>

    Fix: (taxy-fill) Or, apply object to root taxy
    
    When used with taxy-take-keyed*, this allows the root taxy to have its
    :take specified, rather than having to use a sub-taxy as the first to
    have its :take specified.
---
 README.org |  1 +
 taxy.el    | 29 +++++++++++++++++------------
 taxy.info  | 12 +++++++-----
 3 files changed, 25 insertions(+), 17 deletions(-)

diff --git a/README.org b/README.org
index 1537329..ca60ab2 100644
--- a/README.org
+++ b/README.org
@@ -720,6 +720,7 @@ Note that =taxy-magit-section.el= is not installed with the 
=taxy= package by de
 *** Fixes
 
 +  ~taxy-magit-section~'s ~insert-object~ function.
++  ~taxy-fill~ now applies objects to the root taxy if no sub-taxys take them.
 
 ** 0.1
 
diff --git a/taxy.el b/taxy.el
index 19279f7..b6755ac 100644
--- a/taxy.el
+++ b/taxy.el
@@ -70,18 +70,23 @@
 (defun taxy-fill (objects taxy)
   "Fill TAXY with OBJECTS according to its definition."
   (cl-labels ((apply-object (object taxy)
-                            (cl-loop for taxy in (taxy-taxys taxy)
-                                     when (funcall (taxy-predicate taxy) 
object)
-                                     do (progn
-                                          (if (taxy-take taxy)
-                                              (funcall (taxy-take taxy) object 
taxy)
-                                            (if (taxy-taxys taxy)
-                                                (or (apply-object object taxy)
-                                                    (push object (taxy-objects 
taxy)))
-                                              (push object (taxy-objects 
taxy))))
-                                          (setf object (funcall (taxy-then 
taxy) object)))
-                                     unless object return t
-                                     finally return nil)))
+                            (or (cl-loop for taxy in (taxy-taxys taxy)
+                                         when (funcall (taxy-predicate taxy) 
object)
+                                         do (progn
+                                              (if (taxy-take taxy)
+                                                  (funcall (taxy-take taxy) 
object taxy)
+                                                (if (taxy-taxys taxy)
+                                                    (or (apply-object object 
taxy)
+                                                        (push object 
(taxy-objects taxy)))
+                                                  (push object (taxy-objects 
taxy))))
+                                              (setf object (funcall (taxy-then 
taxy) object)))
+                                         unless object return t
+                                         finally return nil)
+                                ;; No sub-taxys took the object: add it to 
this taxy.
+                                (when (funcall (taxy-predicate taxy) object)
+                                  (if (taxy-take taxy)
+                                      (funcall (taxy-take taxy) object taxy)
+                                    (push object (taxy-objects taxy)))))))
     (dolist (object objects taxy)
       (apply-object object taxy))))
 
diff --git a/taxy.info b/taxy.info
index a21f37e..abbb7f6 100644
--- a/taxy.info
+++ b/taxy.info
@@ -823,6 +823,8 @@ File: README.info,  Node: Fixes,  Up: 02-pre
 -----------
 
    • ‘taxy-magit-section’’s ‘insert-object’ function.
+   • ‘taxy-fill’ now applies objects to the root taxy if no sub-taxys
+     take them.
 
 
 File: README.info,  Node: 01,  Prev: 02-pre,  Up: Changelog
@@ -895,11 +897,11 @@ Node: Magit section29575
 Node: Changelog30176
 Node: 02-pre30326
 Node: Fixes30434
-Node: 0130574
-Node: Development30677
-Node: Copyright assignment30883
-Node: Credits31482
-Node: License31672
+Node: 0130666
+Node: Development30769
+Node: Copyright assignment30975
+Node: Credits31574
+Node: License31764
 
 End Tag Table
 



reply via email to

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