<pre style='margin:0'>
Ryan Schmidt (ryandesign) pushed a commit to branch master
in repository macports-base.
</pre>
<p><a href="https://github.com/macports/macports-base/commit/00dd9ed25d3365581670e2e963c66cc161d1b986">https://github.com/macports/macports-base/commit/00dd9ed25d3365581670e2e963c66cc161d1b986</a></p>
<pre style="white-space: pre; background: #F8F8F8">The following commit(s) were added to refs/heads/master by this push:
<span style='display:block; white-space:pre;color:#404040;'> new 00dd9ed2 Always pass fs-traverse a list of paths
</span>00dd9ed2 is described below
<span style='display:block; white-space:pre;color:#808000;'>commit 00dd9ed25d3365581670e2e963c66cc161d1b986
</span>Author: Ryan Schmidt <ryandesign@macports.org>
AuthorDate: Sun Dec 6 22:23:41 2020 -0600
<span style='display:block; white-space:pre;color:#404040;'> Always pass fs-traverse a list of paths
</span><span style='display:block; white-space:pre;color:#404040;'>
</span><span style='display:block; white-space:pre;color:#404040;'> fs-traverse takes a list of paths to traverse. Passing just a path works
</span><span style='display:block; white-space:pre;color:#404040;'> if the path doesn't contain any whitespace but fails if it does, so pass
</span><span style='display:block; white-space:pre;color:#404040;'> the path in a list which always works.
</span>---
src/pextlib1.0/tests/fs-traverse.tcl | 28 ++++++++++++++--------------
src/port1.0/portconfigure.tcl | 2 +-
2 files changed, 15 insertions(+), 15 deletions(-)
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/src/pextlib1.0/tests/fs-traverse.tcl b/src/pextlib1.0/tests/fs-traverse.tcl
</span><span style='display:block; white-space:pre;color:#808080;'>index c50c8f24..41b25be9 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/src/pextlib1.0/tests/fs-traverse.tcl
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/src/pextlib1.0/tests/fs-traverse.tcl
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -23,28 +23,28 @@ proc main {pextlibname} {
</span> set result [catch {
# Basic fs-traverse test
set output [list]
<span style='display:block; white-space:pre;background:#ffe0e0;'>- fs-traverse file $root {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ fs-traverse file [list $root] {
</span> lappend output $file
}
check_output $output $trees(1)
# Test starting with a symlink
set output [list]
<span style='display:block; white-space:pre;background:#ffe0e0;'>- fs-traverse file $root/a/c/a {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ fs-traverse file [list $root/a/c/a] {
</span> lappend output $file
}
check_output $output $trees(sub1)
# Test starting with a slash-ended symlink
set output [list]
<span style='display:block; white-space:pre;background:#ffe0e0;'>- fs-traverse file $root/a/c/a/ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ fs-traverse file [list $root/a/c/a/] {
</span> lappend output [string map {// /} $file]
}
check_output $output $trees(sub2)
# Test -depth
set output [list]
<span style='display:block; white-space:pre;background:#ffe0e0;'>- fs-traverse -depth file $root {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ fs-traverse -depth file [list $root] {
</span> lappend output $file
}
check_output $output $trees(2)
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -64,12 +64,12 @@ proc main {pextlibname} {
</span> check_output $output $trees(4)
# Error raised for traversing directory that does not exist
<span style='display:block; white-space:pre;background:#ffe0e0;'>- if {![catch {fs-traverse file $root/does_not_exist {}}]} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if {![catch {fs-traverse file [list $root/does_not_exist] {}}]} {
</span> error "fs-traverse did not raise an error for a missing directory"
}
# Test -ignoreErrors
<span style='display:block; white-space:pre;background:#ffe0e0;'>- if {[catch {fs-traverse -ignoreErrors file $root/does_not_exist {}}]} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if {[catch {fs-traverse -ignoreErrors file [list $root/does_not_exist] {}}]} {
</span> error "fs-traverse raised an error despite -ignoreErrors"
}
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -86,7 +86,7 @@ proc main {pextlibname} {
</span>
# Test skipping parts of the tree
set output [list]
<span style='display:block; white-space:pre;background:#ffe0e0;'>- fs-traverse file $root {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ fs-traverse file [list $root] {
</span> if {[string match "*/a" $file]} {
continue
}
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -96,14 +96,14 @@ proc main {pextlibname} {
</span>
# Test -tails option
set output [list]
<span style='display:block; white-space:pre;background:#ffe0e0;'>- fs-traverse -tails file $root {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ fs-traverse -tails file [list $root] {
</span> lappend output $file
}
check_output $output $trees(6) $root
# Test -tails option with trailing slash
set output [list]
<span style='display:block; white-space:pre;background:#ffe0e0;'>- fs-traverse -tails file $root/ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ fs-traverse -tails file [list $root/] {
</span> lappend output $file
}
check_output $output $trees(6) $root
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -118,7 +118,7 @@ proc main {pextlibname} {
</span>
# Test cutting the traversal short
set output [list]
<span style='display:block; white-space:pre;background:#ffe0e0;'>- fs-traverse file $root {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ fs-traverse file [list $root] {
</span> lappend output $file
if {[file type $file] eq "link"} {
break
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -129,7 +129,7 @@ proc main {pextlibname} {
</span> # It should error out
if {![catch {
array set aryvar {}
<span style='display:block; white-space:pre;background:#ffe0e0;'>- fs-traverse aryvar $root {}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ fs-traverse aryvar [list $root] {}
</span> }]} {
error "fs-traverse did not error when setting the variable"
}
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -137,7 +137,7 @@ proc main {pextlibname} {
</span> # Same test with -ignoreErrors
if {[catch {
array set aryvar {}
<span style='display:block; white-space:pre;background:#ffe0e0;'>- fs-traverse -ignoreErrors aryvar $root {}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ fs-traverse -ignoreErrors aryvar [list $root] {}
</span> }]} {
error "fs-traverse errored out when setting the variable despite -ignoreErrors"
}
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -154,7 +154,7 @@ proc main {pextlibname} {
</span>
# Test wacky variable name called -depth
set output [list]
<span style='display:block; white-space:pre;background:#ffe0e0;'>- fs-traverse -- -depth $root {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ fs-traverse -- -depth [list $root] {
</span> lappend output ${-depth}
}
check_output $output $trees(1)
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -162,7 +162,7 @@ proc main {pextlibname} {
</span> # NOTE: This should be the last test performed, as it modifies the file tree
# Test to make sure deleting files during traversal works as expected
set output [list]
<span style='display:block; white-space:pre;background:#ffe0e0;'>- fs-traverse file $root {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ fs-traverse file [list $root] {
</span> if {[string match "*/a" $file]} {
# use /bin/rm because on 10.3 file delete doesn't work on directories properly
exec -ignorestderr /bin/rm -rf $file
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/src/port1.0/portconfigure.tcl b/src/port1.0/portconfigure.tcl
</span><span style='display:block; white-space:pre;color:#808080;'>index 86d033ec..56bfaa0f 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/src/port1.0/portconfigure.tcl
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/src/port1.0/portconfigure.tcl
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1739,7 +1739,7 @@ proc portconfigure::check_implicit_function_declarations {} {
</span> # Map from function name to config.log that used it without declaration
array set undeclared_functions {}
<span style='display:block; white-space:pre;background:#ffe0e0;'>- fs-traverse -tails file ${configure.dir} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ fs-traverse -tails file [list ${configure.dir}] {
</span> if {[file tail $file] eq "config.log" && [file isfile [file join ${configure.dir} $file]]} {
# We could do the searching ourselves, but using a tool optimized for this purpose is likely much faster
# than using Tcl.
</pre><pre style='margin:0'>
</pre>