diff options
author | Peter Korsgaard <jacmet@sunsite.dk> | 2010-08-25 16:07:44 +0200 |
---|---|---|
committer | Peter Korsgaard <jacmet@sunsite.dk> | 2010-08-25 16:35:21 +0200 |
commit | 9ed8308d58e931ca1d34e27b2b54d7ac70d7fe89 (patch) | |
tree | 95ba2673f0d40742d8aa078e3a38edb6ea8831d7 /package/busybox/busybox-1.17.1/busybox-1.17.1-grep.patch | |
parent | 2e7ab32c97a27423d64214aa21f3c5c999a7f87a (diff) | |
download | buildroot-novena-9ed8308d58e931ca1d34e27b2b54d7ac70d7fe89.tar.gz buildroot-novena-9ed8308d58e931ca1d34e27b2b54d7ac70d7fe89.zip |
busybox: additional 1.17.1 fixes
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
Diffstat (limited to 'package/busybox/busybox-1.17.1/busybox-1.17.1-grep.patch')
-rw-r--r-- | package/busybox/busybox-1.17.1/busybox-1.17.1-grep.patch | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/package/busybox/busybox-1.17.1/busybox-1.17.1-grep.patch b/package/busybox/busybox-1.17.1/busybox-1.17.1-grep.patch new file mode 100644 index 000000000..f8fc25d3f --- /dev/null +++ b/package/busybox/busybox-1.17.1/busybox-1.17.1-grep.patch @@ -0,0 +1,39 @@ +diff -urpN busybox-1.17.1/findutils/grep.c busybox-1.17.1-grep/findutils/grep.c +--- busybox-1.17.1/findutils/grep.c 2010-07-06 04:25:54.000000000 +0200 ++++ busybox-1.17.1-grep/findutils/grep.c 2010-08-23 02:37:08.000000000 +0200 +@@ -461,15 +461,19 @@ static int grep_file(FILE *file) + if (found) + print_line(gl->pattern, strlen(gl->pattern), linenum, ':'); + } else while (1) { ++ unsigned start = gl->matched_range.rm_so; + unsigned end = gl->matched_range.rm_eo; ++ unsigned len = end - start; + char old = line[end]; + line[end] = '\0'; +- print_line(line + gl->matched_range.rm_so, +- end - gl->matched_range.rm_so, +- linenum, ':'); ++ /* Empty match is not printed: try "echo test | grep -o ''" */ ++ if (len != 0) ++ print_line(line + start, len, linenum, ':'); + if (old == '\0') + break; + line[end] = old; ++ if (len == 0) ++ end++; + #if !ENABLE_EXTRA_COMPAT + if (regexec(&gl->compiled_regex, line + end, + 1, &gl->matched_range, REG_NOTBOL) != 0) +diff -urpN busybox-1.17.1/testsuite/grep.tests busybox-1.17.1-grep/testsuite/grep.tests +--- busybox-1.17.1/testsuite/grep.tests 2010-07-06 04:25:54.000000000 +0200 ++++ busybox-1.17.1-grep/testsuite/grep.tests 2010-08-23 02:37:08.000000000 +0200 +@@ -98,5 +98,9 @@ testing "grep -o does not loop forever" + 'grep -o "[^/]*$"' \ + "test\n" \ + "" "/var/test\n" ++testing "grep -o does not loop forever on zero-length match" \ ++ 'grep -o "" | head -n1' \ ++ "" \ ++ "" "test\n" + + exit $FAILCOUNT |