<pre style='margin:0'>
Joshua Root (jmroot) pushed a commit to branch master
in repository mpbb.

</pre>
<p><a href="https://github.com/macports/mpbb/commit/2e1395ef0a3c5fed103c6ba8d0f717c572388746">https://github.com/macports/mpbb/commit/2e1395ef0a3c5fed103c6ba8d0f717c572388746</a></p>
<pre style="white-space: pre; background: #F8F8F8"><span style='display:block; white-space:pre;color:#808000;'>commit 2e1395ef0a3c5fed103c6ba8d0f717c572388746
</span>Author: Joshua Root <jmr@macports.org>
AuthorDate: Wed Mar 14 15:44:13 2018 +1100

<span style='display:block; white-space:pre;color:#404040;'>    Various improvements to sorting script
</span><span style='display:block; white-space:pre;color:#404040;'>    
</span><span style='display:block; white-space:pre;color:#404040;'>    Use ni operator instead of lsearch.
</span><span style='display:block; white-space:pre;color:#404040;'>    Normalise all port names to lower case to prevent duplicates.
</span><span style='display:block; white-space:pre;color:#404040;'>    Only check if each port is in the list once.
</span><span style='display:block; white-space:pre;color:#404040;'>    Ensure that subports are only added once.
</span>---
 tools/sort-with-subports.tcl | 40 +++++++++++++++++++++-------------------
 1 file changed, 21 insertions(+), 19 deletions(-)

<span style='display:block; white-space:pre;color:#808080;'>diff --git a/tools/sort-with-subports.tcl b/tools/sort-with-subports.tcl
</span><span style='display:block; white-space:pre;color:#808080;'>index 1d3ba80..eabeeac 100755
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/tools/sort-with-subports.tcl
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/tools/sort-with-subports.tcl
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -49,12 +49,10 @@ proc ui_channels {priority} {
</span> proc process_port_deps {portname portdeps_in portlist_in} {
    upvar $portdeps_in portdeps
    upvar $portlist_in portlist
<span style='display:block; white-space:pre;background:#ffe0e0;'>-   if {[lsearch -exact $portlist $portname] == -1} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-      if {[info exists portdeps($portname)]} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-         foreach portdep $portdeps($portname) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-            if {[lsearch -exact $portlist $portdep] == -1} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-               process_port_deps $portdep portdeps portlist
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-            }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   if {[info exists portdeps($portname)]} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+      foreach portdep $portdeps($portname) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         if {$portdep ni $portlist} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            process_port_deps $portdep portdeps portlist
</span>          }
       }
       lappend portlist $portname
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -71,10 +69,12 @@ array set portdepinfo {}
</span> set todo [list]
 if {[lindex $argv 0] eq "-"} {
     while {[gets stdin line] >= 0} {
<span style='display:block; white-space:pre;background:#ffe0e0;'>-        lappend todo [string trim $line]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        lappend todo [string tolower [string trim $line]]
</span>     }
 } else {
<span style='display:block; white-space:pre;background:#ffe0e0;'>-    set todo $argv
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    foreach p $argv {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        lappend todo [string tolower $p]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    }
</span> }
 # save the ones that the user actually wants to know about
 foreach p $todo {
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -96,32 +96,34 @@ while {$todo ne {}} {
</span>     }
 
     array set portinfo [lindex $result 1]
<span style='display:block; white-space:pre;background:#ffe0e0;'>-    set portname $portinfo(name)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    if {[info exists inputports($portname)] && [info exists portinfo(subports)]} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        foreach subport $portinfo(subports) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-            lappend todo $subport
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-            set outputports($subport) 1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    if {![info exists portdepinfo($p)]} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        if {[info exists inputports($p)] && [info exists portinfo(subports)]} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            foreach subport $portinfo(subports) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                set splower [string tolower $subport]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                lappend todo $splower
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                set outputports($splower) 1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            }
</span>         }
<span style='display:block; white-space:pre;background:#ffe0e0;'>-    }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    if {![info exists portdepinfo($portname)]} {
</span>         set deplist [list]
         foreach depstype $depstypes {
<span style='display:block; white-space:pre;background:#ffe0e0;'>-            if {[info exists portinfo($depstype)] && $portinfo($depstype) != ""} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            if {[info exists portinfo($depstype)] && $portinfo($depstype) ne ""} {
</span>                 foreach onedep $portinfo($depstype) {
<span style='display:block; white-space:pre;background:#ffe0e0;'>-                    set depname [lindex [split [lindex $onedep 0] :] end]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    set depname [string tolower [lindex [split [lindex $onedep 0] :] end]]
</span>                     lappend deplist $depname
                     lappend todo $depname
                 }
             }
         }
<span style='display:block; white-space:pre;background:#ffe0e0;'>-        set portdepinfo($portname) $deplist
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        set portdepinfo($p) $deplist
</span>     }
     array unset portinfo
 }
 
 set portlist [list]
 foreach portname [lsort -dictionary [array names portdepinfo]] {
<span style='display:block; white-space:pre;background:#ffe0e0;'>-   process_port_deps $portname portdepinfo portlist
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   if {$portname ni $portlist} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+      process_port_deps $portname portdepinfo portlist
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   }
</span> }
 
 foreach portname $portlist {
</pre><pre style='margin:0'>

</pre>