<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/b75c46478f2907b73c8cd8f06dedd37465c814ce">https://github.com/macports/macports-base/commit/b75c46478f2907b73c8cd8f06dedd37465c814ce</a></p>
<pre style="white-space: pre; background: #F8F8F8"><span style='display:block; white-space:pre;color:#808000;'>commit b75c46478f2907b73c8cd8f06dedd37465c814ce
</span>Author: Joshua Root <jmr@macports.org>
AuthorDate: Sun Aug 28 09:12:24 2022 +1000

<span style='display:block; white-space:pre;color:#404040;'>    Fix ln bug
</span><span style='display:block; white-space:pre;color:#404040;'>    
</span><span style='display:block; white-space:pre;color:#404040;'>    Linking more than 2 files into a target directory errored.
</span>---
 src/port1.0/portutil.tcl | 17 +++++++++++++----
 1 file changed, 13 insertions(+), 4 deletions(-)

<span style='display:block; white-space:pre;color:#808080;'>diff --git a/src/port1.0/portutil.tcl b/src/port1.0/portutil.tcl
</span><span style='display:block; white-space:pre;color:#808080;'>index b710253f..9697dca6 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/src/port1.0/portutil.tcl
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/src/port1.0/portutil.tcl
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1273,12 +1273,21 @@ proc ln {args} {
</span>         set target [lindex $args end]
     }
 
<span style='display:block; white-space:pre;background:#e0ffe0;'>+    set target_dir 0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    set append_path 0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    if {[file isdirectory $target]} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        set target_dir 1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        if {[file type $target] ne "link" || ![info exists options(h)]} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            set append_path 1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span>     foreach file $files {
         if {[file isdirectory $file] && ![info exists options(s)]} {
             return -code error "ln: $file: Is a directory"
         }
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-        if {[file isdirectory $target] && ([file type $target] ne "link" || ![info exists options(h)])} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        if {$append_path} {
</span>             set linktarget [file join $target [file tail $file]]
         } else {
             set linktarget $target
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1292,10 +1301,10 @@ proc ln {args} {
</span>             }
         }
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-        if {[llength $files] > 2} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-            if {![file exists $linktarget]} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        if {[llength $files] > 1} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            if {!$append_path && ![file exists $linktarget]} {
</span>                 return -code error "ln: $linktarget: No such file or directory"
<span style='display:block; white-space:pre;background:#ffe0e0;'>-            } elseif {![file isdirectory $target]} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            } elseif {!$target_dir} {
</span>                 # this error isn't strictly what BSD ln gives, but I think it's more useful
                 return -code error "ln: $target: Not a directory"
             }
</pre><pre style='margin:0'>

</pre>