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