]> git.ipfire.org Git - thirdparty/git.git/commitdiff
t4061: use POSIX compliant regex(7)
authorĐoàn Trần Công Danh <congdanhqx@gmail.com>
Wed, 25 Mar 2020 15:06:14 +0000 (22:06 +0700)
committerJunio C Hamano <gitster@pobox.com>
Wed, 25 Mar 2020 15:54:37 +0000 (08:54 -0700)
BRE interprets `+` literally, and
`\+` is undefined for POSIX BRE, from:
https://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap09.html#tag_09_03_02

> The interpretation of an ordinary character preceded
> by an unescaped <backslash> ( '\\' ) is undefined, except for:
> - The characters ')', '(', '{', and '}'
> - The digits 1 to 9 inclusive
> - A character inside a bracket expression

This test is failing with busybox sed, the default sed of Alpine Linux

We have 2 options here:

- Using literal `+` because BRE will interpret it as-is, or
- Using character class `[+]` to defend against a sed that expects ERE

ERE-expected sed is theoretical at this point,
but we haven't found it, yet.
And, we may run into other problems with that sed.
Let's go with first option and fix it later if that sed could be found.

Signed-off-by: Đoàn Trần Công Danh <congdanhqx@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
t/t4061-diff-indent.sh

index 2affd7a100996f93839eec682e4d7381e3ac0b2a..0f7a6d97a8b7e23959ef0c0bf7968fd69339283a 100755 (executable)
@@ -17,7 +17,7 @@ compare_diff () {
 # Compare blame output using the expectation for a diff as reference.
 # Only look for the lines coming from non-boundary commits.
 compare_blame () {
-       sed -n -e "1,4d" -e "s/^\+//p" <"$1" >.tmp-1
+       sed -n -e "1,4d" -e "s/^+//p" <"$1" >.tmp-1
        sed -ne "s/^[^^][^)]*) *//p" <"$2" >.tmp-2
        test_cmp .tmp-1 .tmp-2 && rm -f .tmp-1 .tmp-2
 }