Thu May  1 11:03:45 1997  Brendan Kehoe  <brendan@lisa.cygnus.com>

	* stdio.h (TMP_MAX): Wrap it with #ifndef for now, since it can
	get defined by <limits.h> (e.g., HP/UX and AIX).

Wed Mar 12 08:51:37 1997  Gavin Koch  <gavin@cygnus.com>

	* stdio.h: Use _IO_va_list rather than _G_va_list.

Wed Jun 14 21:41:50 1995  Jason Merrill  <jason@python.cygnus.com>

	* configure.in (LIBDIR): Set.
	(MOSTLYCLEAN): Remove pic and stamp-picdir.
	(stdio_objects): Also compile pic version.

	* Makefile.in (STDIO_OBJECTS): Remove getdelim.o.

Wed May 10 03:05:53 1995  Jason Merrill  <jason@python.cygnus.com>

	* vsnprintf.c (vsnprintf): Update to use _IO_JUMPS.

	* Makefile.in (STDIO_OBJECTS): Fix typo.

Tue Oct 18 17:15:09 1994  Per Bothner  <bothner@kalessin.cygnus.com>

	* getline.c, snprintf.c, vsnprintf.c:  New files, providing
	functionality of the GNU C C library.
	* Makefile.in (STDIO_OBJECTS), configure.in:  Add new files.
	* stdio.h:  Add new functions.

Fri Oct 14 15:56:27 1994  Per Bothner  (bothner@kalessin.cygnus.com)

	* stdio.h:  Added vfscanf, vscanf, vsscanf, #ifndef __STRICT_ANSI__.

Tue Aug 23 16:17:25 1994  Per Bothner  (bothner@kalessin.cygnus.com)

	* stdio.h:  Added comment, at hjl's request.

Sun Aug  7 13:28:12 1994  H.J. Lu  (hjl@nynexst.com)

	* stdio.h (getc, getchar, putc, putchar): New declarations.
	Move macros after the declarations.

Fri Aug  5 18:27:21 1994  H.J. Lu  (hjl@nynexst.com)

	* clearerr.c, rewind.c, setfileno.c:
	Add CHECK_FILE(fp, ) and remove COERCE_FILE(fp).
	* feof.c, ferror.c, fgetc.c, fileno.c, fputc.c, getw.c, putw.c,
	vfscanf.c: Add CHECK_FILE(fp, EOF) and remove COERCE_FILE(fp).
	* freopen.c: Add CHECK_FILE(fp, NULL) and remove COERCE_FILE(fp).
	* fseek.c, vfprintf.c:
	Add CHECK_FILE(fp, -1) and remove COERCE_FILE(fp).

Fri May 20 13:11:58 1994  Per Bothner  (bothner@kalessin.cygnus.com)

	* stdio.h:  Rename _ARGS macro to __P for better gnlibc and
	BSD compatibility.

Fri Nov 26 13:26:35 1993  Per Bothner  (bothner@kalessin.cygnus.com)

	Bunch of little changes, many from H.J. Lu <hjl@nynexst.com>.
	* feof.c, setbuf.c, vprintf.c, vcanf.c:  #include <stdio.h>,
	for error checking.
	* fileno.c:  #include libioP.h, not just libio.h.
	* fputc.c:  Fix typo.
	* fseek.c, rewind.c:  Use #include "...", not <...> ,for local files.
	* getc.c, getchar.c, putc.c, putchar.c:  New files, providing
	non-macro versions of the standard macros.
	* getw.c, putw.c, setfileno.c, setlinebuf.c:  New files.
	* Makefile.in (STDIO_OBJECTS):  Add new files.
	* vfscanf.c:  Add missing new 4th arg to _IO_vfscanf call.

Thu Oct 14 16:12:07 1993  Karen Christiansen  (karen@deneb.cygnus.com)

	* configure.in: changed mv to mv -f

Mon Oct  4 17:29:23 1993  Per Bothner  (bothner@kalessin.cygnus.com)

	* configure.in (stdio_renames):  Add fgetpos, fsetpos, gets,
	perror, setbuffer, ungetc.
	* clearerr.c, ferror.c, fgetc.c, fileno.c, fputc.c, freopen.c,
	fseek.c, popen.c, rewind.c, setbuf.c:  New files.
	* Makefile.in (STDIO_OBJECTS):  Add new files.
	* stdio.h:  Use _IO_XXX instead of _G_XXX many places.
	#include <libio.h> instead of <_stdio.h>, to get useful defs.

Fri Aug 20 00:28:28 1993  Per Bothner  (bothner@kalessin.cygnus.com)

	* feof.c, vprintf.c, vscanf.c:  Converted stub functions.
	* configure.in (stdio_renamed):  Removed feof.
	Added sprintf sscanf vsscanf.
	* ChangeLog.old:  Copy of old libg++/iostream/stdio/ChangeLog.

