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