Pass the REG_NOTBOL flag to subsequent regexec calls.

function                                             old     new   delta
grep_file                                           1995    2008     +13
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 1/0 up/down: 13/0)               Total: 13 bytes
   text    data     bss     dec     hex filename
1224816    2131    9092 1236039  12dc47 busybox_old
1224829    2131    9092 1236052  12dc54 busybox_unstripped

Signed-off-by: Bartosz Golaszewski <[email protected]>
---
 findutils/grep.c | 7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)

diff --git a/findutils/grep.c b/findutils/grep.c
index a7bc4ca..7cd9c19 100644
--- a/findutils/grep.c
+++ b/findutils/grep.c
@@ -375,6 +375,8 @@ static int grep_file(FILE *file)
                        } else {
 #if ENABLE_EXTRA_COMPAT
                                unsigned start_pos;
+#else
+                               int match_flg;
 #endif
                                char *match_at;
 
@@ -392,15 +394,15 @@ static int grep_file(FILE *file)
 #if !ENABLE_EXTRA_COMPAT
                                gl->matched_range.rm_so = 0;
                                gl->matched_range.rm_eo = 0;
+                               match_flg = 0;
 #else
                                start_pos = 0;
 #endif
                                match_at = line;
  opt_w_again:
-//bb_error_msg("'%s' start_pos:%d line_len:%d", match_at, start_pos, line_len);
                                if (
 #if !ENABLE_EXTRA_COMPAT
-                                       regexec(&gl->compiled_regex, match_at, 
1, &gl->matched_range, 0) == 0
+                                       regexec(&gl->compiled_regex, match_at, 
1, &gl->matched_range, match_flg) == 0
 #else
                                        re_search(&gl->compiled_regex, 
match_at, line_len,
                                                        start_pos, /*range:*/ 
line_len,
@@ -432,6 +434,7 @@ static int grep_file(FILE *file)
 #if !ENABLE_EXTRA_COMPAT
                                                                if 
(gl->matched_range.rm_eo != 0) {
                                                                        
match_at += gl->matched_range.rm_eo;
+                                                                       
match_flg |= REG_NOTBOL;
                                                                        goto 
opt_w_again;
                                                                }
 #else
-- 
1.8.4.5

_______________________________________________
busybox mailing list
[email protected]
http://lists.busybox.net/mailman/listinfo/busybox

Reply via email to