test-lint: only use only sed [-n] [-e command] [-f command_file]
commite62e225ffb589e59c4f64d90b0a393aa6a0a5ace
authorTorsten Bögershausen <tboegi@web.de>
Sun, 20 Jan 2019 07:53:50 +0000 (20 08:53 +0100)
committerJunio C Hamano <gitster@pobox.com>
Mon, 28 Jan 2019 19:25:16 +0000 (28 11:25 -0800)
tree156f9146780713c27472873ee8d0e7e68714b6a1
parent0d0ac3826a3bbb9247e39e12623bbcfdd722f24c
test-lint: only use only sed [-n] [-e command] [-f command_file]

From `man sed` (on a Mac OS X box):
The -E, -a and -i options are non-standard FreeBSD extensions and may not be available
on other operating systems.

From `man sed` on a Linux box:
REGULAR EXPRESSIONS
       POSIX.2 BREs should be supported, but they aren't completely because of
       performance problems.  The \n sequence in a regular expression matches the newline
       character,  and  similarly  for \a, \t, and other sequences.
       The -E option switches to using extended regular expressions instead; the -E option
       has been supported for years by GNU sed, and is now included in POSIX.

Well, there are still a lot of systems out there, which don't support it.
Beside that, IEEE Std 1003.1TM-2017, see
http://pubs.opengroup.org/onlinepubs/9699919799/
does not mention -E either.

To be on the safe side, don't allow -E (or -r, which is GNU).
Change check-non-portable-shell.pl to only accept the portable options:
sed [-n] [-e command] [-f command_file]

Reported-by: SZEDER Gábor <szeder.dev@gmail.com>
Helped-by: Eric Sunshine <sunshine@sunshineco.com>
Helped-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
Signed-off-by: Torsten Bögershausen <tboegi@web.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
t/check-non-portable-shell.pl