* libc/stdio/snprintf.c (snprintf, _snprintf_r): Fixed code
so size of 0 results in nothing being written to string.
Also fixed code so that when size is non-zero, there is only
a maximum of size - 1 characters written to the array and
a nul terminator is appended at the end.
* libc/stdio/vsnprintf.c (vsnprintf, _vsnprintf_r): Ditto.
(__sread): always read in binary mode
(__swrite): always write in binary mode
* libc/include/stdio.h: no getc/putc macros for cygwin; causes
compatibility issues with different dll versions
* libc/stdio/fopen.c: use __stextmode
* libc/stdio/fdopen.c: ditto
* libc/stdio/freopen.c: ditto
* libc/stdio/findfp.c: set up __SCLE for std{in,out,err}
* libc/stdio/local.h: declare __stextmode
* libc/include/stdio.h (FILE): define __SCLE for "convert line
endings" for Cygwin.
(__sgetc): convert line endings if needed
(__sputc): ditto
* libc/stdio/fdopen.c (_fdopen_r): Remember if we opened in text mode
* libc/stdio/fopen.c (_fopen_r): ditto
* libc/stdio/freopen.c (freopen): ditto
* libc/stdio/fread.c (fread): perform CRLF conversions if __SCLE
* libc/stdio/fvwrite.c (__sfvwrite): ditto
* libc/stdio/vfscanf.c (__svfscanf): Fixed floating point
code to update nread as each character is processed instead
of using buffer contents which throw away leading zeroes.
(CHEWOUT_FILES): Added getw.def and putw.def.
* libc/stdio/Makefile.in: Rebuilt.
* libc/stdio/stdio.tex: Include getw.def and putw.def.
* libc/stdio/getw.c: New file.
* libc/stdio/putw.c: New file.
* libc/stdio/vfprintf.c (VFPRINTF): Added CHECK_INIT
call prior to calling _VFPRINTF_R so reentrant data area is set.
(_VFPRINTF_R): Removed now extraneous CHECK_INIT call.