Subject: Re: [PATCH] t9001: avoid not portable '\n' with sed

From: Junio C Hamano <[email-masked]>
Date: Wed, 04 Jun 2014 10:42:46 -0700

Torsten Bögershausen <[email-masked]> writes:

> t9001 used a '\n' in a sed expression to split one line into two lines.
> Some versions of sed simply ignore the '\' before the 'n', treating
> '\n' as 'n'.
>
> As the test already requires perl as a prerequisite, use perl instead of sed.
>
> Signed-off-by: Torsten Bögershausen <[email-masked]>
> ---

Hmph.  I read this in pubs.opengroup.org/onlinepubs/9699919799/utilities/sed.html

    The escape sequence '\n' shall match a <newline> embedded in the
    pattern space.

so it may be better to be a bit more explicit in the log message to
say whose implementation has this issue to warn people.

>  t/t9001-send-email.sh | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/t/t9001-send-email.sh b/t/t9001-send-email.sh
> index 64d9434..2bf48d1 100755
> --- a/t/t9001-send-email.sh
> +++ b/t/t9001-send-email.sh
> @@ -1342,7 +1342,7 @@ test_cover_addresses () {
>  	git format-patch --cover-letter -2 -o outdir &&
>  	cover=`echo outdir/0000-*.patch` &&
>  	mv $cover cover-to-edit.patch &&
> -	sed "s/^From:/$header: [email-masked]\nFrom:/" cover-to-edit.patch >"$cover" &&
> +	"$PERL_PATH" -pe "s/^From:/$header: extra\@address.com\nFrom:/" cover-to-edit.patch | tr Q "$LF" >"$cover" &&

We have a shell function "perl" in test-lib-function.sh these days
so that you do not have to write "$PERL_PATH" yourself in tests ;-)

>  	git send-email \
>  	  --force \
>  	  --from="Example <[email-masked]>" \

Thanks.