t9001 used a '\n' in a sed expression to split one line into two lines, but the usage of '\n' in the "replacement string" is not portable.
The '\n' can be used to match a newline in the "pattern space", but otherwise the meaning of '\n' is unspecified in POSIX.
- Gnu versions of sed will treat '\n' as a newline character. - Other versions of sed (like /usr/bin/sed under Mac OS X) simply ignore the '\' before the 'n', treating '\n' as 'n'.
For reference see: pubs.opengroup.org/onlinepubs/9699919799/utilities/sed.html http://www.gnu.org/software/sed/manual/sed.html
As the test already requires perl as a prerequisite, use perl instead of sed.
Signed-off-by: Torsten Bögershausen <tboegi@web.de> --- Sending a V3 patch seems "spammish", but after re-reading all the comments I think that the commit msg should point out the difference between POSIX sed and gnu sed somewhat better.
t/t9001-send-email.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
Show changes to t/t9001-send-email.sh +1 −1
diff --git a/t/t9001-send-email.sh b/t/t9001-send-email.sh index 64d9434..19a3ced 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: extra@address.com\nFrom:/" cover-to-edit.patch >"$cover" && + perl -pe "s/^From:/$header: extra\@address.com\nFrom:/" cover-to-edit.patch >"$cover" && git send-email \ --force \ --from="Example <nobody@example.com>" \
-- 2.0.0.553.ged01b91