Wed Mar  8 13:38:13 1995  Roland McGrath  <roland@churchy.gnu.ai.mit.edu>

	* posix/glob/configure.bat: Fixes from DJ.

Wed Feb 22 00:44:41 1995  Roland McGrath  <roland@churchy.gnu.ai.mit.edu>

	* posix/glob/configure.in: Put AC_ISC_POSIX before AC_CONST.

Sun Feb  5 17:59:53 1995  Roland McGrath  <roland@churchy.gnu.ai.mit.edu>

	* malloc/malloc.c (__malloc_extra_blocks): New variable.
	(malloc): When getting more core, get __malloc_extra_blocks extra;
	put the new block at the end of the free list and let the next loop
 	iteration use the initial portion of it.
	* malloc/free.c (_free_internal): Account for twice
 	__malloc_extra_blocks in deciding if we have so much extra memory
 	we should return it to the system.
	* malloc/malloc.h (__malloc_extra_blocks): Declare it.
	* posix/glob.c (prefix_array, glob_pattern_p): Remove gratuitous
 	const in parameter decl.

Fri Jan 27 17:53:49 1995  Jim Meyering  (meyering@comco.com)

	* posix/fnmatch.c: Declare errno if it's not defined.
	That's simpler than testing #if !defined(__GNU_LIBRARY__)
	&& !defined(STDC_HEADERS).

Thu Jan 26 00:02:01 1995  Roland McGrath  <roland@churchy.gnu.ai.mit.edu>

	* io/ftw.c: Avoid `ret' as variable name.
	* posix/glob.c: Likewise.

Wed Jan 25 00:45:56 1995  Roland McGrath  <roland@churchy.gnu.ai.mit.edu>

	* posix/glob/configure.in: Put AC_AIX and AC_MINIX early, before
 	any compile tests.

Mon Jan 16 15:49:07 1995  Roland McGrath  <roland@churchy.gnu.ai.mit.edu>

	* posix/glob/Makefile.in: Remove config.h and config.log.

Sun Jan 15 06:56:47 1995  Roland McGrath  <roland@churchy.gnu.ai.mit.edu>

	* posix/glob/configure.in: Add AC_CONST check.

Wed Dec  7 14:05:12 1994  Roland McGrath  <roland@churchy.gnu.ai.mit.edu>

	* posix/glob/Makefile.in (realclean): Remove config.status.

	* posix/glob/Makefile.in (DEFS): New variable, set from @DEFS@.
	(CPPFLAGS): Remove @DEFS@ from here.
	(.c.o): Use $(DEFS).

Tue Dec  6 19:04:50 1994  Roland McGrath  <roland@churchy.gnu.ai.mit.edu>

	* posix/glob/Makefile.in (CPPFLAGS): Include @DEFS@.

Mon Dec  5 12:05:10 1994  Roland McGrath  <roland@churchy.gnu.ai.mit.edu>

	* posix/glob/configure.in: Add AC_PROG_CC.

Mon Nov  7 00:38:45 1994  Roland McGrath  <roland@churchy.gnu.ai.mit.edu>

	* posix/glob/configure.in: Converted to Autoconf v2.
	* posix/glob.c: Test HAVE_DIRENT_H, HAVE_SYS_DIR_H, HAVE_NDIR_H
	instead of DIRENT, SYSDIR, NDIR.
	* posix/glob/Makefile.in (CC): New variable, set from @CC@.
	(CPPFLAGS): Set from @CPPFLAGS@, not @DEFS@.

Sun Oct 09 01:19:38 1994  Jim Meyering  (meyering@comco.com)

	* posix/fnmatch.c: Remove CONFIG_BROKETS conditional.

Sun Oct  2 18:35:16 1994  Roland McGrath  <roland@churchy.gnu.ai.mit.edu>

	* posix/glob.h (__P): Change arg name to `protos', for congruence
        with 4.4 BSD.
	* posix/fnmatch.h (__P): Likewise.

Tue Sep  6 19:06:00 1994  Roland McGrath  <roland@geech.gnu.ai.mit.edu>

	* posix/glob.c (prefix_array, glob): Avoid const on initialized
	variables.  Some compiler generates bad code.

Mon Jul 25 17:17:28 1994  Roland McGrath  <roland@churchy.gnu.ai.mit.edu>

	* posix/glob/configure.bat: New file.
	* posix/Makefile (glob.tar): Add glob/configure.bat.

Tue Dec 14 13:08:35 1993  Roland McGrath  (roland@churchy.gnu.ai.mit.edu)

	* posix/fnmatch.h: #undef FNM_PATHNAME, FNM_NOESCAPE, and
	FNM_PERIOD before defining them.

Mon Oct 18 04:22:42 1993  Roland McGrath  (roland@churchy.gnu.ai.mit.edu)

	* posix/glob/configure.in: Use AC_HAVE_HEADERS instead of
	AC_MEMORY_H and AC_UNISTD_H; omit AC_USG (not needed).

Sun Oct 10 14:31:35 1993  Jim Meyering  (meyering@comco.com)

	* posix/fnmatch.c [CONFIG_BROKETS]: Include <config.h> only under
	this condition, else "config.h".

Wed May 12 16:24:23 1993  Roland McGrath  (roland@geech.gnu.ai.mit.edu)

	* posix/glob.c: Move include <unistd.h> before dir includes.
	[HAVE_UNISTD_H] [! POSIX] [_POSIX_SOURCE]: Define POSIX.

Thu Apr 22 17:40:28 1993  Roland McGrath  (roland@churchy.gnu.ai.mit.edu)

	* posix/glob/Makefile.in (.c.o): Put $(CFLAGS) last.
	(glob.o): Depend on glob.c.
	(fnmatch.o): Depend on fnmatch.c.

Fri Apr 16 12:24:21 1993  Roland McGrath  (roland@churchy.gnu.ai.mit.edu)

	* posix/glob.c, posix/fnmatch.c: Surround code with 
	#if defined (_LIBC) || !defined (__GNU_LIBRARY__)

Wed Apr 14 12:49:10 1993  Roland McGrath  (roland@churchy.gnu.ai.mit.edu)

	* posix/glob.c [USG, NeXT]: Don't test these.
	[HAVE_STRING_H]: Test this to include string.h and define ANSI_STRING.
	[HAVE_MEMORY_H]: Test this instead of NEED_MEMORY_H.
	[! ANSI_STRING]: Put decls of bcopy and #define of memcpy et al here.

	* posix/fnmatch.c [HAVE_CONFIG_H]: #include "config.h".

Mon Apr 12 16:34:53 1993  Roland McGrath  (roland@churchy.gnu.ai.mit.edu)

	* posix/glob.c: Rationalize directory header conditionals.

Sun Apr 11 18:53:50 1993  Roland McGrath  (roland@churchy.gnu.ai.mit.edu)

	* posix/fnmatch.h [__cplusplus || __STDC__]: Don't #define const.

Sun Mar 28 16:12:33 1993  Roland McGrath  (roland@geech.gnu.ai.mit.edu)

	* posix/fnmatch.c (case '*'): Before final loop, fold C1, rather
	than foling *P before it goes into C1.  C might need folding instead.

Thu Mar 25 13:40:17 1993  Roland McGrath  (roland@churchy.gnu.ai.mit.edu)

	* posix/fnmatch.h [!_POSIX_C_SOURCE || ...]: Make this test
	_GNU_SOURCE, not _BSD_SOURCE; these are our extensions, not theirs.
	(FNM_CASEFOLD): New bit.
	(__FNM_FLAGS): Removed macro.
	* posix/fnmatch.c (fnmatch): Don't test for bogus flag bits; who cares?
	(FOLD): New macro to casefold a char if FNM_CASEFOLD.
	Use it to fold all chars before comparison.

Mon Mar  8 13:20:02 1993  Roland McGrath  (roland@geech.gnu.ai.mit.edu)

	* posix/glob/Makefile.in (VPATH): Set this to @srcdir@.
	(srcdir): Set this to $(VPATH).

	* posix/glob.c (glob): In no matches with GLOB_NOCHECK set case,
	add NULL terminator to PGLOB->gl_pathv.
	(prefix_array): Renamed arg PREFIX to DIRNAME, local var PRELEN to
	DIRLEN.  If DIRNAME is just "/", don't prepend it, so we get
	"/foo" instead of "//foo".
	(glob): Move qsort call outside of the else clause of the
	glob_pattern_p test; it should always be done.

Thu Jan 21 20:12:25 1993  Roland McGrath  (roland@geech.gnu.ai.mit.edu)

	* posix/glob.c: Put #includes of <glob.h> and <fnmatch.h> after
	all system includes, in case one of them has conflicting defns of
	FNM_* or GLOB_*, so we will redefine.  #undef FNM_* and GLOB_*
	before including our headers.

Tue Jan 19 16:16:05 1993  Roland McGrath  (roland@geech.gnu.ai.mit.edu)

	* posix/glob.c (my_realloc): Cast result of malloc/realloc to (char *).

Thu Jan 14 13:52:43 1993  Roland McGrath  (roland@churchy.gnu.ai.mit.edu)

	* posix/glob/Makefile.in (realclean): Remove Makefile.

Mon Jan  4 17:05:44 1993  Roland McGrath  (roland@geech.gnu.ai.mit.edu)

	* posix/glob/Makefile.in (RANLIB): Define to @RANLIB@.
	(RANLIB_TEST): Removed.
	(libglob.a): Don't use it.

Mon Dec 28 15:50:31 1992  Roland McGrath  (roland@churchy.gnu.ai.mit.edu)

	* posix/glob.c [HAVE_CONFIG_H]: Test this, not SHELL, to decide
	whether or not we want to #include "config.h".

Wed Nov 18 13:42:09 1992  Roland McGrath  (roland@churchy.gnu.ai.mit.edu)

	* posix/fnmatch.h (FNM_LEADING_DIR): New flag.
	* posix/fnmatch.c (fnmatch): Support it.

Sun Oct 11 16:58:36 1992  Roland McGrath  (roland@churchy.gnu.ai.mit.edu)

	* posix/glob.c (__glob_{open,read,close}dir_hook): New vars.
	(glob_in_dir): Use them.
	* posix/glob.h: Declare them.

Fri Sep 18 16:32:16 1992  Roland McGrath  (roland@geech.gnu.ai.mit.edu)

	* posix/glob/Makefile.in (AR, ARFLAGS): Define.
	(libglob.a): Use those vars instead of hardcoding.

Thu Aug 13 18:30:58 1992  Roland McGrath  (roland@churchy.gnu.ai.mit.edu)

	* posix/glob.c: Always #include <sys/types.h>.
	[! USG]: Don't do it here.
	[STDC_HEADERS]: Test this instead of __STDC__ for size_t.
	[HAVE_STRCOLL]: Test this instead of ANSI_STRING for strcoll.

	* posix/glob/Makefile.in (Makefile): Remove rule.

Tue Aug 11 15:01:50 1992  Roland McGrath  (roland@geech.gnu.ai.mit.edu)

	* posix/glob.c [_AIX]: Don't declare alloca.

Thu Jul 30 15:42:01 1992  Roland McGrath  (roland@geech.gnu.ai.mit.edu)

	* posix/glob/Makefile.in (Makefile): Depend on config.status; invoke
	it directly instead of using $(SHELL).

	* posix/glob.c [! USG]: #include <sys/types.h> before <sys/dir.h>.

Sun Jul 26 17:03:31 1992  Roland McGrath  (roland@churchy.gnu.ai.mit.edu)

	* posix/glob.c [_AIX]: #pragma alloca first thing.
	[ANSI_STRING]: Remove #define's for index et al.

Thu Jul  9 21:27:39 1992  Roland McGrath  (roland@churchy.gnu.ai.mit.edu)

	* posix/glob.c [STDC_STRINGS]: Don't test this.
	[! ANSI_STRING]: Put memcpy, strrchr, memset defns here instead.

	* posix/glob/Makefile.in (glob.o, fnmatch.o): / after $(srcdir).

Sat Jul  4 20:44:42 1992  Roland McGrath  (roland@churchy.gnu.ai.mit.edu)

	* posix/glob/Makefile.in (glob.o, fnmatch.o): Put $(srcdir) on deps.

Wed Jul  1 00:13:40 1992  Roland McGrath  (roland@churchy.gnu.ai.mit.edu)

	* posix/glob.c [! ANSI_STRING]: #define strcoll to strcmp.
	Remove extra decls of free, qsort, malloc, and realloc.

Wed Jun 24 19:09:04 1992  Roland McGrath  (roland@churchy.gnu.ai.mit.edu)

	* posix/glob.c [DIRENT] (direct): Don't define to dirent.
	[! DIRENT] (direct): Define to dirent.

Wed Jun 17 17:58:05 1992  Roland McGrath  (roland@geech.gnu.ai.mit.edu)

	* posix/glob.c (my_realloc): Test only __GNU_LIBRARY__.  Can't trust
	STDC_HEADERS.

Tue Jun 16 20:20:01 1992  Roland McGrath  (roland@churchy.gnu.ai.mit.edu)

	* posix/glob/Makefile: Moved to posix/glob/Makefile.in.
	(VPATH, srcdir, CPPFLAGS): Define to be replaced by autoconf.

	* posix/glob.c: Rearranged conditionals for use with autoconf.

Tue Jun  9 20:15:12 1992  Roland McGrath  (roland@geech.gnu.ai.mit.edu)

	* posix/glob/Makefile: Fixed copyright notice.
	(realclean): Don't remove ~ backup files.

Tue Jun  2 21:49:22 1992  Roland McGrath  (roland@geech.gnu.ai.mit.edu)

	* posix/glob.c (__ptr_t): Define.

Wed May 27 18:09:40 1992  Roland McGrath  (roland@geech.gnu.ai.mit.edu)

	* posix/fnmatch.h (FNM_FILE_NAME): Alias for FNM_PATHNAME.

Fri May 22 01:52:04 1992  Roland McGrath  (roland@geech.gnu.ai.mit.edu)

	* posix/glob.h, posix/fnmatch.h: Use explicit cruft for C++.
	Define __P and const for C++/ANSI vs old C ourselves, to avoid
	dependence on <sys/cdefs.h>.

Sun May 17 15:50:00 1992  Roland McGrath  (roland@albert.gnu.ai.mit.edu)

	* posix/glob.c (glob): Don't let us fall off the end without returning.

Thu May 14 01:45:12 1992  Roland McGrath  (roland@geech.gnu.ai.mit.edu)

	* posix/glob.h (GLOB_MAGCHAR): Check user feature-test macros,
	rather than __USE_BSD, so we don't depend on features.h.

	* posix/glob.h [__USE_BSD] (GLOB_MAGCHAR): Declare.
	(glob_t): Added member `gl_flags'.
	* posix/glob.c (glob, glob_in_dir): Set gl_flags member to FLAGS;
	or in GLOB_MAGCHAR if any metachars are seen.

Thu Jan 16 18:43:05 1992  Roland McGrath  (roland@albert.gnu.ai.mit.edu)

	* posix/glob.c [sgi]: No alloca.h, after all.

Fri Oct 18 15:27:58 1991  Roland McGrath  (roland@churchy.gnu.ai.mit.edu)

	* posix/glob.c [sgi]: Use <sys/dir.h>.

Tue Jul 23 14:11:29 1991  Roland McGrath  (roland@churchy.gnu.ai.mit.edu)

	* posix/glob.c: Don't #include <stddef.h> #ifdef sun.
	Is there anyone on the face of the planet other than me capable of
	implementing the ANSI C standard to spec????

	* posix/glob.c [DIRENT]: #include <sys/types.h> before <dirent.h>
	#ifdef USG.

