<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>