Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
char *line = NULL;
ssize_t line_len;
size_t line_alloc_len;
-#define rm_so start[0]
-#define rm_eo end[0]
+# define rm_so start[0]
+# define rm_eo end[0]
#endif
#if ENABLE_FEATURE_GREP_CONTEXT
int print_n_lines_after = 0;
int idx = 0; /* used for iteration through the circular buffer */
#else
enum { print_n_lines_after = 0 };
-#endif /* ENABLE_FEATURE_GREP_CONTEXT */
+#endif
while (
#if !ENABLE_EXTRA_COMPAT
print_line(line + gl->matched_range.rm_so,
end - gl->matched_range.rm_so,
linenum, ':');
+ if (old == '\0')
+ break;
line[end] = old;
#if !ENABLE_EXTRA_COMPAT
if (regexec(&gl->compiled_regex, line + end,
"00:19:3E:00:AA:5E\n00:1D:60:3D:3A:FB\n00:22:43:49:FB:AA\n" \
"" "00:19:3E:00:AA:5E 00:1D:60:3D:3A:FB 00:22:43:49:FB:AA\n"
+testing "grep -o does not loop forever" \
+ 'grep -o "[^/]*$"' \
+ "test\n" \
+ "" "/var/test\n"
+
exit $FAILCOUNT