<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/5680029c1b089786f249ba2a50d9ffd4280df7a6">https://github.com/macports/macports-base/commit/5680029c1b089786f249ba2a50d9ffd4280df7a6</a></p>
<pre style="white-space: pre; background: #F8F8F8"><span style='display:block; white-space:pre;color:#808000;'>commit 5680029c1b089786f249ba2a50d9ffd4280df7a6
</span>Author: Joshua Root <jmr@macports.org>
AuthorDate: Thu May 8 15:55:50 2025 +1000

<span style='display:block; white-space:pre;color:#404040;'>    fetch_common: factor out code to separate tags
</span>---
 src/port1.0/fetch_common.tcl | 32 ++++++++++++++++++++------------
 1 file changed, 20 insertions(+), 12 deletions(-)

<span style='display:block; white-space:pre;color:#808080;'>diff --git a/src/port1.0/fetch_common.tcl b/src/port1.0/fetch_common.tcl
</span><span style='display:block; white-space:pre;color:#808080;'>index dc6e4654d..d33f58e65 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/src/port1.0/fetch_common.tcl
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/src/port1.0/fetch_common.tcl
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -80,6 +80,24 @@ proc portfetch::assemble_url {site distfile} {
</span>     return "${site}[percent_encode ${distfile}]"
 }
 
<span style='display:block; white-space:pre;background:#e0ffe0;'>+# Given a *_sites entry that possibly has a tag on the end, return a
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# list consisting of the part of the entry preceding the tag, and the
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# tag itself.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+proc portfetch::separate_tag {element} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    # tag will be after the last colon after the
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    # first slash after the ://
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    set lastcolon [string last : $element]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    set aftersep [expr {[string first : $element] + 3}]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    set firstslash [string first / $element $aftersep]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    if {$firstslash != -1 && $firstslash < $lastcolon} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        set tag [string range $element ${lastcolon}+1 end]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        set element [string range $element 0 ${lastcolon}-1]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    } else {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        set tag ""
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    return [list $element $tag]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span> # For a given mirror site type, e.g. "gnu" or "x11", check to see if there's a
 # pre-registered set of sites, and if so, return them.
 proc portfetch::mirror_sites {mirrors tag subdir mirrorfile} {
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -102,21 +120,11 @@ proc portfetch::mirror_sites {mirrors tag subdir mirrorfile} {
</span> 
         # here we have the chance to take a look at tags, that possibly
         # have been assigned in mirror_sites.tcl
<span style='display:block; white-space:pre;background:#ffe0e0;'>-        # tag will be after the last colon after the
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        # first slash after the ://
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        set lastcolon [string last : $element]
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        set aftersep [expr {[string first : $element] + 3}]
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        set firstslash [string first / $element $aftersep]
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        if {$firstslash != -1 && $firstslash < $lastcolon} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-            set mirror_tag [string range $element [expr {$lastcolon + 1}] end]
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-            set element [string range $element 0 [expr {$lastcolon - 1}]]
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        } else {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-            set mirror_tag ""
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        lassign [separate_tag $element] element mirror_tag
</span> 
         # if the URL has $name embedded, kill any mirror_tag that may have been added
         # since a mirror_tag and $name are incompatible
<span style='display:block; white-space:pre;background:#ffe0e0;'>-        if {[regexp $name_re $element]} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        if {$mirror_tag ne "" && [regexp $name_re $element]} {
</span>             set mirror_tag ""
         }
 
</pre><pre style='margin:0'>

</pre>