summaryrefslogtreecommitdiffstats
path: root/newlib/libc/include/stdio.h
Commit message (Collapse)AuthorAgeFilesLines
* 2013-06-26 Jeff Johnston <jjohnstn@redhat.com>Jeff Johnston2013-06-261-6/+0
| | | | | | | | * libc/include/stdio.h: Specify std streams always in terms of _REENT. * libc/include/wchar.h: Ditto. * libc/include/sys/reent.h: Remove _RENT_ONLY check around setting of _REENT macro.
* * libc/include/locale.h (NULL): Fetch definition via stddef.h.Corinna Vinschen2012-11-011-4/+1
| | | | | | | | | * libc/include/stdio.h (NULL): Ditto. * libc/include/stdlib.h (NULL): Ditto. * libc/include/string.h (NULL): Ditto. * libc/include/wchar.h (NULL): Ditto. * libc/include/rpc/types.h (NULL): Ditto. * libc/include/time.h (NULL): Ditto. Include stddef.h earlier.
* Throughout, run newlib with -Wall -Werror option and fix bugs andCorinna Vinschen2012-08-081-0/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | compiler warnings found this way. * libc/stdio/freopen.c (_freopen_r): Fix bug setting _flags. * libc/include/stdio.h (_rename): Define when building newlib. * libc/include/sys/signal.h (_kill): Ditto. * libc/include/sys/stat.h (_mkdir): Ditto. * libc/include/sys/time.h (_gettimeofday): Ditto. * libc/include/sys/times.h (_times): Ditto. * libc/include/sys/wait.h (_wait): Ditto. * libc/locale/lmessages.c (empty): Don't define for Cygwin. * libc/locale/lmonetary.c (cnv): Ditto. * libc/locale/nl_langinfo.c (nl_langinfo): Ditto for variable s. * libc/posix/collate.c: Throughout cast to avoid compiler warning. * libc/posix/engine.c (matcher): Initialize dp to avoid compiler warning. * libc/posix/glob.c: Disable on Cygwin. Explain why. * libc/posix/regcomp.c: Fix "uninitialized" compiler warnings. (dissect): Deliberately silence gcc compiler warning. Add comment to explain why. * libc/posix/wordexp.c (wordexp): Remove num_bytes variable since result is never used. * libc/posix/popen.c (popen): Ditto for variable last. * libc/reent/mkdirr.c: Include sys/stat.h. * libc/reent/renamer.c: Include stdio.h. * libc/search/hash.c: Throughout use underscored variants of the stat function family. (init_hash): Add missing definition for the __USE_INTERNAL_STAT64 case. * libc/search/hash_bigkey.c (__big_insert): Add parenthesis to avoid compiler warning. * libc/search/hash_page.c (overflow_page): Initalize freep to NULL to avoid compiler warning. * libc/stdio/asiprintf.c (_asiprintf_r): Cast unsigned char * to char * to avoid compiler warning. (asiprintf): Ditto. * libc/stdio/asprintf.c (_asprintf_r): Ditto. (asprintf): Ditto. * libc/stdio/vasiprintf.c (_vasiprintf_r): Ditto. * libc/stdio/vasprintf.c (_vasprintf_r): Ditto. * libc/stdio/mktemp.c (_gettemp): Cast to unsigned char in call to isdigit to avoid compiler warning. * libc/stdio/vfprintf.c (_VFPRINTF_R): Initialize variables used for grouping to avoid compiler warning. Only define and set nseps and nrepeats if they are really used. * libc/stdio/vfwprintf.c (_VFWPRINTF_R): Ditto. Only define state if it is really used. * libc/stdio/vfscanf.c (u_char): Revert to be defined as unsigned char. (__SVFSCANF_R): Cast fmt in call to __mbtowc. * libc/stdlib/mbtowc_r.c (JIS_state_table): Disable when building Cygwin. (JIS_action_table): Ditto. * libc/stdlib/wctomb_r.c (__utf8_wctomb): Add parenthesis to avoid compiler warning. * libc/string/strcasestr.c: Deliberately silence gcc compiler warning. Add comment to explain why. * libc/time/strptime.c (strptime): Cast to unsigned char in calls to isspace to avoid compiler warning. * libm/math/e_atan2.c (__ieee754_atan2): Add parenthesis to avoid compiler warning. * libm/math/e_exp.c (__ieee754_exp): Initialize k to 0 to avoid compiler warning. Drop setting it to 0 later. * libm/math/ef_exp.c (__ieee754_expf): Ditto. * libm/math/e_pow.c (__ieee754_pow): Add braces to avoid compiler warning. * libm/math/ef_pow.c (__ieee754_powf): Ditto. * libm/math/er_lgamma.c (__ieee754_lgamma_r): Initialize nadj to 0 to avoid compiler warning. * libm/math/erf_lgamma.c (__ieee754_lgammaf_r): Ditto. * libm/math/e_rem_pio2.c (__ieee754_rem_pio2): Ditto for variable z. * libm/common/sf_round.c (roundf): Remove signbit variable since result is never used.
* * libc/time/strftime.c: Add support for era and alt_digits data fromCorinna Vinschen2010-02-261-4/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | LC_TIME locale category. Conditionalize using _WANT_C99_TIME_FORMATS flag. (STRTOUL): Define differently for building strftime or wcsftime. (STRCPY): Ditto. (STRCHR): Ditto. (STRLEN): Ditto. (CHECK_LENGTH): Define to simplify code. (era_info_t): New type to store era info. (get_era_info): New function to fetch era info matching incoming struct tm. (free_era_info): New function to free era info. (alt_digits_t): New type to store alternative digits. (get_alt_digits): New function to convert alt_digits string into alt_digits_t structure. (free_alt_digits): New function to free alt_digits info. (conv_to_alt_digits): New function to convert unsigned value into alternative digits. (strftime): Conditionalize on _WANT_C99_TIME_FORMATS. If _WANT_C99_TIME_FORMATS is defined, define as just a wrapper function providing era_info and alt_digits pointers and call ... (__strftime): Rename from strftime and make static if _WANT_C99_TIME_FORMATS is defined. Add parameters for era_info and alt_digits pointers. Handle conversion modifiers according to POSIX-1.2008. Redefine %F and %Y according to POSIX. Add default case to allow to bail out on invalid conversion specifiers. * libc/include/sys/config.h: Move Cygwin build flags to Cygwin's config.h. * libc/include/stdio.h: Remove __CYGWIN_USE_BIG_TYPES__ condition.
* Fix some *at declarations.Eric Blake2009-12-081-1/+0
| | | | | | | * libc/include/stdio.h (symlinkat): Move this... * libc/include/sys/_default_fcntl.h (unlinkat): ...and this... * libc/include/sys/unistd.h (symlinkat, unlinkat): ...here, to match POSIX.
* 2009-10-16 Jeff Johnston <jjohnstn@redhat.com>Jeff Johnston2009-10-201-1/+3
| | | | | | | * libc/include/sys/config.h[__CYGWIN__]: Set __USE_XOPEN2K flag if not __STRICT_ANSI__ or stdc version C99 or greater. * libc/include/stdio.h[__STRICT_ANSI__]: Add __USE_XOPEN2K check for fseeko and ftello prototypes.
* Add fpurge.Eric Blake2009-07-031-0/+4
| | | | | | | | | * libc/stdio/fpurge.c (fpurge, _fpurge_r): New file. * libc/stdio/Makefile.am (ELIX_4_SOURCES, CHEWOUT_FILES, fpurge): Build it. * libc/stdio/Makefile.in: Regenerated. * libc/include/stdio.h (fpurge, _fpurge_r): New declarations. * libc/stdio/stdio.tex: Build documentation.
* * libc/include/stdio.h (_ELIDABLE_INLINE): Move definition from here...Corinna Vinschen2009-04-041-22/+1
| | | | * libc/include/_ansi.h (_ELIDABLE_INLINE): ..to here.
* 2009-04-03 Yaakov Selkowitz <yselkowitz@users.sourceforge.net>Jeff Johnston2009-04-031-0/+2
| | | | | * libc/include/stdio.h [__SCLE] (__sgetc_r): Prototype before define to avoid a warning with -Wmissing-prototypes.
* * libc/include/stdio.h (_mkstemp_r, _mktemp_r): Move declarationsCorinna Vinschen2009-03-141-2/+0
| | | | | | | to stdlib.h. * libc/include/stdlib.h (mktemp, _mktemp_r): Warn when using. * libc/stdio/mktemp.c: Explain the security risk when using mktemp.
* * libc/include/stdio.h (__VALIST): Guard against multiple definition.Corinna Vinschen2009-03-061-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * libc/include/wchar.h: Include stdarg.h. (__VALIST): Define conditionally. (fwprintf, swprintf, vfwprintf, vswprintf, vwprintf, wprintf: Declare. (_fwprintf_r, _swprintf_r, _vfwprintf_r, _vswprintf_r, _vwprintf_r, _wprintf_r): Declare. * libc/stdio/Makefile.am: Add new files. * libc/stdio/Makefile.in: Regenerate. * libc/stdio/fwprintf.c: New file. * libc/stdio/local.h (_svfwprintf_r, _svfiwprintf_r): Declare. (__CH_CLASS, __STATE, __ACTION): Move definition from vfprintf.c here and move to the __ namespace. (__chclass, __state_table, __action_table): Declare. * libc/stdio/stdio.tex: Add new documentation references. * libc/stdio/swprintf.c: New file. * libc/stdio/vfprintf.c (__SPRINT): New macro to call the right __sprint_r function according to compilation unit. Use throughout. (__ssprint_r): Rename STRING_ONLY variant from __sprint_r. Make externaly available. Only define if INTEGER_ONLY is defined. (__sprint_r): Make externaly available. Only define if INTEGER_ONLY is defined. Handle stream orientation. (__sbprintf): Copy FILE's _flags2 member as well. (__chclass, __state_table, __action_table): Prepend __ to name and make externally available. * libc/stdio/vfwprintf.c: New file. * libc/stdio/vswprintf.c: New file. * libc/stdio/vwprintf.c: New file. * libc/stdio/wprintf.c: New file.
* 2008-12-11 Craig Howland <howland@LGSInnovations.com>Jeff Johnston2008-12-111-2/+26
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * libc/include/sys/lock.h: Add void cast to avoid "statement has no effect" warnings from gcc. * libc/include/sys/stdio.h: Ditto. * libc/include/sys/time.h: Correct gettimeofday() prototype. * libc/stdlib/__exp10.c: Add #include "std.h" for function prototype. * libc/stdlib/__ten_mu.c: Ditto. * libc/stdlib/std.h: Correct __exp10's ANSI prototype. * libc/stdlib/ldtoa.c: Change eiisinf definition to ANSI form. (Are already others in file without _ansi method, so did not bother.) * libc/stdlib/system.c: Use _ansi forms for function prototypes and definitions. * libc/time/mktime.c: Ditto. * libc/misc/__dprintf.c: Ditto. * libc/include/stdio.h: Add function prototypes for _fgetc_r, _fgetpos_r, _fsetpos_r, _freopen_r, _rewind_r, freopen64, _freopen64_r, _funopen_r, and _fopencookie_r. * libc/include/reent.h: Add function prototype for _stat64_r, align _execve_r prototype with POSIX definition for execve. * libc/reent/execr.c: Align function prototype with POSIX definition. * libc/stdio/asniprintf.c: Add #include "local.h". * libc/stdio/vasniprintf.c: Ditto. * libc/stdio/fread.c: Remove unused variable newcount. * libc/stdio/local.h: Add function prototype for __sccl. * libc/stdio/open_memstream.c: Remove unused variable flags. * libc/stdio/vfscanf.c: Proper prototyping for ccfn, remove prototype for __sccl since now in local.h. * libc/string/memcpy.c: Add #include <string.h> (for real and for traditional synopsis), remove extraneous stddef.h and limits.h. * libc/syscalls/sysclose.c: Add #include <unistd.h>. * libc/syscalls/sysfork.c: Ditto. * libc/syscalls/sysgetpid.c: Ditto. * libc/syscalls/sysexecve.c: Add #include <unistd.h>, align function prototype with POSIX definition. * libc/syscalls/sysfstat.c: Add #include <sys/stat.h>. * libc/syscalls/sysgettod.c: Correct sys/times.h to sys/time.h. * libc/syscalls/syskill.c: Add #include <signal.h>. * libc/syscalls/syslink.c: Add #include <unistd.h>, fix prototype. * libc/syscalls/sysunlink.c: Ditto. * libc/syscalls/sysstat.c: Add #include <sys/stat.h>, fix prototype. * libc/syscalls/syswait.c: Add #include <sys/wait.h>, fix prototype.
* 2008-12-10 Corinna Vinschen <corinna@vinschen.de>Jeff Johnston2008-12-101-0/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Implement basic wide char stdio functionality, based on FreeBSD. * libc/include/stdio.h (__SORD): Define. (__SWID): Define. * libc/include/wchar.h: Add declarations for new wide char functions. (getwc): Define as macro. (getwchar): Ditto. (putwc): Ditto. (putwchar): Ditto. * libc/include/sys/reent.h (struct __sFILE): Add _mbstate member. (struct __sFILE64): Ditto. * libc/stdio/Makefile.am (ELIX_4_SOURCES): Add fgetwc.c, fgetws.c, fputwc.c, fputws.c, fwide.c, getwc.c, getwchar.c, putwc.c, putwchar.c and ungetwc.c. (CHEWOUT_FILES): Add fgetwc.def, fgetws.def, fputwc.def, fputws.def, fwide.def, getwc.def, getwchar.def, putwc.def, putwchar.def and ungetwc.def. Add header dependency rules for the new files. * libc/stdio/Makefile.in: Regenerate. * libc/stdio/fgetwc.c: New file, implementing fgetwc and _fgetwc_r. * libc/stdio/fgetws.c: New file, implementing fgetws and _fgetws_r. * libc/stdio/findfp.c (std): Initialize FILE's _mbstate member. (__sfmoreglue): Ditto. * libc/stdio/fputs.c (_fputs_r): Set stream orientation. * libc/stdio/fputwc.c: New file, implementing fputwc and _fputwc_r. * libc/stdio/fputws.c: New file, implementing fputws and _fputws_r. * libc/stdio/fread.c (_fread_r): Set stream orientation. * libc/stdio/freopen.c (_freopen_r): Reset stream orientation. Reset _mbstate. * libc/stdio/fseek.c (_fseek_r): Reset _mbstate. * libc/stdio/fwide.c: New file, implementing fwide and _fwide_r. * libc/stdio/fwrite.c (_fwrite_r): Set stream orientation. * libc/stdio/getwc.c: New file, implementing getwc and _getwc_r. * libc/stdio/getwchar.c: New file, implementing getwchar and _getwchar_r. * libc/stdio/local.h (ORIENT): New macro. * libc/stdio/puts.c (_puts_r): Set stream orientation. * libc/stdio/putwc.c: New file, implementing putwc and _putwc_r. * libc/stdio/putwchar.c: New file, implementing putwchar and _putwchar_r. * libc/stdio/refill.c (__srefill_r): Set stream orientation. * libc/stdio/stdio.tex: Add documentation for new functions. * libc/stdio/ungetc.c (_ungetc_r): Set stream orientation. * libc/stdio/ungetwc.c: New file, implementing ungetwc and _ungetwc_r. * libc/stdio/vfscanf.c (__SVFSCANF_R): Set stream orientation. * libc/stdio/wbuf.c (__swbuf_r): Ditto.
* 2008-11-24 Craig Howland <howland@LGSInnovations.com>Jeff Johnston2008-11-241-0/+2
| | | | | | | | | | | | | | | | | | | | * libc/stdlib/wcstoull_r.c: Add EINVAL return for bad base value, include wchar.h for prototype, remove extraneous includes, use C99/POSIX ULLONG_MAX (but allow for poor limits.h). * libc/stdlib/wcstoull.c: Fix usage comments (mistakes and to add base value check noted above), remove extraneous includes. * libc/stdio/asnprintf.c: Add #include "local.h" to get function prototype for _svfprintf_r(). * libc/stdio/vasnprintf.c: Ditto. * libc/stdio/local.h: Add function prototype for __submore(). * libc/include/stdio.h: Add function prototypes for _fseeko_r and _ftello_r. * libc/posix/namespace.h: Commented out define for write to eliminate write() prototype being missing for collate.c (which is the only file that presently includes namespace.h). * libc/include/reent.h: Added _rename_r. * libc/reent/renamer.c: Corrected function prototypes in synopses. * libc/locale/ldpart.c: Use struct stat64 when calling fstat64.
* * libc/include/stdio.h (__SMOD): Remove definition of unused flag.Corinna Vinschen2008-11-241-1/+0
| | | | | | | | | | * libc/include/sys/reent.h (struct __sFILE): Add _flags2 member. * libc/stdio/findfp.c (std): Initialize _flags2. (__sfp): Ditto. * libc/stdio/refill.c (__srefill_r): Drop resetting __SMOD flag. * libc/stdio/vfscanf.c (__ssrefill_r): Ditto. * libc/stdio/fseek.c (_fseek_r): Drop checking __SMOD flag. * libc/stdio64/fseeko64.c (_fseeko64_r): Ditto.
* * libc/include/stdio.h (renameat): Declare for Cygwin.Corinna Vinschen2008-04-231-1/+4
| | | | | | | | | | | | | | | | | | | | | | (symlinkat): Ditto. * libc/include/sys/unistd.h (readlink): Align declaration to POSIX. (faccessat): Declare for Cygwin. (fchownat): Ditto. (linkat): Ditto. (readlinkat): Ditto. * libc/include/sys/_default_fcntl.h (AT_FDCWD): Define for Cygwin. (AT_EACCESS): Ditto. (AT_SYMLINK_NOFOLLOW): Ditto. (AT_SYMLINK_FOLLOW): Ditto. (AT_REMOVEDIR): Ditto. (futimesat): Declare for Cygwin. (openat): Ditto. (unlinkat): Ditto. * libc/include/sys/stat.h (fchmodat): Ditto. (fstatat): Ditto. (mkdirat): Ditto. (mkfifoat): Ditto. (mknodat): Ditto.
* Implement fmemopen and open_memstream.Eric Blake2007-08-021-6/+24
| | | | | | | | | | | | | | * libc/stdio/fmemopen.c (_fmemopen_r, fmemopen): New file. * libc/stdio/open_memstream.c (_open_memstream_r, open_memstream): New file. * libc/stdio/fopencookie.c (fcwriter): Minor optimization. * libc/include/stdio.h (dprintf, vdprintf): Group all POSIX 200x functions together. (fmemopen, open_memstream): Declare new functions. * libc/stdio/stdio.tex: Document them. * libc/stdio/Makefile.am (ELIX_4_SOURCES, CHEWOUT_FILES): Add fmemopen and open_memstream. * libc/stdio/Makefile.in: Regenerate.
* Fix fflush issues.Eric Blake2007-07-131-1/+2
| | | | | | | | | | | | | | | | | | | | | * libc/stdio/fflush.c (_fflush_r): New function. (fflush): Fix reentrancy and large offset behavior. * libc/include/stdio.h (_fflush_r): Add prototype. * libc/stdio/fclose.c (_fclose_r): All fflush callers changed. * libc/stdio/freopen.c (_freopen_r): Likewise. * libc/stdio/fseek.c (_fseek_r): Likewise. * libc/stdio/ftell.c (_ftell_r): Likewise. * libc/stdio/fvwrite.c (__sfvwrite_r): Likewise. * libc/stdio/refill.c (__srefill_r): Likewise. * libc/stdio/setvbuf.c (setvbuf): Likewise. * libc/stdio/ungetc.c (_ungetc_r): Likewise. * libc/stdio/vfprintf.c (__sbprintf): Likewise. * libc/stdio/wbuf.c (__swbuf_r): Likewise. * libc/stdio64/freopen64.c (_freopen64_r): Likewise. * libc/stdio64/fseeko64.c (_fseeko64_r): Likewise. Defer to 32-bit version if not large file. * libc/stdio64/ftello64.c (_ftello64_r): Likewise. * libc/stdio64/tmpfile64.c (_tmpfile64_r): Avoid compile warning.
* Implement funopen, fopencookie.Eric Blake2007-06-041-10/+42
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * libc/include/sys/reent.h (struct __sFILE, struct __sFILE64): Switch to reentrant callbacks. * libc/include/stdio.h (funopen): Fix declaration. (fopencookie): Declare. * libc/stdio/local.h (__sread, __swrite, __sseek, __sclose) (__sseek64, __swrite64): Fix prototypes. [__SCLE]: Pull in setmode declaration. * libc/stdio/stdio.c (__sread, __swrite, __sseek, __sclose): Fix reentrancy. * libc/stdio64/stdio64.c (__sseek64_r, __swrite64_r): Delete. (__sseek64, __swrite64): Fix reentrancy. * libc/stdio/fseek.c (_fseek_r): Account for overflow, and fix reentrancy. * libc/stdio/ftell.c (_ftell_r): Likewise. * libc/stdio/flags.c (__sflags): Don't lose __SAPP on "a+". * libc/stdio/fclose.c (_fclose_r): Fix reentrancy. * libc/stdio/freopen.c (_freopen_r): Likewise. * libc/stdio/fvwrite.c (__sfvwrite_r): Likewise. * libc/stdio/refill.c (__srefill_r): Likewise. * libc/stdio/siscanf.c (eofread): Likewise. * libc/stdio/sscanf.c (eofread): Likewise. * libc/stdio/vsiscanf.c (eofread1): Likewise. * libc/stdio/vsscanf.c (eofread1): Likewise. * libc/stdio64/freopen64.c (_freopen64_r): Likewise. * libc/stdio64/fseeko64.c (_fseeko64_r): Likewise. * libc/stdio64/ftello64.c (_ftello64_r): Likewise. * libc/stdio/fflush.c (fflush): Improve reentrancy, although more could be fixed. * libc/stdio/fopencookie.c (_fopencookie_r, fopencookie): New file. * libc/stdio/funopen.c (_funopen_r, funopen): New file. * libc/stdio/Makefile.am (ELIX_4_SOURCES, CHEWOUT_FILES): Build new files. * libc/stdio/Makefile.in: Regenerate.
* Add support for asnprintf, and improve *printf documentation.Eric Blake2007-05-041-21/+37
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * libc/stdio/Makefile.am (ELIX_SOURCES): Rename... (ELIX_2_SOURCES): ...to this. (ELIX_4_SOURCES): Add new variable. Build asnprintf. (GENERAL_SOURCES): Move dprintf to ELIX_4_SOURCES. (CHEWOUT_FILES): Include diprintf in documentation. * libc/stdio/Makefile.in: Regenerate. * libc/stdio/diprintf.c: Improve documentation. * libc/stdio/dprintf.c: Likewise. * libc/stdio/siprintf.c: Likewise. * libc/stdio/sprintf.c: Likewise. * libc/stdio/vfprintf.c: Likewise. * libc/stdio/viprintf.c: Likewise. * libc/stdio/vsniprintf.c: Consolidate documentation. * libc/stdio/asiprintf.c: Refer to documentation. * libc/stdio/asprintf.c: Likewise. * libc/stdio/fiprintf.c: Likewise. * libc/stdio/fprintf.c: Likewise. * libc/stdio/iprintf.c: Likewise. * libc/stdio/printf.c: Likewise. * libc/stdio/sniprintf.c: Likewise. * libc/stdio/vdiprintf.c: Likewise. * libc/stdio/vdprintf.c: Likewise. * libc/stdio/vsiprintf.c: Likewise. * libc/stdio/fvwrite.c (__sfvwrite_r): Handle asnprintf. * libc/stdio/asniprintf.c (asniprintf, _asniprintf_r): New file. * libc/stdio/asnprintf.c (asnprintf, _asnprintf_r): New file. * libc/stdio/vasniprintf.c (vasniprintf, _vasniprintf_r): New file. * libc/stdio/vasnprintf.c (vasnprintf, _vasnprintf_r): New file. * libc/stdio/vdprintf.c (_vdprintf_r): Rewrite to avoid malloc in typical case. * libc/stdio/vdiprintf.c (_vdiprintf_r): Likewise. * libc/include/stdio.h: Add prototypes for new functions; sort existing functions.
* * libc/include/stdio.h (_ELIDABLE_INLINE): Work even when usingEric Blake2007-04-101-1/+1
| | | | CFLAGS=-O0.
* * libc/include/stdio.h: Add gcc format attributes to printf andEric Blake2007-04-101-72/+144
| | | | scanf families.
* 2007-04-04 Eric Blake <ebb9@byu.net>Jeff Johnston2007-04-041-1/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | * libc/stdio/asiprintf.c (_asiprintf_r): Fix reentrancy. (asiprintf): Avoid overhead. * libc/stdio/asprintf.c (_asprintf_r): Fix reentrancy. (asprintf): Avoid overhead. * libc/stdio/diprintf.c (_diprintf_r, diprintf): New file. * libc/stdio/dprintf.c (_dprintf_r, dprintf): Use _DEFUN. * libc/stdio/fiprintf.c (_fiprintf_r): Add reentrant version. (fiprintf): Avoid overhead. * libc/stdio/fprintf.c (_fprintf_r): Add reentrant version. (fprintf): Avoid overhead. * libc/stdio/iprintf.c (_iprintf_r): Use _DEFUN. (iprintf): Avoid overhead. * libc/stdio/printf.c (_printf_r): Use _DEFUN. (printf): Avoid overhead. * libc/stdio/vasiprintf.c (vasiprintf): Reduce binary size. * libc/stdio/vasprintf.c (vasprintf): Reduce binary size. * libc/stdio/vdiprintf.c (_vdiprintf_r, vdiprintf): New file. * libc/stdio/vdprintf.c (vdprintf): Avoid overhead. * libc/stdio/vsiprintf.c (vsiprintf): Reduce binary size. * libc/stdio/vsniprintf.c (vsniprintf): Reduce binary size. * libc/stdio/vsnprintf.c (vsnprintf): Reduce binary size. * libc/stdio/vsprintf.c (vsprintf): Reduce binary size. * libc/stdio/Makefile.am (GENERAL_SOURCES): Add diprintf.c, vdiprintf.c. * libc/include/stdio.h (diprintf, _diprintf_r, vdiprintf) (_vdiprintf_r, _fiprintf_r, _vfiprintf_r): Add prototypes.
* 2007-03-30 Dave Korn <dave.korn@artimi.com>Dave Korn2007-03-301-2/+33
| | | | | | | | * libc/include/stdio.h (_ELIDABLE_INLINE): New macro to conceal conflicting inline semantics between C99 and GNU89. (__sgetc_r): Replace static inline with _ELIDABLE_INLINE to be compatible with -fkeep-inline-functions usage. (__sputc_r): Likewise for consistency even though disabled.
* 2007-02-20 Kazunori Asayama <asayama@sm.sony.co.jp>Jeff Johnston2007-02-201-0/+1
| | | | * libc/include/stdio.h: Add declaration for vsiprintf.
* 2007-02-01 Joel Schopp <jschopp@austin.ibm.com>Jeff Johnston2007-02-011-3/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Kazunori Asayama <asayama@sm.sony.co.jp> * configure.host: Enable SPU specific stdio directory. * libc/machine/spu/Makefile.am: Add objects. * libc/machine/spu/Makefile.in: Regenerated. * libc/machine/spu/c99ppe.h: Add macros and function declarations to initialize SPU specific stdio stuffs. * libc/machine/spu/stdio.c: Add functions to manage Cell SPU specific FILE structures. * libc/machine/spu/perror.c: Add initialization routine of stdio stuffs. * libc/machine/spu/printf.c: Ditto. * libc/machine/spu/putchar.c: Ditto. * libc/machine/spu/puts.c: Ditto. * libc/machine/spu/vprintf.c: Ditto. * libc/machine/spu/clearerr.c: New file. Add a stdio function implementation. * libc/machine/spu/feof.c: Ditto. * libc/machine/spu/ferror.c: Ditto. * libc/machine/spu/fileno.c: Ditto. * libc/machine/spu/fopen.c: Ditto. * libc/machine/spu/fclose.c: Ditto. * libc/machine/spu/freopen.c: Ditto. * libc/machine/spu/fflush.c: Ditto. * libc/machine/spu/fseek.c: Ditto. * libc/machine/spu/ftell.c: Ditto. * libc/machine/spu/rewind.c: Ditto. * libc/machine/spu/fgetpos.c: Ditto. * libc/machine/spu/fsetpos.c: Ditto. * libc/machine/spu/fread.c: Ditto. * libc/machine/spu/fwrite.c: Ditto. * libc/machine/spu/getc.c: Ditto. * libc/machine/spu/getchar.c: Ditto. * libc/machine/spu/gets.c: Ditto. * libc/machine/spu/fgetc.c: Ditto. * libc/machine/spu/fgets.c: Ditto. * libc/machine/spu/ungetc.c: Ditto. * libc/machine/spu/putc.c: Ditto. * libc/machine/spu/fputc.c: Ditto. * libc/machine/spu/fputs.c: Ditto. * libc/machine/spu/vfprintf.c: Ditto. * libc/machine/spu/vfscanf.c: Ditto. * libc/machine/spu/fprintf.c: Ditto. * libc/machine/spu/fscanf.c: Ditto. * libc/machine/spu/scanf.c: Ditto. * libc/machine/spu/vscanf.c: Ditto. * libc/machine/spu/setbuf.c: Ditto. * libc/machine/spu/setvbuf.c: Ditto. * libc/machine/spu/tmpfile.c: Ditto. 2007-02-01 Jeff Johnston <jjohnstn@redhat.com> * libc/include/sys/config.h[__SPU__]: Define __CUSTOM_FILE_IO__. * libc/include/stdio.h[!__CUSTOM_FILE_IO__]: Add flag check around stdio macros that manipulate fields in the normal file structure. * libc/include/sys/reent.h[__CUSTOM_FILE_IO__]: Include <sys/custom_file.h> to define custom FILE structure. * libc/include/sys/custom_file.h: New default header file that generates error if not overridden when __CUSTOM_FILE_IO__ set. * libc/machine/spu/sys/custom_file.h: New file.
* 2006-09-26 Jeff Johnston <jjohnstn@redhat.com>Jeff Johnston2006-09-261-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * libc/include/stdio.h[_REENT_SMALL]: Do not allow macros for clearerr, feof, or fileno. * libc/include/sys/reent.h[_REENT_SMALL](struct _reent): Change the dummy std stream scheme to use pointers to const external fake files, one for each standard stream. * libc/stdio/local.h (CHECK_INIT): Change to take a file pointer argument. For _REENT_SMALL, reset the file pointer if it matches one of the fake std stream pointers. * libc/stdio/clearerr.c: Fix CHECK_INIT macro to add file pointer argument. * libc/stdio/fclose.c: Ditto. * libc/stdio/feof.c: Ditto. * libc/stdio/ferror.c: Ditto. * libc/stdio/fflush.c: Ditto. * libc/stdio/fgetc.c: Ditto. * libc/stdio/fgets.c: Ditto. * libc/stdio/fileno.c: Ditto. * libc/stdio/findfp.c: Ditto. * libc/stdio/fputc.c: Ditto. * libc/stdio/fputs.c: Ditto. * libc/stdio/fread.c: Ditto. * libc/stdio/freopen.c: Ditto. * libc/stdio/fseek.c: Ditto. * libc/stdio/ftell.c: Ditto. * libc/stdio/fwrite.c: Ditto. * libc/stdio/getc.c: Ditto. * libc/stdio/getdelim.c: Ditto. * libc/stdio/putc.c: Ditto. * libc/stdio/refill.c: Ditto. * libc/stdio/setvbuf.c: Ditto. * libc/stdio/ungetc.c: Ditto. * libc/stdio/vfprintf.c: Ditto. * libc/stdio/vfscanf.c: Ditto. * libc/stdio/wbuf.c: Ditto.: Ditto. * libc/stdio/wsetup.c: Ditto. * libc/stdio64/freopen64.c: Ditto. * libc/stdio64/fseeko64.c: Ditto. * libc/stdio64/ftello64.c: Ditto. * libc/machine/powerpc/vfprintf.c: Ditto. * libc/machine/powerpc/vfscanf.c: Ditto.
* 2006-06-15 Corinna Vinschen <corinna@vinschen.de>Jeff Johnston2006-06-151-1/+1
| | | | | | | * libc/include/stdio.h (__sgetc_r): Fix typo. * libc/stdio/fread.c (_fread_r): Convert crlf calls to crlf_r. * libc/stdio/rget.c (__srbuf): Reinstantiate. * libc/stdio/wbuf.c (__swbuf): Ditto.
* 2006-06-14 Jeff Johnston <jjohnstn@redhat.com>Jeff Johnston2006-06-141-25/+36
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * libc/include/stdio.h: Add new reentrant I/O prototypes for read/write functions. Change getc/putc macros to have reentrant underlying macros/functions. This includes __sgetc_raw_r, __sgetc_r, and __sputc_r. * libc/stdio/fgetc.c: Fix and/or add reentrant version to call new reentrant I/O functions/macros for reading/writing. * libc/stdio/fgets.c: Ditto. * libc/stdio/fputc.c: Ditto. * libc/stdio/fputs.c: Ditto. * libc/stdio/fread.c: Ditto. * libc/stdio/fseek.c: Ditto. * libc/stdio64/fseeko64.c: Ditto. * libc/stdio/fwrite.c: Ditto. * libc/stdio/getc.c: Ditto. * libc/stdio/getc_u.c: Ditto. * libc/stdio/getchar.c: Ditto. * libc/stdio/getchar_u.c: Ditto. * libc/stdio/putc.c: Ditto. * libc/stdio/putc_u.c: Ditto. * libc/stdio/putchar.c: Ditto. * libc/stdio/puts.c: Ditto. * libc/stdio/vfprintf.c: Ditto. * libc/stdio/vfscanf.c: Ditto. * libc/stdio/fvwrite.c: Change __sfvwrite into reentrant __sfvwrite_r. Change all previous callers of __sfvwrite. Set errno to EBADF and set error flag on if attempt is made to write to file that does not allow writing. * libc/stdio/fvwrite.h: Fix new reentrant prototypes. * libc/stdio/local.h: Ditto. * libc/stdio/refill.c: Turn __srefill into reentrant __srefill_r. Set errno to EBADF and the error flag on if attempt is made to read unreadable file. Change all previous callers of __srefill. * libc/stdio/rget.c * libc/stdio/wbuf.c: Turn __swbuf into reentrant __swbuf_r. Change all previous callers of __swbuf. * libc/sys/linux/machine/i386/huge_val.h: Ifdef out file contents since huge value macros are already defined correctly for i386 by <math.h>.
* 2006-05-23 Jeff Johnston <jjohnstn@redhat.com>Jeff Johnston2006-05-231-0/+2
| | | | | | * libc/include/stdio.h: Protect dprintf prototype with #ifndef dprintf so as to not interfere with historical code defining their own dprintf macro.
* 2006-05-18 Jeff Johnston <jjohnstn@redhat.com>Jeff Johnston2006-05-181-0/+3
| | | | | * libc/include/stdio.h: Add prototypes for fiscanf, iscanf, and siscanf.
* 2005-10-11 Shaun Jackman <sjackman@gmail.com>Jeff Johnston2005-10-111-0/+4
| | | | | | | | | | | * libc/include/stdio.h (dprintf): New declaration. (vdprintf): Ditto. * libc/stdio/Makefile.am (GENERAL_SOURCES): Add dprintf.c and vdprintf.c. * libc/stdio/Makefile.in: Regenerate. * libc/stdio/dprintf.c: New file. * libc/stdio/vdprintf.c: New file. * libc/stdio/stdio.tex (dprintf): New entry.
* 2005-09-02 Jeff Johnston <jjohnstn@redhat.com>Jeff Johnston2005-09-021-0/+1
| | | | * libc/include/stdio.h: Add prototype for viprintf.
* 2004-11-23 Jeff Johnston <jjohnstn@redhat.com>Jeff Johnston2004-11-241-9/+27
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | * libc/include/stdio.h: Add new iprintf and iscanf variants. Also do some reordering. * libc/machine/powerpc/vfscanf.c: Remove __sccl function. * libc/stdio/Makefile.am: Add support for new iprintf and iscanf family functions. * libc/stdio/Makefile.in: Regenerated. * libc/stdio/fiprintf.c: Remove doc to siprintf.c. * libc/stdio/iprintf.c: Ditto. * libc/stdio/local.h (__svfiscanf_r): New prototype. * libc/stdio/siprintf.c: Add docs for various iprintf family functions. * libc/stdio/sniprintf.c: Move docs to siprintf.c. * libc/stdio/stdio.tex: Add new functions. * libc/stdio/vfscanf.c: Split out __sccl function to separate file and add special name defines so this file can be used to build vfiscanf.o. * libc/stdio/asiprintf.c: New file. * libc/stdio/fiscanf.c: Ditto. * libc/stdio/iscanf.c: Ditto. * libc/stdio/sccl.c: Ditto. * libc/stdio/siscanf.c: Ditto. * libc/stdio/vasiprintf.c: Ditto. * libc/stdio/viprintf.c: Ditto. * libc/stdio/viscanf.c: Ditto. * libc/stdio/vsiprintf.c: Ditto. * libc/stdio/vsiscanf.c: Ditto. * libc/stdio/vsniprintf.c: Ditto.
* 2004-11-19 Shaun Jackman <sjackman@gmail.com>Jeff Johnston2004-11-201-0/+1
| | | | | | | | * libc/include/stdio.h: Add sniprintf. * libc/stdio/Makefile.am: Add sniprintf.c. * libc/stdio/Makefile.in: Regenerated. * libc/stdio/sniprintf.c: New file. * libc/stdio/stdio.tex: Add sniprintf.
* 2004-05-07 Artem B. Bityuckiy <abitytsky@softminecorp.com>Jeff Johnston2004-05-071-0/+2
| | | | | | | | | | * libc/stdio/iprintf.c (_iprintf_r): Fix old-style argument list for reentrant pointer. Call _vfiprintf_r. * libc/stdio/siprintf.c (_siprintf_r): New function. * libc/stdio/vfprintf.c (__sbprintf): Add reetrant struct pointer argument. Change all callers. Call _VFPRINTF_R. * libc/include/stdio.h (_siprintf_r, _vfiprintf_r): New prototypes.
* 2004-05-03 Artem B. Bityuckiy <abitytsky@softminecorp.com>Jeff Johnston2004-05-031-0/+1
| | | | | | | * libc/include/stdio.h (_ungetc_r): New prototype. * libc/stdio/ungetc.c (_ungetc_r): New reentrant function. (__submore): Add reentrant struct pointer argument. (ungetc): Change to call _ungetc_r.
* 2004-04-23 Jeff Johnston <jjohnstn@redhat.com>Jeff Johnston2004-04-231-0/+2
| | | | * libc/include/stdio.h: (_ftell_r, _fseek_r): New prototypes.
* 2004-04-08 Artem B. Bityuckiy <abitytsky@softminecorp.com>Jeff Johnston2004-04-081-0/+1
| | | | | | | | | | | | | | * libc/stdio/fclose.c (_fclose_r): New function. * libc/stdio/freopen.c (_freopen_r): Call _fclose_r. * libc/stdio/fcloseall.c (_fcloseall_r): Call _fwalk_reent. * libc/stdio64/freopen64.c (_freopen64_r): Use _fclose_r. * libc/include/stdio.h (_fclose_r): New prototype. * libc/stdio/fopen.c: Fix typo in comment. 2004-04-08 Jeff Johnston <jjohnstn@redhat.com> * libc/stdio/fwalk.c (_fwalk_reent): New version of _fwalk to handle _r reentrant functions.
* 2003-08-26 Jeff Johnston <jjohnstn@redhat.com>Jeff Johnston2003-08-261-1/+1
| | | | | | | | | | * libc/include/stdio.h: Allow the io64 function prototypes for Cygwin when compiling newlib. * libc/include/sys/stat.h[__CYGWIN__]: Define stat64 as __stat64 to expose the Cygwin struct __stat64 type. * libc/stdio64/fseeko64.c: Use _fstat64_r and pass a struct stat64 pointer. * libc/stdio64/tmpfile64.c(_tmpfile64_r): Call _fopen64_r.
* * libc/stdio64/fdopen64.c: New file.Christopher Faylor2003-07-251-0/+2
| | | | | | | * libc/stdio64/Makefile.am (LIB_OBJS): Add fdopen64.o * libc/stdio64/Makefile.in: Regenerate. * libc/include/stdio.h (fdopen64): Define. * libc/include/stdio.h (_fdopen64_r): Ditto.
* * libc/ctype/ctype_.c: Remove checks for deprecated __CYGWIN32__.Corinna Vinschen2003-05-131-1/+1
| | | | | | * libc/include/stdio.h: Ditto. * libc/include/sys/config.h: Ditto. * libc/stdio/mktemp.c: Ditto.
* * libc/include/stdio.h: Change one __CYGWIN__ to __CYGWIN32__.Corinna Vinschen2003-05-121-1/+1
|
* * libc/include/stdio.h: Declare fgetpos, fsetpos, fseeko and ftelloCorinna Vinschen2003-03-141-0/+13
| | | | | | | | | | | | | | | with internal (_fpos_t and _off_t) datatypes when compiling newlib. * libc/include/sys/unistd.h: Declare _lseek using _off_t. * libc/reent/lseekr.c (_lseek_r): Use _off_t instead of off_t. * libc/stdio/fseeko.c (fseeko): Ditto. * libc/stdio/ftello.c (ftello): Ditto. * libc/stdio/stdio.c (__swrite): Ditto. (__sseek): Ditto. * libc/stdio/fgetpos.c (fgetpos): Use _fpos_t instead of fpos_t. * libc/stdio/fseek.c (fseek): Ditto. * libc/stdio/fsetpos.c (fsetpos): Ditto. * libc/stdio/ftell.c (ftell): Ditto. * libc/stdio/local.h: Declare __sseek using _off_t.
* * configure.host: Define stdio64_dir for Cygwin.Corinna Vinschen2003-03-071-1/+11
| | | | | | | | | * libc/include/stdio.h: Change definition of fpos_t to fulfill Cygwin 64bit file access requirements. Drop definition of f*64() functions when compiled for Cygwin. * libc/include/sys/config.h: Define __LARGE64_FILES for Cygwin. * libc/reent/lseek64r.c: Use _off64_t instead of off64_t. * libc/stdio64/local64.h: Use _fpos64_t instead of fpos64_t.
* 2002-07-23 Jeff Johnston <jjohnstn@redhat.com>Jeff Johnston2002-07-231-1/+1
| | | | | | | | | | | | | * libc/include/stdio.h: Move fcloseall prototype within #ifndef _REENT_ONLY section. * libc/sys/linux/Makefile.am: Add new files. * libc/sys/linux/Makefile.in: Regenerated. * libc/sys/linux/sys/stdio.h: Add ctermid prototype. * libc/sys/linux/sys/unistd.h: Add ttyname_r prototype. * libc/sys/linux/sys/types.h: Add ino64_t type. * libc/sys/linux/ctermid.c: New file. * libc/sys/linux/ttyname_r.c: Ditto. * libc/sys/linux/readdir64.c: Ditto.
* 2002-07-22 Jeff Johnston <jjohnstn@redhat.com>Jeff Johnston2002-07-221-0/+2
| | | | | | | | | * libc/include/stdio.h (fcloseall, _fcloseall_r): Added prototypes. * libc/stdio/Makefile.am: Added fcloseall.c support. * libc/stdio/Makefile.in: Regenerated. * libc/stdio/fcloseall.c: New file. * libc/stdio64/Makefile.am: Remove missing .def references. * libc/stdio64/Makefile.in: Regenerated.
* 2002-07-17 Jeff Johnston <jjohnstn@redhat.com>Jeff Johnston2002-07-171-3/+24
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * configure.host(stdio64_dir): New setting that is used to enable building of new stdio64 directory. * libc/Makefile.am[HAVE_STDIO64_DIR]: Add support for large files. (stmp-stdio64,stdio64.texi): New targets to optionally add in stdio64 info to info files. * libc/Makefile.in: Regenerated. * libc/configure: Ditto. * libc/configure.in: Add configuration variables that are set when stdio64 is selected as subdir in configure.host. * libc/libc.texinfo: Add optional menu item for Stdio64, based on whether STDIO64 flag is set or not. * libc/sys.tex: Add optional stdio64 syscalls based on whether STDIO64 flag is set or not. * libc/include/reent.h[__LARGE64_FILES]: Add new stdio64 _r sycall routines. * libc/include/stdio.h[__LARGE64_FILES]: Add new stdio64 prototypes. (FILE): Typedef'd to __FILE instead of struct __sFILE directly. (__SL64): New file flag indicating file is opened via fopen64. * libc/include/sys/_types.h(_off64_t): Added. * libc/include/sys/config.h: For x86-linux, define __LARGE64_FILES. * libc/include/sys/reent.h(struct __sFILE64): New file structure for 64-bit offset large file support. (__FILE): New intermediate type either set to struct __sFILE64 or struct __sFILE, depending on whether __LARGE64_FILES is set or not. * libc/reent/Makefile.am[HAVE_STDIO64_DIR]: Add new files. * libc/reent/Makefile.in: Regenerated. * libc/reent/fstat64r.c: New file. * libc/reent/lseek64r.c: Ditto. * libc/reent/open64r.c: Ditto. * libc/reent/reent.tex: Optionally add stdio64 reentrant syscalls based on whether STDIO64 flag is set. * libc/stdio/stdio.tex: Add blank line. * libc/stdio64/Makefile.am: New file. * libc/stdio64/Makefile.in: Ditto. * libc/stdio64/fgetpos64.c: Ditto. * libc/stdio64/fopen64.: Ditto. * libc/stdio64/freopen64.c: Ditto. * libc/stdio64/fseeko64.c: Ditto. * libc/stdio64/fsetpos64.c: Ditto. * libc/stdio64/ftello64.c: Ditto. * libc/stdio64/local64.h: Ditto. * libc/stdio64/stdio64.c: Ditto. * libc/stdio64/stdio64.tex: Ditto. * libc/stdio64/tmpfile64.c: Ditto. * libc/sys/linux/io64.c: Add weak aliases for lseek64, fstat64, and open64.
* 2002-07-04 Jeff Johnston <jjohnstn@redhat.com>Jeff Johnston2002-07-041-0/+2
| | | | | | | | | | * libc/include/stdio.h: Add new prototypes. * libc/stdio/Makefile.am: Add fseeko.c and ftello.c. * libc/stdio/Makefile.in: Regenerated. * libc/stdio/fseek.c: Add fseeko documentation. * libc/stdio/ftell.c: Add ftello documentation. * libc/stdio/fseeko.c: New file. * libc/stdio/ftello.c: New file.
* 2002-07-04 Jeff Johnston <jjohnstn@redhat.com>Jeff Johnston2002-07-041-0/+4
| | | | | | | | | | | | * libc/stdio/Makefile.am: Add asprintf.c and vasprintf.c. * libc/stdio/Makefile.in: Regenerated. * libc/stdio/asprintf.c: New file. * libc/stdio/vasprintf.c: Ditto. * libc/stdio/fvwrite.c: Add code to dynamically reallocate the buffer for asprintf support. * libc/stdio/sprintf.c: Add asprintf documentation. * libc/stdio/vfprintf.c: Add vasprintf documentation. * libc/include/stdio.h: Add new prototypes.