1 2002-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
15 2002-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>
20 2002-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
33 2002-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
44 2002-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
49 2002-01-18 Bernhard Rosenkraenzer <bero@redhat.com>
50 * src/grep.c: Add --label, based on patch from Stepan Koltsov
52 2001-11-20 Bernhard Rosenkraenzer <bero@redhat.com>
53 * autogen.sh: Don't hardcode aclocal dir
55 2001-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
61 2001-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,
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
83 2001-08-30 Alain Magloire
85 * configure.in: Add gl in ALL_LINGUAS.
87 2001-08-30 Kurt D Schwehr
89 * doc/grep.1: Warn that grep insert a "--" between groups of matches,
90 when using the context options.
91 * doc/grep.texi: Likewised.
93 2001-08-25 Heikki Korpela
95 * doc/grep.texi: Point out that some Platforms do not support
96 reading of directories and silently ignore them.
98 2001-08-21 Alain Magloire
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.
104 2001-07-31 Alain Magloire
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
111 2001-07-31 Andreas Schwab
113 * src/grep.c: Fix all uses of error to pass a proper format
116 2001-07-29 Alain Magloire
118 * grep/src/grep.c (usage): Typos corrected.
119 Patches from Santiago Vila.
121 2001-07-29 Alain Magloire
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
135 * grep/src/grep.c (grepdir): Remove the (unsigned) cast when calling
137 Patch from David Clissold.
139 2001-07-29 Alain Magloire
141 * grep/doc/grep.texi: In Bugs report use {n,m} for consistency.
142 * grep/doc/grep.1: Likewised.
143 Noted by Steven Lucy.
145 2001-04-27 Isamu Hasegawa
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.
156 2001-04-27 Isamu Hasegawa
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.
166 2001-04-19 Isamu Hasegawa
168 * search.c (check_multibyte_string) : Check the case when mbclen == 0.
170 2001-04-11 Isamu Hasegawa
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.
177 2001-04-02 Alain Magloire
179 * lib/regex.c: Update from GNU lib C, with the changes
180 provided by Paul Eggert.
181 * lib/posix/regex.h: Likewise.
183 2001-02-17 Paul Eggert
185 Stop trying to support hosts that have nonstandard declarations for
186 mbrtowc and/or mbstate_t. It's not worth the portability hassle.
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.
192 2001-03-18 Alain Magloire
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.
202 2001-03-18 Paul Eggert
204 * src/grep.c (fillbuf): Fix storage allocation performance
205 bug: buffer was doubling in size in many cases where it didn't
208 2001-03-17 Paul Eggert
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.
214 2001-03-17 Alain Magloire
216 * src/grep.c (context_length_arg): error () passing wrong format.
217 Spotted by Jim Meyering.
219 2001-03-07 Alain Magloire
221 * README-alpha: Removed reference to GNU tar, add the location
224 2001-03-06 Alain Magloire
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.
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.
245 Reaction to bug report fired by Greg Louis <glouis@dynamicro.on.ca>
247 2001-03-06 Isamu Hasegawa
249 In multibyte environments, handle multibyte characters as single
250 characters in bracket expressions.
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
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.
271 2001-03-04 Alain Magloire
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.
278 * src/grep.c (fatal): Function removed, using error () from
280 (usage): Copyright updated.
281 (error): Function removed, using error () from lib/error.c instead,
283 (prog): Global variable rename to program_name, to work with new
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
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.
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.
343 2001-03-01 Isamu Hasegawa
345 Implement the mechanism to match with multibyte characters,
346 and use it for `period' in multibyte environments.
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.
366 2001-03-01 Alain Magloire
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.
379 2001-02-25 Alain Magloire
381 * src/dfa.c: Typo corrected.
382 Noted by Isamu Hasegawa.
383 * src/savedir.c: Typos corrected.
385 2001-02-22 Alain Magloire
387 * src/savedir.c (isdir1): New function, calling isdir with
388 the correct pathname.
390 2001-02-19 Isamu Hasegawa
392 Avoid incorrect state transition in multibyte environments.
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
400 (dfainit): init multibyte_prop.
401 (dfafree): free multibyte_prop.
402 (inputwcs): new variable.
404 2001-02-19 Isamu Hasegawa
406 Handle a multibyte character followed by '*', '+', and '{n,m}'
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.
416 (cur_mb_len): new variable.
417 (cur_mb_index): new variable.
419 2001-02-18 Jim Meyering
421 * m4/dosfile.m4 (AC_DOSFILE): Move AC_DEFINEs out of AC_CACHE_CHECK.
423 2001-02-17 Alain Malgoire
425 * doc/grep.texi: Document the new options and the new behaviour
426 back-references are local. Use excerpt from Karl Berry regex
429 * bootstrap/Makefile.try: Added xstrtoumax.o xstrtoul.o hard-local.o
431 2001-02-17 Alain Magloire
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.
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.
447 GNU grep currently does not issue
448 diagnostics for the following two cases, both of which are erroneous:
452 POSIX requires a diagnostic in both cases because '[' is not a valid
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.
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.
469 2001-02-17 Alain Magloire
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.
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
488 2001-02-16 Alain Magloire
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.
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.
507 2001-02-16 Alain Magloire
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.
513 2001-02-16 Alain Magloire
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 .
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.
535 2001-02-09 Alain Magloire
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.
541 2001-02-09 Alain Magloire
543 Patch from Ulrich Drepper to provide hilighting.
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.
555 2000-09-01 Brian Youmans
557 * doc/grep.texi: Typo fixes.
559 2000-08-30 Paul Eggert
561 * doc/grep.texi (Usage): Talk about what "grep -r hello *.c"
564 2000-08-20 Paul Eggert
566 Handle range expressions correctly even when they match
567 strings with two or more characters.
569 * src/dfa.h (CRANGE): New enum value. Comment fix.
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.
582 * src/Makefile.am (base_sources): Add hard-locale.c, hard-locale.h.
584 * src/hard-locale.c, src/hard-locale.h: New files, taken from
587 2000-08-20 Paul Eggert
589 * tests/Makefile.am (TESTS_ENVIRONMENT): Add LC_ALL=C, since
590 some of the tests assume the C locale.
592 2000-08-16 Paul Eggert
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.
598 2000-06-06 Paul Eggert
600 * src/grep.c (grepdir): Don't look at st_dev when testing for
603 2000-06-05 Paul Eggert
605 Port to Mingw32, based on suggestions from Christian Groessler
608 * src/isdir.c: New file, taken from fileutils.
610 * src/Makefile.am (base_sources): Add isdir.c.
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
617 * src/system.h (isdir): New decl.
618 (is_EISDIR): Depend on HAVE_DIR_EACCES_BUG, not D_OK.
619 Use isdir, not access.
621 2000-06-02 Paul Eggert
623 Problen noted by Gerald Stoller <gerald_stoller@hotmail.com>
625 * src/grep.c (main): POSIX.2 says that -q overrides -l, which
626 in turn overrides the other output options. Fix grep to
629 2000-05-27 Paul Eggert
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.
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
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.
656 2000-05-24 Paul Eggert
658 Handle very large input counts better. Bug noted by Jim Meyering.
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,
668 2000-05-16 Paul Eggert
670 Problem reported by Bob Proulx <rwp@hprwp.fc.hp.com>, this patch
671 is base on his finding, with appropiate corrections.
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.
677 2000-04-24 Paul Eggert
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.
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
689 (grep, grepfile, grepdir): Invoke suppressible_error.
690 (main): -q sets exit_on_match.
692 * doc/grep.1, doc/grep.texi, NEWS:
693 Document -q's behavior as required by POSIX.2.
696 Test for -q and -s behavior as conforming to POSIX.2.
698 2000-04-20 Paul Eggert
700 * tests/Makefile.am (TESTS_ENVIRONMENT):
701 Set GREP_OPTIONS to the empty string.
703 2000-04-20 Paul Eggert
705 * tests/status.sh: Fix typo: test -b -> test -r.
707 2000-04-20 Paul Eggert
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.
715 2000-04-17 Paul Eggert
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).
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.
725 * m4/dosfile.m4: Define HAVE_DOS_FILE_CONTENTS if it appears we're
728 * src/grep.c (undossify_input, fillbuf, dosbuf.c, prline, main):
729 Depend on HAVE_DOS_FILE_CONTENTS, not O_BINARY, when handling CRLF
731 (grepfile, main): Depend on SET_BINARY, not O_BINARY, when
732 handling binary files on hosts that care about text versus binary.
734 2000-04-17 Paul Eggert
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>.
740 2000-04-17 Bruno Haible
742 * src/system.h [BeOS]: Ignore O_BINARY.
743 * src/getpagesize.h [BeOS]: Define getpagesize() as B_PAGE_SIZE.
745 2000-04-10 Paul Eggert
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.
757 2000-04-08 Paul Eggert
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.
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.
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):
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,
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,
795 * src/search.c (EGexecute, Fexecute, Pexecute): Likewise.
797 * src/dfa.h (_PTR_T): Depend on defined __STDC__, not __STDC__.
798 (PARAMS): Depend on PROTOTYPES, not __STDC__.
800 * src/dfa.c (dfasyntax): Last arg is unsigned char, not int.
801 * src/dfa.h (dfasyntax): Likewise.
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.
807 * src/search.c (matchers): Move definition to end of file, so
808 that we don't need forward decls.
810 (kwset_exact_matches): New var; subsumes old lastexact var.
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.
821 * src/grep.h (matchers): Use fixed name size, not pointer (as
822 there's no need for the extra flexibility). All uses changed.
824 * src/kwset.h (struct kwsmatch.offset): Renamed from beg, with
825 change of type to size_t. All uses changed.
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,
831 Do not invoke setrlimit if that wouldn't change the limit.
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.
849 * src/search.c (Pcompile): Do not assume newly allocated
852 2000-04-06 Paul Eggert
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.
858 2000-03-26 Paul Eggert
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.
864 * src/Makefile.am (base_sources):
865 Add xstrtol.c, xstrtol.h, xstrtoumax.c.
866 (EXTRA_DIST): Add strtol.c.
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.
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.
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.
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
887 2000-03-23 Paul Eggert
889 * src/search.c (Pcompile): Add support for NUL bytes in
890 Perl regular expressions.
892 2000-03-23 Paul Eggert
894 * NEWS, doc/grep.1, doc/grep.texi: Change --pcre to --perl-regexp.
895 * src/grep.c (long_options, usage): Likewise.
897 * doc/grep.1, doc/grep.texi: Remove pgrep program.
898 * src/Makefile.am (bin_PROGRAMS): Likewise.
899 (pgrep_SOURCES): Remove.
901 * src/grep.c (main): Rename matcher from "pgrep" to "perl".
902 * src/search.c (matchers): Likewise.
904 * src/search.c: Do not include stdio.h; no longer needed.
906 (sub): No longer static.
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.
923 2000-03-21 Alain Magloire
925 * configure.in: added AC_CHECK_LIB(pcre, pcre_exec)
926 * ChangeLog: Typos corrected.
927 * src/search.c: new MACRO HAVE_LIBPCRE
929 2000-03-21 H.Merijn Brand
931 * src/Makefile.am(bin_PROGRAMS): added pgrep and new macro
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.
938 2000-03-21 Bastiaan Stougie
940 Improvement of the -m or --max-count option. Now works for NUM > 1 and
941 prints trailing context for the last matching line.
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
950 (grep): Print trailing context after the NUMth match when the -m NUM
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.
964 2000-03-17 Paul Eggert
966 Add new -m or --max-count option, based on a suggestion by
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.
981 2000-03-08 Alain Magloire
983 * configure.in: version 2.4.2
985 2000-03-07 Paul Eggert
987 * Make intl subdirectory match fileutils, tar, etc.;
988 see intl/ChangeLog for details.
990 * src/getpagesize.h: Reformat to match latest fileutils.
992 * src/savedir.c (savedir): Work even if directory size is
993 negative; this can happen with some NFS screwups.
995 2000-03-03 Jim Meyering
997 * regex.m4: Make sure re_compile_pattern accepts patterns like `{1'.
999 2000-03-02 Alain Magloire
1003 2000-02-25 Paul Eggert
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.
1011 2000-02-25 Alain Magloire
1013 * po/*.po: update of the PO files.
1015 2000-02-22 Eli Zaretskii
1017 * doc/grep.1: Two small glitches(typos).
1019 2000-02-18 Eli Zaretskii
1021 * djgpp/config.site (prefix, INSTALL): Use /dev/env/DJDIR instead
1022 of ${DJDIR}, so that the produced Makefile's work on any DJGPP
1025 2000-01-30 Alain Magloire
1027 * doc/grep.1: corrected typo.
1028 Noted by Ruslan Ermilov.
1030 2000-01-30 Alain Magloire
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).
1044 2000-01-30 Paul Eggert
1046 * src/grep.c (main): Update copyright notice.
1048 2000-01-28 Alain Magloire
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.
1054 * configure.in: Reenable, jm_INCLUDE_REGEX() since we now
1056 * src/Makefile.am: EXTRA_DIST new macros with regex.c regex.h.
1057 Requested By Ulrich Drepper.
1059 2000-01-25 Paul Eggert
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.
1065 2000-01-25 Paul Eggert
1067 * NEWS, doc/grep.1, doc/grep.texi: Add -I option.
1068 * src/grep.c (short_options, usage, main): Likewise.
1070 * doc/grep.texi: Fix some incorrect references to ASCII.
1072 2000-01-25 Paul Eggert
1074 * doc/grep.1: Simplify synopsis; sort options; mention
1075 environment variables; clean up some minor gaffes.
1077 2000-01-25 Paul Eggert
1080 Fix some errors in description of [:print:] and the like.
1082 2000-01-23 Paul Eggert
1084 * src/dfa.c (FETCH, lex): Put brackets around if-body to avoid
1085 GCC warning about ambiguous if-then-else.
1087 2000-01-23 Paul Eggert
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.
1093 2000-01-23 Paul Eggert
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.
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.
1107 2000-01-20 Alain Magloire
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
1115 2000-01-18 Alain Magloire
1117 * Rectification the initial patch to add --binary-file option
1118 was done by Ruslan Ermilov.
1120 2000-01-17 Paul Eggert
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.
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,
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.
1140 * config.guess, config.sub, install-sh, missing, src/alloca.c,
1141 src/getpagesize.h, src/memchr.c, src/savedir.c, src/savedir.h,
1143 Upgrade to latest version from fileutils 4.0n.
1145 * src/getopt.c, src/getopt.h, src/getopt1.c: Upgrade to latest
1146 version from tar 1.13.17.
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.
1152 2000-01-04 Paul Eggert
1154 Initial patch by Ruslan Ermilov.
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):
1163 (INT_MAX, UCHAR_MAX): Define in terms of TYPE_MAXIMUM.
1165 2000-01-04 Paul Eggert
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>.
1171 1999-12-03 Alain Magloire
1175 1999-11-18 Paul Eggert
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.
1181 1999-11-13 Eli Zaretskii
1183 * doc/grep.texi: Minor markup and spelling corrections. Use
1184 @noindent where appropriate.
1186 * PATCHES-{AM,AC}: rename to PATCHES.{AM,AC}
1188 1999-11-12 Eli Zaretskii
1190 doc/grep.texi: Minor fixes and typos corrected.
1191 djgpp/README: Updated version.
1193 1999-11-07 Paul Eggert
1195 * src/grep.c (usage): Fix misspelling.
1197 1999-11-07 Paul Eggert
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.
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.
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
1213 1999-11-01 Alain Magloire
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.
1225 1999-11-01 Arnold D. Robbins
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.
1232 1999-10-26 Alain Magloire
1234 * src/regex.c: Merge changes from GNU lib C.
1235 * Updated the *.po files
1237 1999-10-26 Paul Eggert
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
1244 1999-10-21 Paul Eggert
1246 * src/grep.c (usage): Give example. Clarify -F.
1247 Explain exit status more clearly.
1249 1999-10-12 Paul Eggert
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.
1255 1999-10-11 Paul Eggert
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.
1262 * doc/grep.1: Document -Z or --null.
1264 1999-10-11 Paul Eggert
1266 * doc/grep.texi: Fix texinfo glitches. POSIX -> POSIX.2 where
1269 1999-10-11 Paul Eggert
1271 * acconfig.h (ssize_t): New #undef.
1273 * configure.in (AC_CHECK_TYPE): Add ssize_t.
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.
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.
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.
1295 * src/system.h (SEEK_SET, SEEK_CUR): New macros.
1297 1999-10-02 Alain Magloire
1299 * src/regex.[ch]: upgrade from GNU lib C source tree.
1301 * make beta 2.3f available.
1303 1999-10-02 Paul Eggert
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.
1313 * src/egrepmat.c, src/fgrepmat.c, src/grepmat.c (default_matcher):
1316 * src/grep.h (default_matcher): Remove.
1317 (matcher): Now exported from ?grepmat.c, not grep.c.
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.
1326 * src/grep.c (short_options): New constant.
1327 (long_options, main): -u and -U are now supported on Unix,
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".
1337 * src/search.c (matchers):
1338 Remove "posix-egrep" matcher; no longer needed.
1339 (Ecompile): Likewise.
1340 The egrep matcher now has POSIX behavior.
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}.
1347 1999-09-22 Paul Eggert
1349 * largefile.m4 (AC_SYS_LARGEFILE_FLAGS): Work around GCC
1350 2.95.1 bug with HP-UX 10.20.
1352 1999-09-12 Paul Eggert
1354 * src/grep.c (fillbuf): Fix typo: we sometimes reported
1355 arithmetic overflow even when there wasn't any.
1357 1999-09-12 Paul Eggert
1359 * configure.in (AC_CHECK_FUNCS): Add memmove.
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.
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
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
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
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.
1382 1999-08-27 Paul Eggert
1384 * src/system.h (memmove): New macro.
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.
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
1395 1999-08-25 Paul Eggert
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 (!).
1401 * src/vms_fab.h (arr_ptr): `:' -> `;' to fix typo.
1403 1999-08-18 Alain Magloire
1407 1999-08-18 Alain Magloire
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.
1421 1999-08-16 Paul Eggert
1423 Upgrade large-file support to the version used in tar and
1426 * Makefile.am (ACLOCAL_AMFLAGS): Define to be empty.
1427 (M4DIR, ACINCLUDE_INPUTS): New macros.
1428 ($(srcdir)/acinclude.m4): New rule.
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.
1434 * m4/largefile.m4: Renamed from m4/lfs.m4.
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.
1441 1999-08-16 Alain Magloire
1443 * 2.3d snapshot on ftp server.
1445 1999-07-26 Paul Eggert
1447 Several GNU tools have options to process arbitrary file names, even
1448 file names that contain newline characters. These include `find
1449 -print0', `perl -0', `sort -z', and `xargs -0'. It'd be handy if GNU
1450 grep also processed such file names. Here's a proposed patch to do
1451 this, relative to grep 2.3c. This patch introduces two options, one
1452 for the data, and one for the file names. (Sometimes one wants
1453 null-terminated file names in the output, and sometimes one wants to
1454 process lists of null-terminated strings, and these are orthogonal
1457 * NEWS, doc/grep.texi: New -z or --null-data and -Z or --null options.
1458 * src/grep.c (long_options, usage, main): Likewise.
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'.
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
1474 * src/search.c (Gcompile, Ecompile): Pass eolbyte to dfasyntax.
1475 (EGexecute, Fexecute): Use eolbyte instead of '\n'.
1477 1999-06-15 Alain Magloire
1479 * src/grep.c, doc/grep{1,texi} :
1480 --revert-match should be --invert-match.
1481 Correction proposed by Karl Berry.
1483 1999-06-12 Alain Magloire
1485 * doc/grep.{1,texi}: add description for --with-filename.
1486 Noted missing by UEBAYASHI Masao.
1488 1999-03-17 Paul Eggert
1490 * NEWS: Add GREP_OPTIONS.
1492 * doc/grep.texi: Document GREP_OPTIONS, and the other
1493 environment variables. Fix doc for [:blank:], [:cntrl:], [:punct:].
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.
1499 1999-03-16 Volker Borchert
1501 * configure.in: Use case case ... esac for checking Visual C++.
1502 When ${CC} contains options it was not recognize.
1504 1999-03-07 Paul Eggert
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.
1511 1999-03-05 Eli Zaretskii
1513 * src/grep.c (main): Print the name of the default matcher instead
1516 1999-02-06 Alain Magloire
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.
1528 1999-02-23 Alain Magloire
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.
1535 * doc/grep.{1,texi} : -C takes arguments, upgrade manual.
1539 1999-02-23 Alain Magloire
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.
1545 1999-02-23 Paul Eggert
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.
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.
1567 * bootstrap/Makefile.try (OBJS): Remove btowc.$(OBJEXT).
1569 * src/btowc.c: Removed; no longer needed.
1571 1999-02-19 Paul Eggert
1573 * NEWS: Fix typo when talking about the old behavior of
1574 silently skipping directories; it was grep 2.1, not grep 2.2.
1576 1999-02-15 Alain Magloire
1578 * bootstrap/Makefile.try : add DJGPP DEFS.
1579 Done by Elie Zaretsckii.
1581 1999-02-14 Alain Magloire
1583 * m4/gettext.m4 : Guard [] with changequote.
1584 From Elie Zaretskii.
1586 * djgpp/config.bat : Makefile.in.in --> Makefile.in-in
1587 From Elie Zaretskii.
1589 * src/dosbuf: k&r function parameter.
1593 1999-02-10 Alain Magloire
1595 * bootstrap/{Makefile{try,am},REAMDE} : skeleton
1596 provided for system lacking the tools to autoconfigure.
1598 * src/{e,f,}grepmat.c: added guard [HAVE_CONFIG_H]
1600 1999-02-10 Alain Magloire
1602 * PATCHES-AC, PATCHES-AM: updated.
1604 * m4/regex.m4 : updated.
1606 1999-02-05 Eli Zaretskii
1608 * m4/gettext.m4 : Support DOS-style D:/foo/bar absolute file
1611 * aclocal.m4 (DJGPP) : Use $DJ_GPP instead, since changing the
1612 latter prevents GCC from finding headers and libraries.
1614 * djgpp/config.bat: Make building from another directory work
1616 * djgpp/config.sed: Remove redundant command wich edited path
1617 separator: now done by configure.
1619 * src/grep.c [O_BINARY]: Add prototype for undossify_input.
1621 * doc/grep.texi (Introduction): Typo fixed.
1623 1999-02-03 Alain Magloire
1625 * grep-2.2f beta release.
1627 1999-02-02 Alain Magloire
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
1634 1999-01-28 Alain Magloire
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.
1642 1999-01-28 Alain Magloire
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.
1648 1999-01-27 Volker Borchert
1650 * grep.c: fgrep -NUM not working correctly.
1651 add the argument number to digit_args_val.
1653 1999-01-22 Paul Eggert
1655 Prevent grep -r from recursing infinitely through directory loops via
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,
1672 1998-12-29 Kaveh R. Ghazi
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.
1679 1998-12-10 Alain Magloire
1681 * src/grep.c : Typo in contex -->context
1682 Noted by Vladimir Michl.
1684 1998-12-01 Alain Magloire
1686 * doc/Makefile.am djgpp/Makefile.am m4/Makefile.am vms/Makefile.am:
1689 * m4/progtest.m4: proctect '[]' from m4.
1692 * PATCHES-AC: New file, add the patch for autoconf in the dist.
1694 * acconfig.h: (HAVE_DOS_FILENAME)
1698 * src/search.c: remove obsolete 'gegrep,ggrep,gnugrep'
1699 matchers. grep no longer depend on argv[0].
1701 * grep-2.2e beta to test DJGPP port.
1703 1998-11-28 Paul Eggert
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
1713 - Protect against errno < 0.
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.
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,
1730 (CHAR_BIT): New macro.
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.
1737 * configure.in (AC_CHECK_FUNCS): Add setmode.
1738 (HAVE_DOS_FILENAMES): New macro
1740 1998-11-27 Eli Zaretskii
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.
1747 1998-11-24 Jim Meyering
1749 * src/grep.c : Typo s/infalid/invalid/
1750 Also noted by Stanislav Brabec.
1752 1998-11-24 Eli Zaretskii
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).
1766 1998-11-24 Alain Magloire
1768 * grep/doc/grep.texi : -h is not use for help.
1769 Nit spotted by Jim Meyering.
1771 1998-11-23 Alain Magloire
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
1779 * config.hin: New, config.h.in rename to config.hin for OS
1780 with limited file system aka DOS.
1782 * grep-2.2d release for beta.
1784 1998-11-18 Alain Magloire
1786 * src/regex.[ch] : Updated from GLibc, previous patches were
1787 integrate by Ulrich Drepper and some added ones.
1789 1998-11-16 Paul Eggert
1791 * grep.h (__attribute__): New macro, if not GCC.
1792 (fatal): Add __attribute__((noreturn)).
1793 * grep.c (usage): Add __attribute__((noreturn)).
1795 1998-11-16 Paul Eggert
1797 Remove memory leak with valloced buffers, by invoking malloc instead.
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.
1807 1998-11-15 Paul Eggert
1809 * dfa.c (dfacomp), search.c (EGexecute): Don't assume char is unsigned.
1811 1998-11-14 Paul Eggert
1813 * src/grep.c (grepdir): Fix bug: memory freed twice.
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
1819 1998-11-13 Eli Zaretskii
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.
1826 * Makefile.am (EXTRA_DIST): Update the list of DJGPP files.
1828 * src/system.h (IS_SLASH): New macro.
1829 (is_EISDIR): Define it here for DOS and Windows.
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
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.
1840 1998-11-10 Alain Magloire
1842 * src/vms_fab.{c,h}: New file for VMS wildcard expansion
1843 Written by Phillip C. Brisco.
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.
1849 1998-11-09 Alain Magloire
1851 * grep-2.2c on alpha for testing.
1853 1998-11-09 Paul Eggert
1855 * src/grep.1: Fix `Last Change' of output by generating the date
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.
1863 * src/grep.1: Fix -q -r -s problems; describe BSD grep better.
1865 * src/grep.c (main): Update copyright.
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.
1871 * src/egrepmat.c, src/fgrepmat.c, src/grepmat.c: New files.
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.
1880 * src/grep.h (matcher): Now char const *.
1881 (default_matcher): New decl.
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).
1888 1998-11-08 Alain Magloire
1890 * src/grep.1: `prep.ai.mit.edu' should be replaced with `gnu.org'.
1891 Nit from Paul Eggert.
1893 1998-11-06 Alain Magloire
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".
1898 * aclocal/: NEW dir. provides our own *.m4
1900 * configure.in: Move Paul's Large Files to AC_LFS.(aclocal/lfs.m4)
1901 Taken from Jim Meyering fileutils.
1903 1998-11-05 Alain Magloire
1905 * src/grep.1: update the man pages according to the
1906 changes make by Miles.
1910 * first beta release for 2.3 (2.2a).
1912 1998-11-04 Miles Bader
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.
1920 1998-11-03 Alain Magloire
1922 * src/dfa.c: HP-UX define clrbit/setbit as macros in <sys/param.h>
1924 Fixed by Andreas Ley and Philippe Defert.
1926 * src/grep.1 : mention that -s follows POSIX.2 behavior.
1927 Noted by Paul Eggert and others.
1929 * tests/khadafy.sh: a typo in failure(s).
1930 Spotted By Sotiris Vassilopoulos.
1932 1998-11-01 Paul Eggert
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.
1939 1998-08-18 Paul Eggert
1941 Add support for new -r or --recursive (or -d recurse or
1942 --directories=recurse) option.
1944 * src/Makefile.am (grep_SOURCES): Add savedir.c, savedir.h, stpcpy.c.
1946 * src/grep.1: Describe new options.
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.
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.
1965 * configure.in (AC_HEADER_DIRENT, AC_FUNC_CLOSEDIR_VOID): Add.
1966 (AC_REPLACE_FUNCS): Add stpcpy.
1968 * src/savedir.c, src/savedir.h, src/stpcpy.c: New files;
1969 taken from fileutils 3.16u.
1971 1998-08-11 Paul Eggert
1973 * src/system.h (initialize_main): New macro.
1974 * src/grep.c (main): Invoke initialize_main first thing.
1976 1998-04-29 Paul Eggert
1978 * NEWS, src/grep.1: Describe new -a and -d options.
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.
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.
1996 1998-04-26 Alain Magloire
2000 * src/dfa.c: Wrong revision was pulled out
2002 * src/search.c: Wrong revision was pulled out
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.
2009 * AUTHORS: Rephrase of some sentences.
2010 * README: Rewording.
2011 Noted and patched by Joel N. Weber II.
2013 1998-04-17 Kaveh R. Ghazi
2015 * src/dfa.h: Don't define `const', trust autoconf to handle it.
2017 1998-04-16 Alain Magloire
2019 * tests/{status,empty}.sh: wrong return status.
2021 * src/grep.c: Remove the REGEX part in usage (), it was
2022 consider overkill by most.
2024 1998-04-14 Eli Zaretskii
2026 * djgpp/config.bat: Support file names with multiple dots on all
2029 * djgpp/README: Add instructions about file names illegal on
2032 1998-04-13 Alain Magloire
2034 * src/dfa.c: by "popular" demand reverse
2035 back to '_' not word-constituent.
2037 * grep-2.1.1c available for testing.
2039 1998-04-13 Karl Heuer
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"
2055 This patch addresses all three of these problems.
2057 1998-04-13 Alain Magloire
2059 * configure.in: remove the deprecated AC_ISC_POSIX macro.
2060 Spotted by Karl Heuer.
2062 1998-04-03 Eli Zaretskii
2064 * djgpp/main.mak, djgpp/src.mak, djgpp/tests.mak: Updated from the
2065 relevant Makefile.in files.
2067 * djgpp/config.bat: Create files in intl directory like the
2068 configure script does.
2070 1998-03-28 Eli Zaretskii
2072 * djgpp/main.mak, djgpp/src.mak, djgpp/tests.mak: Updated to track
2073 changes in respective Makefile.in files.
2075 * src/dosbuf.c (guess_type): Avoid running off the end of the
2076 buffer. Spotted by Paul Eggert.
2078 1998-03-27 Alain Magloire
2080 * grep-2.1.1b.tar.gz available.
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:]]'.
2087 * Updated the copyright of the files with emacs.
2090 1998-03-26 Jim Meyering
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.
2098 1998-03-25 Alain Magloire
2100 * tests/warning.sh: typos and replace the echos with
2102 Noted By Jim Meyering.
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.
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.
2119 1998-03-23 Alain Magloire
2121 * testing: grep-2.1.1a for testing.
2123 * configure.in: Solaris needs '-lw' if we use wchar/wctype
2125 * src/btowc.c: New file from GNU libc. Solaris 2.5 don't
2127 * configure.in : check for btowc ().
2129 * regex.c: Include <wchar.h> before <wctype.h>, to work around
2131 Patch provided by Paul Eggert.
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.
2137 * configure.in: If available, prefer support for large files
2138 unless the user specified one of the CPPFLAGS, LDFLAGS, or LIBS
2140 Done by Paul Eggert.
2142 * src/grep.c (usage): change prep.ai.mit.edu for gnu.org.
2144 1998-03-18 Alain Magloire
2146 * src/grep.c (usage): Formating the --help message a bit off.
2147 Noted by William Bader.
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.
2153 * src/grep.c: Typos and rewording the --help message.
2154 Reported by Karl Heuer.
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.
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.
2168 1998-03-10 Alain Magloire
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.
2176 1997-11-01 Alain Magloire
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.
2189 1997-10-19 Alain Magloire
2191 * src/grep.c: the option "with-filename was not in the arg table.
2192 Corrected by Jim Hand.
2194 * GNU gettext library from gettext-0.10.32.
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
2203 * tests/status.sh: add this check to make sure
2204 That the return status code is ok.
2206 1997-10-10 Andreas Schwab
2208 * src/grep.1: Fix formatting.
2210 * configure.in: Check for wctype.h, wchar.h, libintl.h and
2211 isascii, which are needed for regex.c.
2213 1997-10-01 Paul Eggert
2215 * src/grep.c (fillbuf): Don't warn about mmap failures.
2217 1997-09-7 Alain Magloire
2219 * src/grep.c: added code for -H --with-filename.
2221 * djgpp/*: patch wrongly apply
2222 duplication of text in djgpp/{README,config.h}.
2223 Filter djgpp/config.bat with unix2dos.
2225 * djgpp/make.mak: beautify
2230 1997-09-01 Alain Magloire
2232 * grep-2.0f out for testing.
2234 * update to GNU gettext library from gettext-0.10.31
2236 * grep.c : have a nicer format for --version.
2237 Noted by Ulrich Drepper.
2239 * obstack.[ch]: updated from GNU C library
2240 * configure.in: look for stdlib.h [HAVE_STDLIB_H]
2241 Comments from Ulrich Drepper.
2243 1997-08-25 Philippe De Muyter <phdm@info.ucl.ac.be>
2245 * src/dfa.c (sys/types.h): File included unconditionnaly.
2247 1997-08-16 Eli Zaretskii <eliz@is.elta.co.il>
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.
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.
2271 * dosbuf.c: New file, functions specific for MS-DOS/MS-Windows.
2272 (guess_type, undossify_input, dossified_pos): New functions.
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
2279 * grep.1: Document DOS-specific switches.
2281 1997-08-08 Alain Magloire
2283 * grep-2.0e: available for testing
2285 * grep.c: change LC_MESSAGE to LC_ALL for (LC_CTYPE).
2286 Suggested by Jochen Hein.
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.
2297 * grep.c: move dcl of struct stat st into "else" where it's used.
2298 Reported by Jim Meyering.
2300 * grep.c: totalnl should be %u in printf.
2301 Reported by Michael Aichlmay
2302 Corrected with guidance from Ulrich Drepper
2304 1997-07-24 Alain Magloire <alainm@rcsm.ee.mcgill.ca>
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>.
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>.
2314 * dfa.[ch]: uses the one in gawk-3.0.3 with the patch from
2315 Arnold (see Changelog: July 12 1997)
2317 * grep.1: a note to say -l, -L, -q stop on first match.
2318 Noted by Andrew Beattie <gaffer@tug.com>.
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.
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.
2328 * configure.in: added --disable-regex for folks with their own fuctions.
2330 * grep-20d : available for testing
2332 1997-07-18 Alain Magloire <alainm@rcsm.ee.mcgill.ca>
2334 * grep-2.0c: available for testing
2336 1997-07-17 Alain Magloire <alainm@rcsm.ee.mcgill.ca>
2338 * src/grep.c: Cause grep to fail if `fclose (stdout)' fails.
2339 From Jim Meyering <meyering@eng.ascend.com>.
2341 * grep.c:usage() more consistency in the --help.
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>.
2351 * fgrep.man and egrep.man included: They are stubs that call grep.1.
2352 * Makefile.am: modified to install {f,e,}grep[,.1].
2354 * speed hack for -l, -L: bail out on first match.
2355 From Scott Weikart <scott@igc.apc.org>.
2357 * *.[ch]: provided prototypes for strict argument checking
2358 With the help of Stewart Levin <stew@sep.stanford.edu>.
2360 1997-07-16 Alain Magloire <alainm@rcsm.ee.mcgill.ca>
2362 * configure.in: typo in the creation of po/Makefile
2363 Noted by Volker Borchert bt@teknon.de.
2365 * grep-2.0b: make it available for testing.
2367 1997-07-15 Alain Magloire <alainm@rcsm.ee.mcgill.ca>
2369 * src/grep.c usage(): cut the --help in smaller printf()'s
2370 Noted by Ulrich Drepper <drepper@cygnus.com>.
2372 1997-07-14 Alain Magloire <alainm@rcsm.ee.mcgill.ca>
2374 * grep-2.0a: make an alpha available for testing.
2376 1997-07-12 Alain Magloire <alainm@rcsm.ee.mcgill.ca>
2378 * run gettextize: added the po directory filled with *.po files.
2380 * check.sh, scriptgen.awk: fix grep paths.
2382 * change the directory strucure: grep is now in src to comply with
2385 * grep.c version.c [VERSION]: got rid of version.c,
2386 it is now define via config.h.
2388 * dfa.c: patch to speed up initialization.
2389 Arnold Robbins (arnold@gnu.ai.mit.edu).
2391 1997-07-09 Alain Magloire <alainm@rcsm.ee.mcgill.ca>
2393 * *.c [HAVE_CONFIG_H]: Macro defined.
2395 * support for I18N in Makefile.am and configure.in.
2397 * update all the string to use gettext(I18N).
2398 Help from Franc,ois Pinard previous patch <pinard@IRO.UMontreal.CA>.
2400 1997-07-04 Alain Magloire <alainm@rcsm.ee.mcgill.ca>
2402 * obstack.[ch]: updated from glibc.
2403 Work of Ulrich Drepper <drepper@cygnus.com>.
2405 * regex.[ch]: updated from glibc.
2406 Work of Ulrich Drepper <drepper@cygnus.com>.
2408 * grep.c: for option -e not counting '\n' for new keys.
2409 From Mark Waite <markw@mddmew.fc.hp.com>.
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).
2415 * kwset.c (bmexec): Cast tp[-2] to unsigned char before comparing.
2416 From Jim Meyering <meyering@asic.sc.ti.com>.
2418 * grep.1: various typos.
2419 From Keith Bostic <bostic@bsdi.com>.
2420 Mike Heartel (mike@cs.uoregon.edu).
2422 1997-06-17 Alain Magloire <alainm@rcsm.ee.mcgill.ca>
2424 * grep.c: support for long options.
2425 patch done by Franc,ois Pinard <pinard@IRO.UMontreal.CA>.
2427 * add getopt1.c in Makefile.am.
2428 Noted by Franc,ois Pinard <pinard@IRO.UMontreal.CA>
2430 * replace getopt.[ch] and add getopt1.c.
2432 * kwset.c: undef malloc before define it.
2433 Franc,ois Pinard <pinard@IRO.UMontreal.CA>.
2435 1997-06-07 Alain Magloire <alainm@rcsm.ee.mcgill.ca>
2437 * grep.c: format incorrect in
2438 fprintf("%s: warning: %s: %s...", filename, strerror(errno)).
2439 Mike Heartel (mike@cs.uoregon.edu).
2441 1996-11-19 David J MacKenzie <djm@catapult.va.pubnix.com>
2443 * make.com: Set the logical SYS. From rdb@cocamrd.oz.au (Rodney Brown).
2445 * grep.c (S_ISREG): Define if not defined already, for e.g.
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.
2451 * memchr.c: New file, from GNU libc.
2452 * grep.c (memchr): Remove definition.
2453 * configure.in: Use AC_REPLACE_FUNCS for memchr.
2455 * configure.in: Remove unused checks for memalign and unsigned char.
2456 * grep.c: HAVE_WORKING_MMAP -> HAVE_MMAP.
2458 * system.h: New file.
2459 * dfa.c, kwset.c, grep.c, search.c: Use it instead of duplicating
2460 portability boilerplate.
2462 * grep.c: Include sys/types.h once, instead of three times
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).
2467 * dfa.c: Define strchr in terms of index, not the other way around.
2468 * search.c: Use memcpy instead of bcopy.
2470 1996-11-15 David J MacKenzie <djm@catapult.va.pubnix.com>
2472 * Many files: Update FSF address.
2473 Update configuration to use autoconf v2 and automake.
2475 1993-05-22 Mike Haertel <mike@cs.uoregon.edu>
2477 * Version 2.0 released.