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

</pre>
<p><a href="https://github.com/macports/macports-base/commit/1047d804aa5f1d328bd0e4afac920a224dd07fc4">https://github.com/macports/macports-base/commit/1047d804aa5f1d328bd0e4afac920a224dd07fc4</a></p>
<pre style="white-space: pre; background: #F8F8F8"><span style='display:block; white-space:pre;color:#808000;'>commit 1047d804aa5f1d328bd0e4afac920a224dd07fc4
</span>Author: Joshua Root <jmr@macports.org>
AuthorDate: Tue Feb 6 14:49:57 2024 +1100

<span style='display:block; white-space:pre;color:#404040;'>    Adopt dict in action_target
</span>---
 src/port/port.tcl | 37 +++++++++++++------------------------
 1 file changed, 13 insertions(+), 24 deletions(-)

<span style='display:block; white-space:pre;color:#808080;'>diff --git a/src/port/port.tcl b/src/port/port.tcl
</span><span style='display:block; white-space:pre;color:#808080;'>index d975fb6ff..9940533cf 100755
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/src/port/port.tcl
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/src/port/port.tcl
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -3782,7 +3782,6 @@ proc action_sync { action portlist opts } {
</span> 
 
 proc action_target { action portlist opts } {
<span style='display:block; white-space:pre;background:#ffe0e0;'>-    global global_variations
</span>     set status 0
     if {[require_portlist portlist]} {
         return 1
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -3791,7 +3790,6 @@ proc action_target { action portlist opts } {
</span>         return 1
     }
     foreachport $portlist {
<span style='display:block; white-space:pre;background:#ffe0e0;'>-        array unset portinfo
</span>         # If we have a url, use that, since it's most specific
         # otherwise try to map the portname to a url
         if {$porturl eq ""} {
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -3809,8 +3807,8 @@ proc action_target { action portlist opts } {
</span>                     break_softcontinue "Port $portname not found" 1 status
                 }
             }
<span style='display:block; white-space:pre;background:#ffe0e0;'>-            array set portinfo [lindex $res 1]
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-            set porturl $portinfo(porturl)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            lassign $res portname portinfo
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            set porturl [dict get $portinfo porturl]
</span>         }
 
         # If version was specified, it can be a version glob for use
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -3819,9 +3817,9 @@ proc action_target { action portlist opts } {
</span>         if {[string length $portversion]} {
             if {$action eq "clean"} {
                 dict set options ports_version_glob $portversion
<span style='display:block; white-space:pre;background:#ffe0e0;'>-            } elseif {[dict exists $portmetadata explicit_version] && [info exists portinfo(version)] \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                    && $portversion ne "$portinfo(version)_$portinfo(revision)" && $portversion ne $portinfo(version)} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                break_softcontinue "$portname version $portversion is not available (current version is $portinfo(version)_$portinfo(revision))" 1 status
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            } elseif {[dict exists $portmetadata explicit_version] && [dict exists $portinfo version] \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    && $portversion ne "[dict get $portinfo version]_[dict get $portinfo revision]" && $portversion ne [dict get $portinfo version]} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                break_softcontinue "$portname version $portversion is not available (current version is [dict get $portinfo version]_[dict get $portinfo revision])" 1 status
</span>             }
         }
 
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -3832,27 +3830,22 @@ proc action_target { action portlist opts } {
</span> 
         # Add any global_variations to the variations
         # specified for the port
<span style='display:block; white-space:pre;background:#ffe0e0;'>-        foreach { variation value } [array get global_variations] {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-            if {![dict exists $requested_variations $variation]} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                dict set requested_variations $variation $value
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-            }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        set requested_variations [dict merge [array get ::global_variations] $requested_variations]
</span> 
         if {$action eq "install"} {
<span style='display:block; white-space:pre;background:#ffe0e0;'>-            if {[info exists portinfo(replaced_by)] && ![dict exists $options ports_install_no-replace]} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                ui_notice "$portname is replaced by $portinfo(replaced_by)"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                set portname $portinfo(replaced_by)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                array unset portinfo
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            if {[dict exists $portinfo replaced_by] && ![dict exists $options ports_install_no-replace]} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                ui_notice "$portname is replaced by [dict get $portinfo replaced_by]"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                set portname [dict get $portinfo replaced_by]
</span>                 if {[catch {mportlookup $portname} result]} {
                     ui_debug $::errorInfo
                     break_softcontinue "lookup of portname $portname failed: $result" 1 status
                 } elseif {[llength $result] < 2} {
                     break_softcontinue "Port $portname not found" 1 status
                 }
<span style='display:block; white-space:pre;background:#ffe0e0;'>-                array set portinfo [lindex $result 1]
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                set porturl $portinfo(porturl)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                lassign $result portname portinfo
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                set porturl [dict get $portinfo porturl]
</span>             }
<span style='display:block; white-space:pre;background:#ffe0e0;'>-            if {[info exists portinfo(known_fail)] && [string is true -strict $portinfo(known_fail)]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            if {[dict exists $portinfo known_fail] && [string is true -strict [dict get $portinfo known_fail]]
</span>                 && ![dict exists $options ports_install_allow-failing]} {
                 if {[info exists macports::ui_options(questions_yesno)]} {
                     set retvalue [$macports::ui_options(questions_yesno) "$portname is known to fail." "KnownFail" {} {n} 0 "Try to install anyway?"]
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -3878,11 +3871,7 @@ proc action_target { action portlist opts } {
</span>             set target $action
         }
         if {![dict exists $options subport]} {
<span style='display:block; white-space:pre;background:#ffe0e0;'>-            if {[info exists portinfo(name)]} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                dict set options subport $portinfo(name)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-            } else {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                dict set options subport $portname
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-            }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            dict set options subport $portname
</span>         }
         if {[catch {set workername [mportopen $porturl $options $requested_variations]} result]} {
             ui_debug $::errorInfo
</pre><pre style='margin:0'>

</pre>