diff options
author | Denys Vlasenko <vda.linux@googlemail.com> | 2010-08-23 02:53:58 +0200 |
---|---|---|
committer | Denys Vlasenko <vda.linux@googlemail.com> | 2010-08-23 02:53:58 +0200 |
commit | dc04439450e5929880205d920de3a26409727563 (patch) | |
tree | 5ee9110f0cb3ddd01f2ca6a5d7da87ee4a910443 /findutils | |
parent | 941fce89fa346e06e936d4d3b58773c836127fd7 (diff) | |
download | busybox-w32-dc04439450e5929880205d920de3a26409727563.tar.gz busybox-w32-dc04439450e5929880205d920de3a26409727563.tar.bz2 busybox-w32-dc04439450e5929880205d920de3a26409727563.zip |
Version 1.17.2: apply post 1.17.1 fixes, replace patch applet by Rob's version
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Diffstat (limited to 'findutils')
-rw-r--r-- | findutils/grep.c | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/findutils/grep.c b/findutils/grep.c index ac290a911..183d02606 100644 --- a/findutils/grep.c +++ b/findutils/grep.c | |||
@@ -461,15 +461,19 @@ static int grep_file(FILE *file) | |||
461 | if (found) | 461 | if (found) |
462 | print_line(gl->pattern, strlen(gl->pattern), linenum, ':'); | 462 | print_line(gl->pattern, strlen(gl->pattern), linenum, ':'); |
463 | } else while (1) { | 463 | } else while (1) { |
464 | unsigned start = gl->matched_range.rm_so; | ||
464 | unsigned end = gl->matched_range.rm_eo; | 465 | unsigned end = gl->matched_range.rm_eo; |
466 | unsigned len = end - start; | ||
465 | char old = line[end]; | 467 | char old = line[end]; |
466 | line[end] = '\0'; | 468 | line[end] = '\0'; |
467 | print_line(line + gl->matched_range.rm_so, | 469 | /* Empty match is not printed: try "echo test | grep -o ''" */ |
468 | end - gl->matched_range.rm_so, | 470 | if (len != 0) |
469 | linenum, ':'); | 471 | print_line(line + start, len, linenum, ':'); |
470 | if (old == '\0') | 472 | if (old == '\0') |
471 | break; | 473 | break; |
472 | line[end] = old; | 474 | line[end] = old; |
475 | if (len == 0) | ||
476 | end++; | ||
473 | #if !ENABLE_EXTRA_COMPAT | 477 | #if !ENABLE_EXTRA_COMPAT |
474 | if (regexec(&gl->compiled_regex, line + end, | 478 | if (regexec(&gl->compiled_regex, line + end, |
475 | 1, &gl->matched_range, REG_NOTBOL) != 0) | 479 | 1, &gl->matched_range, REG_NOTBOL) != 0) |