Re: [PATCH] test-lib.sh: use printf instead of echo
Jonathan Nieder <jrnieder@gmail.com> writes:
Show 36 quoted lines
> Uwe Storbeck wrote:
>
>> Backslash sequences are interpreted as control characters
>> by the echo command of some shells (e.g. dash).
>
> This has bothered me for a while but never enough to do anything about
> it. Thanks for fixing it.
>
>> Signed-off-by: Uwe Storbeck <uwe@ibr.ch>
>
> Reviewed-by: Jonathan Nieder <jrnieder@gmail.com>
>
> (patch left unsnipped for reference)
>> ---
>> t/test-lib.sh | 4 ++--
>> 1 file changed, 2 insertions(+), 2 deletions(-)
>>
>> diff --git a/t/test-lib.sh b/t/test-lib.sh
>> index 1531c24..8209204 100644
>> --- a/t/test-lib.sh
>> +++ b/t/test-lib.sh
>> @@ -277,7 +277,7 @@ error "Test script did not set test_description."
>>
>> if test "$help" = "t"
>> then
>> - echo "$test_description"
>> + printf '%s\n' "$test_description"
>> exit 0
>> fi
>>
>> @@ -328,7 +328,7 @@ test_failure_ () {
>> test_failure=$(($test_failure + 1))
>> say_color error "not ok $test_count - $1"
>> shift
>> - echo "$@" | sed -e 's/^/# /'
>> + printf '%s\n' "$@" | sed -e 's/^/# /'This is wrong, isn't it? Why do we want one line per item here?
>> test "$immediate" = "" || { GIT_EXIT_OK=t; exit 1; }
>> }
>>