<pre style='margin:0'>
Joshua Root (jmroot) pushed a commit to branch master
in repository macports-contrib.
</pre>
<p><a href="https://github.com/macports/macports-contrib/commit/b8644b0bdf55493def333eed5d163db2f5b4c878">https://github.com/macports/macports-contrib/commit/b8644b0bdf55493def333eed5d163db2f5b4c878</a></p>
<pre style="white-space: pre; background: #F8F8F8"><span style='display:block; white-space:pre;color:#808000;'>commit b8644b0bdf55493def333eed5d163db2f5b4c878
</span>Author: Joshua Root <jmr@macports.org>
AuthorDate: Mon May 17 13:52:21 2021 +1000
<span style='display:block; white-space:pre;color:#404040;'> restore_ports.tcl: handle MacPorts 2.7 output
</span>---
restore_ports/restore_ports.tcl | 15 +++++++++++++--
1 file changed, 13 insertions(+), 2 deletions(-)
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/restore_ports/restore_ports.tcl b/restore_ports/restore_ports.tcl
</span><span style='display:block; white-space:pre;color:#808080;'>index f5d0514..37a6e1f 100755
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/restore_ports/restore_ports.tcl
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/restore_ports/restore_ports.tcl
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -55,13 +55,24 @@ proc sort_ports {portList} {
</span> array set port_in_list {}
set newList [list]
<span style='display:block; white-space:pre;background:#e0ffe0;'>+ set search_str requested_variants='
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ set search_str_len [string length $search_str]
</span> foreach port $portList {
set name [lindex $port 0]
#ui_msg "name = $name"
set version [lindex $port 1]
<span style='display:block; white-space:pre;background:#e0ffe0;'>+ set remaining [lrange $port 2 end]
</span> set variants ""
<span style='display:block; white-space:pre;background:#ffe0e0;'>- if {[regexp {^@([^+]+?)(_(\d+)(([-+][^-+]+)*))?$} $version - - - - variantstr] && [info exists variantstr]} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ set match 0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ set index [lsearch $remaining ${search_str}*]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if {$index >= 0} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ set variantstr [string range [lindex $remaining $index] $search_str_len end-1]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ set match 1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ } else {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ set match [regexp {^@([^+]+?)(_(\d+)(([-+][^-+]+)*))?$} $version - - - - variantstr]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if {$match && [info exists variantstr]} {
</span> while 1 {
set nextplus [string last + $variantstr]
set nextminus [string last - $variantstr]
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -82,7 +93,7 @@ proc sort_ports {portList} {
</span> }
#ui_msg "variants = $variants"
set active 0
<span style='display:block; white-space:pre;background:#ffe0e0;'>- if {[llength $port] > 2 && [lindex $port 2] == "(active)"} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if {[llength $remaining] > 0 && [lindex $remaining 0] == "(active)"} {
</span> set active 1
}
#ui_msg "active = $active"
</pre><pre style='margin:0'>
</pre>