tbo...@web.de writes:

>
> Reviewed-by: Johannes Schindelin <johannes.schinde...@gmx.de>
> Signed-off-by: Torsten Bögershausen <tbo...@web.de>

I'll flip these and add a helped-by to credit Eric.

    check-non-portable-shell.pl: `wc -l` may have leading WS
    
    Test scripts count number of lines in an output and check it againt
    its expectation.  fb3340a6 ("test-lib: introduce test_line_count to
    measure files", 2010-10-31) introduced a helper to show a failure in
    such a test in a more readable way than comparing `wc -l` output with
    a number.
    
    Besides, on some platforms, "$(wc -l <file)" is padded with leading
    whitespace on the left, so
    
            test "$(wc -l <file)" = 4
    
    would not work (most notably on macosX); the users of test_line_count
    helper would not suffer from such a portability glitch.
    
    Add a check in check-non-portable-shell.pl to find '"' between
    `wc -l` and '=' and hint the user about test_line_count().
    
    Signed-off-by: Torsten Bögershausen <tbo...@web.de>
    Reviewed-by: Johannes Schindelin <johannes.schinde...@gmx.de>
    Helped-by: Eric Sunshine <sunsh...@sunshineco.com>
    Signed-off-by: Junio C Hamano <gits...@pobox.com>

> ---
>  t/check-non-portable-shell.pl | 1 +
>  1 file changed, 1 insertion(+)
>
> diff --git a/t/check-non-portable-shell.pl b/t/check-non-portable-shell.pl
> index 03dc9d285..e07f02843 100755
>
> Use () around the hint.
> Thanks to Eric for the sharp eyes.
>
> --- a/t/check-non-portable-shell.pl
> +++ b/t/check-non-portable-shell.pl

Don't try to apply this patch to your tree yourself ;-)

> @@ -21,6 +21,7 @@ while (<>) {
>       /^\s*declare\s+/ and err 'arrays/declare not portable';
>       /^\s*[^#]\s*which\s/ and err 'which is not portable (please use type)';
>       /\btest\s+[^=]*==/ and err '"test a == b" is not portable (please use 
> =)';
> +     /\bwc -l.*"\s*=/ and err '`"$(wc -l)"` is not portable (please use 
> test_line_count)';
>       /\bexport\s+[A-Za-z0-9_]*=/ and err '"export FOO=bar" is not portable 
> (please use FOO=bar && export FOO)';
>       # this resets our $. for each file
>       close ARGV if eof;

Thanks.  The dq before \s*= is rather cute ;-)

Reply via email to