diff --git a/grep-2.5.1-oi.patch b/grep-2.5.1-oi.patch index f06a142..eb997ad 100644 --- a/grep-2.5.1-oi.patch +++ b/grep-2.5.1-oi.patch @@ -1,46 +1,48 @@ ---- grep-2.5.1/src/search.c.oi 2003-12-08 10:56:43.000000000 +0000 -+++ grep-2.5.1/src/search.c 2003-12-08 11:01:11.000000000 +0000 -@@ -219,6 +219,21 @@ +--- grep-2.5.1/lib/posix/regex.h.oi 2004-01-05 12:09:12.984391131 +0000 ++++ grep-2.5.1/lib/posix/regex.h 2004-01-05 12:09:24.717990622 +0000 +@@ -109,6 +109,10 @@ + If not set, \{, \}, {, and } are literals. */ + #define RE_INTERVALS (RE_HAT_LISTS_NOT_NEWLINE << 1) - patterns[pcount] = patterns0; ++/* If this bit is set, then ignore case when matching. ++ If not set, then case is significant. */ ++#define RE_ICASE (RE_INVALID_INTERVAL_ORD << 1) ++ + /* If this bit is set, +, ? and | aren't recognized as operators. + If not set, they are. */ + #define RE_LIMITED_OPS (RE_INTERVALS << 1) +--- grep-2.5.1/src/search.c.oi 2004-01-05 12:07:00.550199415 +0000 ++++ grep-2.5.1/src/search.c 2004-01-05 12:07:00.566197505 +0000 +@@ -31,7 +31,7 @@ -+ // patch ed@javabase.fsnet.co.uk -+ if (match_icase -+#ifdef MBS_SUPPORT -+ && MB_CUR_MAX == 1 -+#endif /* MBS_SUPPORT */ -+ ) -+ { -+ static char trans[NCHAR]; -+ int i; -+ for (i = 0; i < NCHAR; ++i) -+ trans[i] = TOLOWER (i); -+ patterns[pcount].regexbuf.translate = trans; -+ } -+ // end patch -+ - if ((err = re_compile_pattern (motif, len, - &(patterns[pcount].regexbuf))) != 0) - error (2, 0, err); -@@ -302,6 +317,21 @@ - error (2, errno, _("memory exhausted")); - patterns[pcount] = patterns0; + #include "system.h" + #include "grep.h" +-#include "regex.h" ++#include + #include "dfa.h" + #include "kwset.h" + #include "error.h" +@@ -190,7 +190,7 @@ + size_t total = size; + char const *motif = pattern; + +- re_set_syntax (RE_SYNTAX_GREP | RE_HAT_LISTS_NOT_NEWLINE); ++ re_set_syntax (RE_SYNTAX_GREP | RE_HAT_LISTS_NOT_NEWLINE | (match_icase ? RE_ICASE : 0)); + dfasyntax (RE_SYNTAX_GREP | RE_HAT_LISTS_NOT_NEWLINE, match_icase, eolbyte); + + /* For GNU regex compiler we have to pass the patterns separately to detect +@@ -268,12 +268,12 @@ + + if (strcmp (matcher, "awk") == 0) + { +- re_set_syntax (RE_SYNTAX_AWK); ++ re_set_syntax (RE_SYNTAX_AWK | (match_icase ? RE_ICASE : 0)); + dfasyntax (RE_SYNTAX_AWK, match_icase, eolbyte); + } + else + { +- re_set_syntax (RE_SYNTAX_POSIX_EGREP); ++ re_set_syntax (RE_SYNTAX_POSIX_EGREP | (match_icase ? RE_ICASE : 0)); + dfasyntax (RE_SYNTAX_POSIX_EGREP, match_icase, eolbyte); + } -+ // patch ed@javabase.fsnet.co.uk -+ if (match_icase -+#ifdef MBS_SUPPORT -+ && MB_CUR_MAX == 1 -+#endif /* MBS_SUPPORT */ -+ ) -+ { -+ static char trans[NCHAR]; -+ int i; -+ for (i = 0; i < NCHAR; ++i) -+ trans[i] = TOLOWER (i); -+ patterns[pcount].regexbuf.translate = trans; -+ } -+ // end patch -+ - if ((err = re_compile_pattern (motif, len, - &(patterns[pcount].regexbuf))) != 0) - error (2, 0, err); diff --git a/grep.spec b/grep.spec index 5003e74..23b22da 100644 --- a/grep.spec +++ b/grep.spec @@ -1,5 +1,5 @@ %define beta %nil -%define rel 7.7 +%define rel 7.8 Summary: The GNU versions of grep pattern matching utilities. Name: grep Version: 2.5.1 @@ -79,6 +79,9 @@ fi %{_mandir}/*/* %changelog +* Mon Jan 5 2004 Tim Waugh 2.5.1-7.8 +- Fixed -o -i properly in a way that avoids glibc bug #112869. + * Wed Dec 10 2003 Tim Waugh 2.5.1-7.7 - Another multibyte efficiency bug-fix (bug #111800).