commit 66ac9466852d11e968f8fd2ad6ffc7386cee49e1

gotest: avoid using echo inside $()
    
    The handling of newlines is not portable between bash and ksh.
    
    Reviewed-on: https://go-review.googlesource.com/c/164597

From-SVN: r269298
This commit is contained in:
Ian Lance Taylor 2019-03-01 01:03:54 +00:00
parent 1e15758224
commit 5b2eaa1170
2 changed files with 10 additions and 6 deletions

View File

@ -1,4 +1,4 @@
08f1c400ec95d70a5cf5a08b1600fa5445e42361
66ac9466852d11e968f8fd2ad6ffc7386cee49e1
The first line of this file holds the git revision number of the last
merge done from the gofrontend repository.

View File

@ -619,21 +619,25 @@ symtogo() {
# Turn pairs of spaces into " \x20", because $() will
# drop duplicate spaces.
# Drop trailing spaces, and turn newlines into \n.
output="$(sed '1 s/\([Uu]nordered \)\?[Oo]utput:[ ]*//' < example.txt |
# Remove leading and trailing \n.
sed '1 s/\([Uu]nordered \)\?[Oo]utput:[ ]*//' < example.txt |
sed -e 's/\\/\\\\/g' \
-e 's/"/\\"/g' \
-e 's/ /\\t/g' \
-e 's/ / \\x20/g' \
-e 's/[ ]*$/\\n/g' |
tr -d '\n')"
# Remove leading and trailing \n.
output="$(echo "$output" | sed -e 's/^\(\\n\)*//' -e 's/\(\\n\)*$//')"
tr -d '\n' |
sed -e 's/^\(\\n\)*//' \
-e 's/\(\\n\)*$//' > example2.txt
hasoutput=true
rm -f example.txt
break
done
if test x$hasoutput = xtrue; then
echo ' {"'$n'", '$j', "'"$output"'", '$unordered'},'
echo ' {"'$n'", '$j','
sed -e 's/^/ "/' -e 's/$/", /' < example2.txt
echo $unordered'},'
rm -f example2.txt
fi
done
echo '}'