Shoichi Sakon
001ef5af39
Fix wscanf family positional parameter handling in %lc, %ls, %l[]
...
* libc/stdio/vfwscanf.c (__SVFWSCANF_R): Convert wrong usage of va_arg
to GET_ARG in %lc, %ls nad %l[] cases. Fix unterminated string in %l[]
case.
Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
2015-08-03 21:51:35 +02:00
Corinna Vinschen
281924766d
* libc/stdio/vfwscanf.c (__SVFWSCANF_R): Fix fetching decimal_point in
...
!_MB_CAPABLE as well as in !__HAVE_LOCALE_INFO_EXTENDED__ case.
2013-12-19 18:50:00 +00:00
Corinna Vinschen
576b7804d6
* vfscanf.c (BUF): Change definition to take multibyte decimal point
...
into account.
(__SVFSCANF_R): Handle radix char language-dependent
per POSIX.
(__SVFWSCANF_R): Ditto.
2013-12-18 19:23:33 +00:00
Joel Sherrill
380c9f6165
2013-11-26 Julio Gutierrez <jgutleyva@gmail.com>
...
*libc/include/wchar.h: Add restrict keyword.
*libc/stdio/fgetws.c (fgetws): ditto.
*libc/stdio/fputws.c (fputws): ditto.
*libc/stdio/fwprintf.c (fwprintf): ditto.
*libc/stdio/fwscanf.c (fwscanf): ditto.
*libc/stdio/swprintf.c (swprintf): ditto.
*libc/stdio/swscanf.c (swscanf): ditto.
*libc/stdio/vfwprintf.c (vfwprintf): ditto.
*libc/stdio/vfwscanf.c (vfwscanf): ditto.
*libc/stdio/vswprintf.c (vswprintf): ditto.
*libc/stdio/vswscanf.c (vswscanf): ditto.
*libc/stdio/vwprintf.c (vwprintf): ditto.
*libc/stdio/vwscanf.c (vwscanf): ditto.
*libc/stdio/wprintf.c (wprintf): ditto.
*libc/stdio/wscanf.c (wscanf): ditto.
*libc/stdlib/mbrlen.c (mbrlen): ditto.
*libc/stdlib/mbrtowc.c (mbrtowc): ditto.
*libc/stdlib/mbsnrtowcs.c (mbsnrtowcs): ditto.
*libc/stdlib/mbsrtowcs.c (mbsrtowcs): ditto.
*libc/stdlib/wcrtomb.c (wcrtomb): ditto.
*libc/stdlib/wcsnrtombs.c (wcsnrtombs): ditto.
*libc/stdlib/wcsrtombs.c (wcsrtombs): ditto.
*libc/stdlib/wcstod.c (wcstod): ditto.
*libc/stdlib/wcstol.c (wcstol): ditto.
*libc/stdlib/wcstold.c (wcstold): ditto.
*libc/stdlib/wcstoll.c (wcstoll): ditto.
*libc/stdlib/wcstoul.c (wcstoul): ditto.
*libc/stdlib/wcstoull.c (cstoull): ditto.
*libc/string/wcpcpy.c (wcpcpy): ditto.
*libc/string/wcpncpy.c (wcpncpy): ditto.
*libc/string/wcscat.c (wcscat): ditto.
*libc/string/wcscpy.c (wcscpy): ditto.
*libc/string/wcsncat.c (wcsncat): ditto.
*libc/string/wcsncpy.c (wcsncpy): ditto.
*libc/string/wcsstr.c (wcsstr): ditto.
*libc/string/wcstok.c (wcstok): ditto.
*libc/string/wcsxfrm.c (wcsxfrm): ditto.
*libc/string/wmemcpy.c (wmemcpy): ditto.
2013-11-26 17:21:01 +00:00
Jeff Johnston
b334e6660a
2013-04-29 Sebastian Huber <sebastian.huber@embedded-brains.de>
...
* libc/stdio/local.h (CHECK_INIT): Evaluate argument only once.
(CHECK_STD_INIT): Likewise.
* libc/stdio/fgetc.c (fgetc): Use local variable for _REENT.
* libc/stdio/fgetwc.c (fwgetc): Likewise.
* libc/stdio/fgetws.c (fgetws): Likewise.
* libc/stdio/fputc.c (fputc): Likewise.
* libc/stdio/fputwc.c (fputwc): Likewise.
* libc/stdio/fputws.c (fputws): Likewise.
* libc/stdio/getc.c (getc): Likewise.
* libc/stdio/getchar.c (_getchar_r): Likewise.
* libc/stdio/putc.c (putc): Likewise.
* libc/stdio/putchar.c (putchar): Likewise.
* libc/stdio/scanf.c (scanf): Likewise.
* libc/stdio/setvbuf.c (setvbuf): Likewise.
* libc/stdio/ungetwc.c (ungetwc): Likewise.
* libc/stdio/vfscanf.c (VFSCANF): Likewise.
* libc/stdio/vfwscanf.c (VFWSCANF): Likewise.
* libc/stdio/viprintf.c (viprintf): Likewise.
* libc/stdio/viscanf.c (viscanf): Likewise.
* libc/stdio/vprintf.c (vprintf): Likewise.
* libc/stdio/vscanf.c (vscanf): Likewise.
* libc/stdio/vwprintf.c (vwprintf): Likewise.
* libc/stdio/vwscanf.c (vwscanf): Likewise.
* libc/stdio/wscanf.c (wscanf): Likewise.
* libc/stdlib/ecvtbuf.c (fcvtbuf): Likewise.
(fcvtbuf): Likewise.
(ecvtbuf): Likewise.
(ecvtbuf): Likewise.
* libc/stdlib/mblen.c (mblen): Likewise.
* libc/stdlib/mbrlen.c (mbrlen): Likewise.
* libc/stdlib/mbrtowc.c (mbrtowc): Likewise.
* libc/stdlib/mbtowc.c (mbtowc): Likewise.
* libc/stdlib/rand.c (srand): Likewise.
(rand): Likewise.
* libc/stdlib/wcrtomb.c (wcrtomb): Likewise.
* libc/stdlib/wctob.c (wctob): Likewise.
* libc/stdlib/wctomb.c (wctomb): Likewise.
* libc/string/strtok.c (strtok): Likewise.
* libc/time/asctime.c (asctime): Likewise.
* libc/time/gmtime.c (gmtime): Likewise.
* libc/time/lcltime.c (lcltime): Likewise.
2013-04-29 21:06:23 +00:00
Corinna Vinschen
4aa28d8ae2
* libc/stdio/local.h (_newlib_flockfile_start): New macro to
...
secure stream related critical section against thread cancellation.
(_newlib_flockfile_exit): Ditto.
(_newlib_sfp_lock_end): Ditto.
(_newlib_sfp_lock_start): Ditto for the list of streams.
(_newlib_sfp_lock_exit): Ditto.
(_newlib_sfp_lock_end): Ditto.
Use aforementioned macros in place of _flockfile/_funlockfile
and __sfp_lock_acquire/__sfp_lock_release throughout the code.
* libc/stdio/fclose.c: Explicitely disable and re-enable thread
cancellation. Explain why.
* libc/stdio/freopen.c: Ditto.
* libc/stdio64/freopen64.c: Ditto.
2012-05-30 08:58:42 +00:00
Corinna Vinschen
656df313e0
* libc/stdio/fclose.c: Only use sfp lock to guard non-atomic
...
changes of flags and fp lock.
* libc/stdio/freopen.c: Ditto.
* libc/stdio/freopen64.c: Ditto.
* libc/stdio/fgetc.c: Revert change from 2009-04-24, remove sfp locks
which guard entire function to avoid potential deadlocks when using
stdio functions in multiple thraeds.
* libc/stdio/fgets.c: Ditto.
* libc/stdio/fgetwc.c: Ditto.
* libc/stdio/fgetws.c: Ditto.
* libc/stdio/fread.c: Ditto.
* libc/stdio/fseek.c: Ditto.
* libc/stdio/getc.c: Ditto.
* libc/stdio/getdelim.c: Ditto.
* libc/stdio/gets.c: Ditto.
* libc/stdio/vfscanf.c: Ditto.
* libc/stdio/vfwscanf.c: Ditto.
* libc/stdio/fflush.c (_fflush_r): Split out core functionality into
new function __sflush_r. Just lock file and call __sflush_r from here.
* libc/stdio/fwalk.c (_fwalk): Remove static helper function and move
functionality back into main function. Don't walk a file with flags
value of 1. Add comment.
(_fwalk_reent): Ditto.
* libc/stdio/local.h (__sflush_r): Declare.
* libc/stdio/refill.c (__srefill): Before calling fwalk, set flags
value to 1 so this file pointer isn't walked. Revert flags afterwards
and call __sflush_r for this fp if necessary. Add comments.
2011-01-28 10:49:11 +00:00
Corinna Vinschen
d0b85c158f
* libc/include/wchar.h (fwscanf, swscanf, vfwscanf, vswscanf, vwscanf,
...
wscanf): Declare.
(_fwscanf_r, _swscanf_r, _vfwscanf_r, _vswscanf_r, _vwscanf_r,
_wscanf_r): Declare.
* libc/stdio/Makefile.am: Add new wscanf files.
* libc/stdio/Makefile.in: Regenerate.
* libc/stdio/fwscanf.c: New file.
* libc/stdio/local.h (__svfwscanf_r, __ssvfwscanf_r, __svfiwscanf_r,
__ssvfiwscanf_r): Declare.
* libc/stdio/stdio.tex: Add new documentation references.
* libc/stdio/swscanf.c: New file.
* libc/stdio/vfwscanf.c: New file.
* libc/stdio/vswscanf.c: New file.
* libc/stdio/vwscanf.c: New file.
* libc/stdio/wscanf.c: New file.
* libc/stdio/vfscanf.c (_sungetc_r): Make externaly available. Only
define if INTEGER_ONLY is defined. Declare otherwise.
(__ssrefill_r): Ditto.
(_sfread_r): Ditto.
Remove static eofread/eofread1 functions and use __seofread
function instead, throughout.
* libc/stdio/local.h (__seofread): Declare.
* libc/stdio/stdio.c (__seofread): Define.
* libc/stdio/fgetwc.c (__fgetwc): Fix compiler warning.
* libc/stdio/fgetws.c (_fgetws_r): Ditto.
* libc/stdio/fread.c (_fread_r): Ditto.
* libc/stdio/vfprintf.c: Ditto.
* libc/stdio/vswprintf.c: Ditto.
2009-03-11 11:53:22 +00:00