summaryrefslogtreecommitdiffstats
path: root/lib/libc/stdio/vswscanf.c
diff options
context:
space:
mode:
authorjhb <jhb@FreeBSD.org>2008-04-17 22:17:54 +0000
committerjhb <jhb@FreeBSD.org>2008-04-17 22:17:54 +0000
commitab875ea72654fac71cb13470c85b43412c2e2391 (patch)
treeb259dd878c8cb0ee9fb15608aebb9453ad10e7b1 /lib/libc/stdio/vswscanf.c
parented4c4d169e660b4253a11c7915cd7a01c4b11398 (diff)
downloadFreeBSD-src-ab875ea72654fac71cb13470c85b43412c2e2391.zip
FreeBSD-src-ab875ea72654fac71cb13470c85b43412c2e2391.tar.gz
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
Diffstat (limited to 'lib/libc/stdio/vswscanf.c')
-rw-r--r--lib/libc/stdio/vswscanf.c5
1 files changed, 2 insertions, 3 deletions
diff --git a/lib/libc/stdio/vswscanf.c b/lib/libc/stdio/vswscanf.c
index 5d9a22a..67bfb47 100644
--- a/lib/libc/stdio/vswscanf.c
+++ b/lib/libc/stdio/vswscanf.c
@@ -63,7 +63,6 @@ vswscanf(const wchar_t * __restrict str, const wchar_t * __restrict fmt,
static const mbstate_t initial;
mbstate_t mbs;
FILE f;
- struct __sFILEX ext;
char *mbstr;
size_t mlen;
int r;
@@ -86,8 +85,8 @@ vswscanf(const wchar_t * __restrict str, const wchar_t * __restrict fmt,
f._read = eofread;
f._ub._base = NULL;
f._lb._base = NULL;
- f._extra = &ext;
- INITEXTRA(&f);
+ f._orientation = 0;
+ memset(&f._mbstate, 0, sizeof(mbstate_t));
r = __vfwscanf(&f, fmt, ap);
free(mbstr);
OpenPOWER on IntegriCloud