svn commit: trunk/busybox/findutils

vda at busybox.net vda at busybox.net
Tue Sep 30 22:37:29 UTC 2008


Author: vda
Date: 2008-09-30 15:37:29 -0700 (Tue, 30 Sep 2008)
New Revision: 23570

Log:
grep: fix 'echo aaa | grep -o a' + ENABLE_EXTRA_COMPAT case
 by Natanael Copa



Modified:
   trunk/busybox/findutils/grep.c


Changeset:
Modified: trunk/busybox/findutils/grep.c
===================================================================
--- trunk/busybox/findutils/grep.c	2008-09-30 12:17:04 UTC (rev 23569)
+++ trunk/busybox/findutils/grep.c	2008-09-30 22:37:29 UTC (rev 23570)
@@ -363,12 +363,22 @@
 						 * (unless -v: -Fov doesnt print anything at all) */
 						if (found)
 							print_line(gl->pattern, strlen(gl->pattern), linenum, ':');
-					} else {
+					} else while (1) {
+						char old = line[gl->matched_range.rm_eo];
 						line[gl->matched_range.rm_eo] = '\0';
 						print_line(line + gl->matched_range.rm_so,
 								gl->matched_range.rm_eo - gl->matched_range.rm_so,
 								linenum, ':');
-					}
+						line[gl->matched_range.rm_eo] = old;
+#if !ENABLE_EXTRA_COMPAT
+						break;
+#else
+						if (re_search(&gl->compiled_regex, line, line_len,
+								gl->matched_range.rm_eo, line_len - gl->matched_range.rm_eo, 
+								&gl->matched_range) < 0)
+							break;
+#endif
+					} 
 				} else {
 					print_line(line, line_len, linenum, ':');
 				}




More information about the busybox-cvs mailing list