Thu Dec 14 02:28:22 1995  Roland McGrath  <roland@churchy.gnu.ai.mit.edu>

	* posix/glob.c (glob_in_dir): Cast result of opendir to __ptr_t,
	and cast STREAM to DIR * before passing to readdir and closedir.

Mon Dec 11 20:07:54 1995  Roland McGrath  <roland@churchy.gnu.ai.mit.edu>

	* posix/glob.c [! STDC_HEADERS]: Declare getenv.
	(glob): Avoid using function as value.

Fri Dec  8 13:04:51 1995  Roland McGrath  <roland@churchy.gnu.ai.mit.edu>

	* posix/glob.c: Implement new options GLOB_ALTDIRFUNC, GLOB_BRACE,
	GLOB_TILDE, GLOB_NOMAGIC.
	(glob): Use stat instead of lstat to determine directoriness.
	* posix/glob.h (GLOB_ALTDIRFUNC, GLOB_BRACE, GLOB_NOMAGIC, GLOB_TILDE):
	New flag bits.
	(__GLOB_FLAGS): Include them.
	(glob_t): New members gl_closedir, gl_readdir, gl_opendir, gl_lstat,
	gl_stat.

Mon Sep 11 14:00:14 1995  Roland McGrath  <roland@whiz-bang.gnu.ai.mit.edu>

	* posix/glob.c (glob): Comment fix.

Wed Aug 30 16:44:55 1995  Roland McGrath  <roland@churchy.gnu.ai.mit.edu>

	* posix/glob.c (glob): Use realloc to extend strings for GLOB_MARK
	slash.
	(glob_in_dir): Don't allocate extra byte here.

Mon Aug  7 14:04:36 1995  Roland McGrath  <roland@churchy.gnu.ai.mit.edu>

	* posix/glob.c (glob_in_dir): Allocate GLOB_MARK byte in case when
 	(NFOUND == 0 && (FLAGS & GLOB_NOCHECK)).

Sat Apr 29 15:46:57 1995  Roland McGrath  <roland@churchy.gnu.ai.mit.edu>

	* posix/glob.c (S_ISDIR): Define if undefined.

Tue Apr 25 17:17:19 1995  Roland McGrath  <roland@churchy.gnu.ai.mit.edu>

	* posix/glob.c (glob): If GLOB_MARK set, stat names to find
 	directories and append slashes to them in final pass before
 	sorting.
	(glob_in_dir): If GLOB_MARK set, just allocate the extra char for the
	slash; never append it here.

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.

