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