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