aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--range-diff.c7
-rwxr-xr-xt/t3206-range-diff.sh6
2 files changed, 7 insertions, 6 deletions
diff --git a/range-diff.c b/range-diff.c
index 784fac301b..a5202d8b6c 100644
--- a/range-diff.c
+++ b/range-diff.c
@@ -119,9 +119,10 @@ static int read_patches(const char *range, struct string_list *list)
strbuf_addch(&buf, '\n');
}
continue;
- } else if (starts_with(line, "@@ "))
- strbuf_addstr(&buf, "@@");
- else if (!line[0] || starts_with(line, "index "))
+ } else if (skip_prefix(line, "@@ ", &p)) {
+ p = strstr(p, "@@");
+ strbuf_addstr(&buf, p ? p : "@@");
+ } else if (!line[0] || starts_with(line, "index "))
/*
* A completely blank (not ' \n', which is context)
* line is not valid in a diff. We skip it
diff --git a/t/t3206-range-diff.sh b/t/t3206-range-diff.sh
index 048feaf6dd..aebd4e3693 100755
--- a/t/t3206-range-diff.sh
+++ b/t/t3206-range-diff.sh
@@ -110,7 +110,7 @@ test_expect_success 'changed commit' '
14
4: a63e992 ! 4: d966c5c s/12/B/
@@ -8,7 +8,7 @@
- @@
+ @@ A
9
10
- B
@@ -169,7 +169,7 @@ test_expect_success 'changed commit with sm config' '
14
4: a63e992 ! 4: d966c5c s/12/B/
@@ -8,7 +8,7 @@
- @@
+ @@ A
9
10
- B
@@ -231,7 +231,7 @@ test_expect_success 'dual-coloring' '
: 14<RESET>
:<RED>4: d966c5c <RESET><YELLOW>!<RESET><GREEN> 4: 8add5f1<RESET><YELLOW> s/12/B/<RESET>
: <REVERSE><CYAN>@@ -8,7 +8,7 @@<RESET>
- : <CYAN> @@<RESET>
+ : <CYAN> @@ A<RESET>
: 9<RESET>
: 10<RESET>
: <REVERSE><RED>-<RESET><FAINT> BB<RESET>