Switch grep from non-portable BRE to portable ERE
PATCH 1/1 Switch grep from non-portable BRE to portable ERE
This makes the grep usage fully POSIX compliant.
--- mergetools/vimdiff | 2 +- t/t1404-update-ref-errors.sh | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-)
mergetools/vimdiff +1 -1
@@ -325,7 +325,7 @@ gen_cmd () { fi # If this is a single window diff with all the buffers - if ! echo "$tab" | grep ",\|/" >/dev/null + if ! echo "$tab" | grep -E ",|/" >/dev/null then CMD="$CMD | silent execute 'bufdo diffthis'" fi
t/t1404-update-ref-errors.sh +1 -1
@@ -100,7 +100,7 @@ df_test() { printf "%s\n" "delete $delname" "create $addname $D" fi >commands && test_must_fail git update-ref --stdin <commands 2>output.err && - grep "fatal:\( cannot lock ref $SQ$addname$SQ:\)\? $SQ$delref$SQ exists; cannot create $SQ$addref$SQ" output.err && + grep -E "fatal:( cannot lock ref $SQ$addname$SQ:)? $SQ$delref$SQ exists; cannot create $SQ$addref$SQ" output.err && printf "%s\n" "$C $delref" >expected-refs && git for-each-ref --format="%(objectname) %(refname)" $prefix/r >actual-refs && test_cmp expected-refs actual-refs
Quoted 3 lines · Marcel Telka
Subject: Re: [PATCH] Switch grep from non-portable BRE to portable ERE
This makes the grep usage fully POSIX compliant.
May want to mention that using backslash to invoke ERE feature in BRE is a GNU extension?
Thanks for this and other portability patches. You are porting to a new platform, I presume, where either nobody else ported to before or those who ported did not bother reporting test breakages to us?
Quoted 32 lines
Signed-off-by Marcel Telka <[email protected]>--- mergetools/vimdiff | 2 +- t/t1404-update-ref-errors.sh | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-)mergetools/vimdiff +1
-1@@ -325,7 +325,7 @@ gen_cmd () { fi # If this is a single window diff with all the buffers - if ! echo "$tab" | grep ",\|/" >/dev/null + if ! echo "$tab" | grep -E ",|/" >/dev/null then CMD="$CMD | silent execute 'bufdo diffthis'" fit/t1404-update-ref-errors.sh +1
-1@@ -100,7 +100,7 @@ df_test() { printf "%s\n" "delete $delname" "create $addname $D" fi >commands && test_must_fail git update-ref --stdin <commands 2>output.err && - grep "fatal:\( cannot lock ref $SQ$addname$SQ:\)\? $SQ$delref$SQ exists; cannot create $SQ$addref$SQ" output.err && + grep -E "fatal:( cannot lock ref $SQ$addname$SQ:)? $SQ$delref$SQ exists; cannot create $SQ$addref$SQ" output.err && printf "%s\n" "$C $delref" >expected-refs && git for-each-ref --format="%(objectname) %(refname)" $prefix/r >actual-refs && test_cmp expected-refs actual-refs
Quoted 3 lines · Junio C Hamano
Thanks for this and other portability patches. You are porting to a new platform, I presume, where either nobody else ported to before or those who ported did not bother reporting test breakages to us?
Unfortunately, the latter is the case. I'm doing this for OpenIndiana (an illumos distro, Solaris descendant) and the testing status before I started the work was:
failed test(s): t0211 t0600 t1404 t1700 t2501 t3404 t4150 t4202 t7609 t9001 t9118 t9210 t9902
fixed 1
success 29241
failed 38 broken 269 total 30158
Now all tests pass.
The work uncovered few bugs in illumos as well. For example, this one helped to find issues with grep's null RE cases in git tests:
https://www.illumos.org/issues/16561
Thank you.
Signature · 4 lines
+-------------------------------------------+ | Marcel Telka e-mail: [email protected] | | homepage: http://telka.sk/ | +-------------------------------------------+
Quoted 7 lines · Junio C Hamano
Quoted 3 lines · Marcel Telka
Subject: Re: [PATCH] Switch grep from non-portable BRE to portable ERE
This makes the grep usage fully POSIX compliant.
May want to mention that using backslash to invoke ERE feature in BRE is a GNU extension?
v2 is flying...
Signature · 4 lines
+-------------------------------------------+ | Marcel Telka e-mail: [email protected] | | homepage: http://telka.sk/ | +-------------------------------------------+