summaryrefslogtreecommitdiff
path: root/src/stdio/vfwscanf.c
AgeCommit message (Collapse)AuthorFilesLines
2015-06-13fix idiom for setting stdio stream orientation to wideRich Felker1-1/+1
the old idiom, f->mode |= f->mode+1, was adapted from the idiom for setting byte orientation, f->mode |= f->mode-1, but the adaptation was incorrect. unless the stream was alreasdy set byte-oriented, this code incremented f->mode each time it was executed, which would eventually lead to overflow. it could be fixed by changing it to f->mode |= 1, but upcoming changes will require slightly more work at the time of wide orientation, so it makes sense to just call fwide. as an optimization in the single-character functions, fwide is only called if the stream is not already wide-oriented.
2014-07-02fix failure of wide printf/scanf functions to set wide orientationRich Felker1-0/+2
in some cases, these functions internally call a byte-based input or output function before calling getwc/putwc, so they cannot rely on the latter to set the orientation.
2013-12-12include cleanups: remove unused headers and add feature test macrosSzabolcs Nagy1-3/+0
2013-08-31fix invalid %m format crash in wide scanf variantsRich Felker1-0/+2
the wide variant was missed in the previous commit.
2013-07-20fix uninitialized/stale use of alloc (%m modifier) flag in scanfRich Felker1-0/+2
for conversion specifiers, alloc is always set when the specifier is parsed. however, if scanf stops due to mismatching literal text, either an uninitialized (if no conversions have been performed yet) or stale (from the previous conversion) of the flag will be used, possibly causing an invalid pointer to be passed to free when the function returns.
2013-06-22fix scanf %c conversion wrongly storing a terminating null byteRich Felker1-2/+4
this seems to have been a regression from the refactoring which added the 'm' modifier.
2013-06-06implement 'm' modifier for wide scanf variantsRich Felker1-7/+40
2013-06-05refactor wide-char scanf string handlingRich Felker1-55/+32
this brings the wide version of the code into alignment with the byte-based version, in preparation for adding support for the m (malloc) modifier.
2013-04-05Add ABI compatability aliases.Isaac Dunham1-0/+3
GNU used several extensions that were incompatible with C99 and POSIX, so they used alternate names for the standard functions. The result is that we need these to run standards-conformant programs that were linked with glibc.
2012-09-06use restrict everywhere it's required by c99 and/or posix 2008Rich Felker1-1/+1
to deal with the fact that the public headers may be used with pre-c99 compilers, __restrict is used in place of restrict, and defined appropriately for any supported compiler. we also avoid the form [restrict] since older versions of gcc rejected it due to a bug in the original c99 standard, and instead use the form *restrict.
2012-04-17fix wide scanf's handling of input failure on %c, and simplify %[Rich Felker1-5/+6
2012-04-17fix failure to distinguish input/match failure in wide %[ scanfRich Felker1-1/+3
this also includes a related fix for vswscanf's read function, which was returning a spurious (uninitialized) character for empty strings.
2012-04-17fix broken %s and %[ with no width specifier in wide scanfRich Felker1-3/+7
2012-04-17make wide scanf %[ respect widthRich Felker1-2/+3
2012-04-17fix wide scanf to respect field width for stringsRich Felker1-4/+7
2012-04-17introduce new wide scanf code and remove the last remnants of old scanfRich Felker1-13/+284
at this point, strto* and all scanf family functions are using the new unified integer and floating point parser/converter code. the wide scanf is largely a wrapper for ordinary byte-based scanf; since numbers can only contain ascii characters, only strings need to be handled specially.
2011-02-12initial check-in, version 0.5.0v0.5.0Rich Felker1-0/+28