Wed Jul 28 21:39:31 PDT 1999 Jeff Law  (law@cygnus.com)

	* gcc-2.95 Released.

Sun Jul 25 23:40:51 PDT 1999 Jeff Law  (law@cygnus.com)

	* gcc-2.95 Released.

1997-09-04 16:11  Ulrich Drepper  <drepper@cygnus.com>

	* Makefile.in (STDIO_OBJECTS): Lose feof.o and ferror.o.  Add getc.o
	and putc.o.
	(stmp-libio, stmp-libiostream, stmp-io, stmp-streamlib): New rules.

	(iostream.list): Depend upon stmp-stdio.  Add the entries
	from stdio.list to iostream.list.
	(stmp-stdio): New name for what was the stdio/stdio.list rule.
	All it now does is cd down into stdio and build stdio.list.

	* clearerr.c: Add copyright and lock stream before use.
	* feof.c: Likewise.
	* ferror.c: Likewise.
	* fgetc.c: Likewise.
	* fputc.c: Likewise.
	* freopen.c: Likewise.
	* fseek.c: Likewise.
	* getc.c: Likewise.
	* getchar.c: Likewise.
	* putc.c: Likewise.
	* putchar.c: Likewise.
	* rewind.c: Likewise.

	* setbuf.c: Update copyright.
	* setlinebuf.c: Likewise.
	* vscanf.c: Likewise.

	* fileno.c: Define alias fileno_unlocked.  Update copyright.

	* clearerr_u.c: New file.  Implement clearerr_unlocked function.
	* feof_u.c: New file.  Implement feof_unlocked function.
	* ferror_u.c: New file.  Implement ferror_unlocked function.
	* fputc_u.c: New file.  Implement fputc_unlocked function.
	* getc_u.c: New file.  Implement getc_unclocked function.
	* getchar_u.c: New file.  Implement getchar_unclocked function.
	* putc_u.c: New file.  Implement putc_unclocked function.
	* putchar_u.c: New file.  Implement putchar_unclocked function.

	* vsnprintf.c: Rewrite according to ISO C 9X draft.

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 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.
