new scanf implementation and corresponding integer parser/converter
authorRich Felker <dalias@aerifal.cx>
Mon, 16 Apr 2012 20:03:45 +0000 (16:03 -0400)
committerRich Felker <dalias@aerifal.cx>
Mon, 16 Apr 2012 20:03:45 +0000 (16:03 -0400)
commit18efeb320b763e541a7dbf61a7da1cbe13ab2be9
treef8eb42a87b9c07ad8d9de0380356af3541b425aa
parentcc762434d91a2f441a1d2f44962ab1d4854b607b
new scanf implementation and corresponding integer parser/converter

advantages over the old code:
- correct results for floating point (old code was bogus)
- wide/regular scanf separated so scanf does not pull in wide code
- well-defined behavior on integers that overflow dest type
- support for %[a-b] ranges with %[ (impl-defined by widely used)
- no intermediate conversion of fmt string to wide string
- cleaner, easier to share code with strto* functions
- better standards conformance for corner cases

the old code remains in the source tree, as the wide versions of the
scanf-family functions are still using it. it will be removed when no
longer needed.
src/internal/intscan.c [new file with mode: 0644]
src/internal/intscan.h [new file with mode: 0644]
src/internal/stdio_impl.h
src/stdio/__string_read.c [new file with mode: 0644]
src/stdio/vfscanf.c
src/stdio/vsscanf.c