diff --git a/dlls/msvcp90/ios.c b/dlls/msvcp90/ios.c index 6bafa95e301..9062760fd52 100644 --- a/dlls/msvcp90/ios.c +++ b/dlls/msvcp90/ios.c @@ -29,97 +29,11 @@ #include "wine/debug.h" WINE_DEFAULT_DEBUG_CHANNEL(msvcp90); -typedef enum { - IOSTATE_goodbit = 0x00, - IOSTATE_eofbit = 0x01, - IOSTATE_failbit = 0x02, - IOSTATE_badbit = 0x04, - IOSTATE__Hardfail = 0x10, - IOSTATE_mask = 0x17 -} IOSB_iostate; - -typedef enum { - FMTFLAG_skipws = 0x0001, - FMTFLAG_unitbuf = 0x0002, - FMTFLAG_uppercase = 0x0004, - FMTFLAG_showbase = 0x0008, - FMTFLAG_showpoint = 0x0010, - FMTFLAG_showpos = 0x0020, - FMTFLAG_left = 0x0040, - FMTFLAG_right = 0x0080, - FMTFLAG_internal = 0x0100, - FMTFLAG_dec = 0x0200, - FMTFLAG_oct = 0x0400, - FMTFLAG_hex = 0x0800, - FMTFLAG_scientific = 0x1000, - FMTFLAG_fixed = 0x2000, - FMTFLAG_hexfloat = 0x3000, - FMTFLAG_boolalpha = 0x4000, - FMTFLAG_stdio = 0x8000, - FMTFLAG_adjustfield = FMTFLAG_left|FMTFLAG_right|FMTFLAG_internal, - FMTFLAG_basefield = FMTFLAG_dec|FMTFLAG_oct|FMTFLAG_hex, - FMTFLAG_floadfield = FMTFLAG_scientific|FMTFLAG_fixed, - FMTFLAG_mask = 0xffff -} IOSB_fmtflags; - -typedef enum { - OPENMODE_in = 0x01, - OPENMODE_out = 0x02, - OPENMODE_ate = 0x04, - OPENMODE_app = 0x08, - OPENMODE_trunc = 0x10, - OPENMODE__Nocreate = 0x40, - OPENMODE__Noreplace = 0x80, - OPENMODE_binary = 0x20, - OPENMODE_mask = 0xff -} IOSB_openmode; - -typedef enum { - SEEKDIR_beg = 0x1, - SEEKDIR_cur = 0x2, - SEEKDIR_end = 0x3, - SEEKDIR_mask = 0x3 -} IOSB_seekdir; - -typedef struct _iosarray { - struct _iosarray *next; - int index; - int long_val; - void *ptr_val; -} IOS_BASE_iosarray; - -typedef enum { - EVENT_erase_event, - EVENT_imbue_event, - EVENT_copyfmt_event -} IOS_BASE_event; - -struct _ios_base; -typedef void (CDECL *IOS_BASE_event_callback)(IOS_BASE_event, struct _ios_base*, int); -typedef struct _fnarray { - struct _fnarray *next; - int index; - IOS_BASE_event_callback event_handler; -} IOS_BASE_fnarray; - /* ?_Index@ios_base@std@@0HA */ int ios_base_Index = 0; /* ?_Sync@ios_base@std@@0_NA */ MSVCP_bool ios_base_Sync = FALSE; -typedef struct _ios_base { - const vtable_ptr *vtable; - MSVCP_size_t stdstr; - IOSB_iostate state; - IOSB_iostate except; - IOSB_fmtflags fmtfl; - streamsize prec; - streamsize wide; - IOS_BASE_iosarray *arr; - IOS_BASE_fnarray *calls; - locale *loc; -} ios_base; - typedef struct { streamoff off; __int64 DECLSPEC_ALIGN(8) pos; diff --git a/dlls/msvcp90/locale.c b/dlls/msvcp90/locale.c index fd0c7cb8995..ca26378b743 100644 --- a/dlls/msvcp90/locale.c +++ b/dlls/msvcp90/locale.c @@ -102,7 +102,6 @@ typedef struct { _Cvtvec cvt; } num_get; -struct _ios_base; typedef struct _istreambuf_iterator_char { struct _basic_streambuf_char *strbuf; @@ -4118,7 +4117,7 @@ int __cdecl num_get_wchar__Getffld(num_get *this, char *dest, istreambuf_iterato /* ?_Getffldx@?$num_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@ABAHPADAAV?$istreambuf_iterator@GU?$char_traits@G@std@@@2@1AAVios_base@2@PAH@Z */ /* ?_Getffldx@?$num_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@AEBAHPEADAEAV?$istreambuf_iterator@GU?$char_traits@G@std@@@2@1AEAVios_base@2@PEAH@Z */ int __cdecl num_get_wchar__Getffldx(num_get *this, char *dest, istreambuf_iterator_wchar *first, - istreambuf_iterator_wchar *last, struct _ios_base *ios, int *phexexp) + istreambuf_iterator_wchar *last, ios_base *ios, int *phexexp) { FIXME("(%p %p %p %p %p) stub\n", dest, first, last, ios, phexexp); return -1; @@ -4152,7 +4151,7 @@ int __thiscall MSVCP_num_get_wchar__Hexdig(num_get *this, wchar_t dig, wchar_t e /* ?do_get@?$num_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@MEBA?AV?$istreambuf_iterator@GU?$char_traits@G@std@@@2@V32@0AEAVios_base@2@AEAHAEAPEAX@Z */ DEFINE_THISCALL_WRAPPER(num_get_wchar_do_get_void,36) istreambuf_iterator_wchar *__thiscall num_get_wchar_do_get_void(const num_get *this, istreambuf_iterator_wchar *ret, - istreambuf_iterator_wchar first, istreambuf_iterator_wchar last, struct _ios_base *base, int *state, void **pval) + istreambuf_iterator_wchar first, istreambuf_iterator_wchar last, ios_base *base, int *state, void **pval) { FIXME("(%p %p %p %p %p) stub\n", this, ret, base, state, pval); return ret; @@ -4164,7 +4163,7 @@ istreambuf_iterator_wchar *__thiscall num_get_wchar_do_get_void(const num_get *t /* ?get@?$num_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@QEBA?AV?$istreambuf_iterator@GU?$char_traits@G@std@@@2@V32@0AEAVios_base@2@AEAHAEAPEAX@Z */ DEFINE_THISCALL_WRAPPER(num_get_wchar_get_void,36) istreambuf_iterator_wchar *__thiscall num_get_wchar_get_void(const num_get *this, istreambuf_iterator_wchar *ret, - istreambuf_iterator_wchar first, istreambuf_iterator_wchar last, struct _ios_base *base, int *state, void **pval) + istreambuf_iterator_wchar first, istreambuf_iterator_wchar last, ios_base *base, int *state, void **pval) { FIXME("(%p %p %p %p %p) stub\n", this, ret, base, state, pval); return ret; @@ -4180,7 +4179,7 @@ istreambuf_iterator_wchar *__thiscall num_get_wchar_get_void(const num_get *this /* ?do_get@?$num_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@MEBA?AV?$istreambuf_iterator@GU?$char_traits@G@std@@@2@V32@0AEAVios_base@2@AEAHAEAN@Z */ DEFINE_THISCALL_WRAPPER(num_get_wchar_do_get_double,36) istreambuf_iterator_wchar *__thiscall num_get_wchar_do_get_double(const num_get *this, istreambuf_iterator_wchar *ret, - istreambuf_iterator_wchar first, istreambuf_iterator_wchar last, struct _ios_base *base, int *state, double *pval) + istreambuf_iterator_wchar first, istreambuf_iterator_wchar last, ios_base *base, int *state, double *pval) { FIXME("(%p %p %p %p %p) stub\n", this, ret, base, state, pval); return ret; @@ -4192,7 +4191,7 @@ istreambuf_iterator_wchar *__thiscall num_get_wchar_do_get_double(const num_get /* ?get@?$num_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@QEBA?AV?$istreambuf_iterator@GU?$char_traits@G@std@@@2@V32@0AEAVios_base@2@AEAHAEAO@Z */ DEFINE_THISCALL_WRAPPER(num_get_wchar_get_ldouble,36) istreambuf_iterator_wchar *__thiscall num_get_wchar_get_ldouble(const num_get *this, istreambuf_iterator_wchar *ret, - istreambuf_iterator_wchar first, istreambuf_iterator_wchar last, struct _ios_base *base, int *state, double *pval) + istreambuf_iterator_wchar first, istreambuf_iterator_wchar last, ios_base *base, int *state, double *pval) { FIXME("(%p %p %p %p %p) stub\n", this, ret, base, state, pval); return ret; @@ -4204,7 +4203,7 @@ istreambuf_iterator_wchar *__thiscall num_get_wchar_get_ldouble(const num_get *t /* ?get@?$num_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@QEBA?AV?$istreambuf_iterator@GU?$char_traits@G@std@@@2@V32@0AEAVios_base@2@AEAHAEAN@Z */ DEFINE_THISCALL_WRAPPER(num_get_wchar_get_double,36) istreambuf_iterator_wchar *__thiscall num_get_wchar_get_double(const num_get *this, istreambuf_iterator_wchar *ret, - istreambuf_iterator_wchar first, istreambuf_iterator_wchar last, struct _ios_base *base, int *state, double *pval) + istreambuf_iterator_wchar first, istreambuf_iterator_wchar last, ios_base *base, int *state, double *pval) { FIXME("(%p %p %p %p %p) stub\n", this, ret, base, state, pval); return ret; @@ -4216,7 +4215,7 @@ istreambuf_iterator_wchar *__thiscall num_get_wchar_get_double(const num_get *th /* ?do_get@?$num_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@MEBA?AV?$istreambuf_iterator@GU?$char_traits@G@std@@@2@V32@0AEAVios_base@2@AEAHAEAM@Z */ DEFINE_THISCALL_WRAPPER(num_get_wchar_do_get_float,36) istreambuf_iterator_wchar *__thiscall num_get_wchar_do_get_float(const num_get *this, istreambuf_iterator_wchar *ret, - istreambuf_iterator_wchar first, istreambuf_iterator_wchar last, struct _ios_base *base, int *state, float *pval) + istreambuf_iterator_wchar first, istreambuf_iterator_wchar last, ios_base *base, int *state, float *pval) { FIXME("(%p %p %p %p %p) stub\n", this, ret, base, state, pval); return ret; @@ -4228,7 +4227,7 @@ istreambuf_iterator_wchar *__thiscall num_get_wchar_do_get_float(const num_get * /* ?get@?$num_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@QEBA?AV?$istreambuf_iterator@GU?$char_traits@G@std@@@2@V32@0AEAVios_base@2@AEAHAEAM@Z */ DEFINE_THISCALL_WRAPPER(num_get_wchar_get_float,36) istreambuf_iterator_wchar *__thiscall num_get_wchar_get_float(const num_get *this, istreambuf_iterator_wchar *ret, - istreambuf_iterator_wchar first, istreambuf_iterator_wchar last, struct _ios_base *base, int *state, float *pval) + istreambuf_iterator_wchar first, istreambuf_iterator_wchar last, ios_base *base, int *state, float *pval) { FIXME("(%p %p %p %p %p) stub\n", this, ret, base, state, pval); return ret; @@ -4240,7 +4239,7 @@ istreambuf_iterator_wchar *__thiscall num_get_wchar_get_float(const num_get *thi /* ?do_get@?$num_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@MEBA?AV?$istreambuf_iterator@GU?$char_traits@G@std@@@2@V32@0AEAVios_base@2@AEAHAEA_K@Z */ DEFINE_THISCALL_WRAPPER(num_get_wchar_do_get_uint64,36) istreambuf_iterator_wchar *__thiscall num_get_wchar_do_get_uint64(const num_get *this, istreambuf_iterator_wchar *ret, - istreambuf_iterator_wchar first, istreambuf_iterator_wchar last, struct _ios_base *base, int *state, ULONGLONG *pval) + istreambuf_iterator_wchar first, istreambuf_iterator_wchar last, ios_base *base, int *state, ULONGLONG *pval) { FIXME("(%p %p %p %p %p) stub\n", this, ret, base, state, pval); return ret; @@ -4252,7 +4251,7 @@ istreambuf_iterator_wchar *__thiscall num_get_wchar_do_get_uint64(const num_get /* ?get@?$num_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@QEBA?AV?$istreambuf_iterator@GU?$char_traits@G@std@@@2@V32@0AEAVios_base@2@AEAHAEA_K@Z */ DEFINE_THISCALL_WRAPPER(num_get_wchar_get_uint64,36) istreambuf_iterator_wchar *__thiscall num_get_wchar_get_uint64(const num_get *this, istreambuf_iterator_wchar *ret, - istreambuf_iterator_wchar first, istreambuf_iterator_wchar last, struct _ios_base *base, int *state, ULONGLONG *pval) + istreambuf_iterator_wchar first, istreambuf_iterator_wchar last, ios_base *base, int *state, ULONGLONG *pval) { FIXME("(%p %p %p %p %p) stub\n", this, ret, base, state, pval); return ret; @@ -4264,7 +4263,7 @@ istreambuf_iterator_wchar *__thiscall num_get_wchar_get_uint64(const num_get *th /* ?do_get@?$num_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@MEBA?AV?$istreambuf_iterator@GU?$char_traits@G@std@@@2@V32@0AEAVios_base@2@AEAHAEA_J@Z */ DEFINE_THISCALL_WRAPPER(num_get_wchar_do_get_int64,36) istreambuf_iterator_wchar *__thiscall num_get_wchar_do_get_int64(const num_get *this, istreambuf_iterator_wchar *ret, - istreambuf_iterator_wchar first, istreambuf_iterator_wchar last, struct _ios_base *base, int *state, LONGLONG *pval) + istreambuf_iterator_wchar first, istreambuf_iterator_wchar last, ios_base *base, int *state, LONGLONG *pval) { FIXME("(%p %p %p %p %p) stub\n", this, ret, base, state, pval); return ret; @@ -4276,7 +4275,7 @@ istreambuf_iterator_wchar *__thiscall num_get_wchar_do_get_int64(const num_get * /* ?get@?$num_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@QEBA?AV?$istreambuf_iterator@GU?$char_traits@G@std@@@2@V32@0AEAVios_base@2@AEAHAEA_J@Z */ DEFINE_THISCALL_WRAPPER(num_get_wchar_get_int64,36) istreambuf_iterator_wchar *__thiscall num_get_wchar_get_int64(const num_get *this, istreambuf_iterator_wchar *ret, - istreambuf_iterator_wchar first, istreambuf_iterator_wchar last, struct _ios_base *base, int *state, LONGLONG *pval) + istreambuf_iterator_wchar first, istreambuf_iterator_wchar last, ios_base *base, int *state, LONGLONG *pval) { FIXME("(%p %p %p %p %p) stub\n", this, ret, base, state, pval); return ret; @@ -4288,7 +4287,7 @@ istreambuf_iterator_wchar *__thiscall num_get_wchar_get_int64(const num_get *thi /* ?do_get@?$num_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@MEBA?AV?$istreambuf_iterator@GU?$char_traits@G@std@@@2@V32@0AEAVios_base@2@AEAHAEAK@Z */ DEFINE_THISCALL_WRAPPER(num_get_wchar_do_get_ulong,36) istreambuf_iterator_wchar *__thiscall num_get_wchar_do_get_ulong(const num_get *this, istreambuf_iterator_wchar *ret, - istreambuf_iterator_wchar first, istreambuf_iterator_wchar last, struct _ios_base *base, int *state, ULONG *pval) + istreambuf_iterator_wchar first, istreambuf_iterator_wchar last, ios_base *base, int *state, ULONG *pval) { FIXME("(%p %p %p %p %p) stub\n", this, ret, base, state, pval); return ret; @@ -4300,7 +4299,7 @@ istreambuf_iterator_wchar *__thiscall num_get_wchar_do_get_ulong(const num_get * /* ?get@?$num_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@QEBA?AV?$istreambuf_iterator@GU?$char_traits@G@std@@@2@V32@0AEAVios_base@2@AEAHAEAK@Z */ DEFINE_THISCALL_WRAPPER(num_get_wchar_get_ulong,36) istreambuf_iterator_wchar *__thiscall num_get_wchar_get_ulong(const num_get *this, istreambuf_iterator_wchar *ret, - istreambuf_iterator_wchar first, istreambuf_iterator_wchar last, struct _ios_base *base, int *state, ULONG *pval) + istreambuf_iterator_wchar first, istreambuf_iterator_wchar last, ios_base *base, int *state, ULONG *pval) { FIXME("(%p %p %p %p %p) stub\n", this, ret, base, state, pval); return ret; @@ -4312,7 +4311,7 @@ istreambuf_iterator_wchar *__thiscall num_get_wchar_get_ulong(const num_get *thi /* ?do_get@?$num_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@MEBA?AV?$istreambuf_iterator@GU?$char_traits@G@std@@@2@V32@0AEAVios_base@2@AEAHAEAJ@Z */ DEFINE_THISCALL_WRAPPER(num_get_wchar_do_get_long,36) istreambuf_iterator_wchar *__thiscall num_get_wchar_do_get_long(const num_get *this, istreambuf_iterator_wchar *ret, - istreambuf_iterator_wchar first, istreambuf_iterator_wchar last, struct _ios_base *base, int *state, LONG *pval) + istreambuf_iterator_wchar first, istreambuf_iterator_wchar last, ios_base *base, int *state, LONG *pval) { FIXME("(%p %p %p %p %p) stub\n", this, ret, base, state, pval); return ret; @@ -4324,7 +4323,7 @@ istreambuf_iterator_wchar *__thiscall num_get_wchar_do_get_long(const num_get *t /* ?get@?$num_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@QEBA?AV?$istreambuf_iterator@GU?$char_traits@G@std@@@2@V32@0AEAVios_base@2@AEAHAEAJ@Z */ DEFINE_THISCALL_WRAPPER(num_get_wchar_get_long,36) istreambuf_iterator_wchar *__thiscall num_get_wchar_get_long(const num_get *this, istreambuf_iterator_wchar *ret, - istreambuf_iterator_wchar first, istreambuf_iterator_wchar last, struct _ios_base *base, int *state, LONG *pval) + istreambuf_iterator_wchar first, istreambuf_iterator_wchar last, ios_base *base, int *state, LONG *pval) { FIXME("(%p %p %p %p %p) stub\n", this, ret, base, state, pval); return ret; @@ -4336,7 +4335,7 @@ istreambuf_iterator_wchar *__thiscall num_get_wchar_get_long(const num_get *this /* ?do_get@?$num_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@MEBA?AV?$istreambuf_iterator@GU?$char_traits@G@std@@@2@V32@0AEAVios_base@2@AEAHAEAI@Z */ DEFINE_THISCALL_WRAPPER(num_get_wchar_do_get_uint,36) istreambuf_iterator_wchar *__thiscall num_get_wchar_do_get_uint(const num_get *this, istreambuf_iterator_wchar *ret, - istreambuf_iterator_wchar first, istreambuf_iterator_wchar last, struct _ios_base *base, int *state, unsigned int *pval) + istreambuf_iterator_wchar first, istreambuf_iterator_wchar last, ios_base *base, int *state, unsigned int *pval) { FIXME("(%p %p %p %p %p) stub\n", this, ret, base, state, pval); return ret; @@ -4348,7 +4347,7 @@ istreambuf_iterator_wchar *__thiscall num_get_wchar_do_get_uint(const num_get *t /* ?get@?$num_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@QEBA?AV?$istreambuf_iterator@GU?$char_traits@G@std@@@2@V32@0AEAVios_base@2@AEAHAEAI@Z */ DEFINE_THISCALL_WRAPPER(num_get_wchar_get_uint,36) istreambuf_iterator_wchar *__thiscall num_get_wchar_get_uint(const num_get *this, istreambuf_iterator_wchar *ret, - istreambuf_iterator_wchar first, istreambuf_iterator_wchar last, struct _ios_base *base, int *state, unsigned int *pval) + istreambuf_iterator_wchar first, istreambuf_iterator_wchar last, ios_base *base, int *state, unsigned int *pval) { FIXME("(%p %p %p %p %p) stub\n", this, ret, base, state, pval); return ret; @@ -4360,7 +4359,7 @@ istreambuf_iterator_wchar *__thiscall num_get_wchar_get_uint(const num_get *this /* ?do_get@?$num_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@MEBA?AV?$istreambuf_iterator@GU?$char_traits@G@std@@@2@V32@0AEAVios_base@2@AEAHAEAG@Z */ DEFINE_THISCALL_WRAPPER(num_get_wchar_do_get_ushort,36) istreambuf_iterator_wchar *__thiscall num_get_wchar_do_get_ushort(const num_get *this, istreambuf_iterator_wchar *ret, - istreambuf_iterator_wchar first, istreambuf_iterator_wchar last, struct _ios_base *base, int *state, unsigned short *pval) + istreambuf_iterator_wchar first, istreambuf_iterator_wchar last, ios_base *base, int *state, unsigned short *pval) { FIXME("(%p %p %p %p %p) stub\n", this, ret, base, state, pval); return ret; @@ -4372,7 +4371,7 @@ istreambuf_iterator_wchar *__thiscall num_get_wchar_do_get_ushort(const num_get /* ?get@?$num_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@QEBA?AV?$istreambuf_iterator@GU?$char_traits@G@std@@@2@V32@0AEAVios_base@2@AEAHAEAG@Z */ DEFINE_THISCALL_WRAPPER(num_get_wchar_get_ushort,36) istreambuf_iterator_wchar *__thiscall num_get_wchar_get_ushort(const num_get *this, istreambuf_iterator_wchar *ret, - istreambuf_iterator_wchar first, istreambuf_iterator_wchar last, struct _ios_base *base, int *state, unsigned short *pval) + istreambuf_iterator_wchar first, istreambuf_iterator_wchar last, ios_base *base, int *state, unsigned short *pval) { FIXME("(%p %p %p %p %p) stub\n", this, ret, base, state, pval); return ret; @@ -4384,7 +4383,7 @@ istreambuf_iterator_wchar *__thiscall num_get_wchar_get_ushort(const num_get *th /* ?do_get@?$num_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@MEBA?AV?$istreambuf_iterator@GU?$char_traits@G@std@@@2@V32@0AEAVios_base@2@AEAHAEA_N@Z */ DEFINE_THISCALL_WRAPPER(num_get_wchar_do_get_bool,36) istreambuf_iterator_wchar *__thiscall num_get_wchar_do_get_bool(const num_get *this, istreambuf_iterator_wchar *ret, - istreambuf_iterator_wchar first, istreambuf_iterator_wchar last, struct _ios_base *base, int *state, MSVCP_bool *pval) + istreambuf_iterator_wchar first, istreambuf_iterator_wchar last, ios_base *base, int *state, MSVCP_bool *pval) { FIXME("(%p %p %p %p %p) stub\n", this, ret, base, state, pval); return ret; @@ -4396,7 +4395,7 @@ istreambuf_iterator_wchar *__thiscall num_get_wchar_do_get_bool(const num_get *t /* ?get@?$num_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@QEBA?AV?$istreambuf_iterator@GU?$char_traits@G@std@@@2@V32@0AEAVios_base@2@AEAHAEA_N@Z */ DEFINE_THISCALL_WRAPPER(num_get_wchar_get_bool,36) istreambuf_iterator_wchar *__thiscall num_get_wchar_get_bool(const num_get *this, istreambuf_iterator_wchar *ret, - istreambuf_iterator_wchar first, istreambuf_iterator_wchar last, struct _ios_base *base, int *state, MSVCP_bool *pval) + istreambuf_iterator_wchar first, istreambuf_iterator_wchar last, ios_base *base, int *state, MSVCP_bool *pval) { FIXME("(%p %p %p %p %p) stub\n", this, ret, base, state, pval); return ret; @@ -4492,7 +4491,7 @@ int __cdecl num_get_char__Getffld(num_get *this, char *dest, istreambuf_iterator /* ?_Getffldx@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@ABAHPADAAV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@1AAVios_base@2@PAH@Z */ /* ?_Getffldx@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@AEBAHPEADAEAV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@1AEAVios_base@2@PEAH@Z */ int __cdecl num_get_char__Getffldx(num_get *this, char *dest, istreambuf_iterator_char *first, - istreambuf_iterator_char *last, struct _ios_base *ios, int *phexexp) + istreambuf_iterator_char *last, ios_base *ios, int *phexexp) { FIXME("(%p %p %p %p %p) stub\n", dest, first, last, ios, phexexp); return -1; @@ -4520,7 +4519,7 @@ int __thiscall MSVCP_num_get_char__Hexdig(num_get *this, char dig, char e0, char /* ?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MEBA?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AEAVios_base@2@AEAHAEAPEAX@Z */ DEFINE_THISCALL_WRAPPER(num_get_char_do_get_void,36) istreambuf_iterator_char *__thiscall num_get_char_do_get_void(const num_get *this, istreambuf_iterator_char *ret, - istreambuf_iterator_char first, istreambuf_iterator_char last, struct _ios_base *base, int *state, void **pval) + istreambuf_iterator_char first, istreambuf_iterator_char last, ios_base *base, int *state, void **pval) { FIXME("(%p %p %p %p %p) stub\n", this, ret, base, state, pval); return ret; @@ -4530,7 +4529,7 @@ istreambuf_iterator_char *__thiscall num_get_char_do_get_void(const num_get *thi /* ?get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@QEBA?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AEAVios_base@2@AEAHAEAPEAX@Z */ DEFINE_THISCALL_WRAPPER(num_get_char_get_void,36) istreambuf_iterator_char *__thiscall num_get_char_get_void(const num_get *this, istreambuf_iterator_char *ret, - istreambuf_iterator_char first, istreambuf_iterator_char last, struct _ios_base *base, int *state, void **pval) + istreambuf_iterator_char first, istreambuf_iterator_char last, ios_base *base, int *state, void **pval) { FIXME("(%p %p %p %p %p) stub\n", this, ret, base, state, pval); return ret; @@ -4542,7 +4541,7 @@ istreambuf_iterator_char *__thiscall num_get_char_get_void(const num_get *this, /* ?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MEBA?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AEAVios_base@2@AEAHAEAN@Z */ DEFINE_THISCALL_WRAPPER(num_get_char_do_get_double,36) istreambuf_iterator_char *__thiscall num_get_char_do_get_double(const num_get *this, istreambuf_iterator_char *ret, - istreambuf_iterator_char first, istreambuf_iterator_char last, struct _ios_base *base, int *state, double *pval) + istreambuf_iterator_char first, istreambuf_iterator_char last, ios_base *base, int *state, double *pval) { FIXME("(%p %p %p %p %p) stub\n", this, ret, base, state, pval); return ret; @@ -4552,7 +4551,7 @@ istreambuf_iterator_char *__thiscall num_get_char_do_get_double(const num_get *t /* ?get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@QEBA?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AEAVios_base@2@AEAHAEAO@Z */ DEFINE_THISCALL_WRAPPER(num_get_char_get_ldouble,36) istreambuf_iterator_char *__thiscall num_get_char_get_ldouble(const num_get *this, istreambuf_iterator_char *ret, - istreambuf_iterator_char first, istreambuf_iterator_char last, struct _ios_base *base, int *state, double *pval) + istreambuf_iterator_char first, istreambuf_iterator_char last, ios_base *base, int *state, double *pval) { FIXME("(%p %p %p %p %p) stub\n", this, ret, base, state, pval); return ret; @@ -4562,7 +4561,7 @@ istreambuf_iterator_char *__thiscall num_get_char_get_ldouble(const num_get *thi /* ?get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@QEBA?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AEAVios_base@2@AEAHAEAN@Z */ DEFINE_THISCALL_WRAPPER(num_get_char_get_double,36) istreambuf_iterator_char *__thiscall num_get_char_get_double(const num_get *this, istreambuf_iterator_char *ret, - istreambuf_iterator_char first, istreambuf_iterator_char last, struct _ios_base *base, int *state, double *pval) + istreambuf_iterator_char first, istreambuf_iterator_char last, ios_base *base, int *state, double *pval) { FIXME("(%p %p %p %p %p) stub\n", this, ret, base, state, pval); return ret; @@ -4572,7 +4571,7 @@ istreambuf_iterator_char *__thiscall num_get_char_get_double(const num_get *this /* ?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MEBA?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AEAVios_base@2@AEAHAEAM@Z */ DEFINE_THISCALL_WRAPPER(num_get_char_do_get_float,36) istreambuf_iterator_char *__thiscall num_get_char_do_get_float(const num_get *this, istreambuf_iterator_char *ret, - istreambuf_iterator_char first, istreambuf_iterator_char last, struct _ios_base *base, int *state, float *pval) + istreambuf_iterator_char first, istreambuf_iterator_char last, ios_base *base, int *state, float *pval) { FIXME("(%p %p %p %p %p) stub\n", this, ret, base, state, pval); return ret; @@ -4582,7 +4581,7 @@ istreambuf_iterator_char *__thiscall num_get_char_do_get_float(const num_get *th /* ?get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@QEBA?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AEAVios_base@2@AEAHAEAM@Z */ DEFINE_THISCALL_WRAPPER(num_get_char_get_float,36) istreambuf_iterator_char *__thiscall num_get_char_get_float(const num_get *this, istreambuf_iterator_char *ret, - istreambuf_iterator_char first, istreambuf_iterator_char last, struct _ios_base *base, int *state, float *pval) + istreambuf_iterator_char first, istreambuf_iterator_char last, ios_base *base, int *state, float *pval) { FIXME("(%p %p %p %p %p) stub\n", this, ret, base, state, pval); return ret; @@ -4592,7 +4591,7 @@ istreambuf_iterator_char *__thiscall num_get_char_get_float(const num_get *this, /* ?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MEBA?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AEAVios_base@2@AEAHAEA_K@Z */ DEFINE_THISCALL_WRAPPER(num_get_char_do_get_uint64,36) istreambuf_iterator_char *__thiscall num_get_char_do_get_uint64(const num_get *this, istreambuf_iterator_char *ret, - istreambuf_iterator_char first, istreambuf_iterator_char last, struct _ios_base *base, int *state, ULONGLONG *pval) + istreambuf_iterator_char first, istreambuf_iterator_char last, ios_base *base, int *state, ULONGLONG *pval) { FIXME("(%p %p %p %p %p) stub\n", this, ret, base, state, pval); return ret; @@ -4602,7 +4601,7 @@ istreambuf_iterator_char *__thiscall num_get_char_do_get_uint64(const num_get *t /* ?get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@QEBA?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AEAVios_base@2@AEAHAEA_K@Z */ DEFINE_THISCALL_WRAPPER(num_get_char_get_uint64,36) istreambuf_iterator_char *__thiscall num_get_char_get_uint64(const num_get *this, istreambuf_iterator_char *ret, - istreambuf_iterator_char first, istreambuf_iterator_char last, struct _ios_base *base, int *state, ULONGLONG *pval) + istreambuf_iterator_char first, istreambuf_iterator_char last, ios_base *base, int *state, ULONGLONG *pval) { FIXME("(%p %p %p %p %p) stub\n", this, ret, base, state, pval); return ret; @@ -4612,7 +4611,7 @@ istreambuf_iterator_char *__thiscall num_get_char_get_uint64(const num_get *this /* ?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MEBA?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AEAVios_base@2@AEAHAEA_J@Z */ DEFINE_THISCALL_WRAPPER(num_get_char_do_get_int64,36) istreambuf_iterator_char *__thiscall num_get_char_do_get_int64(const num_get *this, istreambuf_iterator_char *ret, - istreambuf_iterator_char first, istreambuf_iterator_char last, struct _ios_base *base, int *state, LONGLONG *pval) + istreambuf_iterator_char first, istreambuf_iterator_char last, ios_base *base, int *state, LONGLONG *pval) { FIXME("(%p %p %p %p %p) stub\n", this, ret, base, state, pval); return ret; @@ -4622,7 +4621,7 @@ istreambuf_iterator_char *__thiscall num_get_char_do_get_int64(const num_get *th /* ?get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@QEBA?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AEAVios_base@2@AEAHAEA_J@Z */ DEFINE_THISCALL_WRAPPER(num_get_char_get_int64,36) istreambuf_iterator_char *__thiscall num_get_char_get_int64(const num_get *this, istreambuf_iterator_char *ret, - istreambuf_iterator_char first, istreambuf_iterator_char last, struct _ios_base *base, int *state, LONGLONG *pval) + istreambuf_iterator_char first, istreambuf_iterator_char last, ios_base *base, int *state, LONGLONG *pval) { FIXME("(%p %p %p %p %p) stub\n", this, ret, base, state, pval); return ret; @@ -4632,7 +4631,7 @@ istreambuf_iterator_char *__thiscall num_get_char_get_int64(const num_get *this, /* ?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MEBA?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AEAVios_base@2@AEAHAEAK@Z */ DEFINE_THISCALL_WRAPPER(num_get_char_do_get_ulong,36) istreambuf_iterator_char *__thiscall num_get_char_do_get_ulong(const num_get *this, istreambuf_iterator_char *ret, - istreambuf_iterator_char first, istreambuf_iterator_char last, struct _ios_base *base, int *state, ULONG *pval) + istreambuf_iterator_char first, istreambuf_iterator_char last, ios_base *base, int *state, ULONG *pval) { FIXME("(%p %p %p %p %p) stub\n", this, ret, base, state, pval); return ret; @@ -4642,7 +4641,7 @@ istreambuf_iterator_char *__thiscall num_get_char_do_get_ulong(const num_get *th /* ?get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@QEBA?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AEAVios_base@2@AEAHAEAK@Z */ DEFINE_THISCALL_WRAPPER(num_get_char_get_ulong,36) istreambuf_iterator_char *__thiscall num_get_char_get_ulong(const num_get *this, istreambuf_iterator_char *ret, - istreambuf_iterator_char first, istreambuf_iterator_char last, struct _ios_base *base, int *state, ULONG *pval) + istreambuf_iterator_char first, istreambuf_iterator_char last, ios_base *base, int *state, ULONG *pval) { FIXME("(%p %p %p %p %p) stub\n", this, ret, base, state, pval); return ret; @@ -4652,7 +4651,7 @@ istreambuf_iterator_char *__thiscall num_get_char_get_ulong(const num_get *this, /* ?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MEBA?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AEAVios_base@2@AEAHAEAJ@Z */ DEFINE_THISCALL_WRAPPER(num_get_char_do_get_long,36) istreambuf_iterator_char *__thiscall num_get_char_do_get_long(const num_get *this, istreambuf_iterator_char *ret, - istreambuf_iterator_char first, istreambuf_iterator_char last, struct _ios_base *base, int *state, LONG *pval) + istreambuf_iterator_char first, istreambuf_iterator_char last, ios_base *base, int *state, LONG *pval) { FIXME("(%p %p %p %p %p) stub\n", this, ret, base, state, pval); return ret; @@ -4662,7 +4661,7 @@ istreambuf_iterator_char *__thiscall num_get_char_do_get_long(const num_get *thi /* ?get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@QEBA?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AEAVios_base@2@AEAHAEAJ@Z */ DEFINE_THISCALL_WRAPPER(num_get_char_get_long,36) istreambuf_iterator_char *__thiscall num_get_char_get_long(const num_get *this, istreambuf_iterator_char *ret, - istreambuf_iterator_char first, istreambuf_iterator_char last, struct _ios_base *base, int *state, LONG *pval) + istreambuf_iterator_char first, istreambuf_iterator_char last, ios_base *base, int *state, LONG *pval) { FIXME("(%p %p %p %p %p) stub\n", this, ret, base, state, pval); return ret; @@ -4672,7 +4671,7 @@ istreambuf_iterator_char *__thiscall num_get_char_get_long(const num_get *this, /* ?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MEBA?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AEAVios_base@2@AEAHAEAI@Z */ DEFINE_THISCALL_WRAPPER(num_get_char_do_get_uint,36) istreambuf_iterator_char *__thiscall num_get_char_do_get_uint(const num_get *this, istreambuf_iterator_char *ret, - istreambuf_iterator_char first, istreambuf_iterator_char last, struct _ios_base *base, int *state, unsigned int *pval) + istreambuf_iterator_char first, istreambuf_iterator_char last, ios_base *base, int *state, unsigned int *pval) { FIXME("(%p %p %p %p %p) stub\n", this, ret, base, state, pval); return ret; @@ -4682,7 +4681,7 @@ istreambuf_iterator_char *__thiscall num_get_char_do_get_uint(const num_get *thi /* ?get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@QEBA?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AEAVios_base@2@AEAHAEAI@Z */ DEFINE_THISCALL_WRAPPER(num_get_char_get_uint,36) istreambuf_iterator_char *__thiscall num_get_char_get_uint(const num_get *this, istreambuf_iterator_char *ret, - istreambuf_iterator_char first, istreambuf_iterator_char last, struct _ios_base *base, int *state, unsigned int *pval) + istreambuf_iterator_char first, istreambuf_iterator_char last, ios_base *base, int *state, unsigned int *pval) { FIXME("(%p %p %p %p %p) stub\n", this, ret, base, state, pval); return ret; @@ -4692,7 +4691,7 @@ istreambuf_iterator_char *__thiscall num_get_char_get_uint(const num_get *this, /* ?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MEBA?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AEAVios_base@2@AEAHAEAG@Z */ DEFINE_THISCALL_WRAPPER(num_get_char_do_get_ushort,36) istreambuf_iterator_char *__thiscall num_get_char_do_get_ushort(const num_get *this, istreambuf_iterator_char *ret, - istreambuf_iterator_char first, istreambuf_iterator_char last, struct _ios_base *base, int *state, unsigned short *pval) + istreambuf_iterator_char first, istreambuf_iterator_char last, ios_base *base, int *state, unsigned short *pval) { FIXME("(%p %p %p %p %p) stub\n", this, ret, base, state, pval); return ret; @@ -4702,7 +4701,7 @@ istreambuf_iterator_char *__thiscall num_get_char_do_get_ushort(const num_get *t /* ?get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@QEBA?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AEAVios_base@2@AEAHAEAG@Z */ DEFINE_THISCALL_WRAPPER(num_get_char_get_ushort,36) istreambuf_iterator_char *__thiscall num_get_char_get_ushort(const num_get *this, istreambuf_iterator_char *ret, - istreambuf_iterator_char first, istreambuf_iterator_char last, struct _ios_base *base, int *state, unsigned short *pval) + istreambuf_iterator_char first, istreambuf_iterator_char last, ios_base *base, int *state, unsigned short *pval) { FIXME("(%p %p %p %p %p) stub\n", this, ret, base, state, pval); return ret; @@ -4712,7 +4711,7 @@ istreambuf_iterator_char *__thiscall num_get_char_get_ushort(const num_get *this /* ?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MEBA?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AEAVios_base@2@AEAHAEA_N@Z */ DEFINE_THISCALL_WRAPPER(num_get_char_do_get_bool,36) istreambuf_iterator_char *__thiscall num_get_char_do_get_bool(const num_get *this, istreambuf_iterator_char *ret, - istreambuf_iterator_char first, istreambuf_iterator_char last, struct _ios_base *base, int *state, MSVCP_bool *pval) + istreambuf_iterator_char first, istreambuf_iterator_char last, ios_base *base, int *state, MSVCP_bool *pval) { FIXME("(%p %p %p %p %p) stub\n", this, ret, base, state, pval); return ret; @@ -4722,7 +4721,7 @@ istreambuf_iterator_char *__thiscall num_get_char_do_get_bool(const num_get *thi /* ?get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@QEBA?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AEAVios_base@2@AEAHAEA_N@Z */ DEFINE_THISCALL_WRAPPER(num_get_char_get_bool,36) istreambuf_iterator_char *__thiscall num_get_char_get_bool(const num_get *this, istreambuf_iterator_char *ret, - istreambuf_iterator_char first, istreambuf_iterator_char last, struct _ios_base *base, int *state, MSVCP_bool *pval) + istreambuf_iterator_char first, istreambuf_iterator_char last, ios_base *base, int *state, MSVCP_bool *pval) { FIXME("(%p %p %p %p %p) stub\n", this, ret, base, state, pval); return ret; diff --git a/dlls/msvcp90/msvcp90.h b/dlls/msvcp90/msvcp90.h index 2860a247082..2dde3300074 100644 --- a/dlls/msvcp90/msvcp90.h +++ b/dlls/msvcp90/msvcp90.h @@ -397,5 +397,92 @@ void __thiscall mutex_dtor(mutex*); void __thiscall mutex_lock(mutex*); void __thiscall mutex_unlock(mutex*); +typedef enum { + FMTFLAG_skipws = 0x0001, + FMTFLAG_unitbuf = 0x0002, + FMTFLAG_uppercase = 0x0004, + FMTFLAG_showbase = 0x0008, + FMTFLAG_showpoint = 0x0010, + FMTFLAG_showpos = 0x0020, + FMTFLAG_left = 0x0040, + FMTFLAG_right = 0x0080, + FMTFLAG_internal = 0x0100, + FMTFLAG_dec = 0x0200, + FMTFLAG_oct = 0x0400, + FMTFLAG_hex = 0x0800, + FMTFLAG_scientific = 0x1000, + FMTFLAG_fixed = 0x2000, + FMTFLAG_hexfloat = 0x3000, + FMTFLAG_boolalpha = 0x4000, + FMTFLAG_stdio = 0x8000, + FMTFLAG_adjustfield = FMTFLAG_left|FMTFLAG_right|FMTFLAG_internal, + FMTFLAG_basefield = FMTFLAG_dec|FMTFLAG_oct|FMTFLAG_hex, + FMTFLAG_floadfield = FMTFLAG_scientific|FMTFLAG_fixed, + FMTFLAG_mask = 0xffff +} IOSB_fmtflags; + +typedef enum { + OPENMODE_in = 0x01, + OPENMODE_out = 0x02, + OPENMODE_ate = 0x04, + OPENMODE_app = 0x08, + OPENMODE_trunc = 0x10, + OPENMODE__Nocreate = 0x40, + OPENMODE__Noreplace = 0x80, + OPENMODE_binary = 0x20, + OPENMODE_mask = 0xff +} IOSB_openmode; + +typedef enum { + SEEKDIR_beg = 0x1, + SEEKDIR_cur = 0x2, + SEEKDIR_end = 0x3, + SEEKDIR_mask = 0x3 +} IOSB_seekdir; + +typedef enum { + IOSTATE_goodbit = 0x00, + IOSTATE_eofbit = 0x01, + IOSTATE_failbit = 0x02, + IOSTATE_badbit = 0x04, + IOSTATE__Hardfail = 0x10, + IOSTATE_mask = 0x17 +} IOSB_iostate; + +typedef struct _iosarray { + struct _iosarray *next; + int index; + int long_val; + void *ptr_val; +} IOS_BASE_iosarray; + +typedef enum { + EVENT_erase_event, + EVENT_imbue_event, + EVENT_copyfmt_event +} IOS_BASE_event; + +struct _ios_base; +typedef void (CDECL *IOS_BASE_event_callback)(IOS_BASE_event, struct _ios_base*, int); +typedef struct _fnarray { + struct _fnarray *next; + int index; + IOS_BASE_event_callback event_handler; +} IOS_BASE_fnarray; + +/* class ios_base */ +typedef struct _ios_base { + const vtable_ptr *vtable; + MSVCP_size_t stdstr; + IOSB_iostate state; + IOSB_iostate except; + IOSB_fmtflags fmtfl; + streamsize prec; + streamsize wide; + IOS_BASE_iosarray *arr; + IOS_BASE_fnarray *calls; + locale *loc; +} ios_base; + void init_io(void); void free_io(void);