Ignore this version. The immediate followup quotes PERL_PATH. On Mon, Oct 28, 2013 at 9:40 PM, Ben Walton <bdwalton@xxxxxxxxx> wrote: > Solaris' tr (both /usr/bin/ and /usr/xpg4/bin) uses the System V > semantics for tr whereby string1's length is truncated to the length > of string2 if string2 is shorter. The BSD semantics, as used by GNU tr > see string2 padded to the length of string1 using the final character > in string2. POSIX explicitly doesn't specify the correct behavior > here, making both equally valid. > > This difference means that Solaris' native tr implementations produce > different results for tr ":\t\n" "\0" than GNU tr. This breaks a few > tests in t0008-ignores.sh. > > Possible fixes for this are to make string2 be "\0\0\0" or "[\0*]". > > Instead, use perl to perform these transliterations which means we > don't need to worry about the difference at all. Since we're replacing > tr with perl, we also use perl to replace the sed invocations used to > transform the files. > > Replace four identical transforms with a function named > broken_c_unquote. Replace the other two identical transforms with a > fuction named broken_c_unquote_verbose. > > Signed-off-by: Ben Walton <bdwalton@xxxxxxxxx> > --- > t/t0008-ignores.sh | 30 ++++++++++++++++++------------ > 1 file changed, 18 insertions(+), 12 deletions(-) > > diff --git a/t/t0008-ignores.sh b/t/t0008-ignores.sh > index 181513a..45f9396 100755 > --- a/t/t0008-ignores.sh > +++ b/t/t0008-ignores.sh > @@ -37,6 +37,14 @@ test_stderr () { > test_cmp "$HOME/expected-stderr" "$HOME/stderr" > } > > +broken_c_unquote () { > + $PERL_PATH -pe 's/^"//; s/\\//; s/"$//; tr/\n/\0/' "$@" > +} > + > +broken_c_unquote_verbose () { > + $PERL_PATH -pe 's/ "/ /; s/\\//; s/"$//; tr/:\t\n/\0/' "$@" > +} > + > stderr_contains () { > regexp="$1" > if grep "$regexp" "$HOME/stderr" > @@ -606,12 +614,11 @@ cat <<-EOF >expected-verbose > $global_excludes:2:!globaltwo b/globaltwo > EOF > > -sed -e 's/^"//' -e 's/\\//' -e 's/"$//' stdin | \ > - tr "\n" "\0" >stdin0 > -sed -e 's/^"//' -e 's/\\//' -e 's/"$//' expected-default | \ > - tr "\n" "\0" >expected-default0 > -sed -e 's/ "/ /' -e 's/\\//' -e 's/"$//' expected-verbose | \ > - tr ":\t\n" "\0" >expected-verbose0 > +broken_c_unquote stdin >stdin0 > + > +broken_c_unquote expected-default >expected-default0 > + > +broken_c_unquote_verbose expected-verbose >expected-verbose0 > > test_expect_success '--stdin' ' > expect_from_stdin <expected-default && > @@ -692,12 +699,11 @@ EOF > grep -v '^:: ' expected-all >expected-verbose > sed -e 's/.* //' expected-verbose >expected-default > > -sed -e 's/^"//' -e 's/\\//' -e 's/"$//' stdin | \ > - tr "\n" "\0" >stdin0 > -sed -e 's/^"//' -e 's/\\//' -e 's/"$//' expected-default | \ > - tr "\n" "\0" >expected-default0 > -sed -e 's/ "/ /' -e 's/\\//' -e 's/"$//' expected-verbose | \ > - tr ":\t\n" "\0" >expected-verbose0 > +broken_c_unquote stdin >stdin0 > + > +broken_c_unquote expected-default >expected-default0 > + > +broken_c_unquote_verbose expected-verbose >expected-verbose0 > > test_expect_success '--stdin from subdirectory' ' > expect_from_stdin <expected-default && > -- > 1.8.1.2 > -- --------------------------------------------------------------------------------------------------------------------------- Take the risk of thinking for yourself. Much more happiness, truth, beauty and wisdom will come to you that way. -Christopher Hitchens --------------------------------------------------------------------------------------------------------------------------- -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html