diff options
author | John Baldwin <jhb@FreeBSD.org> | 2008-04-17 22:17:54 +0000 |
---|---|---|
committer | John Baldwin <jhb@FreeBSD.org> | 2008-04-17 22:17:54 +0000 |
commit | 1e98f88776fc606df245a382685b1ac634a81389 (patch) | |
tree | b259dd878c8cb0ee9fb15608aebb9453ad10e7b1 /lib/libc/stdio/sscanf.c | |
parent | aba7c5b84b764f7dcb96c651735aa1bb10348d34 (diff) | |
download | src-1e98f88776fc606df245a382685b1ac634a81389.tar.gz src-1e98f88776fc606df245a382685b1ac634a81389.zip |
Next stage of stdio cleanup: Retire __sFILEX and merge the fields back into
__sFILE. This was supposed to be done in 6.0. Some notes:
- Where possible I restored the various lines to their pre-__sFILEX state.
- Retire INITEXTRA() and just initialize the wchar bits (orientation and
mbstate) explicitly instead. The various places that used INITEXTRA
didn't need the locking fields or _up initialized. (Some places needed
_up to exist and not be off the end of a NULL or garbage pointer, but
they didn't require it to be initialized to a specific value.)
- For now, stdio.h "knows" that pthread_t is a 'struct pthread *' to
avoid namespace pollution of including all the pthread types in stdio.h.
Once we remove all the inlines and make __sFILE private it can go back
to using pthread_t, etc.
- This does not remove any of the inlines currently and does not change
any of the public ABI of 'FILE'.
MFC after: 1 month
Reviewed by: peter
Notes
Notes:
svn path=/head/; revision=178287
Diffstat (limited to 'lib/libc/stdio/sscanf.c')
-rw-r--r-- | lib/libc/stdio/sscanf.c | 5 |
1 files changed, 2 insertions, 3 deletions
diff --git a/lib/libc/stdio/sscanf.c b/lib/libc/stdio/sscanf.c index a1ee11d35d62..3c792e054ba5 100644 --- a/lib/libc/stdio/sscanf.c +++ b/lib/libc/stdio/sscanf.c @@ -59,7 +59,6 @@ sscanf(const char * __restrict str, char const * __restrict fmt, ...) { int ret; va_list ap; - struct __sFILEX extra; FILE f; f._file = -1; @@ -69,8 +68,8 @@ sscanf(const char * __restrict str, char const * __restrict fmt, ...) f._read = eofread; f._ub._base = NULL; f._lb._base = NULL; - f._extra = &extra; - INITEXTRA(&f); + f._orientation = 0; + memset(&f._mbstate, 0, sizeof(mbstate_t)); va_start(ap, fmt); ret = __svfscanf(&f, fmt, ap); va_end(ap); |