<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/9313be582b735fd837598ae48ac3caff94824e37">https://github.com/macports/macports-base/commit/9313be582b735fd837598ae48ac3caff94824e37</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 9313be5 Treat command.env as a list
</span>9313be5 is described below
<span style='display:block; white-space:pre;color:#808000;'>commit 9313be582b735fd837598ae48ac3caff94824e37
</span>Author: Joshua Root <jmr@macports.org>
AuthorDate: Tue Mar 19 23:47:34 2019 +1100
<span style='display:block; white-space:pre;color:#404040;'> Treat command.env as a list
</span><span style='display:block; white-space:pre;color:#404040;'>
</span><span style='display:block; white-space:pre;color:#404040;'> The previous behaviour involved a complicated regex, made it very
</span><span style='display:block; white-space:pre;color:#404040;'> difficult to set an environment variable value including quote
</span><span style='display:block; white-space:pre;color:#404040;'> characters, and was responsible for many cases of variables being in
</span><span style='display:block; white-space:pre;color:#404040;'> foo.env but not actually appearing in the environment.
</span>---
src/port1.0/portutil.tcl | 16 ++++++++--------
1 file changed, 8 insertions(+), 8 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 4bf9433..068d3e6 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;'>@@ -820,12 +820,14 @@ proc parse_environment {command} {
</span> global ${command}.env ${command}.env_array
if {[info exists ${command}.env]} {
<span style='display:block; white-space:pre;background:#ffe0e0;'>- # Flatten the environment string.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- set the_environment [join [set ${command}.env]]
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- while {[regexp "^(?: *)(\[^= \]+)=(\"|'|)(\[^\"'\]*?)\\2(?: +|$)(.*)$" ${the_environment} matchVar key delimiter value remaining]} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- set the_environment ${remaining}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- set ${command}.env_array(${key}) ${value}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ foreach assignment [set ${command}.env] {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ set equals_pos [string first = $assignment]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if {$equals_pos == -1} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ui_debug "parse_environment: skipping invalid entry: '$assignment'"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ continue
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ set key [string range $assignment 0 $equals_pos-1]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ set ${command}.env_array(${key}) [string range $assignment $equals_pos+1 end]
</span> }
} else {
array set ${command}.env_array {}
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -839,8 +841,6 @@ proc append_to_environment_value {command key args} {
</span> if {$value eq {}} {
continue
}
<span style='display:block; white-space:pre;background:#ffe0e0;'>- # Parse out any delimiters. Is this even necessary anymore?
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- regexp {^(['"])(.*)\1$} $value -> delim value
</span>
append env_key " $value"
}
</pre><pre style='margin:0'>
</pre>