1*a8fa202aSchristos2004-11-12 Stepan Kasal <kasal@ucw.cz> 2*a8fa202aSchristos 3*a8fa202aSchristos * 2.5.1a tarball released. Excluding directory autom4te-2.53.cache 4*a8fa202aSchristos and .cvsignore files. 5*a8fa202aSchristos 6*a8fa202aSchristos2004-11-12 Stepan Kasal <kasal@ucw.cz> 7*a8fa202aSchristos 8*a8fa202aSchristos Change bug-gnu-utils address to bug-grep, on many places; there 9*a8fa202aSchristos is no need to have the word ``grep'' in subject then. 10*a8fa202aSchristos Thanks to Tony Abou-Assaleh and Benno Schulenberg for pointing 11*a8fa202aSchristos out this. 12*a8fa202aSchristos 13*a8fa202aSchristos2004-11-11 Stepan Kasal <kasal@ucw.cz> 14*a8fa202aSchristos 15*a8fa202aSchristos * tests/spencer1.awk: Use only lines with 3 fields. 16*a8fa202aSchristos * tests/spencer1.tests: Correct #55 and disable it for now. 17*a8fa202aSchristos * tests/backref.sh: Modify #2 so that current glibc regex can 18*a8fa202aSchristos handle it in finite time. 19*a8fa202aSchristos 20*a8fa202aSchristos2002-03-26 Bernhard Rosenkraenzer <bero@arklinux.org> 21*a8fa202aSchristos 22*a8fa202aSchristos * 2.5.1 Release. 23*a8fa202aSchristos 24*a8fa202aSchristos2002-03-26 Bernhard Rosenkraenzer <bero@arklinux.org> 25*a8fa202aSchristos * src/grep.c: Don't fail if we don't have an stdout fd and -q 26*a8fa202aSchristos is used (happens e.g. on calls from hotplug scripts) 27*a8fa202aSchristos * src/grep.c: Don't hang forever if fed with an empty string to 28*a8fa202aSchristos grep for and --color enabled 29*a8fa202aSchristos * src/grep.c: Fix infinite loop on 30*a8fa202aSchristos echo "1 one" | grep -E "[0-9]*" -o 31*a8fa202aSchristos echo "1 one" | grep -E "[0-9]*" --color 32*a8fa202aSchristos * po/*: Sync wiith translation project 33*a8fa202aSchristos * src/grep.c, src/Makefile.am, configure.in: Add patch from 34*a8fa202aSchristos Paul Eggert <eggert@twinsun.com> to comply with ridiculous 35*a8fa202aSchristos guidelines (don't act differently if invoked as egrep or fgrep) 36*a8fa202aSchristos * configure.in: Bump version number, require a recent autoconf 37*a8fa202aSchristos 38*a8fa202aSchristos2002-03-14 Bernhard Rosenkraenzer <bero@arklinux.org> 39*a8fa202aSchristos * src/Makefile.am, po/Makefile.in.in: Support DESTDIR properly 40*a8fa202aSchristos * tests/bre.tests: Add fix from 41*a8fa202aSchristos Peter Breitenlohner <peb@mppmu.mpg.de> 42*a8fa202aSchristos 43*a8fa202aSchristos2002-03-13 Bernhard Rosenkraenzer <bero@arklinux.org> 44*a8fa202aSchristos * configure.in, m4/regex.m4, m4/malloc.m4, m4/realloc.m4: 45*a8fa202aSchristos Don't set LIBOBJS directly, autoconf 2.53 doesn't like it 46*a8fa202aSchristos * intl/*: Sync with gettext 0.11 47*a8fa202aSchristos * po/*: Sync with translation project 48*a8fa202aSchristos * configure.in, src/Makefile.am: Don't duplicate code - make 49*a8fa202aSchristos egrep and fgrep links to grep and set matcher based on 50*a8fa202aSchristos application name, suggestion from 51*a8fa202aSchristos Guillaume Cottenceau <gc@mandrakesoft.com> 52*a8fa202aSchristos * src/grep.c: (prline) Add fix for -i --color from 53*a8fa202aSchristos Jim Meyering <meyering@lucent.com> 54*a8fa202aSchristos * configure.in: Version 2.5; release 55*a8fa202aSchristos 56*a8fa202aSchristos2002-01-23 Bernhard Rosenkraenzer <bero@arklinux.org> 57*a8fa202aSchristos * configure.in: Version 2.5g 58*a8fa202aSchristos * Makefile.cvs, grep.spec: Add packaging tools 59*a8fa202aSchristos Merge djgpp changes from Andrew Cottrell <anddjgpp@ihug.coml.au>: 60*a8fa202aSchristos * src/grep.c: Added conditional compilation for DJGPP 61*a8fa202aSchristos * djgpp: remove directory as it is no longer required with DJGPP 2.03 62*a8fa202aSchristos (or 2.04 when released) 63*a8fa202aSchristos * README.DOS: Moved djgpp/readme to readme.dos 64*a8fa202aSchristos * PATCHES.AC, PATCHES.AM: delete files - redundant 65*a8fa202aSchristos * configure.in, Makefile.am: remove djgpp directory from list 66*a8fa202aSchristos 67*a8fa202aSchristos2002-01-22 Bernhard Rosenkraenzer <bero@arklinux.org> 68*a8fa202aSchristos * doc/grep.texi, doc/grep.1, NEWS: Document --label 69*a8fa202aSchristos * po/ru.po: Sync with translation project 70*a8fa202aSchristos * po/grep.pot: Sync with source 71*a8fa202aSchristos 72*a8fa202aSchristos2002-01-18 Bernhard Rosenkraenzer <bero@arklinux.org> 73*a8fa202aSchristos * src/grep.c: Add --label, based on patch from Stepan Koltsov 74*a8fa202aSchristos 75*a8fa202aSchristos2001-11-20 Bernhard Rosenkraenzer <bero@arklinux.org> 76*a8fa202aSchristos * autogen.sh: Don't hardcode aclocal dir 77*a8fa202aSchristos 78*a8fa202aSchristos2001-11-19 Bernhard Rosenkraenzer <bero@arklinux.org> 79*a8fa202aSchristos * src/grep.c: Add --only-matching (-o) switch (see NEWS) 80*a8fa202aSchristos * doc/grep.texi, doc/grep.1, NEWS: Document changes 81*a8fa202aSchristos * configure.in, lib/Makefile.am: Don't use internal getopt if 82*a8fa202aSchristos we're on a system that provides a working getopt function 83*a8fa202aSchristos 84*a8fa202aSchristos2001-09-25 Bernhard Rosenkraenzer <bero@arklinux.org> 85*a8fa202aSchristos * configure.in: Detect pcre correctly even when it's in 86*a8fa202aSchristos non-standard locations, using pcre-config 87*a8fa202aSchristos * src/grep.c: Add --color={always,never,tty} argument (like in ls) 88*a8fa202aSchristos * src/grep.c: Turn off blinking in the default colorization 89*a8fa202aSchristos * src/grep.c: Add --devices (-D) switch (analogous to --directories) 90*a8fa202aSchristos * src/dfa.c: Fix an i18n bug: echo "A" | grep '[A-Z0-9]' wouldn't work 91*a8fa202aSchristos in non-C-Locales on systems using current versions of glibc. 92*a8fa202aSchristos * AUTHORS: Change maintainer, credit Alain for his work until now 93*a8fa202aSchristos * configure.in, m4/decl.m4, m4/dosfile.m4, m4/gettext.m4, 94*a8fa202aSchristos m4/init.m4, m4/install.m4, m4/largefile.m4, m4/lcmessage.m4, 95*a8fa202aSchristos m4/header.m4, m4/isc-posix.m4, m4/missing.m4, m4/progtest.m4, 96*a8fa202aSchristos m4/sanity.m4: 97*a8fa202aSchristos Fix build with autoconf 2.5x, retain 2.1x compatibility for now 98*a8fa202aSchristos * autogen.sh: Add some crude hacks to make it possible to build with 99*a8fa202aSchristos both autoconf 2.5x and 2.1x 100*a8fa202aSchristos * acconfig.h: removed (no longer required) 101*a8fa202aSchristos * Makefile.am: add cvs-clean target 102*a8fa202aSchristos * doc/grep.texi, doc/grep.1, NEWS: Document changes 103*a8fa202aSchristos (--color, --devices, -D) 104*a8fa202aSchristos * src/dfa.c, src/grep.c: Add vim modelines 105*a8fa202aSchristos 106*a8fa202aSchristos2001-08-30 Alain Magloire 107*a8fa202aSchristos 108*a8fa202aSchristos * configure.in: Add gl in ALL_LINGUAS. 109*a8fa202aSchristos 110*a8fa202aSchristos2001-08-30 Kurt D Schwehr 111*a8fa202aSchristos 112*a8fa202aSchristos * doc/grep.1: Warn that grep insert a "--" between groups of matches, 113*a8fa202aSchristos when using the context options. 114*a8fa202aSchristos * doc/grep.texi: Likewised. 115*a8fa202aSchristos 116*a8fa202aSchristos2001-08-25 Heikki Korpela 117*a8fa202aSchristos 118*a8fa202aSchristos * doc/grep.texi: Point out that some Platforms do not support 119*a8fa202aSchristos reading of directories and silently ignore them. 120*a8fa202aSchristos 121*a8fa202aSchristos2001-08-21 Alain Magloire 122*a8fa202aSchristos 123*a8fa202aSchristos * lib/malloc.c: New file: 124*a8fa202aSchristos * lib/realloc.c: New file: 125*a8fa202aSchristos * lib/Makefile.am: Add malloc.c and realloc.c in EXTRA_DIST. 126*a8fa202aSchristos 127*a8fa202aSchristos2001-07-31 Alain Magloire 128*a8fa202aSchristos 129*a8fa202aSchristos * po/*.po: New files from the translation team: 130*a8fa202aSchristos grep-2.5e.de.po grep-2.5e.el.po grep-2.5e.eo.po grep-2.5e.es.po 131*a8fa202aSchristos grep-2.5e.et.po grep-2.5e.fr.po grep-2.5e.gl.po grep-2.5e.it.po 132*a8fa202aSchristos grep-2.5e.pl.po grep-2.5e.sl.po 133*a8fa202aSchristos 134*a8fa202aSchristos2001-07-31 Andreas Schwab 135*a8fa202aSchristos 136*a8fa202aSchristos * src/grep.c: Fix all uses of error to pass a proper format 137*a8fa202aSchristos string. 138*a8fa202aSchristos 139*a8fa202aSchristos2001-07-29 Alain Magloire 140*a8fa202aSchristos 141*a8fa202aSchristos * grep/src/grep.c (usage): Typos corrected. 142*a8fa202aSchristos Patches from Santiago Vila. 143*a8fa202aSchristos 144*a8fa202aSchristos2001-07-29 Alain Magloire 145*a8fa202aSchristos 146*a8fa202aSchristos David Clissold, wrote: 147*a8fa202aSchristos a small bug in the GNU grep 2.4.2, which may have gone unnoticed 148*a8fa202aSchristos because it only causes a failure if building on a system with large 149*a8fa202aSchristos files enabled (e.g. an "off_t" is a "long long" rather than a "long"). 150*a8fa202aSchristos savedir() takes on off_t argument, but in grepdir() the parameter 151*a8fa202aSchristos is cast to an (unsigned). Well, if an off_t is larger than an int, 152*a8fa202aSchristos the value gets truncated. This would not normally have an effect on a 153*a8fa202aSchristos little-endian platform (unless the file is >2GB), but on a big-endian 154*a8fa202aSchristos system it will always fail. The external effect is that 155*a8fa202aSchristos "grep -r foo dir_name" fails with ENOMEM (from malloc() within 156*a8fa202aSchristos savedir()). 157*a8fa202aSchristos 158*a8fa202aSchristos * grep/src/grep.c (grepdir): Remove the (unsigned) cast when calling 159*a8fa202aSchristos savedir(). 160*a8fa202aSchristos Patch from David Clissold. 161*a8fa202aSchristos 162*a8fa202aSchristos2001-07-29 Alain Magloire 163*a8fa202aSchristos 164*a8fa202aSchristos * grep/doc/grep.texi: In Bugs report use {n,m} for consistency. 165*a8fa202aSchristos * grep/doc/grep.1: Likewised. 166*a8fa202aSchristos Noted by Steven Lucy. 167*a8fa202aSchristos 168*a8fa202aSchristos2001-04-27 Isamu Hasegawa 169*a8fa202aSchristos 170*a8fa202aSchristos * dfa.c (mblen_buf) : New variable contains the amount of remain 171*a8fa202aSchristos byte of corresponding multibyte character in the input string. 172*a8fa202aSchristos (SKIP_REMAIN_MB_IF_INITIAL_STATE) : Use mblen_buf. 173*a8fa202aSchristos (match_anychar) : Use mblen_buf. 174*a8fa202aSchristos (match_mb_charset) : Use mblen_buf. 175*a8fa202aSchristos (transit_state_consume_1char) : Use mblen_buf. 176*a8fa202aSchristos (transit_state) : Use inputwcs to get current (multibyte) character. 177*a8fa202aSchristos (dfaexec) : Add initialization of mblen_buf. 178*a8fa202aSchristos 179*a8fa202aSchristos2001-04-27 Isamu Hasegawa 180*a8fa202aSchristos 181*a8fa202aSchristos * dfa.c (addtok) : Set appropriate value to multibyte_prop. 182*a8fa202aSchristos (dfastate) : Add the initialization of the variable. 183*a8fa202aSchristos (dfaexec) : Call transit_state if d->fail may transit by 184*a8fa202aSchristos multibyte characters. 185*a8fa202aSchristos (transit_state_singlebyte) : Clean up unnecessary code. 186*a8fa202aSchristos (transit_state_consume_1char) : Likewise. 187*a8fa202aSchristos (transit_state) : Add checking for word and newline. 188*a8fa202aSchristos 189*a8fa202aSchristos2001-04-19 Isamu Hasegawa 190*a8fa202aSchristos 191*a8fa202aSchristos * search.c (check_multibyte_string) : Check the case when mbclen == 0. 192*a8fa202aSchristos 193*a8fa202aSchristos2001-04-11 Isamu Hasegawa 194*a8fa202aSchristos 195*a8fa202aSchristos * search.c (check_multibyte_string) : Check the head of multibyte 196*a8fa202aSchristos characters, and optimize a bit. 197*a8fa202aSchristos (EGexecute) : Optimize a bit. 198*a8fa202aSchristos (Fexecute) : Fix the index. 199*a8fa202aSchristos 200*a8fa202aSchristos2001-04-02 Alain Magloire 201*a8fa202aSchristos 202*a8fa202aSchristos * lib/regex.c: Update from GNU lib C, with the changes 203*a8fa202aSchristos provided by Paul Eggert. 204*a8fa202aSchristos * lib/posix/regex.h: Likewise. 205*a8fa202aSchristos 206*a8fa202aSchristos2001-02-17 Paul Eggert 207*a8fa202aSchristos 208*a8fa202aSchristos Stop trying to support hosts that have nonstandard declarations for 209*a8fa202aSchristos mbrtowc and/or mbstate_t. It's not worth the portability hassle. 210*a8fa202aSchristos 211*a8fa202aSchristos * lib/quotearg.c (mbrtowc, mbsinit): Remove workaround macros 212*a8fa202aSchristos for hosts that have mbrtowc but not mbstate_t, as we now 213*a8fa202aSchristos insist on proper declarations for both before using mbrtowc. 214*a8fa202aSchristos 215*a8fa202aSchristos2001-03-18 Alain Magloire 216*a8fa202aSchristos 217*a8fa202aSchristos * configure.in: Call AC_MBSTATE_T. 218*a8fa202aSchristos * Makefile.am: Add mbstate_t.m4 219*a8fa202aSchristos * m4/Makefile.am: Add mbstate_t.m4 220*a8fa202aSchristos * m4/mbstate_t.m4: New m4 macro. 221*a8fa202aSchristos * lib/strtol.c: Define CHAR_BITS. 222*a8fa202aSchristos Uwe H. Steinfeld, Ruslan Ermilov, Volkert Bochert, noted 223*a8fa202aSchristos that mbstate_t was not define for certain platforms. 224*a8fa202aSchristos 225*a8fa202aSchristos2001-03-18 Paul Eggert 226*a8fa202aSchristos 227*a8fa202aSchristos * src/grep.c (fillbuf): Fix storage allocation performance 228*a8fa202aSchristos bug: buffer was doubling in size in many cases where it didn't 229*a8fa202aSchristos have to. 230*a8fa202aSchristos 231*a8fa202aSchristos2001-03-17 Paul Eggert 232*a8fa202aSchristos 233*a8fa202aSchristos * src/grep.c (fillbuf): Avoid unnecessary division by 2. 234*a8fa202aSchristos Don't check xrealloc return value; it's guaranteed to be nonzero. 235*a8fa202aSchristos (fillbuf, grepdir): Use xalloc_die rather than error; it's shorter. 236*a8fa202aSchristos 237*a8fa202aSchristos2001-03-17 Alain Magloire 238*a8fa202aSchristos 239*a8fa202aSchristos * src/grep.c (context_length_arg): error () passing wrong format. 240*a8fa202aSchristos Spotted by Jim Meyering. 241*a8fa202aSchristos 242*a8fa202aSchristos2001-03-07 Alain Magloire 243*a8fa202aSchristos 244*a8fa202aSchristos * README-alpha: Removed reference to GNU tar, add the location 245*a8fa202aSchristos of the CVSROOT. 246*a8fa202aSchristos 247*a8fa202aSchristos2001-03-06 Alain Magloire 248*a8fa202aSchristos 249*a8fa202aSchristos Only the Regex patterns should be split in an array, patterns[]. 250*a8fa202aSchristos The dfa and KWset compiled patterns should remain global and the 251*a8fa202aSchristos patterns compiled all at once. 252*a8fa202aSchristos 253*a8fa202aSchristos * src/search.c: include "error.h" and "xalloc.h" to get prototyping 254*a8fa202aSchristos of x*alloc() and error(). 255*a8fa202aSchristos (kwsinit): Reverse to previous behaviour and takes no argument. 256*a8fa202aSchristos (kwsmusts): Likewised. 257*a8fa202aSchristos (Gcompile): For the regex pattern, split them and each pattern 258*a8fa202aSchristos is put in different compiled structure patterns[]. The patterns 259*a8fa202aSchristos are given to dfacomp() and kwsmusts() as is. 260*a8fa202aSchristos (Ecompile): Likewised. 261*a8fa202aSchristos (Fcompile): Reverse to the old behaviour of compiling the enire 262*a8fa202aSchristos patterns in one shot. 263*a8fa202aSchristos (EGexecute): If falling to GNU regex for the matching, loop in the 264*a8fa202aSchristos array of compile patterns[] to find a match. 265*a8fa202aSchristos (error): Many error () were call with arguments in the wrong order. 266*a8fa202aSchristos * tests/file.sh: Simple test to check for pattern in files. 267*a8fa202aSchristos 268*a8fa202aSchristos Reaction to bug report fired by Greg Louis <glouis@dynamicro.on.ca> 269*a8fa202aSchristos 270*a8fa202aSchristos2001-03-06 Isamu Hasegawa 271*a8fa202aSchristos 272*a8fa202aSchristos In multibyte environments, handle multibyte characters as single 273*a8fa202aSchristos characters in bracket expressions. 274*a8fa202aSchristos 275*a8fa202aSchristos * src/dfa.h (mb_char_classes) : new structure. 276*a8fa202aSchristos (mbcsets): new variable. 277*a8fa202aSchristos (nmbcsets): new variable. 278*a8fa202aSchristos (mbcsets_alloc) : new variable. 279*a8fa202aSchristos * src/dfa.c (prtok) : handle MBCSET. 280*a8fa202aSchristos (fetch_wc): new function to fetch a wide character. 281*a8fa202aSchristos (parse_bracket_exp_mb) : new function to handle multibyte character 282*a8fa202aSchristos in lex(). 283*a8fa202aSchristos (lex): invoke parse_bracket_exp_mb() for multibyte bracket expression. 284*a8fa202aSchristos (atom): handle MBCSET. 285*a8fa202aSchristos (epsclosure): likewise. 286*a8fa202aSchristos (dfaanalyze): likewise. 287*a8fa202aSchristos (dfastate): likewise. 288*a8fa202aSchristos (match_mb_charset): new function to judge whether a bracket match 289*a8fa202aSchristos with a multibyte character. 290*a8fa202aSchristos (check_matching_with_multibyte_ops) : handle MBCSET. 291*a8fa202aSchristos (dfainit): initialize new variables. 292*a8fa202aSchristos (dfafree): free new variables. 293*a8fa202aSchristos 294*a8fa202aSchristos2001-03-04 Alain Magloire 295*a8fa202aSchristos 296*a8fa202aSchristos To get more in sync with other GNU utilities like GNU tar and fetish 297*a8fa202aSchristos all the supporting functions are now under lib. 298*a8fa202aSchristos Thanks to Jim Meyering, Volkert Bochert and Paul Eggert for 299*a8fa202aSchristos the code and the reminders. 300*a8fa202aSchristos 301*a8fa202aSchristos * src/grep.c (fatal): Function removed, using error () from 302*a8fa202aSchristos lib/error.c instead. 303*a8fa202aSchristos (usage): Copyright updated. 304*a8fa202aSchristos (error): Function removed, using error () from lib/error.c instead, 305*a8fa202aSchristos adjust prototypes. 306*a8fa202aSchristos (prog): Global variable rename to program_name, to work with new 307*a8fa202aSchristos lib/error.c. 308*a8fa202aSchristos (xrealloc): Removed using lib/xmalloc.c. 309*a8fa202aSchristos (xmalloc): Removed using lib/xmalloc.c 310*a8fa202aSchristos (main): Register with atexit() to check for error on stdout. 311*a8fa202aSchristos * configure.in: Check for atexit(), call jm_MALLOC, jm_RELLOC and 312*a8fa202aSchristos jm_PREREQ_ERROR. 313*a8fa202aSchristos * tests/bre.awk: Removed the hack to drain the buffer since we 314*a8fa202aSchristos always fclose(stdout) atexit. 315*a8fa202aSchristos * tests/ere.awk: Likewise. 316*a8fa202aSchristos * tests/spencer1.awk: Likewise. 317*a8fa202aSchristos * bootstrap/Makefile.try: Update the Makefile to reflect the changes 318*a8fa202aSchristos in the new hierarchy. 319*a8fa202aSchristos 320*a8fa202aSchristos * README-alpha: New File. 321*a8fa202aSchristos * m4/realloc.m4: New File. 322*a8fa202aSchristos * m4/malloc.m4: New File. 323*a8fa202aSchristos * m4/error.m4: New File. 324*a8fa202aSchristos * m4/Makefile.am: Updated. 325*a8fa202aSchristos * lib: New directory. 326*a8fa202aSchristos * lib/Makefile.am: New file. 327*a8fa202aSchristos * lib/closeout.c: New file. 328*a8fa202aSchristos * lib/closeout.h: New file. 329*a8fa202aSchristos * lib/fnmatch.c: New file. 330*a8fa202aSchristos * lib/fnmatch.h: New file. 331*a8fa202aSchristos * lib/atexit.c: New file. 332*a8fa202aSchristos * lib/error.c: New file. 333*a8fa202aSchristos * lib/error.h: New file. 334*a8fa202aSchristos * lib/quotearg.h: New file. 335*a8fa202aSchristos * lib/quotearg.c: New file. 336*a8fa202aSchristos * lib/xmalloc.c: New file. 337*a8fa202aSchristos * lib/posix: New directory. 338*a8fa202aSchristos * lib/posix/Makefile.am: New file. 339*a8fa202aSchristos * src/getopt.c: Moved to lib. 340*a8fa202aSchristos * src/getopt1.c: Moved to lib. 341*a8fa202aSchristos * src/getopt.h: Moved to lib. 342*a8fa202aSchristos * src/alloca.c: Moved to lib. 343*a8fa202aSchristos * src/exclude.c: Moved to lib. 344*a8fa202aSchristos * src/exclude.h: Moved to lib. 345*a8fa202aSchristos * src/hard-locale.h: Moved to lib. 346*a8fa202aSchristos * src/hard-locale.c: Moved to lib. 347*a8fa202aSchristos * src/isdir.c: Moved to lib. 348*a8fa202aSchristos * src/mechr.c: Moved to lib. 349*a8fa202aSchristos * src/obstack.c: Moved to lib. 350*a8fa202aSchristos * src/obstack.h: Moved to lib. 351*a8fa202aSchristos * src/regex.c: Moved to lib. 352*a8fa202aSchristos * src/regex.h: Moved to lib. 353*a8fa202aSchristos * src/posix: Moved to lib. 354*a8fa202aSchristos * src/posix/regex.h: Moved to lib. 355*a8fa202aSchristos * src/savedir.h: Moved to lib. 356*a8fa202aSchristos * src/savedir.c: Moved to lib. 357*a8fa202aSchristos * src/stpcpy.c: Moved to lib. 358*a8fa202aSchristos * src/strtoul.c: Moved to lib. 359*a8fa202aSchristos * src/strtol.c: Moved to lib. 360*a8fa202aSchristos * src/strtoull.c: Moved to lib. 361*a8fa202aSchristos * src/strtoumax.c: Moved to lib. 362*a8fa202aSchristos * src/xstrtol.c: Moved to lib. 363*a8fa202aSchristos * src/xstrtol.h: Moved to lib. 364*a8fa202aSchristos * src/xstrtoumax.c: Moved to lib. 365*a8fa202aSchristos 366*a8fa202aSchristos2001-03-01 Isamu Hasegawa 367*a8fa202aSchristos 368*a8fa202aSchristos Implement the mechanism to match with multibyte characters, 369*a8fa202aSchristos and use it for `period' in multibyte environments. 370*a8fa202aSchristos 371*a8fa202aSchristos * dfa.h (mbps): new variable. 372*a8fa202aSchristos * dfa.c (prtok): handle ANYCHAR. 373*a8fa202aSchristos (lex): use ANYCHAR for `period' in multibyte environments. 374*a8fa202aSchristos (atom): handle ANYCHAR. 375*a8fa202aSchristos (state_index): initialize mbps in multibyte environments. 376*a8fa202aSchristos (epsclosure): handle ANYCHAR. 377*a8fa202aSchristos (dfaanalyze): handle ANYCHAR. 378*a8fa202aSchristos (dfastate): handle ANYCHAR. 379*a8fa202aSchristos (realloc_trans_if_necessary): new function. 380*a8fa202aSchristos (transit_state_singlebyte): new function. 381*a8fa202aSchristos (match_anychar): new function. 382*a8fa202aSchristos (check_matching_with_multibyte_ops): new function. 383*a8fa202aSchristos (transit_state_consume_1char): new function. 384*a8fa202aSchristos (transit_state): new function. 385*a8fa202aSchristos (dfaexec): invoke transit_state if expression can match with 386*a8fa202aSchristos a multibyte character in multibyte environments. 387*a8fa202aSchristos (dfamust): handle ANYCHAR. 388*a8fa202aSchristos 389*a8fa202aSchristos2001-03-01 Alain Magloire 390*a8fa202aSchristos 391*a8fa202aSchristos * src/exclude.c: New file. 392*a8fa202aSchristos * src/exclude.h: New file. 393*a8fa202aSchristos * src/grep.c (main): Took the GNU tar code to handle 394*a8fa202aSchristos the option --include, --exclude, --exclude-from. 395*a8fa202aSchristos Files are check for a match, with exlude_filename (). 396*a8fa202aSchristos New option --exclude-from. 397*a8fa202aSchristos * src/savedir.c: Call exclude_filename() to check for 398*a8fa202aSchristos file pattern exclusion or inclusion. 399*a8fa202aSchristos * configure.in: --disable-pcre rename to --disable-perl-regexp. 400*a8fa202aSchristos 401*a8fa202aSchristos 402*a8fa202aSchristos2001-02-25 Alain Magloire 403*a8fa202aSchristos 404*a8fa202aSchristos * src/dfa.c: Typo corrected. 405*a8fa202aSchristos Noted by Isamu Hasegawa. 406*a8fa202aSchristos * src/savedir.c: Typos corrected. 407*a8fa202aSchristos 408*a8fa202aSchristos2001-02-22 Alain Magloire 409*a8fa202aSchristos 410*a8fa202aSchristos * src/savedir.c (isdir1): New function, calling isdir with 411*a8fa202aSchristos the correct pathname. 412*a8fa202aSchristos 413*a8fa202aSchristos2001-02-19 Isamu Hasegawa 414*a8fa202aSchristos 415*a8fa202aSchristos Avoid incorrect state transition in multibyte environments. 416*a8fa202aSchristos 417*a8fa202aSchristos * dfa.h (nmultibyte_prop): new variable. 418*a8fa202aSchristos (multibyte_prop): new variable. 419*a8fa202aSchristos * dfa.c (addtok): set inputwcs. 420*a8fa202aSchristos (dfastate): avoid incorrect state transition in multibyte 421*a8fa202aSchristos environments. 422*a8fa202aSchristos (dfaexec): likewise. 423*a8fa202aSchristos (dfainit): init multibyte_prop. 424*a8fa202aSchristos (dfafree): free multibyte_prop. 425*a8fa202aSchristos (inputwcs): new variable. 426*a8fa202aSchristos 427*a8fa202aSchristos2001-02-19 Isamu Hasegawa 428*a8fa202aSchristos 429*a8fa202aSchristos Handle a multibyte character followed by '*', '+', and '{n,m}' 430*a8fa202aSchristos correctly. 431*a8fa202aSchristos 432*a8fa202aSchristos * dfa.c (update_mb_len_index): new function. 433*a8fa202aSchristos Support for multibyte string. 434*a8fa202aSchristos (FETCH): call update_mb_len_index. 435*a8fa202aSchristos (lex): check cur_mb_index not to misunderstand multibyte characters. 436*a8fa202aSchristos (atom): make a tree from a multibyte character. 437*a8fa202aSchristos (dfaparse): initialize new variables. 438*a8fa202aSchristos (mbs): new variable. 439*a8fa202aSchristos (cur_mb_len): new variable. 440*a8fa202aSchristos (cur_mb_index): new variable. 441*a8fa202aSchristos 442*a8fa202aSchristos2001-02-18 Jim Meyering 443*a8fa202aSchristos 444*a8fa202aSchristos * m4/dosfile.m4 (AC_DOSFILE): Move AC_DEFINEs out of AC_CACHE_CHECK. 445*a8fa202aSchristos 446*a8fa202aSchristos2001-02-17 Alain Malgoire 447*a8fa202aSchristos 448*a8fa202aSchristos * doc/grep.texi: Document the new options and the new behaviour 449*a8fa202aSchristos back-references are local. Use excerpt from Karl Berry regex 450*a8fa202aSchristos texinfo. 451*a8fa202aSchristos 452*a8fa202aSchristos * bootstrap/Makefile.try: Added xstrtoumax.o xstrtoul.o hard-local.o 453*a8fa202aSchristos 454*a8fa202aSchristos2001-02-17 Alain Magloire 455*a8fa202aSchristos 456*a8fa202aSchristos From Guglielmo 'bond' Bondioni : 457*a8fa202aSchristos The bug was that using a multi line file that contained REs (one per 458*a8fa202aSchristos line), backreferences in the REs were considered global (to the file) 459*a8fa202aSchristos and not local (to the line). 460*a8fa202aSchristos That is, \1 in line n refers to the first \(.\) in the whole file, 461*a8fa202aSchristos rather than in the line itself. 462*a8fa202aSchristos 463*a8fa202aSchristos From Tapani Tarvainen : 464*a8fa202aSchristos # Re: grep -e '\(a\)\1' -e '\(b\)\1' 465*a8fa202aSchristos That's not the way it should work: multiple -e arguments 466*a8fa202aSchristos should be treated as independent patterns and back references 467*a8fa202aSchristos should not refer to previous ones. 468*a8fa202aSchristos 469*a8fa202aSchristos From Paul Eggert : 470*a8fa202aSchristos GNU grep currently does not issue 471*a8fa202aSchristos diagnostics for the following two cases, both of which are erroneous: 472*a8fa202aSchristos grep -e '[' -e ']' 473*a8fa202aSchristos grep '[ 474*a8fa202aSchristos ]' 475*a8fa202aSchristos POSIX requires a diagnostic in both cases because '[' is not a valid 476*a8fa202aSchristos regular expression. 477*a8fa202aSchristos 478*a8fa202aSchristos To overcome those problems, grep no longer pass the concatenate 479*a8fa202aSchristos patterns to GNU regex but rather compile each patterns separately 480*a8fa202aSchristos and keep the result in an array. 481*a8fa202aSchristos 482*a8fa202aSchristos * src/search.c (patterns): New global variable; a structure array 483*a8fa202aSchristos holding the compiled patterns. 484*a8fa202aSchristos Declare function prototypes to minimize error. 485*a8fa202aSchristos (dfa, kswset, regexbuf, regs): Removed, no longer static globals, but 486*a8fa202aSchristos rather fields in patterns[] structure per motif. 487*a8fa202aSchristos (Fcompile): Alloc an entry in patterns[] to hold the regex. 488*a8fa202aSchristos (Ecompile): Alloc an entry per motif in the patterns[] array. 489*a8fa202aSchristos (Gcompile): Likewise. 490*a8fa202aSchristos (EGexecute): Loop through of array of patterns[] for a match. 491*a8fa202aSchristos 492*a8fa202aSchristos2001-02-17 Alain Magloire 493*a8fa202aSchristos 494*a8fa202aSchristos From Bernd Strieder : 495*a8fa202aSchristos # tail -f logfile | grep important | do_something_urgent 496*a8fa202aSchristos # tail -f logfile | grep important | do_something_taking_very_long 497*a8fa202aSchristos If grep does full buffering in these cases then the urgent operation 498*a8fa202aSchristos does not happen as it should in the first case, and in the second case 499*a8fa202aSchristos time is lost due to waiting for the buffer to be filled. 500*a8fa202aSchristos This is clearly spoken not grep's fault in the first place, but libc's. 501*a8fa202aSchristos There is a heuristic in libc that make a stream line-buffered only if a 502*a8fa202aSchristos terminal is on the other end. This doesn't take care of the cases where 503*a8fa202aSchristos this connection is somehow indirect. 504*a8fa202aSchristos 505*a8fa202aSchristos * src/grep.c (line_buffered): new option variable. 506*a8fa202aSchristos (prline): if line_buffered is set fflush() is call. 507*a8fa202aSchristos (usage): line_buffered new option. 508*a8fa202aSchristos Input from Paul Eggert, doing setvbuf() may not be portable 509*a8fa202aSchristos and breaks grep -z. 510*a8fa202aSchristos 511*a8fa202aSchristos2001-02-16 Alain Magloire 512*a8fa202aSchristos 513*a8fa202aSchristos Patch from Isamu Hasegawa, for multibyte support. 514*a8fa202aSchristos This patch prevent kwset_matcher from following problems. 515*a8fa202aSchristos For example, in SJIS encoding, one character has the codepoint 0x895c. 516*a8fa202aSchristos So the second byte of the character can match with '\' incorrectly. 517*a8fa202aSchristos And in eucJP encoding, there are the characters whose codepoints are 518*a8fa202aSchristos 0xa5b9, 0xa5c8. On the other hand, there is one character whose 519*a8fa202aSchristos codepoint is 0xb9a5. So 0xb9a5 can match with 2nd byte of 0xa5b9 520*a8fa202aSchristos and 1st byte of 0xa5c8. 521*a8fa202aSchristos 522*a8fa202aSchristos * configure.in: Add check for mbrtowc. 523*a8fa202aSchristos * src/search.c (check_multibyte_string): new function. 524*a8fa202aSchristos Support for multibyte string. 525*a8fa202aSchristos (EGexecute): call check_multibyte_string when kwset is set. 526*a8fa202aSchristos (Fexecute): call to check_multibyte_string. 527*a8fa202aSchristos (MBS_SUPPORT): new macro. 528*a8fa202aSchristos (MB_CUR_MAX): new macro. 529*a8fa202aSchristos 530*a8fa202aSchristos2001-02-16 Alain Magloire 531*a8fa202aSchristos 532*a8fa202aSchristos * djgpp/config.bat: Fix for 4dos.com. 533*a8fa202aSchristos * m4/dosfile.m4 (HAVE_DOS_FILE_CONTENTS): Was not set. 534*a8fa202aSchristos Bugs noted and patched by Juan Manuel Guerrero. 535*a8fa202aSchristos 536*a8fa202aSchristos2001-02-16 Alain Magloire 537*a8fa202aSchristos 538*a8fa202aSchristos A much requested feature, the possibility to select 539*a8fa202aSchristos files when doing recurse : 540*a8fa202aSchristos # find . -name "*.c" | xargs grep main {} 541*a8fa202aSchristos # grep --include=*.c main . 542*a8fa202aSchristos # find . -not -name "*.c" | xargs grep main {} 543*a8fa202aSchristos # grep --exclude=*.c main . 544*a8fa202aSchristos 545*a8fa202aSchristos * src/grep.c (short_options): -R equivalent to -r. 546*a8fa202aSchristos (#ifdef) : Fix some inconsistencies in the use of #ifdefs, prefer 547*a8fa202aSchristos #if defined() wen possible. 548*a8fa202aSchristos (long_options): Add --color, --include and exclude. 549*a8fa202aSchristos (Usage): Description of new options. 550*a8fa202aSchristos (color): Rename color variable to color_option. 551*a8fa202aSchristos Removed 'always|never|auto' arguments, not necessary for grep. 552*a8fa202aSchristos (exclude_pattern): new variable, holder for the file pattern. 553*a8fa202aSchristos (include_pattern): new variable, hoder for the file pattern. 554*a8fa202aSchristos * src/savedir.c: Signature change, take two new argmuments. 555*a8fa202aSchristos * doc/grep.texi: Document, new options. 556*a8fa202aSchristos * doc/grep.man: Document, new options. 557*a8fa202aSchristos 558*a8fa202aSchristos2001-02-09 Alain Magloire 559*a8fa202aSchristos 560*a8fa202aSchristos * src/grep.c (long_options): Added equivalent to -r with -R. 561*a8fa202aSchristos * src/grep.c (usage): added --color and --colour. 562*a8fa202aSchristos Noted with patch from, H.Merijn Brand and Wichert Akkerman. 563*a8fa202aSchristos 564*a8fa202aSchristos2001-02-09 Alain Magloire 565*a8fa202aSchristos 566*a8fa202aSchristos Patch from Ulrich Drepper to provide hilighting. 567*a8fa202aSchristos 568*a8fa202aSchristos * src/grep.c: New option --color. 569*a8fa202aSchristos (color): New static var. 570*a8fa202aSchristos (COLOR_OPTION): new constant. 571*a8fa202aSchristos (grep_color): new static var. 572*a8fa202aSchristos (prline): Now when color is set prline() will call the current matcher 573*a8fa202aSchristos to find the offset of the matching string. 574*a8fa202aSchristos * src/savedir.c: Take advantage of _DIRENT_HAVE_TYPE if supported. 575*a8fa202aSchristos * src/search.c (EGexecute, Fexecute, Pexecute): Take a new argument 576*a8fa202aSchristos when doing exact match for the color hiligting. 577*a8fa202aSchristos 578*a8fa202aSchristos2000-09-01 Brian Youmans 579*a8fa202aSchristos 580*a8fa202aSchristos * doc/grep.texi: Typo fixes. 581*a8fa202aSchristos 582*a8fa202aSchristos2000-08-30 Paul Eggert 583*a8fa202aSchristos 584*a8fa202aSchristos * doc/grep.texi (Usage): Talk about what "grep -r hello *.c" 585*a8fa202aSchristos means. 586*a8fa202aSchristos 587*a8fa202aSchristos2000-08-20 Paul Eggert 588*a8fa202aSchristos 589*a8fa202aSchristos Handle range expressions correctly even when they match 590*a8fa202aSchristos strings with two or more characters. 591*a8fa202aSchristos 592*a8fa202aSchristos * src/dfa.h (CRANGE): New enum value. Comment fix. 593*a8fa202aSchristos 594*a8fa202aSchristos * src/dfa.c: Include <locale.h> if HAVE_SETLOCALE. 595*a8fa202aSchristos Include "hard-locale.h". 596*a8fa202aSchristos (prtok): Print CRANGE. 597*a8fa202aSchristos (hard_LC_COLLATE): New static var. 598*a8fa202aSchristos (lex): Return CRANGE when parsing a character range in a hard locale. 599*a8fa202aSchristos Don't use strcoll; it's no longer needed and wasn't correct anyway. 600*a8fa202aSchristos Use unsigned rather than token to hold unsigned chars. 601*a8fa202aSchristos (addtok): Comment fix. 602*a8fa202aSchristos (atom): Treat a CRANGE as if it were (.\1), approximately. 603*a8fa202aSchristos (dfaparse): Initialize hard_LC_COLLATE. 604*a8fa202aSchristos 605*a8fa202aSchristos * src/Makefile.am (base_sources): Add hard-locale.c, hard-locale.h. 606*a8fa202aSchristos 607*a8fa202aSchristos * src/hard-locale.c, src/hard-locale.h: New files, taken from 608*a8fa202aSchristos textutils. 609*a8fa202aSchristos 610*a8fa202aSchristos2000-08-20 Paul Eggert 611*a8fa202aSchristos 612*a8fa202aSchristos * tests/Makefile.am (TESTS_ENVIRONMENT): Add LC_ALL=C, since 613*a8fa202aSchristos some of the tests assume the C locale. 614*a8fa202aSchristos 615*a8fa202aSchristos2000-08-16 Paul Eggert 616*a8fa202aSchristos 617*a8fa202aSchristos * src/search.c (Gcompile, Ecompile): -x overrides -w, for 618*a8fa202aSchristos consistency with fgrep. Don't assume that sizes fit in 'int'. 619*a8fa202aSchristos Fix comments to match code. 620*a8fa202aSchristos 621*a8fa202aSchristos2000-06-06 Paul Eggert 622*a8fa202aSchristos 623*a8fa202aSchristos * src/grep.c (grepdir): Don't look at st_dev when testing for 624*a8fa202aSchristos Mingw32 bug. 625*a8fa202aSchristos 626*a8fa202aSchristos2000-06-05 Paul Eggert 627*a8fa202aSchristos 628*a8fa202aSchristos Port to Mingw32, based on suggestions from Christian Groessler 629*a8fa202aSchristos <cpg@aladdin.de>. 630*a8fa202aSchristos 631*a8fa202aSchristos * src/isdir.c: New file, taken from fileutils. 632*a8fa202aSchristos 633*a8fa202aSchristos * src/Makefile.am (base_sources): Add isdir.c. 634*a8fa202aSchristos 635*a8fa202aSchristos * src/grep.c (grepfile): Use isdir instead of doing it inline. 636*a8fa202aSchristos (grepdir): Suppress ancestor check if the directory's inode and device 637*a8fa202aSchristos are both zero, as that occurs only on Mingw32 which doesn't support 638*a8fa202aSchristos inode or device. 639*a8fa202aSchristos 640*a8fa202aSchristos * src/system.h (isdir): New decl. 641*a8fa202aSchristos (is_EISDIR): Depend on HAVE_DIR_EACCES_BUG, not D_OK. 642*a8fa202aSchristos Use isdir, not access. 643*a8fa202aSchristos 644*a8fa202aSchristos2000-06-02 Paul Eggert 645*a8fa202aSchristos 646*a8fa202aSchristos Problen noted by Gerald Stoller <gerald_stoller@hotmail.com> 647*a8fa202aSchristos 648*a8fa202aSchristos * src/grep.c (main): POSIX.2 says that -q overrides -l, which 649*a8fa202aSchristos in turn overrides the other output options. Fix grep to 650*a8fa202aSchristos behave that way. 651*a8fa202aSchristos 652*a8fa202aSchristos2000-05-27 Paul Eggert 653*a8fa202aSchristos 654*a8fa202aSchristos Simplify and tune the buffer allocation strategy. Do not reserve a 655*a8fa202aSchristos large save area: reserve only enough bytes to hold the residue, plus 656*a8fa202aSchristos page alignment. Put a newline sentinel before the buffer, for speed 657*a8fa202aSchristos when searching backwards for newline. 658*a8fa202aSchristos 659*a8fa202aSchristos * src/grep.c (ubuffer, bufsalloc, PREFERRED_SAVE_FACTOR, page_alloc): 660*a8fa202aSchristos Remove. All uses changed. 661*a8fa202aSchristos (INITIAL_BUFSIZE): New macro. 662*a8fa202aSchristos (reset, fillbuf): Use simpler buffer allocation strategy. 663*a8fa202aSchristos (reset): Check for preposterously large pagesize that would cause 664*a8fa202aSchristos later calculations to overflow. 665*a8fa202aSchristos (fillbuf): Do not resize buffer if there's room at the end for 666*a8fa202aSchristos at least one more page. This greatly increases performance when 667*a8fa202aSchristos reading from non-regular files that contain no newlines. 668*a8fa202aSchristos When growing the buffer, double its size instead of using a 669*a8fa202aSchristos more complicated algorithm. 670*a8fa202aSchristos (prtext, grep): Speed up by relying on the newline sentinel before the 671*a8fa202aSchristos start of the buffer. 672*a8fa202aSchristos (grep): When looking backwards for the last newline in a buffer, 673*a8fa202aSchristos stop when we hit the residue, since it can't contain a newline. 674*a8fa202aSchristos This avoids an O(N**2) algorithm when reading binary data from 675*a8fa202aSchristos a pipe. Use a sentinel to speed up the backward search for newline. 676*a8fa202aSchristos (nlscan): Undo previous change; it wasn't needed and just complicates 677*a8fa202aSchristos and slows down the code a tad. 678*a8fa202aSchristos 679*a8fa202aSchristos2000-05-24 Paul Eggert 680*a8fa202aSchristos 681*a8fa202aSchristos Handle very large input counts better. Bug noted by Jim Meyering. 682*a8fa202aSchristos 683*a8fa202aSchristos * src/grep.c (totalcc, totalnl): Use uintmax_t, not off_t. 684*a8fa202aSchristos (add_count): New function. 685*a8fa202aSchristos (nlscan, prline, grep): Use it to check line and byte count overflows. 686*a8fa202aSchristos (nlscan, grep): Don't keep track of counts when not asked to; this 687*a8fa202aSchristos avoids unnecessary overflow diagnostics. 688*a8fa202aSchristos (print_offset_sep): Now takes args of type uintmax_t and char, 689*a8fa202aSchristos not off_t and int. 690*a8fa202aSchristos 691*a8fa202aSchristos2000-05-16 Paul Eggert 692*a8fa202aSchristos 693*a8fa202aSchristos Problem reported by Bob Proulx <rwp@hprwp.fc.hp.com>, this patch 694*a8fa202aSchristos is base on his finding, with appropiate corrections. 695*a8fa202aSchristos 696*a8fa202aSchristos * src/grep.c (main): Fix bug: -x and -w matched even when no 697*a8fa202aSchristos patterns were specified. 698*a8fa202aSchristos * tests/empty.sh: Test for -x and -w bug in grep 2.4.2. 699*a8fa202aSchristos 700*a8fa202aSchristos2000-04-24 Paul Eggert 701*a8fa202aSchristos 702*a8fa202aSchristos POSIX.2 conformance fixes: grep -q now exits with status zero 703*a8fa202aSchristos if an input line is selected, even if an error also occurs. 704*a8fa202aSchristos grep -s no longer affects exit status. 705*a8fa202aSchristos 706*a8fa202aSchristos * src/grep.c (suppress_errors): Move definition earlier so 707*a8fa202aSchristos that suppressible_error can use it. 708*a8fa202aSchristos (suppressible_error): New function. 709*a8fa202aSchristos (exit_on_match): New var. 710*a8fa202aSchristos (grepbuf): If exit_on_match is nonzero, exit with status zero 711*a8fa202aSchristos immediately. 712*a8fa202aSchristos (grep, grepfile, grepdir): Invoke suppressible_error. 713*a8fa202aSchristos (main): -q sets exit_on_match. 714*a8fa202aSchristos 715*a8fa202aSchristos * doc/grep.1, doc/grep.texi, NEWS: 716*a8fa202aSchristos Document -q's behavior as required by POSIX.2. 717*a8fa202aSchristos 718*a8fa202aSchristos * tests/status.sh: 719*a8fa202aSchristos Test for -q and -s behavior as conforming to POSIX.2. 720*a8fa202aSchristos 721*a8fa202aSchristos2000-04-20 Paul Eggert 722*a8fa202aSchristos 723*a8fa202aSchristos * tests/Makefile.am (TESTS_ENVIRONMENT): 724*a8fa202aSchristos Set GREP_OPTIONS to the empty string. 725*a8fa202aSchristos 726*a8fa202aSchristos2000-04-20 Paul Eggert 727*a8fa202aSchristos 728*a8fa202aSchristos * tests/status.sh: Fix typo: test -b -> test -r. 729*a8fa202aSchristos 730*a8fa202aSchristos2000-04-20 Paul Eggert 731*a8fa202aSchristos 732*a8fa202aSchristos * src/dfa.c (lex): 733*a8fa202aSchristos Do not assume that [c] is equivalent to [c-c]; this isn't true 734*a8fa202aSchristos if LC_COLLATE specifies that some characters are equivalent. 735*a8fa202aSchristos (setbit_case_fold): New function. 736*a8fa202aSchristos (lex): Use it to simplify the code a bit. 737*a8fa202aSchristos 738*a8fa202aSchristos2000-04-17 Paul Eggert 739*a8fa202aSchristos 740*a8fa202aSchristos Do CRLF munging only if HAVE_DOS_FILE_CONTENTS, instead of 741*a8fa202aSchristos having it depend on O_BINARY (which leads to incorrect results 742*a8fa202aSchristos on BeOS, VMS, and MacOS). 743*a8fa202aSchristos 744*a8fa202aSchristos * bootstrap/Makefile.try (DEFS): Add -DHAVE_DOS_FILE_CONTENTS. 745*a8fa202aSchristos * src/system.h (SET_BINARY): Define only if HAVE_DOS_FILE_CONTENTS. 746*a8fa202aSchristos (O_BINARY): Do not define. 747*a8fa202aSchristos 748*a8fa202aSchristos * m4/dosfile.m4: Define HAVE_DOS_FILE_CONTENTS if it appears we're 749*a8fa202aSchristos using DOS. 750*a8fa202aSchristos 751*a8fa202aSchristos * src/grep.c (undossify_input, fillbuf, dosbuf.c, prline, main): 752*a8fa202aSchristos Depend on HAVE_DOS_FILE_CONTENTS, not O_BINARY, when handling CRLF 753*a8fa202aSchristos matters. 754*a8fa202aSchristos (grepfile, main): Depend on SET_BINARY, not O_BINARY, when 755*a8fa202aSchristos handling binary files on hosts that care about text versus binary. 756*a8fa202aSchristos 757*a8fa202aSchristos2000-04-17 Paul Eggert 758*a8fa202aSchristos 759*a8fa202aSchristos * lib/getpagesize.h (getpagesize): Define to B_PAGE_SIZE if 760*a8fa202aSchristos __BEOS__ is defined. Based on a fix by Bruno Haible 761*a8fa202aSchristos <haible@clisp.cons.org>. 762*a8fa202aSchristos 763*a8fa202aSchristos2000-04-17 Bruno Haible 764*a8fa202aSchristos 765*a8fa202aSchristos * src/system.h [BeOS]: Ignore O_BINARY. 766*a8fa202aSchristos * src/getpagesize.h [BeOS]: Define getpagesize() as B_PAGE_SIZE. 767*a8fa202aSchristos 768*a8fa202aSchristos2000-04-10 Paul Eggert 769*a8fa202aSchristos 770*a8fa202aSchristos * doc/grep.1, doc/grep.texi, NEWS: -C now requires an operand. 771*a8fa202aSchristos * src/grep.c (short_options, long_options, main, usage): Likewise. 772*a8fa202aSchristos (context_length_arg): Renamed from ck_atoi. Now reports an error 773*a8fa202aSchristos and exits if the number is out of range for a context length. 774*a8fa202aSchristos (get_nondigit_option): New function, which checks for overflow 775*a8fa202aSchristos correctly, and which does not parse nonadjacent strings of digits 776*a8fa202aSchristos into a single number. 777*a8fa202aSchristos (main): Use get_nondigit_option instead of doing the code inline. 778*a8fa202aSchristos With -A, -B, and -C, optarg is now guaranteed to be nonzero. 779*a8fa202aSchristos 780*a8fa202aSchristos2000-04-08 Paul Eggert 781*a8fa202aSchristos 782*a8fa202aSchristos Now that we know that the input is always terminated by a 783*a8fa202aSchristos newline before the matching algorithms see it, clean up the 784*a8fa202aSchristos matching algorithms so that they no longer need to modify the 785*a8fa202aSchristos input by inserting a sentinel newline, and no longer worry 786*a8fa202aSchristos about running off the end of the buffer due to a missing sentinel. 787*a8fa202aSchristos 788*a8fa202aSchristos * src/grep.c (nlscan, prpending, prtext, grepbuf): Do not 789*a8fa202aSchristos worry about running off the end of the input buffer, since 790*a8fa202aSchristos it's now guaranteed to end in the sentinel newline. 791*a8fa202aSchristos * src/search.c (EGexecute, Pexecute): Likewise. 792*a8fa202aSchristos 793*a8fa202aSchristos * src/dfa.c (prtok, dfasyntax, dfaparse, copy, merge, state_index, 794*a8fa202aSchristos epsclosure, dfaexec, dfacomp): 795*a8fa202aSchristos Change many instances of "T *" to "T const *", to catch 796*a8fa202aSchristos any inadvertent programming errors made during this conversion. 797*a8fa202aSchristos * src/dfa.h (dfacomp, dfaexec, dfaparse): Likewise. 798*a8fa202aSchristos * src/grep.c (struct stats.parent, long_options, grepdir, 799*a8fa202aSchristos compile, execute, fillbuf, lastnl, lastout, nlscan, prline, 800*a8fa202aSchristos prpending, prtext, grepbuf, grep, grepfile, grepdir): Likewise. 801*a8fa202aSchristos * src/grep.h (struct matcher.compile, struct matcher.execute): 802*a8fa202aSchristos Likewise. 803*a8fa202aSchristos * src/kwset.c (struct kwset.trans, kwsalloc, kwsincr, treefails, 804*a8fa202aSchristos treedelta, hasevery, treenext, bmexec, cwexec, kwsexec): Likewise. 805*a8fa202aSchristos * src/kwset.h (kwsalloc, kwsincr, kwsexec): Likewise. 806*a8fa202aSchristos * src/search.c (kwsmusts, Gcompile, Ecompile, EGexecute, Pcompile, 807*a8fa202aSchristos Pexecute): Likewise. 808*a8fa202aSchristos 809*a8fa202aSchristos * src/dfa.c (dfaexec): 810*a8fa202aSchristos Use size_t, not char *, to avoid worrisome casts to convert 811*a8fa202aSchristos char const * to char *. 812*a8fa202aSchristos * src/dfa.h (dfaexec): Likewise. 813*a8fa202aSchristos * src/grep.c (execute): Likewise. 814*a8fa202aSchristos * src/grep.h (execute): Likewise. 815*a8fa202aSchristos * src/kwset.c (bmexec, cwexec, kwsexec): Likewise. 816*a8fa202aSchristos * src/kwset.h (struct kwsmatch.offset, kwsalloc, kwsincr, 817*a8fa202aSchristos kwsexec): Likewise. 818*a8fa202aSchristos * src/search.c (EGexecute, Fexecute, Pexecute): Likewise. 819*a8fa202aSchristos 820*a8fa202aSchristos * src/dfa.h (_PTR_T): Depend on defined __STDC__, not __STDC__. 821*a8fa202aSchristos (PARAMS): Depend on PROTOTYPES, not __STDC__. 822*a8fa202aSchristos 823*a8fa202aSchristos * src/dfa.c (dfasyntax): Last arg is unsigned char, not int. 824*a8fa202aSchristos * src/dfa.h (dfasyntax): Likewise. 825*a8fa202aSchristos 826*a8fa202aSchristos * src/dfa.h (struct dfa): Remove member newlines; no longer needed. 827*a8fa202aSchristos * src/dfa.c (build_state, dfaexec, dfafree): Do not worry 828*a8fa202aSchristos about special newline state. 829*a8fa202aSchristos 830*a8fa202aSchristos * src/search.c (matchers): Move definition to end of file, so 831*a8fa202aSchristos that we don't need forward decls. 832*a8fa202aSchristos (lastexact): Remove. 833*a8fa202aSchristos (kwset_exact_matches): New var; subsumes old lastexact var. 834*a8fa202aSchristos All uses changed. 835*a8fa202aSchristos 836*a8fa202aSchristos * src/dfa.c (index): Remove macro. 837*a8fa202aSchristos (REALLOC_IF_NECESSARY): Skip unnecessary test. 838*a8fa202aSchristos (tstbit, setbit, clrbit): Declare arg to be unsigned, to help compiler. 839*a8fa202aSchristos (copyset, zeroset, equal): Use C builtin primitives, to help compiler. 840*a8fa202aSchristos (dfaexec): Do not modify input string. 841*a8fa202aSchristos Remove newline parameter; no longer needed. 842*a8fa202aSchristos (comsubs): Use strchr, not index. 843*a8fa202aSchristos 844*a8fa202aSchristos * src/grep.h (matchers): Use fixed name size, not pointer (as 845*a8fa202aSchristos there's no need for the extra flexibility). All uses changed. 846*a8fa202aSchristos 847*a8fa202aSchristos * src/kwset.h (struct kwsmatch.offset): Renamed from beg, with 848*a8fa202aSchristos change of type to size_t. All uses changed. 849*a8fa202aSchristos 850*a8fa202aSchristos * src/grep.c (reset): No longer need kludge for dfaexec. Simplify. 851*a8fa202aSchristos (reset, grepbuf): Adjust to new interface for 'execute'. 852*a8fa202aSchristos (install_matcher): List is now terminated by null compile, 853*a8fa202aSchristos not null name. 854*a8fa202aSchristos Do not invoke setrlimit if that wouldn't change the limit. 855*a8fa202aSchristos 856*a8fa202aSchristos * src/dfa.c (xcalloc, xmalloc, xrealloc, prtok, tstbit, setbit, 857*a8fa202aSchristos clrbit, copyset, zeroset, notset, equal, charclass_index, 858*a8fa202aSchristos looking_at, lex, addtok, atom, nsubtoks, copytoks, closure, 859*a8fa202aSchristos branch, regexp, copy, insert, merge, delete, state_index, 860*a8fa202aSchristos build_state, build_state_zero, icatalloc, icpyalloc, istrstr, 861*a8fa202aSchristos ifree, freelist, enlist, comsubs, addlists, inboth): 862*a8fa202aSchristos Remove forward decls; no longer needed. 863*a8fa202aSchristos * src/grep.c (ck_atoi, usage, error, setmatcher, 864*a8fa202aSchristos install_matcher, prepend_args, prepend_default_options, 865*a8fa202aSchristos page_alloc, reset, fillbuf, grepbuf, prtext, prpending, prline, 866*a8fa202aSchristos print_offset_sep, nlscan, grep, grepfile): Likewise. 867*a8fa202aSchristos * src/kwset.c (enqueue, treefails, treedelta, hasevery, 868*a8fa202aSchristos treenext, bmexec, cwexec): Likewise. 869*a8fa202aSchristos * src/search.c (Gcompile, Ecompile, EGexecute, Fcompile, Fexecute, 870*a8fa202aSchristos Pcompile, Pexecute, kwsinit): Likewise. 871*a8fa202aSchristos 872*a8fa202aSchristos * src/search.c (Pcompile): Do not assume newly allocated 873*a8fa202aSchristos storage is zeroed. 874*a8fa202aSchristos 875*a8fa202aSchristos2000-04-06 Paul Eggert 876*a8fa202aSchristos 877*a8fa202aSchristos * doc/grep.1, doc/grep.texi, NEWS: Improve the explanation of 878*a8fa202aSchristos locale-dependent behavior of range expressions. Mention 879*a8fa202aSchristos LC_COLLATE, since this affects range expressions. 880*a8fa202aSchristos 881*a8fa202aSchristos2000-03-26 Paul Eggert 882*a8fa202aSchristos 883*a8fa202aSchristos * Makefile.am (ACINCLUDE_INPUTS): Add decl.m4, inttypes_h.m4, 884*a8fa202aSchristos uintmax_t.m4, ulonglong.m4, xstrtoumax.m4. 885*a8fa202aSchristos * m4/Makefile.am (EXTRA_DIST): Likewise. 886*a8fa202aSchristos 887*a8fa202aSchristos * src/Makefile.am (base_sources): 888*a8fa202aSchristos Add xstrtol.c, xstrtol.h, xstrtoumax.c. 889*a8fa202aSchristos (EXTRA_DIST): Add strtol.c. 890*a8fa202aSchristos 891*a8fa202aSchristos * configure.in (jm_AC_TYPE_UINTMAX_T, jm_AC_PREREQ_XSTRTOUMAX, 892*a8fa202aSchristos HAVE_DECL_STRTOUL, HAVE_DECL_STRTOULL): Add. 893*a8fa202aSchristos (AC_REPLACE_FUNCS): Add strtoul. 894*a8fa202aSchristos 895*a8fa202aSchristos * src/grep.c: Include xstrtol.h. 896*a8fa202aSchristos (ck_atio): Use xstrtoumax and do proper overflow checking. 897*a8fa202aSchristos (max_count, outleft): Now off_t, not int. 898*a8fa202aSchristos (main): Likewise. Use xstrtoumax to convert max_count from string. 899*a8fa202aSchristos 900*a8fa202aSchristos * acconfig.h (HAVE_DECL_STRTOUL, HAVE_DECL_STRTOULL): New #undefs. 901*a8fa202aSchristos (HAVE_STPCPY, ENABLE_NLS, HAVE_CATGETS, HAVE_GETTEXT, 902*a8fa202aSchristos HAVE_LC_MESSAGES): Remove. 903*a8fa202aSchristos 904*a8fa202aSchristos * m4/decl.m4, m4/inttypes_h.m4, m4/uintmax_t.m4, m4/ulonglong.m4, 905*a8fa202aSchristos m4/xstrtoumax.m4, src/strtol.c, src/strtoul.c, src/strtoull.c, 906*a8fa202aSchristos src/strtoumax.c, src/xstrtol.c, src/xstrtol.h, src/xstrtoumax.c: 907*a8fa202aSchristos New files, taken unchanged from textutils, fileutils, sh-utils 908*a8fa202aSchristos and/or tar. 909*a8fa202aSchristos 910*a8fa202aSchristos2000-03-23 Paul Eggert 911*a8fa202aSchristos 912*a8fa202aSchristos * src/search.c (Pcompile): Add support for NUL bytes in 913*a8fa202aSchristos Perl regular expressions. 914*a8fa202aSchristos 915*a8fa202aSchristos2000-03-23 Paul Eggert 916*a8fa202aSchristos 917*a8fa202aSchristos * NEWS, doc/grep.1, doc/grep.texi: Change --pcre to --perl-regexp. 918*a8fa202aSchristos * src/grep.c (long_options, usage): Likewise. 919*a8fa202aSchristos 920*a8fa202aSchristos * doc/grep.1, doc/grep.texi: Remove pgrep program. 921*a8fa202aSchristos * src/Makefile.am (bin_PROGRAMS): Likewise. 922*a8fa202aSchristos (pgrep_SOURCES): Remove. 923*a8fa202aSchristos 924*a8fa202aSchristos * src/grep.c (main): Rename matcher from "pgrep" to "perl". 925*a8fa202aSchristos * src/search.c (matchers): Likewise. 926*a8fa202aSchristos 927*a8fa202aSchristos * src/search.c: Do not include stdio.h; no longer needed. 928*a8fa202aSchristos (NILP): Remove. 929*a8fa202aSchristos (sub): No longer static. 930*a8fa202aSchristos (n_pcre): Remove. 931*a8fa202aSchristos (cre): No longer an array. Present only if HAVE_LIBPCRE. 932*a8fa202aSchristos (extra): New variable. 933*a8fa202aSchristos (Pcompile): Use fatal to report errors. 934*a8fa202aSchristos This also removes a possible core dump. 935*a8fa202aSchristos Add checks (marked FIXME) for restrictions in pcre. 936*a8fa202aSchristos Use pcre_maketables for proper localized behavior. 937*a8fa202aSchristos (Pcompile, Pexecute): Use GNU coding style. 938*a8fa202aSchristos The argument is a single pattern, not a list of patterns separated 939*a8fa202aSchristos by newlines; this is for consistency with grep and egrep. 940*a8fa202aSchristos Use pcre_study for speed. 941*a8fa202aSchristos (Pexecute): Abort if we lack pcre. 942*a8fa202aSchristos Abort if pcre_exec reports an impossible error. 943*a8fa202aSchristos Use code similar to the rest of search.c 944*a8fa202aSchristos to narrow down to the line we've found. 945*a8fa202aSchristos 946*a8fa202aSchristos2000-03-21 Alain Magloire 947*a8fa202aSchristos 948*a8fa202aSchristos * configure.in: added AC_CHECK_LIB(pcre, pcre_exec) 949*a8fa202aSchristos * ChangeLog: Typos corrected. 950*a8fa202aSchristos * src/search.c: new MACRO HAVE_LIBPCRE 951*a8fa202aSchristos 952*a8fa202aSchristos2000-03-21 H.Merijn Brand 953*a8fa202aSchristos 954*a8fa202aSchristos * src/Makefile.am(bin_PROGRAMS): added pgrep and new macro 955*a8fa202aSchristos pgrep_SOURCES. 956*a8fa202aSchristos * src/search.c: new functions Pcompile() and Pexecute() 957*a8fa202aSchristos to support PCRE. Update matcher[] array for pgrep. 958*a8fa202aSchristos * src/grep.c: new short and long option --pcre and -P. 959*a8fa202aSchristos usage() updated. 960*a8fa202aSchristos 961*a8fa202aSchristos2000-03-21 Bastiaan Stougie 962*a8fa202aSchristos 963*a8fa202aSchristos Improvement of the -m or --max-count option. Now works for NUM > 1 and 964*a8fa202aSchristos prints trailing context for the last matching line. 965*a8fa202aSchristos 966*a8fa202aSchristos * src/grep.c 967*a8fa202aSchristos (after_last_match): Is a new off_t variable that replaces inputhwm 968*a8fa202aSchristos to retain the correct input offset even after a call to fillbuf. Note 969*a8fa202aSchristos that after_last_match has a different meaning than inputhwm: 970*a8fa202aSchristos it always points to the offset in the input of the first byte after 971*a8fa202aSchristos the last matching line, and is 0 if no matching line has been found 972*a8fa202aSchristos yet. 973*a8fa202aSchristos (grep): Print trailing context after the NUMth match when the -m NUM 974*a8fa202aSchristos option is used. 975*a8fa202aSchristos (grep): Added comment. Should have been commented already. 976*a8fa202aSchristos (grepbuf): Now updates outleft correctly. This fixes the bug that the 977*a8fa202aSchristos -m NUM option did not stop after NUM lines for NUM greater than 1. 978*a8fa202aSchristos (grepbuf, prtext): Now update after_last_match instead of inputhwm. 979*a8fa202aSchristos (fillbuf): No longer updates inputhwm. 980*a8fa202aSchristos (prpending): When outputting trailing context of the max_count-th 981*a8fa202aSchristos matching line, stop at the first matching line. 982*a8fa202aSchristos (grepfile): Seek to after_last_match or eof, depending on the values 983*a8fa202aSchristos of outleft and bufmapped. 984*a8fa202aSchristos (usage): added the -m or --max-count option to the help message. 985*a8fa202aSchristos * doc/grep.texi, doc/grep.1: Document the change of the -m option. 986*a8fa202aSchristos 987*a8fa202aSchristos2000-03-17 Paul Eggert 988*a8fa202aSchristos 989*a8fa202aSchristos Add new -m or --max-count option, based on a suggestion by 990*a8fa202aSchristos Bastiaan Stougie. 991*a8fa202aSchristos 992*a8fa202aSchristos * doc/grep.texi, doc/grep.1: Document it. 993*a8fa202aSchristos * src/grep.c (short_options, long_options, main): Add it. 994*a8fa202aSchristos (inputhwm): New variable. 995*a8fa202aSchristos (fillbuf, prtext, grepbuf): Set it. 996*a8fa202aSchristos (bufmapped): Now a macro (defined to zero) if HAVE_MMAP is not defined. 997*a8fa202aSchristos (max_count, outleft): New variables. 998*a8fa202aSchristos (prtext, grepbuf, grep): Don't output more than outleft lines. 999*a8fa202aSchristos (grepfile): If grepping standard input, seek to the limit of what 1000*a8fa202aSchristos we've read before exiting. This fixes a bug with mmapped input, 1001*a8fa202aSchristos and is needed for proper -m support. 1002*a8fa202aSchristos (main): Exit immediately if -m 0 is specified. 1003*a8fa202aSchristos 1004*a8fa202aSchristos2000-03-08 Alain Magloire 1005*a8fa202aSchristos 1006*a8fa202aSchristos * configure.in: version 2.4.2 1007*a8fa202aSchristos 1008*a8fa202aSchristos2000-03-07 Paul Eggert 1009*a8fa202aSchristos 1010*a8fa202aSchristos * Make intl subdirectory match fileutils, tar, etc.; 1011*a8fa202aSchristos see intl/ChangeLog for details. 1012*a8fa202aSchristos 1013*a8fa202aSchristos * src/getpagesize.h: Reformat to match latest fileutils. 1014*a8fa202aSchristos 1015*a8fa202aSchristos * src/savedir.c (savedir): Work even if directory size is 1016*a8fa202aSchristos negative; this can happen with some NFS screwups. 1017*a8fa202aSchristos 1018*a8fa202aSchristos2000-03-03 Jim Meyering 1019*a8fa202aSchristos 1020*a8fa202aSchristos * regex.m4: Make sure re_compile_pattern accepts patterns like `{1'. 1021*a8fa202aSchristos 1022*a8fa202aSchristos2000-03-02 Alain Magloire 1023*a8fa202aSchristos 1024*a8fa202aSchristos * 2.4.1 Release 1025*a8fa202aSchristos 1026*a8fa202aSchristos2000-02-25 Paul Eggert 1027*a8fa202aSchristos 1028*a8fa202aSchristos * configure.in (LIBOBJS): Work around automake 1.4 bug: 1029*a8fa202aSchristos regex.c wasn't being passed through ansi2knr on pre-ANSI hosts. 1030*a8fa202aSchristos (ac_use_included_regex): Fix typo in warning. 1031*a8fa202aSchristos * src/Makefile.am (EXTRA_DIST): Remove regex.c, as the LIBOBJS 1032*a8fa202aSchristos workaround means that automake now puts regex.c into DIST_COMMON. 1033*a8fa202aSchristos 1034*a8fa202aSchristos2000-02-25 Alain Magloire 1035*a8fa202aSchristos 1036*a8fa202aSchristos * po/*.po: update of the PO files. 1037*a8fa202aSchristos 1038*a8fa202aSchristos2000-02-22 Eli Zaretskii 1039*a8fa202aSchristos 1040*a8fa202aSchristos * doc/grep.1: Two small glitches(typos). 1041*a8fa202aSchristos 1042*a8fa202aSchristos2000-02-18 Eli Zaretskii 1043*a8fa202aSchristos 1044*a8fa202aSchristos * djgpp/config.site (prefix, INSTALL): Use /dev/env/DJDIR instead 1045*a8fa202aSchristos of ${DJDIR}, so that the produced Makefile's work on any DJGPP 1046*a8fa202aSchristos installation. 1047*a8fa202aSchristos 1048*a8fa202aSchristos2000-01-30 Alain Magloire 1049*a8fa202aSchristos 1050*a8fa202aSchristos * doc/grep.1: corrected typo. 1051*a8fa202aSchristos Noted by Ruslan Ermilov. 1052*a8fa202aSchristos 1053*a8fa202aSchristos2000-01-30 Alain Magloire 1054*a8fa202aSchristos 1055*a8fa202aSchristos * vms/Makefile.am: added config_vms.h to EXTRA_DIST. 1056*a8fa202aSchristos * vms/config_vms.h: New File, contains macros specific to VMS and 1057*a8fa202aSchristos avoid namespace collision with operating system supplied C library. 1058*a8fa202aSchristos * vms/make.com: Better compiler auto-detection; information for builds 1059*a8fa202aSchristos on pre-OpenVMS 7.x systems; general overhaul. 1060*a8fa202aSchristos * src/getpagesize.h: Reinstate support for different pagesizes on 1061*a8fa202aSchristos VAX and Alpha. Work around problem with DEC C compiler. 1062*a8fa202aSchristos * src/vms_fab.c: Cast to some assigments; fixed typo argcp vs. argp. 1063*a8fa202aSchristos * src/vms_fab.h: Added new include files to avoid warnings about 1064*a8fa202aSchristos undefined function prototypes. 1065*a8fa202aSchristos Those patches were provided by Martin P.J. Zinser (zinser@decus.de). 1066*a8fa202aSchristos 1067*a8fa202aSchristos2000-01-30 Paul Eggert 1068*a8fa202aSchristos 1069*a8fa202aSchristos * src/grep.c (main): Update copyright notice. 1070*a8fa202aSchristos 1071*a8fa202aSchristos2000-01-28 Alain Magloire 1072*a8fa202aSchristos 1073*a8fa202aSchristos * src/grep.c (usage): The example "%s -i 'hello.*world' could 1074*a8fa202aSchristos lead to confusion when progname is 'fgrep. 1075*a8fa202aSchristos Noted by Akim Demaille. 1076*a8fa202aSchristos 1077*a8fa202aSchristos * configure.in: Reenable, jm_INCLUDE_REGEX() since we now 1078*a8fa202aSchristos track GNU lib C. 1079*a8fa202aSchristos * src/Makefile.am: EXTRA_DIST new macros with regex.c regex.h. 1080*a8fa202aSchristos Requested By Ulrich Drepper. 1081*a8fa202aSchristos 1082*a8fa202aSchristos2000-01-25 Paul Eggert 1083*a8fa202aSchristos 1084*a8fa202aSchristos * src/grep.c (grep): If the final byte of an input file is not 1085*a8fa202aSchristos a newline, grep now silently supplies one. 1086*a8fa202aSchristos * doc/grep.texi, NEWS: Likewise. 1087*a8fa202aSchristos 1088*a8fa202aSchristos2000-01-25 Paul Eggert 1089*a8fa202aSchristos 1090*a8fa202aSchristos * NEWS, doc/grep.1, doc/grep.texi: Add -I option. 1091*a8fa202aSchristos * src/grep.c (short_options, usage, main): Likewise. 1092*a8fa202aSchristos 1093*a8fa202aSchristos * doc/grep.texi: Fix some incorrect references to ASCII. 1094*a8fa202aSchristos 1095*a8fa202aSchristos2000-01-25 Paul Eggert 1096*a8fa202aSchristos 1097*a8fa202aSchristos * doc/grep.1: Simplify synopsis; sort options; mention 1098*a8fa202aSchristos environment variables; clean up some minor gaffes. 1099*a8fa202aSchristos 1100*a8fa202aSchristos2000-01-25 Paul Eggert 1101*a8fa202aSchristos 1102*a8fa202aSchristos * doc/grep.texi: 1103*a8fa202aSchristos Fix some errors in description of [:print:] and the like. 1104*a8fa202aSchristos 1105*a8fa202aSchristos2000-01-23 Paul Eggert 1106*a8fa202aSchristos 1107*a8fa202aSchristos * src/dfa.c (FETCH, lex): Put brackets around if-body to avoid 1108*a8fa202aSchristos GCC warning about ambiguous if-then-else. 1109*a8fa202aSchristos 1110*a8fa202aSchristos2000-01-23 Paul Eggert 1111*a8fa202aSchristos 1112*a8fa202aSchristos * src/regex.c (GET_UNSIGNED_NUMBER): Allow only ASCII digits. 1113*a8fa202aSchristos * src/dfa.c (ISASCIIDIGIT): New macro. 1114*a8fa202aSchristos (lex): Use it instead of ISDIGIT. 1115*a8fa202aSchristos 1116*a8fa202aSchristos2000-01-23 Paul Eggert 1117*a8fa202aSchristos 1118*a8fa202aSchristos The bug is that regular expression ranges like [a-z] compare raw 1119*a8fa202aSchristos byte codes to the range boundaries, whereas POSIX says that they 1120*a8fa202aSchristos should use the current collating sequence instead. For example, 1121*a8fa202aSchristos in Solaris 7 with LC_ALL=en_US, the command 1122*a8fa202aSchristos echo x | grep '[ -~]' 1123*a8fa202aSchristos outputs 'x', but it shouldn't output anything since ' ' and '~' 1124*a8fa202aSchristos sort before all letters in that locale. 1125*a8fa202aSchristos 1126*a8fa202aSchristos * src/regex.c (compile_range): When matching a character 1127*a8fa202aSchristos range, use the current collating sequence, as POSIX requires. 1128*a8fa202aSchristos * src/dfa.c (lex): Likewise. 1129*a8fa202aSchristos 1130*a8fa202aSchristos2000-01-20 Alain Magloire 1131*a8fa202aSchristos 1132*a8fa202aSchristos * tests/Makefile.am (dist-hook): Added new rule to make sure 1133*a8fa202aSchristos that the shell scripts have the right permissions. 1134*a8fa202aSchristos * src/posix/Makefile.am (EXTRA_DIST): added regex.h in the 1135*a8fa202aSchristos distribution. 1136*a8fa202aSchristos * THANKS: updated. 1137*a8fa202aSchristos 1138*a8fa202aSchristos2000-01-18 Alain Magloire 1139*a8fa202aSchristos 1140*a8fa202aSchristos * Rectification the initial patch to add --binary-file option 1141*a8fa202aSchristos was done by Ruslan Ermilov. 1142*a8fa202aSchristos 1143*a8fa202aSchristos2000-01-17 Paul Eggert 1144*a8fa202aSchristos 1145*a8fa202aSchristos Sync with sources of fileutils 4.0n, tar 1.13.17, glibc 2.1.3a1. 1146*a8fa202aSchristos Convert to ANSI C prototypes (using ansi2knr for backwards 1147*a8fa202aSchristos compatibility), as this makes it easier to sync. 1148*a8fa202aSchristos 1149*a8fa202aSchristos * configure.in (AC_OBJEXT): Spell in a funny way, to work around 1150*a8fa202aSchristos a bug in automake 1.4 with ansi2knr. 1151*a8fa202aSchristos (LIBOBJS): Add assignment so that .o files in LIBOBJS are also built 1152*a8fa202aSchristos via the ANSI2KNR-filtering rules. 1153*a8fa202aSchristos (AC_OUTPUT): Add src/posix/Makefile. 1154*a8fa202aSchristos * src/Makefile.am (AUTOMAKE_OPTIONS): Add ansi2knr. 1155*a8fa202aSchristos (SUBDIRS): New macro. 1156*a8fa202aSchristos * src/ansi2knr.1, src/ansi2knr.c, src/posix/Makefile.am: New files. 1157*a8fa202aSchristos * src/dfa.c, src/dosbuf.c, src/grep.c, src/kwset.c, src/search.c, 1158*a8fa202aSchristos src/vms_fab.c: 1159*a8fa202aSchristos Use prototypes for function definitions. 1160*a8fa202aSchristos * src/grep.c (main): Use int counter for default context, 1161*a8fa202aSchristos fixing an ANSI portability bug uncovered by the above changes. 1162*a8fa202aSchristos 1163*a8fa202aSchristos * config.guess, config.sub, install-sh, missing, src/alloca.c, 1164*a8fa202aSchristos src/getpagesize.h, src/memchr.c, src/savedir.c, src/savedir.h, 1165*a8fa202aSchristos src/stpcpy.c: 1166*a8fa202aSchristos Upgrade to latest version from fileutils 4.0n. 1167*a8fa202aSchristos 1168*a8fa202aSchristos * src/getopt.c, src/getopt.h, src/getopt1.c: Upgrade to latest 1169*a8fa202aSchristos version from tar 1.13.17. 1170*a8fa202aSchristos 1171*a8fa202aSchristos * src/obstack.c, src/obstack.h, src/regex.c, src/regex.h: 1172*a8fa202aSchristos Upgrade to glibc 2.1.3 alpha 1, with K&R C portability fix. 1173*a8fa202aSchristos * src/posix/regex.h: New file, from glibc 2.1.3 alpha 1. 1174*a8fa202aSchristos 1175*a8fa202aSchristos2000-01-04 Paul Eggert 1176*a8fa202aSchristos 1177*a8fa202aSchristos Initial patch by Ruslan Ermilov. 1178*a8fa202aSchristos 1179*a8fa202aSchristos Add --binary-files option. 1180*a8fa202aSchristos * NEWS, doc/grep.1, doc/grep.texi: Document it. 1181*a8fa202aSchristos * src/grep.c (BINARY_FILES_OPTION): New constant. 1182*a8fa202aSchristos (long_options, grep, usage, main): New --binary-files option. 1183*a8fa202aSchristos (binary_files): New var. 1184*a8fa202aSchristos * src/system.h (TYPE_SIGNED, TYPE_MINIMUM, TYPE_MAXIMUM, CHAR_MAX): 1185*a8fa202aSchristos New macros. 1186*a8fa202aSchristos (INT_MAX, UCHAR_MAX): Define in terms of TYPE_MAXIMUM. 1187*a8fa202aSchristos 1188*a8fa202aSchristos2000-01-04 Paul Eggert 1189*a8fa202aSchristos 1190*a8fa202aSchristos * savedir.c (savedir): Don't store past the end of an array if 1191*a8fa202aSchristos name_size is zero and the directory is empty. 1192*a8fa202aSchristos Reported by Dima Barsky <dima@pwd.hp.com>. 1193*a8fa202aSchristos 1194*a8fa202aSchristos1999-12-03 Alain Magloire 1195*a8fa202aSchristos 1196*a8fa202aSchristos * 2.4 Release. 1197*a8fa202aSchristos 1198*a8fa202aSchristos1999-11-18 Paul Eggert 1199*a8fa202aSchristos 1200*a8fa202aSchristos * m4/largefile.m4 (AC_SYS_LARGEFILE_FLAGS): Work around a 1201*a8fa202aSchristos problem with the QNX 4.25 shell, which doesn't propagate exit 1202*a8fa202aSchristos status of failed commands inside shell assignments. 1203*a8fa202aSchristos 1204*a8fa202aSchristos1999-11-13 Eli Zaretskii 1205*a8fa202aSchristos 1206*a8fa202aSchristos * doc/grep.texi: Minor markup and spelling corrections. Use 1207*a8fa202aSchristos @noindent where appropriate. 1208*a8fa202aSchristos 1209*a8fa202aSchristos * PATCHES-{AM,AC}: rename to PATCHES.{AM,AC} 1210*a8fa202aSchristos 1211*a8fa202aSchristos1999-11-12 Eli Zaretskii 1212*a8fa202aSchristos 1213*a8fa202aSchristos doc/grep.texi: Minor fixes and typos corrected. 1214*a8fa202aSchristos djgpp/README: Updated version. 1215*a8fa202aSchristos 1216*a8fa202aSchristos1999-11-07 Paul Eggert 1217*a8fa202aSchristos 1218*a8fa202aSchristos * src/grep.c (usage): Fix misspelling. 1219*a8fa202aSchristos 1220*a8fa202aSchristos1999-11-07 Paul Eggert 1221*a8fa202aSchristos 1222*a8fa202aSchristos Don't assume that the C library has re_set_syntax and friends. 1223*a8fa202aSchristos * src/Makefile.am (base_sources): Add regex.c, regex.h. 1224*a8fa202aSchristos (EXTRA_DIST): Remove regex.c, regex.h. 1225*a8fa202aSchristos 1226*a8fa202aSchristos * src/grep.c (prtext): Use out_quiet, not not_text, to decide 1227*a8fa202aSchristos whether to set pending to zero at the end. 1228*a8fa202aSchristos (not_text): Remove static variable, undoing latest change. 1229*a8fa202aSchristos (grep): Likewise. 1230*a8fa202aSchristos 1231*a8fa202aSchristos * doc/grep.texi: Tighten up the text, and fix some minor 1232*a8fa202aSchristos spelling and usage errors. Use @enumerate rather than @table 1233*a8fa202aSchristos @samp, since it's better for Q&A format. Add cross 1234*a8fa202aSchristos references. 1235*a8fa202aSchristos 1236*a8fa202aSchristos1999-11-01 Alain Magloire 1237*a8fa202aSchristos 1238*a8fa202aSchristos * src/search.c: Use the more portable [[:alnum:]] 1239*a8fa202aSchristos to define a word instead of Ascii dependent [0-9A-Za-z] 1240*a8fa202aSchristos * src/grep.c: make not_text global to not display text when 1241*a8fa202aSchristos the context switches -A/-B/-C are use on binary files. 1242*a8fa202aSchristos * make grep-2.3g available for testing. 1243*a8fa202aSchristos * configure.in: drop support for --without-included-regex. 1244*a8fa202aSchristos This was generating bogus bug reports, since many GNU/Linux 1245*a8fa202aSchristos users have different version of glibc. And glibc maintainers 1246*a8fa202aSchristos decided to drop k&r support. 1247*a8fa202aSchristos 1248*a8fa202aSchristos1999-11-01 Arnold D. Robbins 1249*a8fa202aSchristos 1250*a8fa202aSchristos * regex.c (init_syntax_once): move below definition of 1251*a8fa202aSchristos ISALNUM etc., then use ISALNUM to init the table, so that 1252*a8fa202aSchristos the word ops will work if i18n'ed. 1253*a8fa202aSchristos (SYNTAX): And subscript with 0xFF for Latin-1 characters. 1254*a8fa202aSchristos 1255*a8fa202aSchristos1999-10-26 Alain Magloire 1256*a8fa202aSchristos 1257*a8fa202aSchristos * src/regex.c: Merge changes from GNU lib C. 1258*a8fa202aSchristos * Updated the *.po files 1259*a8fa202aSchristos 1260*a8fa202aSchristos1999-10-26 Paul Eggert 1261*a8fa202aSchristos 1262*a8fa202aSchristos * src/grep.c (fillbuf): Don't report buffer size overflow if 1263*a8fa202aSchristos newalloc == save and maxalloc == save. This can happen 1264*a8fa202aSchristos e.g. when reading a large page-aligned file that contains 1265*a8fa202aSchristos no newlines. 1266*a8fa202aSchristos 1267*a8fa202aSchristos1999-10-21 Paul Eggert 1268*a8fa202aSchristos 1269*a8fa202aSchristos * src/grep.c (usage): Give example. Clarify -F. 1270*a8fa202aSchristos Explain exit status more clearly. 1271*a8fa202aSchristos 1272*a8fa202aSchristos1999-10-12 Paul Eggert 1273*a8fa202aSchristos 1274*a8fa202aSchristos * doc/grep.texi: Shorten the commentary about egrep and {. 1275*a8fa202aSchristos "BSD grep" -> "traditional grep". 1276*a8fa202aSchristos * doc/grep.1: Match recent changes to grep.texi. 1277*a8fa202aSchristos 1278*a8fa202aSchristos1999-10-11 Paul Eggert 1279*a8fa202aSchristos 1280*a8fa202aSchristos * NEWS, doc/grep.1, doc/grep.texi: New option --mmap. 1281*a8fa202aSchristos * src/grep.c (mmap_option): New variable. 1282*a8fa202aSchristos (long_options, reset, usage): Add --mmap. 1283*a8fa202aSchristos Default is now read, not mmap. 1284*a8fa202aSchristos 1285*a8fa202aSchristos * doc/grep.1: Document -Z or --null. 1286*a8fa202aSchristos 1287*a8fa202aSchristos1999-10-11 Paul Eggert 1288*a8fa202aSchristos 1289*a8fa202aSchristos * doc/grep.texi: Fix texinfo glitches. POSIX -> POSIX.2 where 1290*a8fa202aSchristos appropriate. 1291*a8fa202aSchristos 1292*a8fa202aSchristos1999-10-11 Paul Eggert 1293*a8fa202aSchristos 1294*a8fa202aSchristos * acconfig.h (ssize_t): New #undef. 1295*a8fa202aSchristos 1296*a8fa202aSchristos * configure.in (AC_CHECK_TYPE): Add ssize_t. 1297*a8fa202aSchristos 1298*a8fa202aSchristos * src/grep.c (PREFERRED_SAVE_FACTOR): New macro. 1299*a8fa202aSchristos (reset): If the buffer has already been allocated, set bufsalloc to 1300*a8fa202aSchristos be bufalloc / PREFERRED_SAVE_FACTOR. This avoids problems when 1301*a8fa202aSchristos bufsalloc == bufalloc (possible after reading a large binary file). 1302*a8fa202aSchristos (reset): Use PREFERRED_SAVE_FACTOR instead of magic constant. 1303*a8fa202aSchristos Do not set bufbeg; nobody uses it. 1304*a8fa202aSchristos Always set buflim. 1305*a8fa202aSchristos Check for lseek error. 1306*a8fa202aSchristos Use SEEK_CUR, not a magic constant. 1307*a8fa202aSchristos (fillbuf): Return an error indication, not a count. 1308*a8fa202aSchristos All callers changed. 1309*a8fa202aSchristos Do not assume ssize_t fits in int. 1310*a8fa202aSchristos Use PREFERRED_SAVE_FACTOR instead of magic constant. 1311*a8fa202aSchristos Clean up mmap code. 1312*a8fa202aSchristos Do not attempt to mmap zero bytes. 1313*a8fa202aSchristos Check for lseek error. 1314*a8fa202aSchristos Use SEEK_SET, not a magic constant. 1315*a8fa202aSchristos Work correctly if read is interrupted. 1316*a8fa202aSchristos (grepfile): Work correctly if open or close is interrupted. 1317*a8fa202aSchristos 1318*a8fa202aSchristos * src/system.h (SEEK_SET, SEEK_CUR): New macros. 1319*a8fa202aSchristos 1320*a8fa202aSchristos1999-10-02 Alain Magloire 1321*a8fa202aSchristos 1322*a8fa202aSchristos * src/regex.[ch]: upgrade from GNU lib C source tree. 1323*a8fa202aSchristos 1324*a8fa202aSchristos * make beta 2.3f available. 1325*a8fa202aSchristos 1326*a8fa202aSchristos1999-10-02 Paul Eggert 1327*a8fa202aSchristos 1328*a8fa202aSchristos * NEWS: egrep is now equivalent to `grep -E'. 1329*a8fa202aSchristos The lower bound of an interval is not optional. 1330*a8fa202aSchristos You can specify a matcher multiple types without error. 1331*a8fa202aSchristos -u and -U are now allowed on non-DOS hosts, and have no effect. 1332*a8fa202aSchristos * doc/grep.texi: Likewise. 1333*a8fa202aSchristos * doc/grep.1: Likewise. 1334*a8fa202aSchristos Fix some troff bugs that prevented `groff' from rendering the page. 1335*a8fa202aSchristos 1336*a8fa202aSchristos * src/egrepmat.c, src/fgrepmat.c, src/grepmat.c (default_matcher): 1337*a8fa202aSchristos Remove. 1338*a8fa202aSchristos (matcher): Add. 1339*a8fa202aSchristos * src/grep.h (default_matcher): Remove. 1340*a8fa202aSchristos (matcher): Now exported from ?grepmat.c, not grep.c. 1341*a8fa202aSchristos 1342*a8fa202aSchristos * src/dfa.c (lex): If { would start an invalid interval specification, 1343*a8fa202aSchristos treat it as a normal character. 1344*a8fa202aSchristos Remove (broken) support for {,M} meaning {0,M}. 1345*a8fa202aSchristos Diagnose bogus intervals like {1,0}. 1346*a8fa202aSchristos (closure): maxrep is now -1 to indicate no limit, not zero; 1347*a8fa202aSchristos zero is a valid value for maxrep, meaning an upper bound of zero. 1348*a8fa202aSchristos 1349*a8fa202aSchristos * src/grep.c (short_options): New constant. 1350*a8fa202aSchristos (long_options, main): -u and -U are now supported on Unix, 1351*a8fa202aSchristos with no effect. 1352*a8fa202aSchristos (matcher): Removed; now defined by ?grepmat.c. 1353*a8fa202aSchristos (install_matcher): Renamed from setmatcher. 1354*a8fa202aSchristos (setmatcher): New function. 1355*a8fa202aSchristos (usage): Report new, more uniform option scheme. 1356*a8fa202aSchristos (main): Do not initialize matcher; ?grepmat.c now does this. 1357*a8fa202aSchristos Rely on setmatcher to catch matcher conflicts. 1358*a8fa202aSchristos Default matcher is "grep". 1359*a8fa202aSchristos 1360*a8fa202aSchristos * src/search.c (matchers): 1361*a8fa202aSchristos Remove "posix-egrep" matcher; no longer needed. 1362*a8fa202aSchristos (Ecompile): Likewise. 1363*a8fa202aSchristos The egrep matcher now has POSIX behavior. 1364*a8fa202aSchristos 1365*a8fa202aSchristos * tests/bre.tests: grep '\{' is no longer an error. 1366*a8fa202aSchristos Fix test for interval too large, and enable it. 1367*a8fa202aSchristos * tests/ere.tests: grep -E {1 is no longer an error 1368*a8fa202aSchristos Likewise for a{1, a{1a, a{1a}, a{1,x}. 1369*a8fa202aSchristos 1370*a8fa202aSchristos1999-09-22 Paul Eggert 1371*a8fa202aSchristos 1372*a8fa202aSchristos * largefile.m4 (AC_SYS_LARGEFILE_FLAGS): Work around GCC 1373*a8fa202aSchristos 2.95.1 bug with HP-UX 10.20. 1374*a8fa202aSchristos 1375*a8fa202aSchristos1999-09-12 Paul Eggert 1376*a8fa202aSchristos 1377*a8fa202aSchristos * src/grep.c (fillbuf): Fix typo: we sometimes reported 1378*a8fa202aSchristos arithmetic overflow even when there wasn't any. 1379*a8fa202aSchristos 1380*a8fa202aSchristos1999-09-12 Paul Eggert 1381*a8fa202aSchristos 1382*a8fa202aSchristos * configure.in (AC_CHECK_FUNCS): Add memmove. 1383*a8fa202aSchristos 1384*a8fa202aSchristos * src/system.h (S_ISREG): New macro. 1385*a8fa202aSchristos (memmove): Define if ! defined HAVE_MEMMOVE && ! defined memmove, 1386*a8fa202aSchristos not if !defined STDC_HEADERS. This is needed for SunOS 4.1.4, 1387*a8fa202aSchristos which defines STDC_HEADERS but lacks memmove. 1388*a8fa202aSchristos 1389*a8fa202aSchristos * src/grep.c (bufoffset): Needed even if !defined HAVE_MMAP. 1390*a8fa202aSchristos (reset): Always fstat the file, since we always need its size if it is 1391*a8fa202aSchristos regular. 1392*a8fa202aSchristos Similarly, get the buffer offset of every regular file. 1393*a8fa202aSchristos Set bufmapped to 0 if the file's initial offset is not a multiple 1394*a8fa202aSchristos of the page size. 1395*a8fa202aSchristos (fillbuf): Calculate an upper bound on how much memory we should 1396*a8fa202aSchristos allocate only for regular files, since we don't know the sizes of 1397*a8fa202aSchristos other files. 1398*a8fa202aSchristos Don't bother to check whether the file offset is a multiple of the page 1399*a8fa202aSchristos size, since we now do that just once in `reset'. 1400*a8fa202aSchristos When an mmapped area would fall past the end of the file, trim it to 1401*a8fa202aSchristos just before instead of giving up immediately and doing a `read'; 1402*a8fa202aSchristos that avoids a worst-case behavior that could read half an mmapped file. 1403*a8fa202aSchristos Fix bug when computing offsets on hosts that don't have mmap. 1404*a8fa202aSchristos 1405*a8fa202aSchristos1999-08-27 Paul Eggert 1406*a8fa202aSchristos 1407*a8fa202aSchristos * src/system.h (memmove): New macro. 1408*a8fa202aSchristos 1409*a8fa202aSchristos * src/grep.c (page_alloc): Reallocate the old buffer instead 1410*a8fa202aSchristos of having both old and new buffers active simultaneously. 1411*a8fa202aSchristos Remove valloc debugging variant, which no longer applies. 1412*a8fa202aSchristos 1413*a8fa202aSchristos (fillbuf): Rejigger the buffer allocation mechanism. The old 1414*a8fa202aSchristos mechanism could allocate more than 10*N bytes for an N-byte 1415*a8fa202aSchristos file, which was excessive. Check for arithmetic overflow a 1416*a8fa202aSchristos bit more carefully. 1417*a8fa202aSchristos 1418*a8fa202aSchristos1999-08-25 Paul Eggert 1419*a8fa202aSchristos 1420*a8fa202aSchristos * src/grep.c (grepdir): 1421*a8fa202aSchristos Don't assume that st_ino and st_dev must be integers; 1422*a8fa202aSchristos POSIX.1 allows them to be floating-point (!). 1423*a8fa202aSchristos 1424*a8fa202aSchristos * src/vms_fab.h (arr_ptr): `:' -> `;' to fix typo. 1425*a8fa202aSchristos 1426*a8fa202aSchristos1999-08-18 Alain Magloire 1427*a8fa202aSchristos 1428*a8fa202aSchristos * 2.3e snapshot. 1429*a8fa202aSchristos 1430*a8fa202aSchristos1999-08-18 Alain Magloire 1431*a8fa202aSchristos 1432*a8fa202aSchristos * src/search.c: On a CRAY J90 system running UNICOS 8.0. 1433*a8fa202aSchristos Compilation of ./src/search.c failed because the declaration of 1434*a8fa202aSchristos the variable "regex": 1435*a8fa202aSchristos static struct re_pattern_buffer regex; 1436*a8fa202aSchristos conflicted with a previous declaration search.c #includes "system.h", 1437*a8fa202aSchristos which #includes <stdlib.h>, which declares : 1438*a8fa202aSchristos extern char *regex __((char *_Re, char *_Subject, ...)); 1439*a8fa202aSchristos The declaration in search.c is local to that one source file. 1440*a8fa202aSchristos I just changed its name to something less likely to conflict. 1441*a8fa202aSchristos (I called it "regexbuf", but you could pick any name you want.) 1442*a8fa202aSchristos Excerpt email from Dean Kopesky. 1443*a8fa202aSchristos 1444*a8fa202aSchristos1999-08-16 Paul Eggert 1445*a8fa202aSchristos 1446*a8fa202aSchristos Upgrade large-file support to the version used in tar and 1447*a8fa202aSchristos textutils. 1448*a8fa202aSchristos 1449*a8fa202aSchristos * Makefile.am (ACLOCAL_AMFLAGS): Define to be empty. 1450*a8fa202aSchristos (M4DIR, ACINCLUDE_INPUTS): New macros. 1451*a8fa202aSchristos ($(srcdir)/acinclude.m4): New rule. 1452*a8fa202aSchristos 1453*a8fa202aSchristos * configure.in (AC_CANONICAL_HOST, AM_C_PROTOTYPES): Add. 1454*a8fa202aSchristos (AC_SYS_LARGEFILE): Renamed from AC_LFS, for compatibility 1455*a8fa202aSchristos with what should appear in the next autoconf release. 1456*a8fa202aSchristos 1457*a8fa202aSchristos * m4/largefile.m4: Renamed from m4/lfs.m4. 1458*a8fa202aSchristos 1459*a8fa202aSchristos * src/ansi2knr.1, src/ansi2knr.c, config.guess, config.sub: 1460*a8fa202aSchristos New files. config.guess and config.sub ar needed by the new 1461*a8fa202aSchristos AC_SYS_LARGEFILE. ansi2knr is needed by AM_C_PROTOTYPES, 1462*a8fa202aSchristos which in turn is needed by the new AC_SYS_LARGEFILE. 1463*a8fa202aSchristos 1464*a8fa202aSchristos1999-08-16 Alain Magloire 1465*a8fa202aSchristos 1466*a8fa202aSchristos * 2.3d snapshot on ftp server. 1467*a8fa202aSchristos 1468*a8fa202aSchristos1999-07-26 Paul Eggert 1469*a8fa202aSchristos 1470*a8fa202aSchristosSeveral GNU tools have options to process arbitrary file names, even 1471*a8fa202aSchristosfile names that contain newline characters. These include `find 1472*a8fa202aSchristos-print0', `perl -0', `sort -z', and `xargs -0'. It'd be handy if GNU 1473*a8fa202aSchristosgrep also processed such file names. Here's a proposed patch to do 1474*a8fa202aSchristosthis, relative to grep 2.3c. This patch introduces two options, one 1475*a8fa202aSchristosfor the data, and one for the file names. (Sometimes one wants 1476*a8fa202aSchristosnull-terminated file names in the output, and sometimes one wants to 1477*a8fa202aSchristosprocess lists of null-terminated strings, and these are orthogonal 1478*a8fa202aSchristosaxes.) 1479*a8fa202aSchristos 1480*a8fa202aSchristos * NEWS, doc/grep.texi: New -z or --null-data and -Z or --null options. 1481*a8fa202aSchristos * src/grep.c (long_options, usage, main): Likewise. 1482*a8fa202aSchristos 1483*a8fa202aSchristos * src/dfa.h (dfasyntax): New eol parameter. 1484*a8fa202aSchristos * src/dfa.c (eolbyte): New var. 1485*a8fa202aSchristos (dfasyntax): Set it from new parameter. 1486*a8fa202aSchristos (lex, dfastat, build_state, dfaexec): Use it instead of '\n'. 1487*a8fa202aSchristos 1488*a8fa202aSchristos * src/grep.h (eolbyte): New decl. 1489*a8fa202aSchristos * src/grep.c (eolbyte): New var. 1490*a8fa202aSchristos (nlscan, prpending, prtext, grepbuf, grep): Use it instead of '\n'. 1491*a8fa202aSchristos (filename_mask): New var. 1492*a8fa202aSchristos (prline, grepfile): Output NUL separator if filename_mask is zero. 1493*a8fa202aSchristos (grep): Look for '\200' as the hallmark of a binary file, not '\0', 1494*a8fa202aSchristos if -z or --null-data is specified, since it implies that '\0' is 1495*a8fa202aSchristos expected as text. 1496*a8fa202aSchristos 1497*a8fa202aSchristos * src/search.c (Gcompile, Ecompile): Pass eolbyte to dfasyntax. 1498*a8fa202aSchristos (EGexecute, Fexecute): Use eolbyte instead of '\n'. 1499*a8fa202aSchristos 1500*a8fa202aSchristos1999-06-15 Alain Magloire 1501*a8fa202aSchristos 1502*a8fa202aSchristos * src/grep.c, doc/grep{1,texi} : 1503*a8fa202aSchristos --revert-match should be --invert-match. 1504*a8fa202aSchristos Correction proposed by Karl Berry. 1505*a8fa202aSchristos 1506*a8fa202aSchristos1999-06-12 Alain Magloire 1507*a8fa202aSchristos 1508*a8fa202aSchristos * doc/grep.{1,texi}: add description for --with-filename. 1509*a8fa202aSchristos Noted missing by UEBAYASHI Masao. 1510*a8fa202aSchristos 1511*a8fa202aSchristos1999-03-17 Paul Eggert 1512*a8fa202aSchristos 1513*a8fa202aSchristos * NEWS: Add GREP_OPTIONS. 1514*a8fa202aSchristos 1515*a8fa202aSchristos * doc/grep.texi: Document GREP_OPTIONS, and the other 1516*a8fa202aSchristos environment variables. Fix doc for [:blank:], [:cntrl:], [:punct:]. 1517*a8fa202aSchristos 1518*a8fa202aSchristos * src/grep.c (prepend_args, prepend_default_options): New functions. 1519*a8fa202aSchristos (main): Use them to implement GREP_OPTIONS. 1520*a8fa202aSchristos * src/system.h (getenv): New decl. 1521*a8fa202aSchristos 1522*a8fa202aSchristos1999-03-16 Volker Borchert 1523*a8fa202aSchristos 1524*a8fa202aSchristos * configure.in: Use case case ... esac for checking Visual C++. 1525*a8fa202aSchristos When ${CC} contains options it was not recognize. 1526*a8fa202aSchristos 1527*a8fa202aSchristos1999-03-07 Paul Eggert 1528*a8fa202aSchristos 1529*a8fa202aSchristos * src/grep.c (usage): Don't report -E, -F, and -G unless we're grep. 1530*a8fa202aSchristos (main): Don't match options -E, -F, and -G unless we're grep. 1531*a8fa202aSchristos Remove after-the-fact check for options -E, -F, and -G, since 1532*a8fa202aSchristos they're no longer needed. 1533*a8fa202aSchristos 1534*a8fa202aSchristos1999-03-05 Eli Zaretskii 1535*a8fa202aSchristos 1536*a8fa202aSchristos * src/grep.c (main): Print the name of the default matcher instead 1537*a8fa202aSchristos of just "grep". 1538*a8fa202aSchristos 1539*a8fa202aSchristos1999-02-06 Alain Magloire 1540*a8fa202aSchristos 1541*a8fa202aSchristos * tests/*.awk : Linux users are seeing "Broken Pipe" on make check. 1542*a8fa202aSchristos The problem is that grep does not drain its stdin, thus the previous 1543*a8fa202aSchristos process in the pipeline receives a SIGPIPE. Other shells are silent 1544*a8fa202aSchristos about this. There is actually no failure, since the broken pipe is 1545*a8fa202aSchristos expected. You can work around it by changing the pipeline, so that 1546*a8fa202aSchristos the input is drained, like this: 1547*a8fa202aSchristos status=`echo 'check' | { ${GREP} -E -e pattern >/dev/null 2>&1; 1548*a8fa202aSchristos echo $?; cat >/dev/null; }`; if test $status -ne $errnu then ... fi 1549*a8fa202aSchristos Excerpt email from Andreas Schwab. 1550*a8fa202aSchristos 1551*a8fa202aSchristos1999-02-23 Alain Magloire 1552*a8fa202aSchristos 1553*a8fa202aSchristos * src/grep.c : Restrict the use of -E, -F, -G 1554*a8fa202aSchristos to only grep driver, Posix behaviour. {f,e}grep 1555*a8fa202aSchristos the matcher is already set. This change may brake 1556*a8fa202aSchristos scripts, warn in NEWS. 1557*a8fa202aSchristos 1558*a8fa202aSchristos * doc/grep.{1,texi} : -C takes arguments, upgrade manual. 1559*a8fa202aSchristos 1560*a8fa202aSchristos * beta 2.3a 1561*a8fa202aSchristos 1562*a8fa202aSchristos1999-02-23 Alain Magloire 1563*a8fa202aSchristos 1564*a8fa202aSchristos * configure.in : Change the configure VC test from 1565*a8fa202aSchristos 'test x$ac_cv_prog_CC = xcl;' to 'test x"$ac_cv_prog_CC" = xcl;' 1566*a8fa202aSchristos Email from Joshua R. Poulson. 1567*a8fa202aSchristos 1568*a8fa202aSchristos1999-02-23 Paul Eggert 1569*a8fa202aSchristos 1570*a8fa202aSchristos Fix porting bug reported by Amakawa Shuhei for SunOS 4.1.4-JL. 1571*a8fa202aSchristos The btowc.c shipped with grep 2.3 is incorrect for Solaris 1572*a8fa202aSchristos 2.5.1 and earlier, as it assumes UTF8, which these OSes do not 1573*a8fa202aSchristos support. Solaris 7 supports btowc, so there's no need to ship 1574*a8fa202aSchristos a substitute for it. The only questionable case is Solaris 1575*a8fa202aSchristos 2.6, which lacks btowc but does support UTF8. However, 2.6 1576*a8fa202aSchristos supports UTF8 but only as a demonstration (for an English 1577*a8fa202aSchristos locale!); Japanese Solaris 2.6 users typically use EUC, or 1578*a8fa202aSchristos sometimes shift-JIS, but they cannot use UTF8 since Japanese 1579*a8fa202aSchristos UTF8 is not supported. Hence there's no point to having grep 1580*a8fa202aSchristos substitute a btowc that uses UTF8, as it is either redundant, 1581*a8fa202aSchristos or it will almost invariably have incorrect behavior. 1582*a8fa202aSchristos 1583*a8fa202aSchristos * configure.in (AC_CHECK_HEADERS): Don't set USE_WCHAR. 1584*a8fa202aSchristos (AC_CHECK_FUNCS): Add btowc, wctype. 1585*a8fa202aSchristos (AC_REPLACE_FUNCS): Don't replace btowc; our replacement is 1586*a8fa202aSchristos invariably doing the wrong thing anyway, at least on SunOS/Solaris. 1587*a8fa202aSchristos Don't bother to check for wctype in -lw, as we don't support 1588*a8fa202aSchristos wide characters on Solaris 2.5.1 or earlier anyway. 1589*a8fa202aSchristos 1590*a8fa202aSchristos * bootstrap/Makefile.try (OBJS): Remove btowc.$(OBJEXT). 1591*a8fa202aSchristos 1592*a8fa202aSchristos * src/btowc.c: Removed; no longer needed. 1593*a8fa202aSchristos 1594*a8fa202aSchristos1999-02-19 Paul Eggert 1595*a8fa202aSchristos 1596*a8fa202aSchristos * NEWS: Fix typo when talking about the old behavior of 1597*a8fa202aSchristos silently skipping directories; it was grep 2.1, not grep 2.2. 1598*a8fa202aSchristos 1599*a8fa202aSchristos1999-02-15 Alain Magloire 1600*a8fa202aSchristos 1601*a8fa202aSchristos * bootstrap/Makefile.try : add DJGPP DEFS. 1602*a8fa202aSchristos Done by Elie Zaretsckii. 1603*a8fa202aSchristos 1604*a8fa202aSchristos1999-02-14 Alain Magloire 1605*a8fa202aSchristos 1606*a8fa202aSchristos * m4/gettext.m4 : Guard [] with changequote. 1607*a8fa202aSchristos From Elie Zaretskii. 1608*a8fa202aSchristos 1609*a8fa202aSchristos * djgpp/config.bat : Makefile.in.in --> Makefile.in-in 1610*a8fa202aSchristos From Elie Zaretskii. 1611*a8fa202aSchristos 1612*a8fa202aSchristos * src/dosbuf: k&r function parameter. 1613*a8fa202aSchristos 1614*a8fa202aSchristos * release of 2.3. 1615*a8fa202aSchristos 1616*a8fa202aSchristos1999-02-10 Alain Magloire 1617*a8fa202aSchristos 1618*a8fa202aSchristos * bootstrap/{Makefile{try,am},REAMDE} : skeleton 1619*a8fa202aSchristos provided for system lacking the tools to autoconfigure. 1620*a8fa202aSchristos 1621*a8fa202aSchristos * src/{e,f,}grepmat.c: added guard [HAVE_CONFIG_H] 1622*a8fa202aSchristos 1623*a8fa202aSchristos1999-02-10 Alain Magloire 1624*a8fa202aSchristos 1625*a8fa202aSchristos * PATCHES-AC, PATCHES-AM: updated. 1626*a8fa202aSchristos 1627*a8fa202aSchristos * m4/regex.m4 : updated. 1628*a8fa202aSchristos 1629*a8fa202aSchristos1999-02-05 Eli Zaretskii 1630*a8fa202aSchristos 1631*a8fa202aSchristos * m4/gettext.m4 : Support DOS-style D:/foo/bar absolute file 1632*a8fa202aSchristos names. 1633*a8fa202aSchristos 1634*a8fa202aSchristos * aclocal.m4 (DJGPP) : Use $DJ_GPP instead, since changing the 1635*a8fa202aSchristos latter prevents GCC from finding headers and libraries. 1636*a8fa202aSchristos 1637*a8fa202aSchristos * djgpp/config.bat: Make building from another directory work 1638*a8fa202aSchristos 1639*a8fa202aSchristos * djgpp/config.sed: Remove redundant command wich edited path 1640*a8fa202aSchristos separator: now done by configure. 1641*a8fa202aSchristos 1642*a8fa202aSchristos * src/grep.c [O_BINARY]: Add prototype for undossify_input. 1643*a8fa202aSchristos 1644*a8fa202aSchristos * doc/grep.texi (Introduction): Typo fixed. 1645*a8fa202aSchristos 1646*a8fa202aSchristos1999-02-03 Alain Magloire 1647*a8fa202aSchristos 1648*a8fa202aSchristos * grep-2.2f beta release. 1649*a8fa202aSchristos 1650*a8fa202aSchristos1999-02-02 Alain Magloire 1651*a8fa202aSchristos 1652*a8fa202aSchristos * m4/{djgpp,envsep,glibc,regex,dosfile,isc-posix}.m4 : 1653*a8fa202aSchristos New files to aid configuration and unload configure.in. 1654*a8fa202aSchristos * m4/Makefile.am : updated. 1655*a8fa202aSchristos * src/btowc.c : protect for wchar.h 1656*a8fa202aSchristos 1657*a8fa202aSchristos1999-01-28 Alain Magloire 1658*a8fa202aSchristos 1659*a8fa202aSchristos * intl/Makefile.in: Replace .o with .${ac_objext} where necessary. 1660*a8fa202aSchristos Work around a limitation of Visual C++ on Cygwin32. 1661*a8fa202aSchristos * acconfig.h configure.in: Define `alloca' as `_alloca' when CC=cl. 1662*a8fa202aSchristos This little hack was suggested by Ian Roxborough <irox@cygnus.com>. 1663*a8fa202aSchristos Patch forwarded by Ben Elliston. 1664*a8fa202aSchristos 1665*a8fa202aSchristos1999-01-28 Alain Magloire 1666*a8fa202aSchristos 1667*a8fa202aSchristos * PATCHES-AM: New file. A small patch for automake-1.4, use $(sep) 1668*a8fa202aSchristos as the path separator base on @SEP@. 1669*a8fa202aSchristos * PATCHES-AC configure.in : updated for autoconf-13. 1670*a8fa202aSchristos 1671*a8fa202aSchristos1999-01-27 Volker Borchert 1672*a8fa202aSchristos 1673*a8fa202aSchristos * grep.c: fgrep -NUM not working correctly. 1674*a8fa202aSchristos add the argument number to digit_args_val. 1675*a8fa202aSchristos 1676*a8fa202aSchristos1999-01-22 Paul Eggert 1677*a8fa202aSchristos 1678*a8fa202aSchristos Prevent grep -r from recursing infinitely through directory loops via 1679*a8fa202aSchristos symbolic links. 1680*a8fa202aSchristos 1681*a8fa202aSchristos * grep.c (struct stats): New type. 1682*a8fa202aSchristos (stats_base): New var. 1683*a8fa202aSchristos (bufstat): Remove; subsumed by stats->stat. 1684*a8fa202aSchristos (reset, fillbuf, grep, grepdir, grepfile): Pass struct stats * arg, 1685*a8fa202aSchristos for directory loop checking; use this instead of the bufstat global. 1686*a8fa202aSchristos All callers changed. 1687*a8fa202aSchristos (grepfile): Stat the file before invoking grepdir. 1688*a8fa202aSchristos (grepdir): Assume that the argument has already been statted. 1689*a8fa202aSchristos No longer a need for a directory size argument, since it 1690*a8fa202aSchristos can be gotten from the struct stats * argument. 1691*a8fa202aSchristos Check for directory loops. 1692*a8fa202aSchristos Create linked list of directories currently being visited, 1693*a8fa202aSchristos to detect loops. 1694*a8fa202aSchristos 1695*a8fa202aSchristos1998-12-29 Kaveh R. Ghazi 1696*a8fa202aSchristos 1697*a8fa202aSchristos intl/localealias.c: When building grep-2.2e using cc on Irix4, 1698*a8fa202aSchristos I needed the following patch to intl/localealias.c. 1699*a8fa202aSchristos (Its the same patch used by fileutils-4.0.) The patch resolves 1700*a8fa202aSchristos conflicts between char* and unsigned char* in the i18n code. 1701*a8fa202aSchristos 1702*a8fa202aSchristos1998-12-10 Alain Magloire 1703*a8fa202aSchristos 1704*a8fa202aSchristos * src/grep.c : Typo in contex -->context 1705*a8fa202aSchristos Noted by Vladimir Michl. 1706*a8fa202aSchristos 1707*a8fa202aSchristos1998-12-01 Alain Magloire 1708*a8fa202aSchristos 1709*a8fa202aSchristos * doc/Makefile.am djgpp/Makefile.am m4/Makefile.am vms/Makefile.am: 1710*a8fa202aSchristos New files. 1711*a8fa202aSchristos 1712*a8fa202aSchristos * m4/progtest.m4: proctect '[]' from m4. 1713*a8fa202aSchristos Noted by Eli Z. 1714*a8fa202aSchristos 1715*a8fa202aSchristos * PATCHES-AC: New file, add the patch for autoconf in the dist. 1716*a8fa202aSchristos 1717*a8fa202aSchristos * acconfig.h: (HAVE_DOS_FILENAME) 1718*a8fa202aSchristos 1719*a8fa202aSchristos * TODO: updated. 1720*a8fa202aSchristos 1721*a8fa202aSchristos * src/search.c: remove obsolete 'gegrep,ggrep,gnugrep' 1722*a8fa202aSchristos matchers. grep no longer depend on argv[0]. 1723*a8fa202aSchristos 1724*a8fa202aSchristos * grep-2.2e beta to test DJGPP port. 1725*a8fa202aSchristos 1726*a8fa202aSchristos1998-11-28 Paul Eggert 1727*a8fa202aSchristos 1728*a8fa202aSchristos Various portability enhancements: 1729*a8fa202aSchristos - Don't assume that O_BINARY implies DOS. Use separate 1730*a8fa202aSchristos macros D_OK (for DOS-like directory access) and 1731*a8fa202aSchristos HAVE_DOS_FILE_NAMES (for DOS-like file names). 1732*a8fa202aSchristos - Don't assume that off_t fits into long; it doesn't on Solaris 2.6. 1733*a8fa202aSchristos - Have is_EISDIR set errno properly on hosts with screwed-up EISDIR. 1734*a8fa202aSchristos - Treat ':' specially in DOS file names only if it's the end of a 1735*a8fa202aSchristos drive specifier. 1736*a8fa202aSchristos - Protect against errno < 0. 1737*a8fa202aSchristos 1738*a8fa202aSchristos * src/grep.c (is_EISDIR): Move defn to system.h. 1739*a8fa202aSchristos (print_offset_sep): New function. 1740*a8fa202aSchristos (fillbuf): Remove redundant test of O_BINARY. 1741*a8fa202aSchristos (totalcc, totalnl): Now of type off_t. 1742*a8fa202aSchristos (prline): Use print_offset_sep to print file offsets. 1743*a8fa202aSchristos (grepfile): Don't set e to EISDIR; that's is_EISDIR's responsibility 1744*a8fa202aSchristos on machines that don't work properly with EISDIR. 1745*a8fa202aSchristos (grepdir): Don't assume ':' means slash on all DOS filenames; 1746*a8fa202aSchristos it means it only in the file prefix. 1747*a8fa202aSchristos 1748*a8fa202aSchristos * src/system.h (strerror): Check for negative error numbers. 1749*a8fa202aSchristos (is_EISDIR): Depend on D_OK, not O_BINARY. 1750*a8fa202aSchristos (SET_BINARY): Depend on HAVE_SETMODE, not __DJGPP__. 1751*a8fa202aSchristos (IS_SLASH, FILESYSTEM_PREFIX_LEN): Depend on HAVE_DOS_FILE_NAMES, 1752*a8fa202aSchristos not O_BINARY. 1753*a8fa202aSchristos (CHAR_BIT): New macro. 1754*a8fa202aSchristos 1755*a8fa202aSchristos * src/dosbuf.c (struct dos_map): 1756*a8fa202aSchristos pos and add members are now of type off_t. 1757*a8fa202aSchristos (dos_stripped_crs): Now of type off_t. 1758*a8fa202aSchristos (dossified_pos): Now accepts arg and returns value of type off_t. 1759*a8fa202aSchristos 1760*a8fa202aSchristos * configure.in (AC_CHECK_FUNCS): Add setmode. 1761*a8fa202aSchristos (HAVE_DOS_FILENAMES): New macro 1762*a8fa202aSchristos 1763*a8fa202aSchristos1998-11-27 Eli Zaretskii 1764*a8fa202aSchristos 1765*a8fa202aSchristos * djgpp/config.sed: New file, a Sed script to edit configure 1766*a8fa202aSchristos script before running it on DOS/Windows. 1767*a8fa202aSchristos * djgpp/config.bat: Updated to handle po2tbl.sed.in and 1768*a8fa202aSchristos po/Makefile.in.in on DOS filesystems, and to run config.sed. 1769*a8fa202aSchristos 1770*a8fa202aSchristos1998-11-24 Jim Meyering 1771*a8fa202aSchristos 1772*a8fa202aSchristos * src/grep.c : Typo s/infalid/invalid/ 1773*a8fa202aSchristos Also noted by Stanislav Brabec. 1774*a8fa202aSchristos 1775*a8fa202aSchristos1998-11-24 Eli Zaretskii 1776*a8fa202aSchristos 1777*a8fa202aSchristos * doc/grep.texi: I found and corrected several typos. 1778*a8fa202aSchristos I believe the GNU standards require the section that describes the 1779*a8fa202aSchristos options to the programs to be called ``Invoking'' or ``Invoking 1780*a8fa202aSchristos <program-name>''. This is so users and programs can easily find 1781*a8fa202aSchristos that node in any Info file. So I changed the name of the 1782*a8fa202aSchristos `Options' chapter to `Invoking', and corrected the 1783*a8fa202aSchristos cross-references accordingly. 1784*a8fa202aSchristos I added some markup to things like file names and options. 1785*a8fa202aSchristos I added some additional index entries where that seemed useful. 1786*a8fa202aSchristos I also corrected some index entries, such as "@cindex [:alnum:]", 1787*a8fa202aSchristos which used a colon in them (the colons confuse Info readers). 1788*a8fa202aSchristos 1789*a8fa202aSchristos1998-11-24 Alain Magloire 1790*a8fa202aSchristos 1791*a8fa202aSchristos * grep/doc/grep.texi : -h is not use for help. 1792*a8fa202aSchristos Nit spotted by Jim Meyering. 1793*a8fa202aSchristos 1794*a8fa202aSchristos1998-11-23 Alain Magloire 1795*a8fa202aSchristos 1796*a8fa202aSchristos * doc: New directory, grep.1, {e,f}grep.man move here 1797*a8fa202aSchristos * doc/grep.texi: New info manual 1798*a8fa202aSchristos * doc/version.texi: New 1799*a8fa202aSchristos * doc/Makefile.am: New 1800*a8fa202aSchristos * tests/{ere,bre}.*: New files. The spencer2 test is split 1801*a8fa202aSchristos in two ere/bre. 1802*a8fa202aSchristos * config.hin: New, config.h.in rename to config.hin for OS 1803*a8fa202aSchristos with limited file system aka DOS. 1804*a8fa202aSchristos 1805*a8fa202aSchristos * grep-2.2d release for beta. 1806*a8fa202aSchristos 1807*a8fa202aSchristos1998-11-18 Alain Magloire 1808*a8fa202aSchristos 1809*a8fa202aSchristos * src/regex.[ch] : Updated from GLibc, previous patches were 1810*a8fa202aSchristos integrate by Ulrich Drepper and some added ones. 1811*a8fa202aSchristos 1812*a8fa202aSchristos1998-11-16 Paul Eggert 1813*a8fa202aSchristos 1814*a8fa202aSchristos * grep.h (__attribute__): New macro, if not GCC. 1815*a8fa202aSchristos (fatal): Add __attribute__((noreturn)). 1816*a8fa202aSchristos * grep.c (usage): Add __attribute__((noreturn)). 1817*a8fa202aSchristos 1818*a8fa202aSchristos1998-11-16 Paul Eggert 1819*a8fa202aSchristos 1820*a8fa202aSchristos Remove memory leak with valloced buffers, by invoking malloc instead. 1821*a8fa202aSchristos 1822*a8fa202aSchristos * configure.in (AC_CHECK_FUNCS), src/system.h (valloc): Remove. 1823*a8fa202aSchristos * src/grep.c (page_alloc): New function. 1824*a8fa202aSchristos (ubuffer, pagesize): New vars. 1825*a8fa202aSchristos (ALIGN_TO): New macro. 1826*a8fa202aSchristos (reset): Initialize new vars. Check for overflow in buffer size calc. 1827*a8fa202aSchristos Use page_alloc instead of valloc. 1828*a8fa202aSchristos (fillbuf): Likewise. Use memcpy to copy saved area. 1829*a8fa202aSchristos 1830*a8fa202aSchristos1998-11-15 Paul Eggert 1831*a8fa202aSchristos 1832*a8fa202aSchristos * dfa.c (dfacomp), search.c (EGexecute): Don't assume char is unsigned. 1833*a8fa202aSchristos 1834*a8fa202aSchristos1998-11-14 Paul Eggert 1835*a8fa202aSchristos 1836*a8fa202aSchristos * src/grep.c (grepdir): Fix bug: memory freed twice. 1837*a8fa202aSchristos 1838*a8fa202aSchristos * src/search.c (Gcompile, Ecompile): Don't invoke dfainit, 1839*a8fa202aSchristos since dfacomp does it for us, and if we also do it then we 1840*a8fa202aSchristos leak memory. 1841*a8fa202aSchristos 1842*a8fa202aSchristos1998-11-13 Eli Zaretskii 1843*a8fa202aSchristos 1844*a8fa202aSchristos * djgpp/config.bat: Rewrite to run the configure script via Bash. 1845*a8fa202aSchristos * djgpp/config.site, djgpp/getconf: New files. 1846*a8fa202aSchristos * djgpp/config.h, djgpp/*.mak, djgpp/po2tbl.sed: Remove. 1847*a8fa202aSchristos * djgpp/README: Update instructions. 1848*a8fa202aSchristos 1849*a8fa202aSchristos * Makefile.am (EXTRA_DIST): Update the list of DJGPP files. 1850*a8fa202aSchristos 1851*a8fa202aSchristos * src/system.h (IS_SLASH): New macro. 1852*a8fa202aSchristos (is_EISDIR): Define it here for DOS and Windows. 1853*a8fa202aSchristos 1854*a8fa202aSchristos * src/grep.c (main) [O_BINARY]: Set stdout to binary mode, so the 1855*a8fa202aSchristos EOL formats of the input and output files match, unless stdout is 1856*a8fa202aSchristos the console device. 1857*a8fa202aSchristos (is_EISDIR): Don't define if already defined. Accept a second 1858*a8fa202aSchristos argument, the file name; all callers changed. 1859*a8fa202aSchristos (grepdir): Don't free `file', inside the loop. Use IS_SLASH to 1860*a8fa202aSchristos check whether `dir' needs a slash. 1861*a8fa202aSchristos (grepfile): If file is a directory, set e to EISDIR. 1862*a8fa202aSchristos 1863*a8fa202aSchristos1998-11-10 Alain Magloire 1864*a8fa202aSchristos 1865*a8fa202aSchristos * src/vms_fab.{c,h}: New file for VMS wildcard expansion 1866*a8fa202aSchristos Written by Phillip C. Brisco. 1867*a8fa202aSchristos 1868*a8fa202aSchristos * vms/make.com : add line to compile vms_fab.c and 1869*a8fa202aSchristos {e,f,}grepmat.c with link for each grep/fgrep/egrep. 1870*a8fa202aSchristos Base on patch send by Phillib C. Brisco. 1871*a8fa202aSchristos 1872*a8fa202aSchristos1998-11-09 Alain Magloire 1873*a8fa202aSchristos 1874*a8fa202aSchristos * grep-2.2c on alpha for testing. 1875*a8fa202aSchristos 1876*a8fa202aSchristos1998-11-09 Paul Eggert 1877*a8fa202aSchristos 1878*a8fa202aSchristos * src/grep.1: Fix `Last Change' of output by generating the date 1879*a8fa202aSchristos from the RCS Id. 1880*a8fa202aSchristos 1881*a8fa202aSchristos * src/grep.c (is_EISDIR): New macro. 1882*a8fa202aSchristos (grep): If -s, suppress errors from trying to read directories. 1883*a8fa202aSchristos (grepfile): Use is_EISDIR to simplify code. 1884*a8fa202aSchristos (grepdir): If -s, suppress errors from trying to read directories. 1885*a8fa202aSchristos 1886*a8fa202aSchristos * src/grep.1: Fix -q -r -s problems; describe BSD grep better. 1887*a8fa202aSchristos 1888*a8fa202aSchristos * src/grep.c (main): Update copyright. 1889*a8fa202aSchristos 1890*a8fa202aSchristos Specify default matcher with default_matcher extern var, not 1891*a8fa202aSchristos DEFAULT_MATCHER macro. This is more straightforward and means 1892*a8fa202aSchristos we need to compile grep.c just once. 1893*a8fa202aSchristos 1894*a8fa202aSchristos * src/egrepmat.c, src/fgrepmat.c, src/grepmat.c: New files. 1895*a8fa202aSchristos 1896*a8fa202aSchristos * src/Makefile.am (base_sources): New macro. 1897*a8fa202aSchristos (egrep_SOURCES, fgrep_SOURCES, grep_SOURCES): Now consist of 1898*a8fa202aSchristos $(base_sources) plus the single tailoring file. 1899*a8fa202aSchristos (grep_LDADD, egrep_LDADD, fgrep_LDADD): Remove. 1900*a8fa202aSchristos (EXTRA_DIST): Remove grep.c, regex.c. 1901*a8fa202aSchristos (fgrep.o, egrep.o): Remove. 1902*a8fa202aSchristos 1903*a8fa202aSchristos * src/grep.h (matcher): Now char const *. 1904*a8fa202aSchristos (default_matcher): New decl. 1905*a8fa202aSchristos 1906*a8fa202aSchristos * src/grep.c (matcher): Now char const *. 1907*a8fa202aSchristos (setmatcher): Now accepts char const *. 1908*a8fa202aSchristos (main): Default the matcher from default_matcher (linked externally) 1909*a8fa202aSchristos rather than DEFAULT_MATCHER (a macro). 1910*a8fa202aSchristos 1911*a8fa202aSchristos1998-11-08 Alain Magloire 1912*a8fa202aSchristos 1913*a8fa202aSchristos * src/grep.1: `prep.ai.mit.edu' should be replaced with `gnu.org'. 1914*a8fa202aSchristos Nit from Paul Eggert. 1915*a8fa202aSchristos 1916*a8fa202aSchristos1998-11-06 Alain Magloire 1917*a8fa202aSchristos 1918*a8fa202aSchristos * src/grep.c: The Matcher is not set to argv[0] but 1919*a8fa202aSchristos explicitly by a #define MATCHER at compile time default is "grep". 1920*a8fa202aSchristos 1921*a8fa202aSchristos * aclocal/: NEW dir. provides our own *.m4 1922*a8fa202aSchristos 1923*a8fa202aSchristos * configure.in: Move Paul's Large Files to AC_LFS.(aclocal/lfs.m4) 1924*a8fa202aSchristos Taken from Jim Meyering fileutils. 1925*a8fa202aSchristos 1926*a8fa202aSchristos1998-11-05 Alain Magloire 1927*a8fa202aSchristos 1928*a8fa202aSchristos * src/grep.1: update the man pages according to the 1929*a8fa202aSchristos changes make by Miles. 1930*a8fa202aSchristos 1931*a8fa202aSchristos * po/*.po: updated. 1932*a8fa202aSchristos 1933*a8fa202aSchristos * first beta release for 2.3 (2.2a). 1934*a8fa202aSchristos 1935*a8fa202aSchristos1998-11-04 Miles Bader 1936*a8fa202aSchristos 1937*a8fa202aSchristos * src/grep.c (main): Rationalize interaction of -C/-NUM/-A/-B 1938*a8fa202aSchristos options, and allow -C to have an optional argument. -NUM can 1939*a8fa202aSchristos now be mixed with -C, and -A, -B always take precedence over 1940*a8fa202aSchristos -C/-NUM, regardless of order. 1941*a8fa202aSchristos (long_options): Let -C/--context take an optional argument. 1942*a8fa202aSchristos 1943*a8fa202aSchristos1998-11-03 Alain Magloire 1944*a8fa202aSchristos 1945*a8fa202aSchristos * src/dfa.c: HP-UX define clrbit/setbit as macros in <sys/param.h> 1946*a8fa202aSchristos #undef if defined. 1947*a8fa202aSchristos Fixed by Andreas Ley and Philippe Defert. 1948*a8fa202aSchristos 1949*a8fa202aSchristos * src/grep.1 : mention that -s follows POSIX.2 behavior. 1950*a8fa202aSchristos Noted by Paul Eggert and others. 1951*a8fa202aSchristos 1952*a8fa202aSchristos * tests/khadafy.sh: a typo in failure(s). 1953*a8fa202aSchristos Spotted By Sotiris Vassilopoulos. 1954*a8fa202aSchristos 1955*a8fa202aSchristos1998-11-01 Paul Eggert 1956*a8fa202aSchristos 1957*a8fa202aSchristos * src/system.h (IN_CTYPE_DOMAIN): New macro. 1958*a8fa202aSchristos (ISALPHA, ISUPPER, ISLOWER, ISDIGIT, ISXDIGIT, ISSPACE, 1959*a8fa202aSchristos ISPUNCT, ISALNUM, ISPRINT, ISGRAPH, ISCNTRL): Use 1960*a8fa202aSchristos IN_CTYPE_DOMAIN instead of isascii. 1961*a8fa202aSchristos 1962*a8fa202aSchristos1998-08-18 Paul Eggert 1963*a8fa202aSchristos 1964*a8fa202aSchristos Add support for new -r or --recursive (or -d recurse or 1965*a8fa202aSchristos --directories=recurse) option. 1966*a8fa202aSchristos 1967*a8fa202aSchristos * src/Makefile.am (grep_SOURCES): Add savedir.c, savedir.h, stpcpy.c. 1968*a8fa202aSchristos 1969*a8fa202aSchristos * src/grep.1: Describe new options. 1970*a8fa202aSchristos 1971*a8fa202aSchristos * src/grep.c: Include "savedir.h". 1972*a8fa202aSchristos (long_options): Add -r or --recursive. 1973*a8fa202aSchristos (RECURSE_DIRECTORIES): New enum value. 1974*a8fa202aSchristos (IS_DIRECTORY_ERRNO): Remove. 1975*a8fa202aSchristos (reset, grep): Add file name arg. 1976*a8fa202aSchristos (grepdir, grepfile): New functions. 1977*a8fa202aSchristos (initial_bufoffset): New var. 1978*a8fa202aSchristos (reset): Initialize it. 1979*a8fa202aSchristos (fillbuf): Use it. 1980*a8fa202aSchristos (count_matches, list_files, no_filenames, suppress_errors): New static 1981*a8fa202aSchristos vars; formerly were local to `main'. 1982*a8fa202aSchristos (grep): Recurse through directories if the user asks for this. 1983*a8fa202aSchristos (usage, main): Add new options. 1984*a8fa202aSchristos (main): Change some local vars to be static, as described above. 1985*a8fa202aSchristos Move most of the guts into grepfile function. 1986*a8fa202aSchristos so that it can be recursed through. 1987*a8fa202aSchristos 1988*a8fa202aSchristos * configure.in (AC_HEADER_DIRENT, AC_FUNC_CLOSEDIR_VOID): Add. 1989*a8fa202aSchristos (AC_REPLACE_FUNCS): Add stpcpy. 1990*a8fa202aSchristos 1991*a8fa202aSchristos * src/savedir.c, src/savedir.h, src/stpcpy.c: New files; 1992*a8fa202aSchristos taken from fileutils 3.16u. 1993*a8fa202aSchristos 1994*a8fa202aSchristos1998-08-11 Paul Eggert 1995*a8fa202aSchristos 1996*a8fa202aSchristos * src/system.h (initialize_main): New macro. 1997*a8fa202aSchristos * src/grep.c (main): Invoke initialize_main first thing. 1998*a8fa202aSchristos 1999*a8fa202aSchristos1998-04-29 Paul Eggert 2000*a8fa202aSchristos 2001*a8fa202aSchristos * NEWS, src/grep.1: Describe new -a and -d options. 2002*a8fa202aSchristos 2003*a8fa202aSchristos * src/grep.c (long_options, usage, main): 2004*a8fa202aSchristos New options -d or --directories and -a or --text. 2005*a8fa202aSchristos (directories, always_text): New variables. 2006*a8fa202aSchristos (IS_DIRECTORY_ERRNO): New macro. 2007*a8fa202aSchristos (reset): Now returns value specifying whether to skip this file. 2008*a8fa202aSchristos Stat the file if either mmap or directory-skipping is possible. 2009*a8fa202aSchristos Skip the file if it's a directory and we're skipping directories. 2010*a8fa202aSchristos (grep): Skip the file if `reset' tells us to. 2011*a8fa202aSchristos (main): If open fails because the file is a directory, and if we're 2012*a8fa202aSchristos skipping directories, don't report an error. 2013*a8fa202aSchristos Remove special case for DOS and Windows. 2014*a8fa202aSchristos 2015*a8fa202aSchristos * src/dosbuf.c (guess_type): Use the same method for guessing whether a 2016*a8fa202aSchristos file is binary as grep.c's grep does. 2017*a8fa202aSchristos There's no longer any need to declare `bp' to be unsigned. 2018*a8fa202aSchristos 2019*a8fa202aSchristos1998-04-26 Alain Magloire 2020*a8fa202aSchristos 2021*a8fa202aSchristos * grep-2.2 release. 2022*a8fa202aSchristos 2023*a8fa202aSchristos * src/dfa.c: Wrong revision was pulled out 2024*a8fa202aSchristos for beta 2.1.1d. 2025*a8fa202aSchristos * src/search.c: Wrong revision was pulled out 2026*a8fa202aSchristos for beta 2.1.1d. 2027*a8fa202aSchristos 2028*a8fa202aSchristos * src/grep.c: ck_atoi () added instead of atoi (). 2029*a8fa202aSchristos Suggestion from Jim Meyering. 2030*a8fa202aSchristos ck_atoi () pulled from diffutils-2.7, maintained by Paul Eggert. 2031*a8fa202aSchristos 2032*a8fa202aSchristos * AUTHORS: Rephrase of some sentences. 2033*a8fa202aSchristos * README: Rewording. 2034*a8fa202aSchristos Noted and patched by Joel N. Weber II. 2035*a8fa202aSchristos 2036*a8fa202aSchristos1998-04-17 Kaveh R. Ghazi 2037*a8fa202aSchristos 2038*a8fa202aSchristos * src/dfa.h: Don't define `const', trust autoconf to handle it. 2039*a8fa202aSchristos 2040*a8fa202aSchristos1998-04-16 Alain Magloire 2041*a8fa202aSchristos 2042*a8fa202aSchristos * tests/{status,empty}.sh: wrong return status. 2043*a8fa202aSchristos 2044*a8fa202aSchristos * src/grep.c: Remove the REGEX part in usage (), it was 2045*a8fa202aSchristos consider overkill by most. 2046*a8fa202aSchristos 2047*a8fa202aSchristos1998-04-14 Eli Zaretskii 2048*a8fa202aSchristos 2049*a8fa202aSchristos * djgpp/config.bat: Support file names with multiple dots on all 2050*a8fa202aSchristos platforms. 2051*a8fa202aSchristos 2052*a8fa202aSchristos * djgpp/README: Add instructions about file names illegal on 2053*a8fa202aSchristos MS-DOS. 2054*a8fa202aSchristos 2055*a8fa202aSchristos1998-04-13 Alain Magloire 2056*a8fa202aSchristos 2057*a8fa202aSchristos * src/dfa.c: by "popular" demand reverse 2058*a8fa202aSchristos back to '_' not word-constituent. 2059*a8fa202aSchristos 2060*a8fa202aSchristos * grep-2.1.1c available for testing. 2061*a8fa202aSchristos 2062*a8fa202aSchristos1998-04-13 Karl Heuer 2063*a8fa202aSchristos 2064*a8fa202aSchristos * src/grep.c: (a) The directory check is done too early: 2065*a8fa202aSchristos logically, if the argument is "-", then it refers to standard 2066*a8fa202aSchristos input, regardless of whether there's something in the file 2067*a8fa202aSchristos system answering to "-". 2068*a8fa202aSchristos (b) The sh command "grep -l root /etc/passwd /etc/group 0<&-" 2069*a8fa202aSchristos prints "(standard input)" instead of "/etc/passwd", because it 2070*a8fa202aSchristos mistakenly believes that a named file will never be opened on fd 2071*a8fa202aSchristos 0. The string "(standard input)" should be based on the file 2072*a8fa202aSchristos having been originally specified as "-", rather than making 2073*a8fa202aSchristos assumptions about the fd. 2074*a8fa202aSchristos (c) the code that calls close(fd) is being done outside of the 2075*a8fa202aSchristos test for a bad fd. Thus, if the open failed, this code will 2076*a8fa202aSchristos attempt to close(-1). It should be done inside the "fd != -1" 2077*a8fa202aSchristos branch. 2078*a8fa202aSchristos This patch addresses all three of these problems. 2079*a8fa202aSchristos 2080*a8fa202aSchristos1998-04-13 Alain Magloire 2081*a8fa202aSchristos 2082*a8fa202aSchristos * configure.in: remove the deprecated AC_ISC_POSIX macro. 2083*a8fa202aSchristos Spotted by Karl Heuer. 2084*a8fa202aSchristos 2085*a8fa202aSchristos1998-04-03 Eli Zaretskii 2086*a8fa202aSchristos 2087*a8fa202aSchristos * djgpp/main.mak, djgpp/src.mak, djgpp/tests.mak: Updated from the 2088*a8fa202aSchristos relevant Makefile.in files. 2089*a8fa202aSchristos 2090*a8fa202aSchristos * djgpp/config.bat: Create files in intl directory like the 2091*a8fa202aSchristos configure script does. 2092*a8fa202aSchristos 2093*a8fa202aSchristos1998-03-28 Eli Zaretskii 2094*a8fa202aSchristos 2095*a8fa202aSchristos * djgpp/main.mak, djgpp/src.mak, djgpp/tests.mak: Updated to track 2096*a8fa202aSchristos changes in respective Makefile.in files. 2097*a8fa202aSchristos 2098*a8fa202aSchristos * src/dosbuf.c (guess_type): Avoid running off the end of the 2099*a8fa202aSchristos buffer. Spotted by Paul Eggert. 2100*a8fa202aSchristos 2101*a8fa202aSchristos1998-03-27 Alain Magloire 2102*a8fa202aSchristos 2103*a8fa202aSchristos * grep-2.1.1b.tar.gz available. 2104*a8fa202aSchristos 2105*a8fa202aSchristos * src/regex.c: CLASS_CHAR_MAX set to 256 instead of 6 2106*a8fa202aSchristos when WCTYPE and WCHAR are not defined. When class names 2107*a8fa202aSchristos where bigger then 6, it will not detect an error. 2108*a8fa202aSchristos example '[[:alphabet:]]'. 2109*a8fa202aSchristos 2110*a8fa202aSchristos * Updated the copyright of the files with emacs. 2111*a8fa202aSchristos With emacs Jim :). 2112*a8fa202aSchristos 2113*a8fa202aSchristos1998-03-26 Jim Meyering 2114*a8fa202aSchristos 2115*a8fa202aSchristos * src/dfa.c (IS_WORD_CONSTITUENT): Define. 2116*a8fa202aSchristos (lex): Use IS_WORD_CONSTITUENT, not ISALNUM. 2117*a8fa202aSchristos Don't special-case '_'. 2118*a8fa202aSchristos (dfastate): Use IS_WORD_CONSTITUENT, not ISALNUM. 2119*a8fa202aSchristos (dfaexec): Likewise. 2120*a8fa202aSchristos 2121*a8fa202aSchristos1998-03-25 Alain Magloire 2122*a8fa202aSchristos 2123*a8fa202aSchristos * tests/warning.sh: typos and replace the echos with 2124*a8fa202aSchristos a simple cat. 2125*a8fa202aSchristos Noted By Jim Meyering. 2126*a8fa202aSchristos 2127*a8fa202aSchristos * src/regex.c: #undef ISASCII and ISPRINT before defining 2128*a8fa202aSchristos them(On Solaris it was define). 2129*a8fa202aSchristos Pattern 'a[[:]:]]b' is an invalid char class and the error 2130*a8fa202aSchristos from regex was 1(REG_NOMATCH) instead of 2 (REG_ECTYPE). 2131*a8fa202aSchristos Fix with help from Ulrich Drepper. 2132*a8fa202aSchristos 2133*a8fa202aSchristos * src/grep.c (usage): Ulrich wrote: "A single printf should 2134*a8fa202aSchristos not have more than 900 bytes. For translation reasons the 2135*a8fa202aSchristos text shouldn't be split in too many pieces since this is 2136*a8fa202aSchristos tiresome and also does not help to generate a consistent picture." 2137*a8fa202aSchristos Noted by Ulrich Drepper. 2138*a8fa202aSchristos * src/grep.c (usage): Dig out and old patch from 2139*a8fa202aSchristos Franc,ois to explain the regex in usage(). 2140*a8fa202aSchristos Ideas from Franc,ois Pinard. 2141*a8fa202aSchristos 2142*a8fa202aSchristos1998-03-23 Alain Magloire 2143*a8fa202aSchristos 2144*a8fa202aSchristos * testing: grep-2.1.1a for testing. 2145*a8fa202aSchristos 2146*a8fa202aSchristos * configure.in: Solaris needs '-lw' if we use wchar/wctype 2147*a8fa202aSchristos functions. 2148*a8fa202aSchristos * src/btowc.c: New file from GNU libc. Solaris 2.5 don't 2149*a8fa202aSchristos have it define. 2150*a8fa202aSchristos * configure.in : check for btowc (). 2151*a8fa202aSchristos 2152*a8fa202aSchristos * regex.c: Include <wchar.h> before <wctype.h>, to work around 2153*a8fa202aSchristos a Solaris 2.5 bug. 2154*a8fa202aSchristos Patch provided by Paul Eggert. 2155*a8fa202aSchristos 2156*a8fa202aSchristos * tests/status.sh: new file to check return status code. 2157*a8fa202aSchristos * tests/empty.sh: new file to check for empty pattern. 2158*a8fa202aSchristos * tests/warning.sh: new file to tell where to report errors. 2159*a8fa202aSchristos 2160*a8fa202aSchristos * configure.in: If available, prefer support for large files 2161*a8fa202aSchristos unless the user specified one of the CPPFLAGS, LDFLAGS, or LIBS 2162*a8fa202aSchristos variables. 2163*a8fa202aSchristos Done by Paul Eggert. 2164*a8fa202aSchristos 2165*a8fa202aSchristos * src/grep.c (usage): change prep.ai.mit.edu for gnu.org. 2166*a8fa202aSchristos 2167*a8fa202aSchristos1998-03-18 Alain Magloire 2168*a8fa202aSchristos 2169*a8fa202aSchristos * src/grep.c (usage): Formating the --help message a bit off. 2170*a8fa202aSchristos Noted by William Bader. 2171*a8fa202aSchristos 2172*a8fa202aSchristos * src/grep.c (main): When checking conflicting matcher for option -E the 2173*a8fa202aSchristos matcher was to "egrep" instead of "posix-egrep". 2174*a8fa202aSchristos Reported by kwzh@gnu.org. 2175*a8fa202aSchristos 2176*a8fa202aSchristos * src/grep.c: Typos and rewording the --help message. 2177*a8fa202aSchristos Reported by Karl Heuer. 2178*a8fa202aSchristos 2179*a8fa202aSchristos * src/grep.1: The man page wording : 2180*a8fa202aSchristos A regular expression matching a single character may be 2181*a8fa202aSchristos followed by one of several repetition operators: 2182*a8fa202aSchristos is unclear since 'x(yz)*z' is a valid regex. 2183*a8fa202aSchristos Remove the "matching a single character". 2184*a8fa202aSchristos Suggested by Harald Hanche-Olsen. 2185*a8fa202aSchristos 2186*a8fa202aSchristos * src/grep.c (main): `-f /dev/null' now specifies no patterns 2187*a8fa202aSchristos and therfore matches nothing. 2188*a8fa202aSchristos Reported by Jorge Stolfi. 2189*a8fa202aSchristos Patched by Paul Eggert. 2190*a8fa202aSchristos 2191*a8fa202aSchristos1998-03-10 Alain Magloire 2192*a8fa202aSchristos 2193*a8fa202aSchristos * Ice storm 98(el nino). Lost grep repository disk, 2194*a8fa202aSchristos and my $HOME directory, etc .. 2195*a8fa202aSchristos Trying to get the emails/patch from dejanews.com 2196*a8fa202aSchristos and start from grep-2.1. 2197*a8fa202aSchristos sigh .... 2198*a8fa202aSchristos 2199*a8fa202aSchristos1997-11-01 Alain Magloire 2200*a8fa202aSchristos 2201*a8fa202aSchristos * src/grep.c: For the long options, the problems are: 2202*a8fa202aSchristos --file appears in the option table as 'no_argument' 2203*a8fa202aSchristos instead of 'required_argument'. 2204*a8fa202aSchristos --files-with-matches is missing from the option table. 2205*a8fa202aSchristos The help lists '--fixed-strings' as the long option for -F, 2206*a8fa202aSchristos the table has '--fixed-regexp'. 2207*a8fa202aSchristos --regexp appears in the option table as 'no_argument' 2208*a8fa202aSchristos instead of 'required_argument'. 2209*a8fa202aSchristos --with-filename is missing from the option table. 2210*a8fa202aSchristos Reported by Grant McDorman and Krishna Sethuraman. 2211*a8fa202aSchristos 2212*a8fa202aSchristos1997-10-19 Alain Magloire 2213*a8fa202aSchristos 2214*a8fa202aSchristos * src/grep.c: the option "with-filename was not in the arg table. 2215*a8fa202aSchristos Corrected by Jim Hand. 2216*a8fa202aSchristos 2217*a8fa202aSchristos * GNU gettext library from gettext-0.10.32. 2218*a8fa202aSchristos 2219*a8fa202aSchristos * src/grep.c: reverse back to greping directories, 2220*a8fa202aSchristos One could skip the error message by defining 2221*a8fa202aSchristos SKIP_DIR_ERROR. There is no clear way of doing 2222*a8fa202aSchristos things, I hope to setle this on the next majore release 2223*a8fa202aSchristos Thanks Paul Eggert, Eli Zaretskii and gnits for the 2224*a8fa202aSchristos exchange. 2225*a8fa202aSchristos 2226*a8fa202aSchristos * tests/status.sh: add this check to make sure 2227*a8fa202aSchristos That the return status code is ok. 2228*a8fa202aSchristos 2229*a8fa202aSchristos1997-10-10 Andreas Schwab 2230*a8fa202aSchristos 2231*a8fa202aSchristos * src/grep.1: Fix formatting. 2232*a8fa202aSchristos 2233*a8fa202aSchristos * configure.in: Check for wctype.h, wchar.h, libintl.h and 2234*a8fa202aSchristos isascii, which are needed for regex.c. 2235*a8fa202aSchristos 2236*a8fa202aSchristos1997-10-01 Paul Eggert 2237*a8fa202aSchristos 2238*a8fa202aSchristos * src/grep.c (fillbuf): Don't warn about mmap failures. 2239*a8fa202aSchristos 2240*a8fa202aSchristos1997-09-7 Alain Magloire 2241*a8fa202aSchristos 2242*a8fa202aSchristos * src/grep.c: added code for -H --with-filename. 2243*a8fa202aSchristos 2244*a8fa202aSchristos * djgpp/*: patch wrongly apply 2245*a8fa202aSchristos duplication of text in djgpp/{README,config.h}. 2246*a8fa202aSchristos Filter djgpp/config.bat with unix2dos. 2247*a8fa202aSchristos 2248*a8fa202aSchristos * djgpp/make.mak: beautify 2249*a8fa202aSchristos From Eli Zaretskii. 2250*a8fa202aSchristos 2251*a8fa202aSchristos * grep-2.1 release. 2252*a8fa202aSchristos 2253*a8fa202aSchristos1997-09-01 Alain Magloire 2254*a8fa202aSchristos 2255*a8fa202aSchristos * grep-2.0f out for testing. 2256*a8fa202aSchristos 2257*a8fa202aSchristos * update to GNU gettext library from gettext-0.10.31 2258*a8fa202aSchristos 2259*a8fa202aSchristos * grep.c : have a nicer format for --version. 2260*a8fa202aSchristos Noted by Ulrich Drepper. 2261*a8fa202aSchristos 2262*a8fa202aSchristos * obstack.[ch]: updated from GNU C library 2263*a8fa202aSchristos * configure.in: look for stdlib.h [HAVE_STDLIB_H] 2264*a8fa202aSchristos Comments from Ulrich Drepper. 2265*a8fa202aSchristos 2266*a8fa202aSchristos1997-08-25 Philippe De Muyter <phdm@info.ucl.ac.be> 2267*a8fa202aSchristos 2268*a8fa202aSchristos * src/dfa.c (sys/types.h): File included unconditionnaly. 2269*a8fa202aSchristos 2270*a8fa202aSchristos1997-08-16 Eli Zaretskii <eliz@is.elta.co.il> 2271*a8fa202aSchristos 2272*a8fa202aSchristos * grep.c (long_options) [O_BINARY]: Add DOS-specific options. 2273*a8fa202aSchristos (fillbuf) [O_BINARY]: For DOS-style text files, strip CR 2274*a8fa202aSchristos characters at end of line. 2275*a8fa202aSchristos (prline) [O_BINARY]: Report correct byte offsets, even though CR 2276*a8fa202aSchristos characters were stripped when reading the file. 2277*a8fa202aSchristos (usage) [O_BINARY]: Add DOS-specific options. 2278*a8fa202aSchristos (setmatcher) [HAVE_SETRLIMIT]: Set re_max_failures so that the 2279*a8fa202aSchristos matcher won't ever overflow the stack. 2280*a8fa202aSchristos (main) [__MSDOS__, _WIN32]: Handle backslashes and drive letters 2281*a8fa202aSchristos in argv[0], remove the .exe suffix, and downcase the prgram name. 2282*a8fa202aSchristos [O_BINARY]: Pass additional DOS-specific options to getopt_long 2283*a8fa202aSchristos and handle them. Call stat before attempting to open the file, in 2284*a8fa202aSchristos case it is a directory (DOS will fail the open call for 2285*a8fa202aSchristos directories). Switch the input descriptor to binary mode, unless 2286*a8fa202aSchristos it is a terminal device. 2287*a8fa202aSchristos 2288*a8fa202aSchristos * system.h [O_BINARY]: Define macros to switch a handle to binary 2289*a8fa202aSchristos mode, so binary files could be grep'ed on MS-DOS and MS-Windows. 2290*a8fa202aSchristos [HAVE_SETLOCALE]: Test for HAVE_SETLOCALE instead of 2291*a8fa202aSchristos HAVE_LC_MESSAGES, to prevent compilation error in grep.c on 2292*a8fa202aSchristos systems which don't define HAVE_LC_MESSAGES, but have setlocale. 2293*a8fa202aSchristos 2294*a8fa202aSchristos * dosbuf.c: New file, functions specific for MS-DOS/MS-Windows. 2295*a8fa202aSchristos (guess_type, undossify_input, dossified_pos): New functions. 2296*a8fa202aSchristos 2297*a8fa202aSchristos * djgpp/config.h, djgpp/config.bat, djgpp/main.mak, djgpp/src.mak, 2298*a8fa202aSchristos djgpp/po.mak, djgpp/intl.mak, djgpp/tests.mak, djgpp/po2tbl.sed: 2299*a8fa202aSchristos New files, for building Grep with DJGPP tools for MS-DOS and 2300*a8fa202aSchristos MS-Windows. 2301*a8fa202aSchristos 2302*a8fa202aSchristos * grep.1: Document DOS-specific switches. 2303*a8fa202aSchristos 2304*a8fa202aSchristos1997-08-08 Alain Magloire 2305*a8fa202aSchristos 2306*a8fa202aSchristos * grep-2.0e: available for testing 2307*a8fa202aSchristos 2308*a8fa202aSchristos * grep.c: change LC_MESSAGE to LC_ALL for (LC_CTYPE). 2309*a8fa202aSchristos Suggested by Jochen Hein. 2310*a8fa202aSchristos 2311*a8fa202aSchristos * ABOUT-NLS: updated. 2312*a8fa202aSchristos * grep.c: --version: more verbosity (COPYRIGHT). 2313*a8fa202aSchristos * grep.c: --help: PATTERN, FILE instead of <pattern>, <file>. 2314*a8fa202aSchristos * INSTALL.grep: not necessary removed. 2315*a8fa202aSchristos * configure.in: --disable-regex rename --without-include-regex. 2316*a8fa202aSchristos * THANKS: format: first row name, second email. 2317*a8fa202aSchristos * ChangeLog: format ISO 8601. 2318*a8fa202aSchristos Reported by Franc,ois Pinard. 2319*a8fa202aSchristos 2320*a8fa202aSchristos * grep.c: move dcl of struct stat st into "else" where it's used. 2321*a8fa202aSchristos Reported by Jim Meyering. 2322*a8fa202aSchristos 2323*a8fa202aSchristos * grep.c: totalnl should be %u in printf. 2324*a8fa202aSchristos Reported by Michael Aichlmay 2325*a8fa202aSchristos Corrected with guidance from Ulrich Drepper 2326*a8fa202aSchristos 2327*a8fa202aSchristos1997-07-24 Alain Magloire <alainm@rcsm.ee.mcgill.ca> 2328*a8fa202aSchristos 2329*a8fa202aSchristos * Makefile.am: corrected an error when installing {f,e}grep.1. 2330*a8fa202aSchristos From Kaveh R. Ghazi <ghazi@caip.rutgers.edu>. 2331*a8fa202aSchristos From Ulrich Drepper <drepper@cygnus.com>. 2332*a8fa202aSchristos 2333*a8fa202aSchristos * Many files: use PARAMS instead of __STDC__ for prototypes. 2334*a8fa202aSchristos From Jim Meyering <meyering@eng.ascend.com>. 2335*a8fa202aSchristos Patch provided by Kaveh R. Ghazi <ghazi@caip.rutgers.edu>. 2336*a8fa202aSchristos 2337*a8fa202aSchristos * dfa.[ch]: uses the one in gawk-3.0.3 with the patch from 2338*a8fa202aSchristos Arnold (see Changelog: July 12 1997) 2339*a8fa202aSchristos 2340*a8fa202aSchristos * grep.1: a note to say -l, -L, -q stop on first match. 2341*a8fa202aSchristos Noted by Andrew Beattie <gaffer@tug.com>. 2342*a8fa202aSchristos 2343*a8fa202aSchristos * grep.c: refuse to scan if the file is a directory. 2344*a8fa202aSchristos This was causing problems on SUNs. If the directory contains 2345*a8fa202aSchristos a file that could match the pattern, garbage was display. 2346*a8fa202aSchristos 2347*a8fa202aSchristos * tests directory: added new set of tests from Henry Spencer 2348*a8fa202aSchristos regex package. Change the way the tests were done to be more 2349*a8fa202aSchristos conformant to automake. 2350*a8fa202aSchristos 2351*a8fa202aSchristos * configure.in: added --disable-regex for folks with their own fuctions. 2352*a8fa202aSchristos 2353*a8fa202aSchristos * grep-20d : available for testing 2354*a8fa202aSchristos 2355*a8fa202aSchristos1997-07-18 Alain Magloire <alainm@rcsm.ee.mcgill.ca> 2356*a8fa202aSchristos 2357*a8fa202aSchristos * grep-2.0c: available for testing 2358*a8fa202aSchristos 2359*a8fa202aSchristos1997-07-17 Alain Magloire <alainm@rcsm.ee.mcgill.ca> 2360*a8fa202aSchristos 2361*a8fa202aSchristos * src/grep.c: Cause grep to fail if `fclose (stdout)' fails. 2362*a8fa202aSchristos From Jim Meyering <meyering@eng.ascend.com>. 2363*a8fa202aSchristos 2364*a8fa202aSchristos * grep.c:usage() more consistency in the --help. 2365*a8fa202aSchristos 2366*a8fa202aSchristos * egrep, fgrep were links This is in violation of GNU standards: 2367*a8fa202aSchristos "Please don't make the behavior of a utility depend on the name used 2368*a8fa202aSchristos to invoke it. It is useful sometimes to make a link to a utility with 2369*a8fa202aSchristos a different name, and that should not change what it does." 2370*a8fa202aSchristos For now egrep and fgrep will be copies of grep. A better scheme 2371*a8fa202aSchristos should be found later. 2372*a8fa202aSchristos After discussion with Tom Tromey <tromey@cygnus.com>. 2373*a8fa202aSchristos 2374*a8fa202aSchristos * fgrep.man and egrep.man included: They are stubs that call grep.1. 2375*a8fa202aSchristos * Makefile.am: modified to install {f,e,}grep[,.1]. 2376*a8fa202aSchristos 2377*a8fa202aSchristos * speed hack for -l, -L: bail out on first match. 2378*a8fa202aSchristos From Scott Weikart <scott@igc.apc.org>. 2379*a8fa202aSchristos 2380*a8fa202aSchristos * *.[ch]: provided prototypes for strict argument checking 2381*a8fa202aSchristos With the help of Stewart Levin <stew@sep.stanford.edu>. 2382*a8fa202aSchristos 2383*a8fa202aSchristos1997-07-16 Alain Magloire <alainm@rcsm.ee.mcgill.ca> 2384*a8fa202aSchristos 2385*a8fa202aSchristos * configure.in: typo in the creation of po/Makefile 2386*a8fa202aSchristos Noted by Volker Borchert bt@teknon.de. 2387*a8fa202aSchristos 2388*a8fa202aSchristos * grep-2.0b: make it available for testing. 2389*a8fa202aSchristos 2390*a8fa202aSchristos1997-07-15 Alain Magloire <alainm@rcsm.ee.mcgill.ca> 2391*a8fa202aSchristos 2392*a8fa202aSchristos * src/grep.c usage(): cut the --help in smaller printf()'s 2393*a8fa202aSchristos Noted by Ulrich Drepper <drepper@cygnus.com>. 2394*a8fa202aSchristos 2395*a8fa202aSchristos1997-07-14 Alain Magloire <alainm@rcsm.ee.mcgill.ca> 2396*a8fa202aSchristos 2397*a8fa202aSchristos * grep-2.0a: make an alpha available for testing. 2398*a8fa202aSchristos 2399*a8fa202aSchristos1997-07-12 Alain Magloire <alainm@rcsm.ee.mcgill.ca> 2400*a8fa202aSchristos 2401*a8fa202aSchristos * run gettextize: added the po directory filled with *.po files. 2402*a8fa202aSchristos 2403*a8fa202aSchristos * check.sh, scriptgen.awk: fix grep paths. 2404*a8fa202aSchristos 2405*a8fa202aSchristos * change the directory strucure: grep is now in src to comply with 2406*a8fa202aSchristos gettext.m4. 2407*a8fa202aSchristos 2408*a8fa202aSchristos * grep.c version.c [VERSION]: got rid of version.c, 2409*a8fa202aSchristos it is now define via config.h. 2410*a8fa202aSchristos 2411*a8fa202aSchristos * dfa.c: patch to speed up initialization. 2412*a8fa202aSchristos Arnold Robbins (arnold@gnu.ai.mit.edu). 2413*a8fa202aSchristos 2414*a8fa202aSchristos1997-07-09 Alain Magloire <alainm@rcsm.ee.mcgill.ca> 2415*a8fa202aSchristos 2416*a8fa202aSchristos * *.c [HAVE_CONFIG_H]: Macro defined. 2417*a8fa202aSchristos 2418*a8fa202aSchristos * support for I18N in Makefile.am and configure.in. 2419*a8fa202aSchristos 2420*a8fa202aSchristos * update all the string to use gettext(I18N). 2421*a8fa202aSchristos Help from Franc,ois Pinard previous patch <pinard@IRO.UMontreal.CA>. 2422*a8fa202aSchristos 2423*a8fa202aSchristos1997-07-04 Alain Magloire <alainm@rcsm.ee.mcgill.ca> 2424*a8fa202aSchristos 2425*a8fa202aSchristos * obstack.[ch]: updated from glibc. 2426*a8fa202aSchristos Work of Ulrich Drepper <drepper@cygnus.com>. 2427*a8fa202aSchristos 2428*a8fa202aSchristos * regex.[ch]: updated from glibc. 2429*a8fa202aSchristos Work of Ulrich Drepper <drepper@cygnus.com>. 2430*a8fa202aSchristos 2431*a8fa202aSchristos * grep.c: for option -e not counting '\n' for new keys. 2432*a8fa202aSchristos From Mark Waite <markw@mddmew.fc.hp.com>. 2433*a8fa202aSchristos 2434*a8fa202aSchristos * grep.c: for option -f allocating the right count. 2435*a8fa202aSchristos From Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>. 2436*a8fa202aSchristos Mike Heartel (mike@cs.uoregon.edu). 2437*a8fa202aSchristos 2438*a8fa202aSchristos * kwset.c (bmexec): Cast tp[-2] to unsigned char before comparing. 2439*a8fa202aSchristos From Jim Meyering <meyering@asic.sc.ti.com>. 2440*a8fa202aSchristos 2441*a8fa202aSchristos * grep.1: various typos. 2442*a8fa202aSchristos From Keith Bostic <bostic@bsdi.com>. 2443*a8fa202aSchristos Mike Heartel (mike@cs.uoregon.edu). 2444*a8fa202aSchristos 2445*a8fa202aSchristos1997-06-17 Alain Magloire <alainm@rcsm.ee.mcgill.ca> 2446*a8fa202aSchristos 2447*a8fa202aSchristos * grep.c: support for long options. 2448*a8fa202aSchristos patch done by Franc,ois Pinard <pinard@IRO.UMontreal.CA>. 2449*a8fa202aSchristos 2450*a8fa202aSchristos * add getopt1.c in Makefile.am. 2451*a8fa202aSchristos Noted by Franc,ois Pinard <pinard@IRO.UMontreal.CA> 2452*a8fa202aSchristos 2453*a8fa202aSchristos * replace getopt.[ch] and add getopt1.c. 2454*a8fa202aSchristos 2455*a8fa202aSchristos * kwset.c: undef malloc before define it. 2456*a8fa202aSchristos Franc,ois Pinard <pinard@IRO.UMontreal.CA>. 2457*a8fa202aSchristos 2458*a8fa202aSchristos1997-06-07 Alain Magloire <alainm@rcsm.ee.mcgill.ca> 2459*a8fa202aSchristos 2460*a8fa202aSchristos * grep.c: format incorrect in 2461*a8fa202aSchristos fprintf("%s: warning: %s: %s...", filename, strerror(errno)). 2462*a8fa202aSchristos Mike Heartel (mike@cs.uoregon.edu). 2463*a8fa202aSchristos 2464*a8fa202aSchristos1996-11-19 David J MacKenzie <djm@catapult.va.pubnix.com> 2465*a8fa202aSchristos 2466*a8fa202aSchristos * make.com: Set the logical SYS. From rdb@cocamrd.oz.au (Rodney Brown). 2467*a8fa202aSchristos 2468*a8fa202aSchristos * grep.c (S_ISREG): Define if not defined already, for e.g. 2469*a8fa202aSchristos SunOS 4.0.3. 2470*a8fa202aSchristos 2471*a8fa202aSchristos * dfa.c (test_bit, set_bit, clear_bit): Renamed from tstbit, 2472*a8fa202aSchristos setbit, clrbit to avoid conflict with HP-UX sys/param.h macros. 2473*a8fa202aSchristos 2474*a8fa202aSchristos * memchr.c: New file, from GNU libc. 2475*a8fa202aSchristos * grep.c (memchr): Remove definition. 2476*a8fa202aSchristos * configure.in: Use AC_REPLACE_FUNCS for memchr. 2477*a8fa202aSchristos 2478*a8fa202aSchristos * configure.in: Remove unused checks for memalign and unsigned char. 2479*a8fa202aSchristos * grep.c: HAVE_WORKING_MMAP -> HAVE_MMAP. 2480*a8fa202aSchristos 2481*a8fa202aSchristos * system.h: New file. 2482*a8fa202aSchristos * dfa.c, kwset.c, grep.c, search.c: Use it instead of duplicating 2483*a8fa202aSchristos portability boilerplate. 2484*a8fa202aSchristos 2485*a8fa202aSchristos * grep.c: Include sys/types.h once, instead of three times 2486*a8fa202aSchristos conditionally. 2487*a8fa202aSchristos * dfa.c, kwset.c, search.c: Include sys/types.h unconditionally, 2488*a8fa202aSchristos to always try to get size_t (needed on some old SysV's). 2489*a8fa202aSchristos 2490*a8fa202aSchristos * dfa.c: Define strchr in terms of index, not the other way around. 2491*a8fa202aSchristos * search.c: Use memcpy instead of bcopy. 2492*a8fa202aSchristos 2493*a8fa202aSchristos1996-11-15 David J MacKenzie <djm@catapult.va.pubnix.com> 2494*a8fa202aSchristos 2495*a8fa202aSchristos * Many files: Update FSF address. 2496*a8fa202aSchristos Update configuration to use autoconf v2 and automake. 2497*a8fa202aSchristos 2498*a8fa202aSchristos1993-05-22 Mike Haertel <mike@cs.uoregon.edu> 2499*a8fa202aSchristos 2500*a8fa202aSchristos * Version 2.0 released. 2501