diff options
Diffstat (limited to 'abs/core/grep/01-fgrep.patch')
-rw-r--r-- | abs/core/grep/01-fgrep.patch | 145 |
1 files changed, 0 insertions, 145 deletions
diff --git a/abs/core/grep/01-fgrep.patch b/abs/core/grep/01-fgrep.patch deleted file mode 100644 index c7f8f96..0000000 --- a/abs/core/grep/01-fgrep.patch +++ /dev/null @@ -1,145 +0,0 @@ ---- grep-2.5.1/src/search.c.fgrep 2001-04-19 04:42:14.000000000 +0100 -+++ grep-2.5.1/src/search.c 2004-02-26 13:09:32.000000000 +0000 -@@ -360,13 +360,7 @@ - /* Find a possible match using the KWset matcher. */ - size_t offset = kwsexec (kwset, beg, buflim - beg, &kwsm); - if (offset == (size_t) -1) -- { --#ifdef MBS_SUPPORT -- if (MB_CUR_MAX > 1) -- free(mb_properties); --#endif -- return (size_t)-1; -- } -+ goto failure; - beg += offset; - /* Narrow down to the line containing the candidate, and - run it through DFA. */ -@@ -379,7 +373,7 @@ - while (beg > buf && beg[-1] != eol) - --beg; - if (kwsm.index < kwset_exact_matches) -- goto success; -+ goto success_in_beg_and_end; - if (dfaexec (&dfa, beg, end - beg, &backref) == (size_t) -1) - continue; - } -@@ -398,7 +392,7 @@ - } - /* Successful, no backreferences encountered! */ - if (!backref) -- goto success; -+ goto success_in_beg_and_end; - } - else - end = beg + size; -@@ -413,14 +407,11 @@ - end - beg - 1, &(patterns[i].regs)))) - { - len = patterns[i].regs.end[0] - start; -- if (exact) -- { -- *match_size = len; -- return start; -- } -+ if (exact && !match_words) -+ goto success_in_start_and_len; - if ((!match_lines && !match_words) - || (match_lines && len == end - beg - 1)) -- goto success; -+ goto success_in_beg_and_end; - /* If -w, check if the match aligns with word boundaries. - We do this iteratively because: - (a) the line may contain more than one occurence of the -@@ -434,7 +425,7 @@ - if ((start == 0 || !WCHAR ((unsigned char) beg[start - 1])) - && (len == end - beg - 1 - || !WCHAR ((unsigned char) beg[start + len]))) -- goto success; -+ goto success_in_beg_and_end; - if (len > 0) - { - /* Try a shorter length anchored at the same place. */ -@@ -461,19 +452,26 @@ - } - } /* for Regex patterns. */ - } /* for (beg = end ..) */ -+ -+ failure: - #ifdef MBS_SUPPORT - if (MB_CUR_MAX > 1 && mb_properties) - free (mb_properties); - #endif /* MBS_SUPPORT */ - return (size_t) -1; - -- success: -+ success_in_beg_and_end: -+ len = end - beg; -+ start = beg - buf; -+ /* FALLTHROUGH */ -+ -+ success_in_start_and_len: - #ifdef MBS_SUPPORT - if (MB_CUR_MAX > 1 && mb_properties) - free (mb_properties); - #endif /* MBS_SUPPORT */ -- *match_size = end - beg; -- return beg - buf; -+ *match_size = len; -+ return start; - } - - static void -@@ -516,28 +514,15 @@ - { - size_t offset = kwsexec (kwset, beg, buf + size - beg, &kwsmatch); - if (offset == (size_t) -1) -- { --#ifdef MBS_SUPPORT -- if (MB_CUR_MAX > 1) -- free(mb_properties); --#endif /* MBS_SUPPORT */ -- return offset; -- } -+ goto failure; - #ifdef MBS_SUPPORT - if (MB_CUR_MAX > 1 && mb_properties[offset+beg-buf] == 0) - continue; /* It is a part of multibyte character. */ - #endif /* MBS_SUPPORT */ - beg += offset; - len = kwsmatch.size[0]; -- if (exact) -- { -- *match_size = len; --#ifdef MBS_SUPPORT -- if (MB_CUR_MAX > 1) -- free (mb_properties); --#endif /* MBS_SUPPORT */ -- return beg - buf; -- } -+ if (exact && !match_words) -+ goto success_in_beg_and_len; - if (match_lines) - { - if (beg > buf && beg[-1] != eol) -@@ -551,6 +536,7 @@ - goto success; - } - -+ failure: - #ifdef MBS_SUPPORT - if (MB_CUR_MAX > 1) - free (mb_properties); -@@ -583,7 +569,11 @@ - end++; - while (buf < beg && beg[-1] != eol) - --beg; -- *match_size = end - beg; -+ len = end - beg; -+ /* FALLTHROUGH */ -+ -+ success_in_beg_and_len: -+ *match_size = len; - #ifdef MBS_SUPPORT - if (MB_CUR_MAX > 1) - free (mb_properties); |