1234567891011121314151617181920212223242526272829303132333435363738 |
- diff -urN busybox-1.7.4/findutils/grep.c busybox-1.7.4-grep/findutils/grep.c
- --- busybox-1.7.4/findutils/grep.c 2007-09-03 04:48:54.000000000 -0700
- +++ busybox-1.7.4-grep/findutils/grep.c 2007-12-08 19:02:33.000000000 -0800
- @@ -154,14 +154,14 @@
-
- while ((line = xmalloc_getline(file)) != NULL) {
- llist_t *pattern_ptr = pattern_head;
- - grep_list_data_t * gl;
- + grep_list_data_t *gl = gl; /* for gcc */
-
- linenum++;
- ret = 0;
- while (pattern_ptr) {
- gl = (grep_list_data_t *)pattern_ptr->data;
- if (FGREP_FLAG) {
- - ret = strstr(line, gl->pattern) != NULL;
- + ret |= (strstr(line, gl->pattern) != NULL);
- } else {
- /*
- * test for a postitive-assertion match (regexec returns success (0)
- @@ -255,8 +255,15 @@
- print_n_lines_after = lines_after;
- #endif
- if (option_mask32 & OPT_o) {
- - line[regmatch.rm_eo] = '\0';
- - print_line(line + regmatch.rm_so, linenum, ':');
- + if (FGREP_FLAG) {
- + /* -Fo just prints the pattern
- + * (unless -v: -Fov doesnt print anything at all) */
- + if (ret)
- + print_line(gl->pattern, linenum, ':');
- + } else {
- + line[regmatch.rm_eo] = '\0';
- + print_line(line + regmatch.rm_so, linenum, ':');
- + }
- } else {
- print_line(line, linenum, ':');
- }
|