diff --git a/dlls/msvcp90/ios.c b/dlls/msvcp90/ios.c index 6e082f5e079..1654042d749 100644 --- a/dlls/msvcp90/ios.c +++ b/dlls/msvcp90/ios.c @@ -66,6 +66,16 @@ typedef struct { FILE *file; } basic_filebuf_char; +typedef struct { + basic_streambuf_wchar base; + codecvt_wchar *cvt; + wchar_t putback; + MSVCP_bool wrotesome; + int state; + MSVCP_bool close; + FILE *file; +} basic_filebuf_wchar; + typedef enum { STRINGBUF_allocated = 1, STRINGBUF_no_write = 2, @@ -246,6 +256,12 @@ extern const vtable_ptr MSVCP_basic_streambuf_short_vtable; /* ??_7?$basic_filebuf@DU?$char_traits@D@std@@@std@@6B@ */ extern const vtable_ptr MSVCP_basic_filebuf_char_vtable; +/* ??_7?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@6B@ */ +extern const vtable_ptr MSVCP_basic_filebuf_wchar_vtable; + +/* ??_7?$basic_filebuf@GU?$char_traits@G@std@@@std@@6B@ */ +extern const vtable_ptr MSVCP_basic_filebuf_short_vtable; + /* ??_7?$basic_stringbuf@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@6B@ */ extern const vtable_ptr MSVCP_basic_stringbuf_char_vtable; @@ -355,6 +371,10 @@ DEFINE_RTTI_DATA0(basic_streambuf_wchar, 0, DEFINE_RTTI_DATA0(basic_streambuf_short, 0, ".?AV?$basic_streambuf@GU?$char_traits@G@std@@@std@@"); DEFINE_RTTI_DATA1(basic_filebuf_char, 0, &basic_streambuf_char_rtti_base_descriptor, + ".?AV?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@"); +DEFINE_RTTI_DATA1(basic_filebuf_wchar, 0, &basic_streambuf_wchar_rtti_base_descriptor, + ".?AV?$basic_filebuf@GU?$char_traits@G@std@@@std@@"); +DEFINE_RTTI_DATA1(basic_filebuf_short, 0, &basic_streambuf_short_rtti_base_descriptor, ".?AV?$basic_filebuf@DU?$char_traits@D@std@@@std@@"); DEFINE_RTTI_DATA1(basic_stringbuf_char, 0, &basic_streambuf_char_rtti_base_descriptor, ".?AV?$basic_stringbuf@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@"); @@ -493,6 +513,34 @@ void __asm_dummy_vtables(void) { VTABLE_ADD_FUNC(basic_filebuf_char_setbuf) VTABLE_ADD_FUNC(basic_filebuf_char_sync) VTABLE_ADD_FUNC(basic_filebuf_char_imbue)); + __ASM_VTABLE(basic_filebuf_wchar, + VTABLE_ADD_FUNC(basic_filebuf_wchar_overflow) + VTABLE_ADD_FUNC(basic_filebuf_wchar_pbackfail) + VTABLE_ADD_FUNC(basic_streambuf_wchar_showmanyc) + VTABLE_ADD_FUNC(basic_filebuf_wchar_underflow) + VTABLE_ADD_FUNC(basic_filebuf_wchar_uflow) + VTABLE_ADD_FUNC(basic_streambuf_wchar_xsgetn) + VTABLE_ADD_FUNC(basic_streambuf_wchar__Xsgetn_s) + VTABLE_ADD_FUNC(basic_streambuf_wchar_xsputn) + VTABLE_ADD_FUNC(basic_filebuf_wchar_seekoff) + VTABLE_ADD_FUNC(basic_filebuf_wchar_seekpos) + VTABLE_ADD_FUNC(basic_filebuf_wchar_setbuf) + VTABLE_ADD_FUNC(basic_filebuf_wchar_sync) + VTABLE_ADD_FUNC(basic_filebuf_wchar_imbue)); + __ASM_VTABLE(basic_filebuf_short, + VTABLE_ADD_FUNC(basic_filebuf_wchar_overflow) + VTABLE_ADD_FUNC(basic_filebuf_wchar_pbackfail) + VTABLE_ADD_FUNC(basic_streambuf_wchar_showmanyc) + VTABLE_ADD_FUNC(basic_filebuf_wchar_underflow) + VTABLE_ADD_FUNC(basic_filebuf_wchar_uflow) + VTABLE_ADD_FUNC(basic_streambuf_wchar_xsgetn) + VTABLE_ADD_FUNC(basic_streambuf_wchar__Xsgetn_s) + VTABLE_ADD_FUNC(basic_streambuf_wchar_xsputn) + VTABLE_ADD_FUNC(basic_filebuf_wchar_seekoff) + VTABLE_ADD_FUNC(basic_filebuf_wchar_seekpos) + VTABLE_ADD_FUNC(basic_filebuf_short_setbuf) + VTABLE_ADD_FUNC(basic_filebuf_wchar_sync) + VTABLE_ADD_FUNC(basic_filebuf_short_imbue)); __ASM_VTABLE(basic_stringbuf_char, VTABLE_ADD_FUNC(basic_stringbuf_char_overflow) VTABLE_ADD_FUNC(basic_stringbuf_char_pbackfail) @@ -2401,7 +2449,9 @@ int __thiscall basic_filebuf_char_overflow(basic_filebuf_char *this, int c) default: return EOF; } - } while(0); + + break; + } while(1); max_size = codecvt_base_max_length(&this->cvt->base); dyn_buf = malloc(max_size); @@ -2468,7 +2518,7 @@ int __thiscall basic_filebuf_char_uflow(basic_filebuf_char *this) return c; buf_next = buf; - for(i=0; i < sizeof(buf)/sizeof(char); i++) { + for(i=0; i < sizeof(buf)/sizeof(buf[0]); i++) { buf[i] = c; switch(codecvt_char_in(this->cvt, &this->state, buf_next, @@ -2606,6 +2656,662 @@ void __thiscall basic_filebuf_char_imbue(basic_filebuf_char *this, const locale basic_filebuf_char__Initcvt(this, codecvt_char_use_facet(loc)); } +/* ?_Stinit@?1??_Init@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@IAEXPAU_iobuf@@W4_Initfl@23@@Z@4HA */ +/* ?_Stinit@?1??_Init@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@IEAAXPEAU_iobuf@@W4_Initfl@23@@Z@4HA */ +int basic_filebuf_wchar__Init__Stinit = 0; + +/* ?_Stinit@?1??_Init@?$basic_filebuf@GU?$char_traits@G@std@@@std@@IAEXPAU_iobuf@@W4_Initfl@23@@Z@4HA */ +/* ?_Stinit@?1??_Init@?$basic_filebuf@GU?$char_traits@G@std@@@std@@IEAAXPEAU_iobuf@@W4_Initfl@23@@Z@4HA */ +int basic_filebuf_short__Init__Stinit = 0; + +/* ?_Init@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@IAEXPAU_iobuf@@W4_Initfl@12@@Z */ +/* ?_Init@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@IEAAXPEAU_iobuf@@W4_Initfl@12@@Z */ +DEFINE_THISCALL_WRAPPER(basic_filebuf_wchar__Init, 12) +void __thiscall basic_filebuf_wchar__Init(basic_filebuf_wchar *this, FILE *file, basic_filebuf__Initfl which) +{ + TRACE("(%p %p %d)\n", this, file, which); + + this->cvt = NULL; + this->wrotesome = FALSE; + this->state = basic_filebuf_wchar__Init__Stinit; + this->close = (which == INITFL_open); + this->file = file; + + basic_streambuf_wchar__Init_empty(&this->base); +} + +/* ?_Init@?$basic_filebuf@GU?$char_traits@G@std@@@std@@IAEXPAU_iobuf@@W4_Initfl@12@@Z */ +/* ?_Init@?$basic_filebuf@GU?$char_traits@G@std@@@std@@IEAAXPEAU_iobuf@@W4_Initfl@12@@Z */ +DEFINE_THISCALL_WRAPPER(basic_filebuf_short__Init, 12) +void __thiscall basic_filebuf_short__Init(basic_filebuf_wchar *this, FILE *file, basic_filebuf__Initfl which) +{ + TRACE("(%p %p %d)\n", this, file, which); + + this->cvt = NULL; + this->wrotesome = FALSE; + this->state = basic_filebuf_short__Init__Stinit; + this->close = (which == INITFL_open); + this->file = file; + + basic_streambuf_wchar__Init_empty(&this->base); +} + +/* ?_Initcvt@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@IAEXPAV?$codecvt@_WDH@2@@Z */ +/* ?_Initcvt@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@IEAAXPEAV?$codecvt@_WDH@2@@Z */ +/* ?_Initcvt@?$basic_filebuf@GU?$char_traits@G@std@@@std@@IAEXPAV?$codecvt@GDH@2@@Z */ +/* ?_Initcvt@?$basic_filebuf@GU?$char_traits@G@std@@@std@@IEAAXPEAV?$codecvt@GDH@2@@Z */ +DEFINE_THISCALL_WRAPPER(basic_filebuf_wchar__Initcvt, 8) +void __thiscall basic_filebuf_wchar__Initcvt(basic_filebuf_wchar *this, codecvt_wchar *cvt) +{ + TRACE("(%p %p)\n", this, cvt); + + if(codecvt_base_always_noconv(&cvt->base)) { + this->cvt = NULL; + }else { + basic_streambuf_wchar__Init_empty(&this->base); + this->cvt = cvt; + } +} + +/* ?_Endwrite@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@IAE_NXZ */ +/* ?_Endwrite@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@IEAA_NXZ */ +/* ?_Endwrite@?$basic_filebuf@GU?$char_traits@G@std@@@std@@IAE_NXZ */ +/* ?_Endwrite@?$basic_filebuf@GU?$char_traits@G@std@@@std@@IEAA_NXZ */ +DEFINE_THISCALL_WRAPPER(basic_filebuf_wchar__Endwrite, 4) +MSVCP_bool __thiscall basic_filebuf_wchar__Endwrite(basic_filebuf_wchar *this) +{ + TRACE("(%p)\n", this); + + if(!this->wrotesome || !this->cvt) + return TRUE; + + if(call_basic_streambuf_wchar_overflow(&this->base, WEOF) == WEOF) + return FALSE; + + while(1) { + /* TODO: check if we need a dynamic buffer here */ + char buf[128]; + char *next; + int ret; + + ret = codecvt_wchar_unshift(this->cvt, &this->state, buf, buf+sizeof(buf), &next); + switch(ret) { + case CODECVT_ok: + this->wrotesome = FALSE; + /* fall through */ + case CODECVT_partial: + if(!fwrite(buf, next-buf, 1, this->file)) + return FALSE; + if(this->wrotesome) + break; + /* fall through */ + case CODECVT_noconv: + if(call_basic_streambuf_wchar_overflow(&this->base, WEOF) == WEOF) + return FALSE; + return TRUE; + default: + return FALSE; + } + } +} + +/* ?close@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@QAEPAV12@XZ */ +/* ?close@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@QEAAPEAV12@XZ */ +/* ?close@?$basic_filebuf@GU?$char_traits@G@std@@@std@@QAEPAV12@XZ */ +/* ?close@?$basic_filebuf@GU?$char_traits@G@std@@@std@@QEAAPEAV12@XZ */ +DEFINE_THISCALL_WRAPPER(basic_filebuf_wchar_close, 4) +basic_filebuf_wchar* __thiscall basic_filebuf_wchar_close(basic_filebuf_wchar *this) +{ + basic_filebuf_wchar *ret = this; + + TRACE("(%p)\n", this); + + if(!this->file) + return NULL; + + /* TODO: handle exceptions */ + if(!basic_filebuf_wchar__Endwrite(this)) + ret = NULL; + if(!fclose(this->file)) + ret = NULL; + + basic_filebuf_wchar__Init(this, NULL, INITFL_close); + return ret; +} + +/* ??0?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@QAE@PAU_iobuf@@@Z */ +/* ??0?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@QEAA@PEAU_iobuf@@@Z */ +DEFINE_THISCALL_WRAPPER(basic_filebuf_wchar_ctor_file, 8) +basic_filebuf_wchar* __thiscall basic_filebuf_wchar_ctor_file(basic_filebuf_wchar *this, FILE *file) +{ + TRACE("(%p %p)\n", this, file); + + basic_streambuf_wchar_ctor(&this->base); + this->base.vtable = &MSVCP_basic_filebuf_wchar_vtable; + + basic_filebuf_wchar__Init(this, file, INITFL_new); + return this; +} + +/* ??0?$basic_filebuf@GU?$char_traits@G@std@@@std@@QAE@PAU_iobuf@@@Z */ +/* ??0?$basic_filebuf@GU?$char_traits@G@std@@@std@@QEAA@PEAU_iobuf@@@Z */ +DEFINE_THISCALL_WRAPPER(basic_filebuf_short_ctor_file, 8) +basic_filebuf_wchar* __thiscall basic_filebuf_short_ctor_file(basic_filebuf_wchar *this, FILE *file) +{ + TRACE("(%p %p)\n", this, file); + + basic_streambuf_short_ctor(&this->base); + this->base.vtable = &MSVCP_basic_filebuf_short_vtable; + + basic_filebuf_short__Init(this, file, INITFL_new); + return this; +} + +/* ??_F?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@QAEXXZ */ +/* ??_F?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@QEAAXXZ */ +DEFINE_THISCALL_WRAPPER(basic_filebuf_wchar_ctor, 4) +basic_filebuf_wchar* __thiscall basic_filebuf_wchar_ctor(basic_filebuf_wchar *this) +{ + return basic_filebuf_wchar_ctor_file(this, NULL); +} + +/* ??_F?$basic_filebuf@GU?$char_traits@G@std@@@std@@QAEXXZ */ +/* ??_F?$basic_filebuf@GU?$char_traits@G@std@@@std@@QEAAXXZ */ +DEFINE_THISCALL_WRAPPER(basic_filebuf_short_ctor, 4) +basic_filebuf_wchar* __thiscall basic_filebuf_short_ctor(basic_filebuf_wchar *this) +{ + return basic_filebuf_short_ctor_file(this, NULL); +} + +/* ??0?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@QAE@W4_Uninitialized@1@@Z */ +/* ??0?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@QEAA@W4_Uninitialized@1@@Z */ +DEFINE_THISCALL_WRAPPER(basic_filebuf_wchar_ctor_uninitialized, 8) +basic_filebuf_wchar* __thiscall basic_filebuf_wchar_ctor_uninitialized(basic_filebuf_wchar *this, int uninitialized) +{ + TRACE("(%p %d)\n", this, uninitialized); + + basic_streambuf_wchar_ctor(&this->base); + this->base.vtable = &MSVCP_basic_filebuf_wchar_vtable; + return this; +} + +/* ??0?$basic_filebuf@GU?$char_traits@G@std@@@std@@QAE@W4_Uninitialized@1@@Z */ +/* ??0?$basic_filebuf@GU?$char_traits@G@std@@@std@@QEAA@W4_Uninitialized@1@@Z */ +DEFINE_THISCALL_WRAPPER(basic_filebuf_short_ctor_uninitialized, 8) +basic_filebuf_wchar* __thiscall basic_filebuf_short_ctor_uninitialized(basic_filebuf_wchar *this, int uninitialized) +{ + TRACE("(%p %d)\n", this, uninitialized); + + basic_streambuf_short_ctor(&this->base); + this->base.vtable = &MSVCP_basic_filebuf_short_vtable; + return this; +} + +/* ??1?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@UAE@XZ */ +/* ??1?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@UEAA@XZ */ +/* ??1?$basic_filebuf@GU?$char_traits@G@std@@@std@@UAE@XZ */ +/* ??1?$basic_filebuf@GU?$char_traits@G@std@@@std@@UEAA@XZ */ +DEFINE_THISCALL_WRAPPER(basic_filebuf_wchar_dtor, 4) +void __thiscall basic_filebuf_wchar_dtor(basic_filebuf_wchar *this) +{ + TRACE("(%p)\n", this); + + if(this->close) + basic_filebuf_wchar_close(this); + basic_streambuf_wchar_dtor(&this->base); +} + +DEFINE_THISCALL_WRAPPER(MSVCP_basic_filebuf_wchar_vector_dtor, 8) +basic_filebuf_wchar* __thiscall MSVCP_basic_filebuf_wchar_vector_dtor(basic_filebuf_wchar *this, unsigned int flags) +{ + TRACE("(%p %x)\n", this, flags); + if(flags & 2) { + /* we have an array, with the number of elements stored before the first object */ + int i, *ptr = (int *)this-1; + + for(i=*ptr-1; i>=0; i--) + basic_filebuf_wchar_dtor(this+i); + MSVCRT_operator_delete(ptr); + } else { + basic_filebuf_wchar_dtor(this); + if(flags & 1) + MSVCRT_operator_delete(this); + } + + return this; +} + +DEFINE_THISCALL_WRAPPER(MSVCP_basic_filebuf_short_vector_dtor, 8) +basic_filebuf_wchar* __thiscall MSVCP_basic_filebuf_short_vector_dtor(basic_filebuf_wchar *this, unsigned int flags) +{ + return MSVCP_basic_filebuf_wchar_vector_dtor(this, flags); +} + +/* ?is_open@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@QBE_NXZ */ +/* ?is_open@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@QEBA_NXZ */ +/* ?is_open@?$basic_filebuf@GU?$char_traits@G@std@@@std@@QBE_NXZ */ +/* ?is_open@?$basic_filebuf@GU?$char_traits@G@std@@@std@@QEBA_NXZ */ +DEFINE_THISCALL_WRAPPER(basic_filebuf_wchar_is_open, 4) +MSVCP_bool __thiscall basic_filebuf_wchar_is_open(const basic_filebuf_wchar *this) +{ + TRACE("(%p)\n", this); + return this->file != NULL; +} + +/* ?open@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@QAEPAV12@PB_WHH@Z */ +/* ?open@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@QEAAPEAV12@PEB_WHH@Z */ +/* ?open@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@QAEPAV12@PBGHH@Z */ +/* ?open@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@QEAAPEAV12@PEBGHH@Z */ +DEFINE_THISCALL_WRAPPER(basic_filebuf_wchar_open_wchar, 16) +basic_filebuf_wchar* __thiscall basic_filebuf_wchar_open_wchar(basic_filebuf_wchar *this, const wchar_t *name, int mode, int prot) +{ + FILE *f = NULL; + + TRACE("(%p %s %d %d)\n", this, debugstr_w(name), mode, prot); + + if(basic_filebuf_wchar_is_open(this)) + return NULL; + + if(!(f = _Fiopen_wchar(name, mode, prot))) + return NULL; + + basic_filebuf_wchar__Init(this, f, INITFL_open); + basic_filebuf_wchar__Initcvt(this, codecvt_wchar_use_facet(this->base.loc)); + return this; +} + +/* ?open@?$basic_filebuf@GU?$char_traits@G@std@@@std@@QAEPAV12@PB_WHH@Z */ +/* ?open@?$basic_filebuf@GU?$char_traits@G@std@@@std@@QEAAPEAV12@PEB_WHH@Z */ +/* ?open@?$basic_filebuf@GU?$char_traits@G@std@@@std@@QAEPAV12@PBGHH@Z */ +/* ?open@?$basic_filebuf@GU?$char_traits@G@std@@@std@@QEAAPEAV12@PEBGHH@Z */ +DEFINE_THISCALL_WRAPPER(basic_filebuf_short_open_wchar, 16) +basic_filebuf_wchar* __thiscall basic_filebuf_short_open_wchar(basic_filebuf_wchar *this, const wchar_t *name, int mode, int prot) +{ + FILE *f = NULL; + + TRACE("(%p %s %d %d)\n", this, debugstr_w(name), mode, prot); + + if(basic_filebuf_wchar_is_open(this)) + return NULL; + + if(!(f = _Fiopen_wchar(name, mode, prot))) + return NULL; + + basic_filebuf_short__Init(this, f, INITFL_open); + basic_filebuf_wchar__Initcvt(this, codecvt_short_use_facet(this->base.loc)); + return this; +} + +/* ?open@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@QAEPAV12@PB_WI@Z */ +/* ?open@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@QEAAPEAV12@PEB_WI@Z */ +/* ?open@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@QAEPAV12@PBGI@Z */ +/* ?open@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@QEAAPEAV12@PEBGI@Z */ +DEFINE_THISCALL_WRAPPER(basic_filebuf_wchar_open_wchar_mode, 12) +basic_filebuf_wchar* __thiscall basic_filebuf_wchar_open_wchar_mode(basic_filebuf_wchar *this, const wchar_t *name, unsigned int mode) +{ + return basic_filebuf_wchar_open_wchar(this, name, mode, SH_DENYNO); +} + +/* ?open@?$basic_filebuf@GU?$char_traits@G@std@@@std@@QAEPAV12@PB_WI@Z */ +/* ?open@?$basic_filebuf@GU?$char_traits@G@std@@@std@@QEAAPEAV12@PEB_WI@Z */ +/* ?open@?$basic_filebuf@GU?$char_traits@G@std@@@std@@QAEPAV12@PBGI@Z */ +/* ?open@?$basic_filebuf@GU?$char_traits@G@std@@@std@@QEAAPEAV12@PEBGI@Z */ +DEFINE_THISCALL_WRAPPER(basic_filebuf_short_open_wchar_mode, 12) +basic_filebuf_wchar* __thiscall basic_filebuf_short_open_wchar_mode(basic_filebuf_wchar *this, const wchar_t *name, unsigned int mode) +{ + return basic_filebuf_short_open_wchar(this, name, mode, SH_DENYNO); +} + +/* ?open@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@QAEPAV12@PBDHH@Z */ +/* ?open@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@QEAAPEAV12@PEBDHH@Z */ +DEFINE_THISCALL_WRAPPER(basic_filebuf_wchar_open, 16) +basic_filebuf_wchar* __thiscall basic_filebuf_wchar_open(basic_filebuf_wchar *this, const char *name, int mode, int prot) +{ + wchar_t nameW[FILENAME_MAX]; + + TRACE("(%p %s %d %d)\n", this, name, mode, prot); + + if(mbstowcs_s(NULL, nameW, FILENAME_MAX, name, FILENAME_MAX-1) != 0) + return NULL; + return basic_filebuf_wchar_open_wchar(this, nameW, mode, prot); +} + +/* ?open@?$basic_filebuf@GU?$char_traits@G@std@@@std@@QAEPAV12@PBDHH@Z */ +/* ?open@?$basic_filebuf@GU?$char_traits@G@std@@@std@@QEAAPEAV12@PEBDHH@Z */ +DEFINE_THISCALL_WRAPPER(basic_filebuf_short_open, 16) +basic_filebuf_wchar* __thiscall basic_filebuf_short_open(basic_filebuf_wchar *this, const char *name, int mode, int prot) +{ + wchar_t nameW[FILENAME_MAX]; + + TRACE("(%p %s %d %d)\n", this, name, mode, prot); + + if(mbstowcs_s(NULL, nameW, FILENAME_MAX, name, FILENAME_MAX-1) != 0) + return NULL; + return basic_filebuf_short_open_wchar(this, nameW, mode, prot); +} + +/* ?open@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@QAEPAV12@PBDI@Z */ +/* ?open@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@QEAAPEAV12@PEBDI@Z */ +DEFINE_THISCALL_WRAPPER(basic_filebuf_wchar_open_mode, 12) +basic_filebuf_wchar* __thiscall basic_filebuf_wchar_open_mode(basic_filebuf_wchar *this, const char *name, unsigned int mode) +{ + return basic_filebuf_wchar_open(this, name, mode, SH_DENYNO); +} + +/* ?open@?$basic_filebuf@GU?$char_traits@G@std@@@std@@QAEPAV12@PBDI@Z */ +/* ?open@?$basic_filebuf@GU?$char_traits@G@std@@@std@@QEAAPEAV12@PEBDI@Z */ +DEFINE_THISCALL_WRAPPER(basic_filebuf_short_open_mode, 12) +basic_filebuf_wchar* __thiscall basic_filebuf_short_open_mode(basic_filebuf_wchar *this, const char *name, unsigned int mode) +{ + return basic_filebuf_short_open(this, name, mode, SH_DENYNO); +} + +/* ?overflow@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@MAEGG@Z */ +/* ?overflow@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@MEAAGG@Z */ +/* ?overflow@?$basic_filebuf@GU?$char_traits@G@std@@@std@@MAEGG@Z */ +/* ?overflow@?$basic_filebuf@GU?$char_traits@G@std@@@std@@MEAAGG@Z */ +DEFINE_THISCALL_WRAPPER(basic_filebuf_wchar_overflow, 8) +unsigned short __thiscall basic_filebuf_wchar_overflow(basic_filebuf_wchar *this, unsigned short c) +{ + char buf[8], *dyn_buf, *to_next; + wchar_t ch = c; + const wchar_t *from_next; + int max_size; + unsigned short ret; + + + TRACE("(%p %d)\n", this, c); + + if(!basic_filebuf_wchar_is_open(this)) + return WEOF; + if(c == WEOF) + return !c; + + if(!this->cvt) + return fwrite(&ch, sizeof(wchar_t), 1, this->file) ? c : WEOF; + + from_next = &ch; + do { + ret = codecvt_wchar_out(this->cvt, &this->state, from_next, &ch+1, + &from_next, buf, buf+sizeof(buf), &to_next); + + switch(ret) { + case CODECVT_partial: + if(to_next == buf) + break; + /* fall through */ + case CODECVT_ok: + if(!fwrite(buf, to_next-buf, 1, this->file)) + return WEOF; + if(ret == CODECVT_partial) + continue; + return c; + case CODECVT_noconv: + return fwrite(&ch, sizeof(wchar_t), 1, this->file) ? c : WEOF; + default: + return WEOF; + } + + break; + } while(1); + + max_size = codecvt_base_max_length(&this->cvt->base); + dyn_buf = malloc(max_size); + if(!dyn_buf) + return WEOF; + + ret = codecvt_wchar_out(this->cvt, &this->state, from_next, &ch+1, + &from_next, dyn_buf, dyn_buf+max_size, &to_next); + + switch(ret) { + case CODECVT_ok: + ret = fwrite(dyn_buf, to_next-dyn_buf, 1, this->file); + free(dyn_buf); + return ret ? c : WEOF; + case CODECVT_partial: + ERR("buffer should be big enough to store all output\n"); + /* fall through */ + default: + free(dyn_buf); + return WEOF; + } +} + +/* ?pbackfail@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@MAEGG@Z */ +/* ?pbackfail@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@MEAAGG@Z */ +/* ?pbackfail@?$basic_filebuf@GU?$char_traits@G@std@@@std@@MAEGG@Z */ +/* ?pbackfail@?$basic_filebuf@GU?$char_traits@G@std@@@std@@MEAAGG@Z */ +DEFINE_THISCALL_WRAPPER(basic_filebuf_wchar_pbackfail, 8) +unsigned short __thiscall basic_filebuf_wchar_pbackfail(basic_filebuf_wchar *this, unsigned short c) +{ + TRACE("(%p %d)\n", this, c); + + if(!basic_filebuf_wchar_is_open(this)) + return WEOF; + + if(basic_streambuf_wchar_gptr(&this->base)>basic_streambuf_wchar_eback(&this->base) + && (c==WEOF || basic_streambuf_wchar_gptr(&this->base)[-1]==(wchar_t)c)) { + basic_streambuf_wchar__Gndec(&this->base); + return c==WEOF ? !c : c; + }else if(c!=WEOF && !this->cvt) { + return ungetwc(c, this->file); + }else if(c!=WEOF && basic_streambuf_wchar_gptr(&this->base)!=&this->putback) { + this->putback = c; + basic_streambuf_wchar_setg(&this->base, &this->putback, &this->putback, &this->putback+1); + return c; + } + + return WEOF; +} + +/* ?uflow@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@MAEGXZ */ +/* ?uflow@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@MEAAGXZ */ +/* ?uflow@?$basic_filebuf@GU?$char_traits@G@std@@@std@@MAEGXZ */ +/* ?uflow@?$basic_filebuf@GU?$char_traits@G@std@@@std@@MEAAGXZ */ +DEFINE_THISCALL_WRAPPER(basic_filebuf_wchar_uflow, 4) +unsigned short __thiscall basic_filebuf_wchar_uflow(basic_filebuf_wchar *this) +{ + wchar_t ch, *to_next; + char buf[128]; + const char *buf_next; + int c, i; + + TRACE("(%p)\n", this); + + if(!basic_filebuf_wchar_is_open(this)) + return WEOF; + + if(basic_streambuf_wchar_gptr(&this->base) < basic_streambuf_wchar_egptr(&this->base)) + return *basic_streambuf_wchar__Gninc(&this->base); + + if(!this->cvt) + return fgetwc(this->file); + + buf_next = buf; + for(i=0; i < sizeof(buf)/sizeof(buf[0]); i++) { + if((c = fgetc(this->file)) == EOF) + return WEOF; + buf[i] = c; + + switch(codecvt_wchar_in(this->cvt, &this->state, buf_next, + buf+i+1, &buf_next, &ch, &ch+1, &to_next)) { + case CODECVT_partial: + case CODECVT_ok: + if(to_next == &ch) + continue; + + for(i--; i>=buf_next-buf; i--) + ungetc(buf[i], this->file); + return ch; + case CODECVT_noconv: + if(i+1 < sizeof(wchar_t)) + continue; + + memcpy(&ch, buf, sizeof(wchar_t)); + return ch; + default: + return WEOF; + } + } + + FIXME("buffer is too small\n"); + return WEOF; +} + +/* ?underflow@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@MAEGXZ */ +/* ?underflow@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@MEAAGXZ */ +/* ?underflow@?$basic_filebuf@GU?$char_traits@G@std@@@std@@MAEGXZ */ +/* ?underflow@?$basic_filebuf@GU?$char_traits@G@std@@@std@@MEAAGXZ */ +DEFINE_THISCALL_WRAPPER(basic_filebuf_wchar_underflow, 4) +unsigned short __thiscall basic_filebuf_wchar_underflow(basic_filebuf_wchar *this) +{ + unsigned short ret; + + TRACE("(%p)\n", this); + + if(basic_streambuf_wchar_gptr(&this->base) < basic_streambuf_wchar_egptr(&this->base)) + return *basic_streambuf_wchar_gptr(&this->base); + + ret = call_basic_streambuf_wchar_uflow(&this->base); + if(ret != WEOF) + ret = call_basic_streambuf_wchar_pbackfail(&this->base, ret); + return ret; +} + +/* ?seekoff@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@MAE?AV?$fpos@H@2@JHH@Z */ +/* ?seekoff@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@MEAA?AV?$fpos@H@2@_JHH@Z */ +/* ?seekoff@?$basic_filebuf@GU?$char_traits@G@std@@@std@@MAE?AV?$fpos@H@2@JHH@Z */ +/* ?seekoff@?$basic_filebuf@GU?$char_traits@G@std@@@std@@MEAA?AV?$fpos@H@2@_JHH@Z */ +DEFINE_THISCALL_WRAPPER(basic_filebuf_wchar_seekoff, 20) +fpos_int* __thiscall basic_filebuf_wchar_seekoff(basic_filebuf_wchar *this, + fpos_int *ret, streamoff off, int way, int mode) +{ + fpos_t pos; + + TRACE("(%p %p %ld %d %d)\n", this, ret, off, way, mode); + + if(basic_streambuf_wchar_gptr(&this->base) == &this->putback) { + if(way == SEEKDIR_cur) + off -= sizeof(wchar_t); + + basic_streambuf_wchar_setg(&this->base, &this->putback, &this->putback+1, &this->putback+1); + } + + if(!basic_filebuf_wchar_is_open(this) || !basic_filebuf_wchar__Endwrite(this) + || fseek(this->file, off, way)) { + ret->off = 0; + ret->pos = -1; + ret->state = 0; + return ret; + } + + fgetpos(this->file, &pos); + ret->off = 0; + ret->pos = pos; + ret->state = this->state; + return ret; +} + +/* ?seekpos@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@MAE?AV?$fpos@H@2@V32@H@Z */ +/* ?seekpos@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@MEAA?AV?$fpos@H@2@V32@H@Z */ +/* ?seekpos@?$basic_filebuf@GU?$char_traits@G@std@@@std@@MAE?AV?$fpos@H@2@V32@H@Z */ +/* ?seekpos@?$basic_filebuf@GU?$char_traits@G@std@@@std@@MEAA?AV?$fpos@H@2@V32@H@Z */ +DEFINE_THISCALL_WRAPPER(basic_filebuf_wchar_seekpos, 36) +fpos_int* __thiscall basic_filebuf_wchar_seekpos(basic_filebuf_wchar *this, + fpos_int *ret, fpos_int pos, int mode) +{ + fpos_t fpos; + + TRACE("(%p %p %s %d)\n", this, ret, debugstr_fpos_int(&pos), mode); + + if(!basic_filebuf_wchar_is_open(this) || !basic_filebuf_wchar__Endwrite(this) + || fseek(this->file, (LONG)pos.pos, SEEK_SET) + || (pos.off && fseek(this->file, pos.off, SEEK_CUR))) { + ret->off = 0; + ret->pos = -1; + ret->state = 0; + return ret; + } + + if(basic_streambuf_wchar_gptr(&this->base) == &this->putback) + basic_streambuf_wchar_setg(&this->base, &this->putback, &this->putback+1, &this->putback+1); + + fgetpos(this->file, &fpos); + ret->off = 0; + ret->pos = fpos; + ret->state = this->state; + return ret; +} + +/* ?setbuf@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@MAEPAV?$basic_streambuf@_WU?$char_traits@_W@std@@@2@PA_WH@Z */ +/* ?setbuf@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@MEAAPEAV?$basic_streambuf@_WU?$char_traits@_W@std@@@2@PEA_W_J@Z */ +DEFINE_THISCALL_WRAPPER(basic_filebuf_wchar_setbuf, 12) +basic_streambuf_wchar* __thiscall basic_filebuf_wchar_setbuf(basic_filebuf_wchar *this, wchar_t *buf, streamsize count) +{ + TRACE("(%p %p %ld)\n", this, buf, count); + + if(!basic_filebuf_wchar_is_open(this)) + return NULL; + + if(setvbuf(this->file, (char*)buf, (buf==NULL && count==0) ? _IONBF : _IOFBF, count*sizeof(wchar_t))) + return NULL; + + basic_filebuf_wchar__Init(this, this->file, INITFL_open); + return &this->base; +} + +/* ?setbuf@?$basic_filebuf@GU?$char_traits@G@std@@@std@@MAEPAV?$basic_streambuf@GU?$char_traits@G@std@@@2@PAGH@Z */ +/* ?setbuf@?$basic_filebuf@GU?$char_traits@G@std@@@std@@MEAAPEAV?$basic_streambuf@GU?$char_traits@G@std@@@2@PEAG_J@Z */ +DEFINE_THISCALL_WRAPPER(basic_filebuf_short_setbuf, 12) +basic_streambuf_wchar* __thiscall basic_filebuf_short_setbuf(basic_filebuf_wchar *this, wchar_t *buf, streamsize count) +{ + TRACE("(%p %p %ld)\n", this, buf, count); + + if(!basic_filebuf_wchar_is_open(this)) + return NULL; + + if(setvbuf(this->file, (char*)buf, (buf==NULL && count==0) ? _IONBF : _IOFBF, count*sizeof(wchar_t))) + return NULL; + + basic_filebuf_short__Init(this, this->file, INITFL_open); + return &this->base; +} + +/* ?sync@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@MAEHXZ */ +/* ?sync@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@MEAAHXZ */ +/* ?sync@?$basic_filebuf@GU?$char_traits@G@std@@@std@@MAEHXZ */ +/* ?sync@?$basic_filebuf@GU?$char_traits@G@std@@@std@@MEAAHXZ */ +DEFINE_THISCALL_WRAPPER(basic_filebuf_wchar_sync, 4) +int __thiscall basic_filebuf_wchar_sync(basic_filebuf_wchar *this) +{ + TRACE("(%p)\n", this); + + if(!basic_filebuf_wchar_is_open(this)) + return 0; + + if(call_basic_streambuf_wchar_overflow(&this->base, WEOF) == WEOF) + return 0; + return fflush(this->file); +} + +/* ?imbue@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@MAEXABVlocale@2@@Z */ +/* ?imbue@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@MEAAXAEBVlocale@2@@Z */ +DEFINE_THISCALL_WRAPPER(basic_filebuf_wchar_imbue, 8) +void __thiscall basic_filebuf_wchar_imbue(basic_filebuf_wchar *this, const locale *loc) +{ + TRACE("(%p %p)\n", this, loc); + basic_filebuf_wchar__Initcvt(this, codecvt_wchar_use_facet(loc)); +} + +/* ?imbue@?$basic_filebuf@GU?$char_traits@G@std@@@std@@MAEXABVlocale@2@@Z */ +/* ?imbue@?$basic_filebuf@GU?$char_traits@G@std@@@std@@MEAAXAEBVlocale@2@@Z */ +DEFINE_THISCALL_WRAPPER(basic_filebuf_short_imbue, 8) +void __thiscall basic_filebuf_short_imbue(basic_filebuf_wchar *this, const locale *loc) +{ + TRACE("(%p %p)\n", this, loc); + basic_filebuf_wchar__Initcvt(this, codecvt_short_use_facet(loc)); +} + /* ?_Getstate@?$basic_stringbuf@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@AAEHH@Z */ /* ?_Getstate@?$basic_stringbuf@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@AEAAHH@Z */ DEFINE_THISCALL_WRAPPER(basic_stringbuf_char__Getstate, 8) diff --git a/dlls/msvcp90/locale.c b/dlls/msvcp90/locale.c index 935d3818c9b..a4a122fb9d9 100644 --- a/dlls/msvcp90/locale.c +++ b/dlls/msvcp90/locale.c @@ -3086,7 +3086,7 @@ unsigned int __cdecl codecvt_wchar__Getcat(const locale_facet **facet, const loc return LC_CTYPE; } -static codecvt_wchar* codecvt_wchar_use_facet(const locale *loc) +codecvt_wchar* codecvt_wchar_use_facet(const locale *loc) { static codecvt_wchar *obj = NULL; @@ -3138,7 +3138,7 @@ unsigned int __cdecl codecvt_short__Getcat(const locale_facet **facet, const loc return LC_CTYPE; } -static codecvt_wchar* codecvt_short_use_facet(const locale *loc) +codecvt_wchar* codecvt_short_use_facet(const locale *loc) { static codecvt_wchar *obj = NULL; diff --git a/dlls/msvcp90/msvcp90.h b/dlls/msvcp90/msvcp90.h index 6f798bb9925..6a5b1e347c9 100644 --- a/dlls/msvcp90/msvcp90.h +++ b/dlls/msvcp90/msvcp90.h @@ -133,6 +133,12 @@ typedef struct { _Cvtvec cvt; } codecvt_wchar; +int __thiscall codecvt_wchar_unshift(const codecvt_wchar*, int*, char*, char*, char**); +int __thiscall codecvt_wchar_out(const codecvt_wchar*, int*, const wchar_t*, + const wchar_t*, const wchar_t**, char*, char*, char**); +int __thiscall codecvt_wchar_in(const codecvt_wchar*, int*, const char*, + const char*, const char**, wchar_t*, wchar_t*, wchar_t**); + /* class ctype_base */ typedef struct { locale_facet facet; @@ -171,7 +177,8 @@ locale* __thiscall locale_operator_assign(locale*, const locale*); void __thiscall locale_dtor(locale*); void free_locale(void); codecvt_char* codecvt_char_use_facet(const locale*); -codecvt_char* codecvt_char_use_facet(const locale*); +codecvt_wchar* codecvt_wchar_use_facet(const locale*); +codecvt_wchar* codecvt_short_use_facet(const locale*); ctype_char* ctype_char_use_facet(const locale*); ctype_wchar* ctype_wchar_use_facet(const locale*); diff --git a/dlls/msvcp90/msvcp90.spec b/dlls/msvcp90/msvcp90.spec index 191a750146d..6249cff5444 100644 --- a/dlls/msvcp90/msvcp90.spec +++ b/dlls/msvcp90/msvcp90.spec @@ -550,14 +550,14 @@ @ cdecl -arch=win64 ??0?$basic_filebuf@DU?$char_traits@D@std@@@std@@QEAA@PEAU_iobuf@@@Z(ptr ptr) basic_filebuf_char_ctor_file @ thiscall -arch=win32 ??0?$basic_filebuf@DU?$char_traits@D@std@@@std@@QAE@W4_Uninitialized@1@@Z(ptr long) basic_filebuf_char_ctor_uninitialized @ cdecl -arch=win64 ??0?$basic_filebuf@DU?$char_traits@D@std@@@std@@QEAA@W4_Uninitialized@1@@Z(ptr long) basic_filebuf_char_ctor_uninitialized -@ stub -arch=win32 ??0?$basic_filebuf@GU?$char_traits@G@std@@@std@@QAE@PAU_iobuf@@@Z -@ stub -arch=win64 ??0?$basic_filebuf@GU?$char_traits@G@std@@@std@@QEAA@PEAU_iobuf@@@Z -@ stub -arch=win32 ??0?$basic_filebuf@GU?$char_traits@G@std@@@std@@QAE@W4_Uninitialized@1@@Z -@ stub -arch=win64 ??0?$basic_filebuf@GU?$char_traits@G@std@@@std@@QEAA@W4_Uninitialized@1@@Z -@ stub -arch=win32 ??0?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@QAE@PAU_iobuf@@@Z -@ stub -arch=win64 ??0?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@QEAA@PEAU_iobuf@@@Z -@ stub -arch=win32 ??0?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@QAE@W4_Uninitialized@1@@Z -@ stub -arch=win64 ??0?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@QEAA@W4_Uninitialized@1@@Z +@ thiscall -arch=win32 ??0?$basic_filebuf@GU?$char_traits@G@std@@@std@@QAE@PAU_iobuf@@@Z(ptr ptr) basic_filebuf_short_ctor_file +@ cdecl -arch=win64 ??0?$basic_filebuf@GU?$char_traits@G@std@@@std@@QEAA@PEAU_iobuf@@@Z(ptr ptr) basic_filebuf_short_ctor_file +@ thiscall -arch=win32 ??0?$basic_filebuf@GU?$char_traits@G@std@@@std@@QAE@W4_Uninitialized@1@@Z(ptr long) basic_filebuf_short_ctor_uninitialized +@ cdecl -arch=win64 ??0?$basic_filebuf@GU?$char_traits@G@std@@@std@@QEAA@W4_Uninitialized@1@@Z(ptr long) basic_filebuf_short_ctor_uninitialized +@ thiscall -arch=win32 ??0?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@QAE@PAU_iobuf@@@Z(ptr ptr) basic_filebuf_wchar_ctor_file +@ cdecl -arch=win64 ??0?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@QEAA@PEAU_iobuf@@@Z(ptr ptr) basic_filebuf_wchar_ctor_file +@ thiscall -arch=win32 ??0?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@QAE@W4_Uninitialized@1@@Z(ptr long) basic_filebuf_wchar_ctor_uninitialized +@ cdecl -arch=win64 ??0?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@QEAA@W4_Uninitialized@1@@Z(ptr long) basic_filebuf_wchar_ctor_uninitialized @ thiscall -arch=win32 ??0?$basic_fstream@DU?$char_traits@D@std@@@std@@QAE@PAU_iobuf@@@Z(ptr ptr long) basic_fstream_char_ctor_file @ cdecl -arch=win64 ??0?$basic_fstream@DU?$char_traits@D@std@@@std@@QEAA@PEAU_iobuf@@@Z(ptr ptr long) basic_fstream_char_ctor_file @ thiscall -arch=win32 ??0?$basic_fstream@DU?$char_traits@D@std@@@std@@QAE@PBDHH@Z(ptr str long long long) basic_fstream_char_ctor_name @@ -1148,10 +1148,10 @@ @ stub -arch=win64 ??1?$_Mpunct@_W@std@@MEAA@XZ @ thiscall -arch=win32 ??1?$basic_filebuf@DU?$char_traits@D@std@@@std@@UAE@XZ(ptr) basic_filebuf_char_dtor @ cdecl -arch=win64 ??1?$basic_filebuf@DU?$char_traits@D@std@@@std@@UEAA@XZ(ptr) basic_filebuf_char_dtor -@ stub -arch=win32 ??1?$basic_filebuf@GU?$char_traits@G@std@@@std@@UAE@XZ -@ stub -arch=win64 ??1?$basic_filebuf@GU?$char_traits@G@std@@@std@@UEAA@XZ -@ stub -arch=win32 ??1?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@UAE@XZ -@ stub -arch=win64 ??1?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@UEAA@XZ +@ thiscall -arch=win32 ??1?$basic_filebuf@GU?$char_traits@G@std@@@std@@UAE@XZ(ptr) basic_filebuf_wchar_dtor +@ cdecl -arch=win64 ??1?$basic_filebuf@GU?$char_traits@G@std@@@std@@UEAA@XZ(ptr) basic_filebuf_wchar_dtor +@ thiscall -arch=win32 ??1?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@UAE@XZ(ptr) basic_filebuf_wchar_dtor +@ cdecl -arch=win64 ??1?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@UEAA@XZ(ptr) basic_filebuf_wchar_dtor @ thiscall -arch=win32 ??1?$basic_fstream@DU?$char_traits@D@std@@@std@@UAE@XZ(ptr) basic_fstream_char_dtor @ cdecl -arch=win64 ??1?$basic_fstream@DU?$char_traits@D@std@@@std@@UEAA@XZ(ptr) basic_fstream_char_dtor @ stub -arch=win32 ??1?$basic_fstream@GU?$char_traits@G@std@@@std@@UAE@XZ @@ -1780,8 +1780,8 @@ # extern ??_7?$_Mpunct@G@std@@6B@ # extern ??_7?$_Mpunct@_W@std@@6B@ @ extern ??_7?$basic_filebuf@DU?$char_traits@D@std@@@std@@6B@ MSVCP_basic_filebuf_char_vtable -# extern ??_7?$basic_filebuf@GU?$char_traits@G@std@@@std@@6B@ -# extern ??_7?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@6B@ +@ extern ??_7?$basic_filebuf@GU?$char_traits@G@std@@@std@@6B@ MSVCP_basic_filebuf_short_vtable +@ extern ??_7?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@6B@ MSVCP_basic_filebuf_wchar_vtable @ extern ??_7?$basic_fstream@DU?$char_traits@D@std@@@std@@6B@ MSVCP_basic_fstream_char_vtable # extern ??_7?$basic_fstream@GU?$char_traits@G@std@@@std@@6B@ # extern ??_7?$basic_fstream@_WU?$char_traits@_W@std@@@std@@6B@ @@ -1963,10 +1963,10 @@ @ cdecl -arch=win64 ??_F?$_String_val@_WV?$allocator@_W@std@@@std@@QEAAXXZ(ptr) _String_val_ctor @ thiscall -arch=win32 ??_F?$basic_filebuf@DU?$char_traits@D@std@@@std@@QAEXXZ(ptr) basic_filebuf_char_ctor @ cdecl -arch=win64 ??_F?$basic_filebuf@DU?$char_traits@D@std@@@std@@QEAAXXZ(ptr) basic_filebuf_char_ctor -@ stub -arch=win32 ??_F?$basic_filebuf@GU?$char_traits@G@std@@@std@@QAEXXZ -@ stub -arch=win64 ??_F?$basic_filebuf@GU?$char_traits@G@std@@@std@@QEAAXXZ -@ stub -arch=win32 ??_F?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@QAEXXZ -@ stub -arch=win64 ??_F?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@QEAAXXZ +@ thiscall -arch=win32 ??_F?$basic_filebuf@GU?$char_traits@G@std@@@std@@QAEXXZ(ptr) basic_filebuf_short_ctor +@ cdecl -arch=win64 ??_F?$basic_filebuf@GU?$char_traits@G@std@@@std@@QEAAXXZ(ptr) basic_filebuf_short_ctor +@ thiscall -arch=win32 ??_F?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@QAEXXZ(ptr) basic_filebuf_wchar_ctor +@ cdecl -arch=win64 ??_F?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@QEAAXXZ(ptr) basic_filebuf_wchar_ctor @ thiscall -arch=win32 ??_F?$basic_istringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEXXZ(ptr long) basic_istringstream_char_ctor @ cdecl -arch=win64 ??_F?$basic_istringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAXXZ(ptr long) basic_istringstream_char_ctor @ stub -arch=win32 ??_F?$basic_istringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEXXZ @@ -2182,10 +2182,10 @@ @ cdecl -arch=win64 ?_Dowiden@?$ctype@_W@std@@IEBA_WD@Z(ptr long) ctype_wchar__Dowiden @ thiscall -arch=win32 ?_Endwrite@?$basic_filebuf@DU?$char_traits@D@std@@@std@@IAE_NXZ(ptr) basic_filebuf_char__Endwrite @ cdecl -arch=win64 ?_Endwrite@?$basic_filebuf@DU?$char_traits@D@std@@@std@@IEAA_NXZ(ptr) basic_filebuf_char__Endwrite -@ stub -arch=win32 ?_Endwrite@?$basic_filebuf@GU?$char_traits@G@std@@@std@@IAE_NXZ -@ stub -arch=win64 ?_Endwrite@?$basic_filebuf@GU?$char_traits@G@std@@@std@@IEAA_NXZ -@ stub -arch=win32 ?_Endwrite@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@IAE_NXZ -@ stub -arch=win64 ?_Endwrite@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@IEAA_NXZ +@ thiscall -arch=win32 ?_Endwrite@?$basic_filebuf@GU?$char_traits@G@std@@@std@@IAE_NXZ(ptr) basic_filebuf_wchar__Endwrite +@ cdecl -arch=win64 ?_Endwrite@?$basic_filebuf@GU?$char_traits@G@std@@@std@@IEAA_NXZ(ptr) basic_filebuf_wchar__Endwrite +@ thiscall -arch=win32 ?_Endwrite@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@IAE_NXZ(ptr) basic_filebuf_wchar__Endwrite +@ cdecl -arch=win64 ?_Endwrite@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@IEAA_NXZ(ptr) basic_filebuf_wchar__Endwrite @ thiscall -arch=win32 ?_Eos@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IAEXI@Z(ptr long) basic_string_char_eos @ cdecl -arch=win64 ?_Eos@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IEAAX_K@Z(ptr long) basic_string_char_eos @ thiscall -arch=win32 ?_Eos@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@IAEXI@Z(ptr long) basic_string_wchar_eos @@ -2436,10 +2436,10 @@ @ stub -arch=win64 ?_Init@?$_Mpunct@_W@std@@IEAAXAEBV_Locinfo@2@_N@Z @ thiscall -arch=win32 ?_Init@?$basic_filebuf@DU?$char_traits@D@std@@@std@@IAEXPAU_iobuf@@W4_Initfl@12@@Z(ptr ptr long) basic_filebuf_char__Init @ cdecl -arch=win64 ?_Init@?$basic_filebuf@DU?$char_traits@D@std@@@std@@IEAAXPEAU_iobuf@@W4_Initfl@12@@Z(ptr ptr long) basic_filebuf_char__Init -@ stub -arch=win32 ?_Init@?$basic_filebuf@GU?$char_traits@G@std@@@std@@IAEXPAU_iobuf@@W4_Initfl@12@@Z -@ stub -arch=win64 ?_Init@?$basic_filebuf@GU?$char_traits@G@std@@@std@@IEAAXPEAU_iobuf@@W4_Initfl@12@@Z -@ stub -arch=win32 ?_Init@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@IAEXPAU_iobuf@@W4_Initfl@12@@Z -@ stub -arch=win64 ?_Init@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@IEAAXPEAU_iobuf@@W4_Initfl@12@@Z +@ thiscall -arch=win32 ?_Init@?$basic_filebuf@GU?$char_traits@G@std@@@std@@IAEXPAU_iobuf@@W4_Initfl@12@@Z(ptr ptr long) basic_filebuf_short__Init +@ cdecl -arch=win64 ?_Init@?$basic_filebuf@GU?$char_traits@G@std@@@std@@IEAAXPEAU_iobuf@@W4_Initfl@12@@Z(ptr ptr long) basic_filebuf_short__Init +@ thiscall -arch=win32 ?_Init@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@IAEXPAU_iobuf@@W4_Initfl@12@@Z(ptr ptr long) basic_filebuf_wchar__Init +@ cdecl -arch=win64 ?_Init@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@IEAAXPEAU_iobuf@@W4_Initfl@12@@Z(ptr ptr long) basic_filebuf_wchar__Init @ thiscall -arch=win32 ?_Init@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IAEXPAPAD0PAH001@Z(ptr ptr ptr ptr ptr ptr ptr) basic_streambuf_char__Init @ cdecl -arch=win64 ?_Init@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEAAXPEAPEAD0PEAH001@Z(ptr ptr ptr ptr ptr ptr ptr) basic_streambuf_char__Init @ thiscall -arch=win32 ?_Init@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IAEXXZ(ptr) basic_streambuf_char__Init_empty @@ -2545,10 +2545,10 @@ @ stub -arch=win64 ?_Init_locks_dtor@_Init_locks@std@@CAXPEAV12@@Z @ thiscall -arch=win32 ?_Initcvt@?$basic_filebuf@DU?$char_traits@D@std@@@std@@IAEXPAV?$codecvt@DDH@2@@Z(ptr ptr) basic_filebuf_char__Initcvt @ cdecl -arch=win64 ?_Initcvt@?$basic_filebuf@DU?$char_traits@D@std@@@std@@IEAAXPEAV?$codecvt@DDH@2@@Z(ptr ptr) basic_filebuf_char__Initcvt -@ stub -arch=win32 ?_Initcvt@?$basic_filebuf@GU?$char_traits@G@std@@@std@@IAEXPAV?$codecvt@GDH@2@@Z -@ stub -arch=win64 ?_Initcvt@?$basic_filebuf@GU?$char_traits@G@std@@@std@@IEAAXPEAV?$codecvt@GDH@2@@Z -@ stub -arch=win32 ?_Initcvt@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@IAEXPAV?$codecvt@_WDH@2@@Z -@ stub -arch=win64 ?_Initcvt@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@IEAAXPEAV?$codecvt@_WDH@2@@Z +@ thiscall -arch=win32 ?_Initcvt@?$basic_filebuf@GU?$char_traits@G@std@@@std@@IAEXPAV?$codecvt@GDH@2@@Z(ptr ptr) basic_filebuf_wchar__Initcvt +@ cdecl -arch=win64 ?_Initcvt@?$basic_filebuf@GU?$char_traits@G@std@@@std@@IEAAXPEAV?$codecvt@GDH@2@@Z(ptr ptr) basic_filebuf_wchar__Initcvt +@ thiscall -arch=win32 ?_Initcvt@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@IAEXPAV?$codecvt@_WDH@2@@Z(ptr ptr) basic_filebuf_wchar__Initcvt +@ cdecl -arch=win64 ?_Initcvt@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@IEAAXPEAV?$codecvt@_WDH@2@@Z(ptr ptr) basic_filebuf_wchar__Initcvt @ thiscall -arch=win32 ?_Inside@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IAE_NPBD@Z(ptr str) basic_string_char_inside @ cdecl -arch=win64 ?_Inside@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IEAA_NPEBD@Z(ptr str) basic_string_char_inside @ thiscall -arch=win32 ?_Inside@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@IAE_NPBG@Z(ptr ptr) basic_string_wchar_inside @@ -2793,10 +2793,10 @@ @ stub ?_Sinh@?$_Ctraits@O@std@@SAOOO@Z @ extern -arch=win32 ?_Stinit@?1??_Init@?$basic_filebuf@DU?$char_traits@D@std@@@std@@IAEXPAU_iobuf@@W4_Initfl@23@@Z@4HA basic_filebuf_char__Init__Stinit @ extern -arch=win64 ?_Stinit@?1??_Init@?$basic_filebuf@DU?$char_traits@D@std@@@std@@IEAAXPEAU_iobuf@@W4_Initfl@23@@Z@4HA basic_filebuf_char__Init__Stinit -# extern -arch=win32 ?_Stinit@?1??_Init@?$basic_filebuf@GU?$char_traits@G@std@@@std@@IAEXPAU_iobuf@@W4_Initfl@23@@Z@4HA -# extern -arch=win64 ?_Stinit@?1??_Init@?$basic_filebuf@GU?$char_traits@G@std@@@std@@IEAAXPEAU_iobuf@@W4_Initfl@23@@Z@4HA -# extern -arch=win32 ?_Stinit@?1??_Init@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@IAEXPAU_iobuf@@W4_Initfl@23@@Z@4HA -# extern -arch=win64 ?_Stinit@?1??_Init@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@IEAAXPEAU_iobuf@@W4_Initfl@23@@Z@4HA +@ extern -arch=win32 ?_Stinit@?1??_Init@?$basic_filebuf@GU?$char_traits@G@std@@@std@@IAEXPAU_iobuf@@W4_Initfl@23@@Z@4HA basic_filebuf_short__Init__Stinit +@ extern -arch=win64 ?_Stinit@?1??_Init@?$basic_filebuf@GU?$char_traits@G@std@@@std@@IEAAXPEAU_iobuf@@W4_Initfl@23@@Z@4HA basic_filebuf_short__Init__Stinit +@ extern -arch=win32 ?_Stinit@?1??_Init@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@IAEXPAU_iobuf@@W4_Initfl@23@@Z@4HA basic_filebuf_wchar__Init__Stinit +@ extern -arch=win64 ?_Stinit@?1??_Init@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@IEAAXPEAU_iobuf@@W4_Initfl@23@@Z@4HA basic_filebuf_wchar__Init__Stinit @ extern ?_Sync@ios_base@std@@0_NA ios_base_Sync @ cdecl -arch=win32 ?_Sync_func@ios_base@std@@CAAA_NXZ() ios_base_Sync_func @ cdecl -arch=win64 ?_Sync_func@ios_base@std@@CAAEA_NXZ() ios_base_Sync_func @@ -3086,10 +3086,10 @@ @ extern ?clog@std@@3V?$basic_ostream@DU?$char_traits@D@std@@@1@A clog @ thiscall -arch=win32 ?close@?$basic_filebuf@DU?$char_traits@D@std@@@std@@QAEPAV12@XZ(ptr) basic_filebuf_char_close @ cdecl -arch=win64 ?close@?$basic_filebuf@DU?$char_traits@D@std@@@std@@QEAAPEAV12@XZ(ptr) basic_filebuf_char_close -@ stub -arch=win32 ?close@?$basic_filebuf@GU?$char_traits@G@std@@@std@@QAEPAV12@XZ -@ stub -arch=win64 ?close@?$basic_filebuf@GU?$char_traits@G@std@@@std@@QEAAPEAV12@XZ -@ stub -arch=win32 ?close@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@QAEPAV12@XZ -@ stub -arch=win64 ?close@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@QEAAPEAV12@XZ +@ thiscall -arch=win32 ?close@?$basic_filebuf@GU?$char_traits@G@std@@@std@@QAEPAV12@XZ(ptr) basic_filebuf_wchar_close +@ cdecl -arch=win64 ?close@?$basic_filebuf@GU?$char_traits@G@std@@@std@@QEAAPEAV12@XZ(ptr) basic_filebuf_wchar_close +@ thiscall -arch=win32 ?close@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@QAEPAV12@XZ(ptr) basic_filebuf_wchar_close +@ cdecl -arch=win64 ?close@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@QEAAPEAV12@XZ(ptr) basic_filebuf_wchar_close @ thiscall -arch=win32 ?close@?$basic_fstream@DU?$char_traits@D@std@@@std@@QAEXXZ(ptr) basic_fstream_char_close @ cdecl -arch=win64 ?close@?$basic_fstream@DU?$char_traits@D@std@@@std@@QEAAXXZ(ptr) basic_fstream_char_close @ stub -arch=win32 ?close@?$basic_fstream@GU?$char_traits@G@std@@@std@@QAEXXZ @@ -4252,10 +4252,10 @@ @ stub -arch=win64 ?imag@?$_Complex_base@OU_C_ldouble_complex@@@std@@QEBAOXZ @ thiscall -arch=win32 ?imbue@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MAEXABVlocale@2@@Z(ptr ptr) basic_filebuf_char_imbue @ cdecl -arch=win64 ?imbue@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MEAAXAEBVlocale@2@@Z(ptr ptr) basic_filebuf_char_imbue -@ stub -arch=win32 ?imbue@?$basic_filebuf@GU?$char_traits@G@std@@@std@@MAEXABVlocale@2@@Z -@ stub -arch=win64 ?imbue@?$basic_filebuf@GU?$char_traits@G@std@@@std@@MEAAXAEBVlocale@2@@Z -@ stub -arch=win32 ?imbue@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@MAEXABVlocale@2@@Z -@ stub -arch=win64 ?imbue@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@MEAAXAEBVlocale@2@@Z +@ thiscall -arch=win32 ?imbue@?$basic_filebuf@GU?$char_traits@G@std@@@std@@MAEXABVlocale@2@@Z(ptr ptr) basic_filebuf_short_imbue +@ cdecl -arch=win64 ?imbue@?$basic_filebuf@GU?$char_traits@G@std@@@std@@MEAAXAEBVlocale@2@@Z(ptr ptr) basic_filebuf_short_imbue +@ thiscall -arch=win32 ?imbue@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@MAEXABVlocale@2@@Z(ptr ptr) basic_filebuf_wchar_imbue +@ cdecl -arch=win64 ?imbue@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@MEAAXAEBVlocale@2@@Z(ptr ptr) basic_filebuf_wchar_imbue @ thiscall -arch=win32 ?imbue@?$basic_ios@DU?$char_traits@D@std@@@std@@QAE?AVlocale@2@ABV32@@Z(ptr ptr ptr) basic_ios_char_imbue @ cdecl -arch=win64 ?imbue@?$basic_ios@DU?$char_traits@D@std@@@std@@QEAA?AVlocale@2@AEBV32@@Z(ptr ptr ptr) basic_ios_char_imbue @ thiscall -arch=win32 ?imbue@?$basic_ios@GU?$char_traits@G@std@@@std@@QAE?AVlocale@2@ABV32@@Z(ptr ptr ptr) basic_ios_wchar_imbue @@ -4405,10 +4405,10 @@ @ extern ?is_modulo@_Num_int_base@std@@2_NB std_Num_int_base_is_modulo @ thiscall -arch=win32 ?is_open@?$basic_filebuf@DU?$char_traits@D@std@@@std@@QBE_NXZ(ptr) basic_filebuf_char_is_open @ cdecl -arch=win64 ?is_open@?$basic_filebuf@DU?$char_traits@D@std@@@std@@QEBA_NXZ(ptr) basic_filebuf_char_is_open -@ stub -arch=win32 ?is_open@?$basic_filebuf@GU?$char_traits@G@std@@@std@@QBE_NXZ -@ stub -arch=win64 ?is_open@?$basic_filebuf@GU?$char_traits@G@std@@@std@@QEBA_NXZ -@ stub -arch=win32 ?is_open@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@QBE_NXZ -@ stub -arch=win64 ?is_open@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@QEBA_NXZ +@ thiscall -arch=win32 ?is_open@?$basic_filebuf@GU?$char_traits@G@std@@@std@@QBE_NXZ(ptr) basic_filebuf_wchar_is_open +@ cdecl -arch=win64 ?is_open@?$basic_filebuf@GU?$char_traits@G@std@@@std@@QEBA_NXZ(ptr) basic_filebuf_wchar_is_open +@ thiscall -arch=win32 ?is_open@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@QBE_NXZ(ptr) basic_filebuf_wchar_is_open +@ cdecl -arch=win64 ?is_open@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@QEBA_NXZ(ptr) basic_filebuf_wchar_is_open @ thiscall -arch=win32 ?is_open@?$basic_fstream@DU?$char_traits@D@std@@@std@@QBE_NXZ(ptr) basic_fstream_char_is_open @ cdecl -arch=win64 ?is_open@?$basic_fstream@DU?$char_traits@D@std@@@std@@QEBA_NXZ(ptr) basic_fstream_char_is_open @ stub -arch=win32 ?is_open@?$basic_fstream@GU?$char_traits@G@std@@@std@@QBE_NXZ @@ -4607,30 +4607,30 @@ @ cdecl -arch=win64 ?open@?$basic_filebuf@DU?$char_traits@D@std@@@std@@QEAAPEAV12@PEB_WHH@Z(ptr wstr long long) basic_filebuf_char_open_wchar @ thiscall -arch=win32 ?open@?$basic_filebuf@DU?$char_traits@D@std@@@std@@QAEPAV12@PB_WI@Z(ptr wstr long) basic_filebuf_char_open_wchar_mode @ cdecl -arch=win64 ?open@?$basic_filebuf@DU?$char_traits@D@std@@@std@@QEAAPEAV12@PEB_WI@Z(ptr wstr long) basic_filebuf_char_open_wchar_mode -@ stub -arch=win32 ?open@?$basic_filebuf@GU?$char_traits@G@std@@@std@@QAEPAV12@PBDHH@Z -@ stub -arch=win64 ?open@?$basic_filebuf@GU?$char_traits@G@std@@@std@@QEAAPEAV12@PEBDHH@Z -@ stub -arch=win32 ?open@?$basic_filebuf@GU?$char_traits@G@std@@@std@@QAEPAV12@PBDI@Z -@ stub -arch=win64 ?open@?$basic_filebuf@GU?$char_traits@G@std@@@std@@QEAAPEAV12@PEBDI@Z -@ stub -arch=win32 ?open@?$basic_filebuf@GU?$char_traits@G@std@@@std@@QAEPAV12@PBGHH@Z -@ stub -arch=win64 ?open@?$basic_filebuf@GU?$char_traits@G@std@@@std@@QEAAPEAV12@PEBGHH@Z -@ stub -arch=win32 ?open@?$basic_filebuf@GU?$char_traits@G@std@@@std@@QAEPAV12@PBGI@Z -@ stub -arch=win64 ?open@?$basic_filebuf@GU?$char_traits@G@std@@@std@@QEAAPEAV12@PEBGI@Z -@ stub -arch=win32 ?open@?$basic_filebuf@GU?$char_traits@G@std@@@std@@QAEPAV12@PB_WHH@Z -@ stub -arch=win64 ?open@?$basic_filebuf@GU?$char_traits@G@std@@@std@@QEAAPEAV12@PEB_WHH@Z -@ stub -arch=win32 ?open@?$basic_filebuf@GU?$char_traits@G@std@@@std@@QAEPAV12@PB_WI@Z -@ stub -arch=win64 ?open@?$basic_filebuf@GU?$char_traits@G@std@@@std@@QEAAPEAV12@PEB_WI@Z -@ stub -arch=win32 ?open@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@QAEPAV12@PBDHH@Z -@ stub -arch=win64 ?open@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@QEAAPEAV12@PEBDHH@Z -@ stub -arch=win32 ?open@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@QAEPAV12@PBDI@Z -@ stub -arch=win64 ?open@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@QEAAPEAV12@PEBDI@Z -@ stub -arch=win32 ?open@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@QAEPAV12@PBGHH@Z -@ stub -arch=win64 ?open@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@QEAAPEAV12@PEBGHH@Z -@ stub -arch=win32 ?open@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@QAEPAV12@PBGI@Z -@ stub -arch=win64 ?open@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@QEAAPEAV12@PEBGI@Z -@ stub -arch=win32 ?open@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@QAEPAV12@PB_WHH@Z -@ stub -arch=win64 ?open@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@QEAAPEAV12@PEB_WHH@Z -@ stub -arch=win32 ?open@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@QAEPAV12@PB_WI@Z -@ stub -arch=win64 ?open@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@QEAAPEAV12@PEB_WI@Z +@ thiscall -arch=win32 ?open@?$basic_filebuf@GU?$char_traits@G@std@@@std@@QAEPAV12@PBDHH@Z(ptr str long long) basic_filebuf_short_open +@ cdecl -arch=win64 ?open@?$basic_filebuf@GU?$char_traits@G@std@@@std@@QEAAPEAV12@PEBDHH@Z(ptr str long long) basic_filebuf_short_open +@ thiscall -arch=win32 ?open@?$basic_filebuf@GU?$char_traits@G@std@@@std@@QAEPAV12@PBDI@Z(ptr str long) basic_filebuf_short_open_mode +@ cdecl -arch=win64 ?open@?$basic_filebuf@GU?$char_traits@G@std@@@std@@QEAAPEAV12@PEBDI@Z(ptr str long) basic_filebuf_short_open_mode +@ thiscall -arch=win32 ?open@?$basic_filebuf@GU?$char_traits@G@std@@@std@@QAEPAV12@PBGHH@Z(ptr ptr long long) basic_filebuf_short_open_wchar +@ cdecl -arch=win64 ?open@?$basic_filebuf@GU?$char_traits@G@std@@@std@@QEAAPEAV12@PEBGHH@Z(ptr ptr long long) basic_filebuf_short_open_wchar +@ thiscall -arch=win32 ?open@?$basic_filebuf@GU?$char_traits@G@std@@@std@@QAEPAV12@PBGI@Z(ptr ptr long) basic_filebuf_short_open_wchar_mode +@ cdecl -arch=win64 ?open@?$basic_filebuf@GU?$char_traits@G@std@@@std@@QEAAPEAV12@PEBGI@Z(ptr ptr long) basic_filebuf_short_open_wchar_mode +@ thiscall -arch=win32 ?open@?$basic_filebuf@GU?$char_traits@G@std@@@std@@QAEPAV12@PB_WHH@Z(ptr wstr long long) basic_filebuf_short_open_wchar +@ cdecl -arch=win64 ?open@?$basic_filebuf@GU?$char_traits@G@std@@@std@@QEAAPEAV12@PEB_WHH@Z(ptr wstr long long) basic_filebuf_short_open_wchar +@ thiscall -arch=win32 ?open@?$basic_filebuf@GU?$char_traits@G@std@@@std@@QAEPAV12@PB_WI@Z(ptr wstr long) basic_filebuf_short_open_wchar_mode +@ cdecl -arch=win64 ?open@?$basic_filebuf@GU?$char_traits@G@std@@@std@@QEAAPEAV12@PEB_WI@Z(ptr wstr long) basic_filebuf_short_open_wchar_mode +@ thiscall -arch=win32 ?open@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@QAEPAV12@PBDHH@Z(ptr str long long) basic_filebuf_wchar_open +@ cdecl -arch=win64 ?open@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@QEAAPEAV12@PEBDHH@Z(ptr str long long) basic_filebuf_wchar_open +@ thiscall -arch=win32 ?open@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@QAEPAV12@PBDI@Z(ptr str long) basic_filebuf_wchar_open_mode +@ cdecl -arch=win64 ?open@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@QEAAPEAV12@PEBDI@Z(ptr str long) basic_filebuf_wchar_open_mode +@ thiscall -arch=win32 ?open@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@QAEPAV12@PBGHH@Z(ptr ptr long long) basic_filebuf_wchar_open_wchar +@ cdecl -arch=win64 ?open@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@QEAAPEAV12@PEBGHH@Z(ptr ptr long long) basic_filebuf_wchar_open_wchar +@ thiscall -arch=win32 ?open@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@QAEPAV12@PBGI@Z(ptr ptr long) basic_filebuf_wchar_open_wchar_mode +@ cdecl -arch=win64 ?open@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@QEAAPEAV12@PEBGI@Z(ptr ptr long) basic_filebuf_wchar_open_wchar_mode +@ thiscall -arch=win32 ?open@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@QAEPAV12@PB_WHH@Z(ptr wstr long long) basic_filebuf_wchar_open_wchar +@ cdecl -arch=win64 ?open@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@QEAAPEAV12@PEB_WHH@Z(ptr wstr long long) basic_filebuf_wchar_open_wchar +@ thiscall -arch=win32 ?open@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@QAEPAV12@PB_WI@Z(ptr wstr long) basic_filebuf_wchar_open_wchar_mode +@ cdecl -arch=win64 ?open@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@QEAAPEAV12@PEB_WI@Z(ptr wstr long) basic_filebuf_wchar_open_wchar_mode @ thiscall -arch=win32 ?open@?$basic_fstream@DU?$char_traits@D@std@@@std@@QAEXPBDHH@Z(ptr str long long) basic_fstream_char_open @ cdecl -arch=win64 ?open@?$basic_fstream@DU?$char_traits@D@std@@@std@@QEAAXPEBDHH@Z(ptr str long long) basic_fstream_char_open @ thiscall -arch=win32 ?open@?$basic_fstream@DU?$char_traits@D@std@@@std@@QAEXPBDI@Z(ptr str long) basic_fstream_char_open_old @@ -4765,10 +4765,10 @@ @ cdecl -arch=win64 ?out@?$codecvt@_WDH@std@@QEBAHAEAHPEB_W1AEAPEB_WPEAD3AEAPEAD@Z(ptr ptr wstr wstr ptr ptr ptr ptr) codecvt_wchar_out @ thiscall -arch=win32 ?overflow@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MAEHH@Z(ptr long) basic_filebuf_char_overflow @ cdecl -arch=win64 ?overflow@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MEAAHH@Z(ptr long) basic_filebuf_char_overflow -@ stub -arch=win32 ?overflow@?$basic_filebuf@GU?$char_traits@G@std@@@std@@MAEGG@Z -@ stub -arch=win64 ?overflow@?$basic_filebuf@GU?$char_traits@G@std@@@std@@MEAAGG@Z -@ stub -arch=win32 ?overflow@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@MAEGG@Z -@ stub -arch=win64 ?overflow@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@MEAAGG@Z +@ thiscall -arch=win32 ?overflow@?$basic_filebuf@GU?$char_traits@G@std@@@std@@MAEGG@Z(ptr long) basic_filebuf_wchar_overflow +@ cdecl -arch=win64 ?overflow@?$basic_filebuf@GU?$char_traits@G@std@@@std@@MEAAGG@Z(ptr long) basic_filebuf_wchar_overflow +@ thiscall -arch=win32 ?overflow@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@MAEGG@Z(ptr long) basic_filebuf_wchar_overflow +@ cdecl -arch=win64 ?overflow@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@MEAAGG@Z(ptr long) basic_filebuf_wchar_overflow @ thiscall -arch=win32 ?overflow@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MAEHH@Z(ptr long) basic_streambuf_char_overflow @ cdecl -arch=win64 ?overflow@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MEAAHH@Z(ptr long) basic_streambuf_char_overflow @ thiscall -arch=win32 ?overflow@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MAEGG@Z(ptr long) basic_streambuf_wchar_overflow @@ -4785,10 +4785,10 @@ @ stub -arch=win64 ?overflow@strstreambuf@std@@MEAAHH@Z @ thiscall -arch=win32 ?pbackfail@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MAEHH@Z(ptr long) basic_filebuf_char_pbackfail @ cdecl -arch=win64 ?pbackfail@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MEAAHH@Z(ptr long) basic_filebuf_char_pbackfail -@ stub -arch=win32 ?pbackfail@?$basic_filebuf@GU?$char_traits@G@std@@@std@@MAEGG@Z -@ stub -arch=win64 ?pbackfail@?$basic_filebuf@GU?$char_traits@G@std@@@std@@MEAAGG@Z -@ stub -arch=win32 ?pbackfail@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@MAEGG@Z -@ stub -arch=win64 ?pbackfail@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@MEAAGG@Z +@ thiscall -arch=win32 ?pbackfail@?$basic_filebuf@GU?$char_traits@G@std@@@std@@MAEGG@Z(ptr long) basic_filebuf_wchar_pbackfail +@ cdecl -arch=win64 ?pbackfail@?$basic_filebuf@GU?$char_traits@G@std@@@std@@MEAAGG@Z(ptr long) basic_filebuf_wchar_pbackfail +@ thiscall -arch=win32 ?pbackfail@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@MAEGG@Z(ptr long) basic_filebuf_wchar_pbackfail +@ cdecl -arch=win64 ?pbackfail@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@MEAAGG@Z(ptr long) basic_filebuf_wchar_pbackfail @ thiscall -arch=win32 ?pbackfail@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MAEHH@Z(ptr long) basic_streambuf_char_pbackfail @ cdecl -arch=win64 ?pbackfail@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MEAAHH@Z(ptr long) basic_streambuf_char_pbackfail @ thiscall -arch=win32 ?pbackfail@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MAEGG@Z(ptr long) basic_streambuf_wchar_pbackfail @@ -5260,10 +5260,10 @@ @ cdecl -arch=win64 ?seekg@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV12@_JH@Z(ptr long long) basic_istream_wchar_seekg @ thiscall -arch=win32 ?seekoff@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MAE?AV?$fpos@H@2@JHH@Z(ptr ptr long long long) basic_filebuf_char_seekoff @ cdecl -arch=win64 ?seekoff@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MEAA?AV?$fpos@H@2@_JHH@Z(ptr ptr long long long) basic_filebuf_char_seekoff -@ stub -arch=win32 ?seekoff@?$basic_filebuf@GU?$char_traits@G@std@@@std@@MAE?AV?$fpos@H@2@JHH@Z -@ stub -arch=win64 ?seekoff@?$basic_filebuf@GU?$char_traits@G@std@@@std@@MEAA?AV?$fpos@H@2@_JHH@Z -@ stub -arch=win32 ?seekoff@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@MAE?AV?$fpos@H@2@JHH@Z -@ stub -arch=win64 ?seekoff@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@MEAA?AV?$fpos@H@2@_JHH@Z +@ thiscall -arch=win32 ?seekoff@?$basic_filebuf@GU?$char_traits@G@std@@@std@@MAE?AV?$fpos@H@2@JHH@Z(ptr ptr long long long) basic_filebuf_wchar_seekoff +@ cdecl -arch=win64 ?seekoff@?$basic_filebuf@GU?$char_traits@G@std@@@std@@MEAA?AV?$fpos@H@2@_JHH@Z(ptr ptr long long long) basic_filebuf_wchar_seekoff +@ thiscall -arch=win32 ?seekoff@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@MAE?AV?$fpos@H@2@JHH@Z(ptr ptr long long long) basic_filebuf_wchar_seekoff +@ cdecl -arch=win64 ?seekoff@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@MEAA?AV?$fpos@H@2@_JHH@Z(ptr ptr long long long) basic_filebuf_wchar_seekoff @ thiscall -arch=win32 ?seekoff@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MAE?AV?$fpos@H@2@JHH@Z(ptr ptr long long long) basic_streambuf_char_seekoff @ cdecl -arch=win64 ?seekoff@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MEAA?AV?$fpos@H@2@_JHH@Z(ptr ptr long long long) basic_streambuf_char_seekoff @ thiscall -arch=win32 ?seekoff@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MAE?AV?$fpos@H@2@JHH@Z(ptr ptr long long long) basic_streambuf_wchar_seekoff @@ -5292,10 +5292,10 @@ @ cdecl -arch=win64 ?seekp@?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV12@_JH@Z(ptr long long) basic_ostream_wchar_seekp @ thiscall -arch=win32 ?seekpos@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MAE?AV?$fpos@H@2@V32@H@Z(ptr ptr long long int64 long long long) basic_filebuf_char_seekpos @ cdecl -arch=win64 ?seekpos@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MEAA?AV?$fpos@H@2@V32@H@Z(ptr ptr ptr long) basic_filebuf_char_seekpos -@ stub -arch=win32 ?seekpos@?$basic_filebuf@GU?$char_traits@G@std@@@std@@MAE?AV?$fpos@H@2@V32@H@Z -@ stub -arch=win64 ?seekpos@?$basic_filebuf@GU?$char_traits@G@std@@@std@@MEAA?AV?$fpos@H@2@V32@H@Z -@ stub -arch=win32 ?seekpos@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@MAE?AV?$fpos@H@2@V32@H@Z -@ stub -arch=win64 ?seekpos@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@MEAA?AV?$fpos@H@2@V32@H@Z +@ thiscall -arch=win32 ?seekpos@?$basic_filebuf@GU?$char_traits@G@std@@@std@@MAE?AV?$fpos@H@2@V32@H@Z(ptr ptr long long int64 long long long) basic_filebuf_wchar_seekpos +@ cdecl -arch=win64 ?seekpos@?$basic_filebuf@GU?$char_traits@G@std@@@std@@MEAA?AV?$fpos@H@2@V32@H@Z(ptr ptr ptr long) basic_filebuf_wchar_seekpos +@ thiscall -arch=win32 ?seekpos@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@MAE?AV?$fpos@H@2@V32@H@Z(ptr ptr long long int64 long long long) basic_filebuf_wchar_seekpos +@ cdecl -arch=win64 ?seekpos@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@MEAA?AV?$fpos@H@2@V32@H@Z(ptr ptr ptr long) basic_filebuf_wchar_seekpos @ thiscall -arch=win32 ?seekpos@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MAE?AV?$fpos@H@2@V32@H@Z(ptr ptr long long int64 long long long) basic_streambuf_char_seekpos @ cdecl -arch=win64 ?seekpos@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MEAA?AV?$fpos@H@2@V32@H@Z(ptr ptr ptr long) basic_streambuf_char_seekpos @ thiscall -arch=win32 ?seekpos@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MAE?AV?$fpos@H@2@V32@H@Z(ptr ptr long long int64 long long long) basic_streambuf_wchar_seekpos @@ -5315,10 +5315,10 @@ @ stub ?setbase@std@@YA?AU?$_Smanip@H@1@H@Z @ thiscall -arch=win32 ?setbuf@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MAEPAV?$basic_streambuf@DU?$char_traits@D@std@@@2@PADH@Z(ptr ptr long) basic_filebuf_char_setbuf @ cdecl -arch=win64 ?setbuf@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MEAAPEAV?$basic_streambuf@DU?$char_traits@D@std@@@2@PEAD_J@Z(ptr ptr long) basic_filebuf_char_setbuf -@ stub -arch=win32 ?setbuf@?$basic_filebuf@GU?$char_traits@G@std@@@std@@MAEPAV?$basic_streambuf@GU?$char_traits@G@std@@@2@PAGH@Z -@ stub -arch=win64 ?setbuf@?$basic_filebuf@GU?$char_traits@G@std@@@std@@MEAAPEAV?$basic_streambuf@GU?$char_traits@G@std@@@2@PEAG_J@Z -@ stub -arch=win32 ?setbuf@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@MAEPAV?$basic_streambuf@_WU?$char_traits@_W@std@@@2@PA_WH@Z -@ stub -arch=win64 ?setbuf@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@MEAAPEAV?$basic_streambuf@_WU?$char_traits@_W@std@@@2@PEA_W_J@Z +@ thiscall -arch=win32 ?setbuf@?$basic_filebuf@GU?$char_traits@G@std@@@std@@MAEPAV?$basic_streambuf@GU?$char_traits@G@std@@@2@PAGH@Z(ptr ptr long) basic_filebuf_char_setbuf +@ cdecl -arch=win64 ?setbuf@?$basic_filebuf@GU?$char_traits@G@std@@@std@@MEAAPEAV?$basic_streambuf@GU?$char_traits@G@std@@@2@PEAG_J@Z(ptr ptr long) basic_filebuf_char_setbuf +@ thiscall -arch=win32 ?setbuf@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@MAEPAV?$basic_streambuf@_WU?$char_traits@_W@std@@@2@PA_WH@Z(ptr ptr long) basic_filebuf_wchar_setbuf +@ cdecl -arch=win64 ?setbuf@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@MEAAPEAV?$basic_streambuf@_WU?$char_traits@_W@std@@@2@PEA_W_J@Z(ptr ptr long) basic_filebuf_wchar_setbuf @ thiscall -arch=win32 ?setbuf@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MAEPAV12@PADH@Z(ptr ptr long) basic_streambuf_char_setbuf @ cdecl -arch=win64 ?setbuf@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MEAAPEAV12@PEAD_J@Z(ptr ptr long) basic_streambuf_char_setbuf @ thiscall -arch=win32 ?setbuf@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MAEPAV12@PAGH@Z(ptr ptr long) basic_streambuf_wchar_setbuf @@ -5516,10 +5516,10 @@ @ cdecl -arch=win64 ?swap@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAXAEAV12@@Z(ptr ptr) MSVCP_basic_string_wchar_swap @ thiscall -arch=win32 ?sync@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MAEHXZ(ptr) basic_filebuf_char_sync @ cdecl -arch=win64 ?sync@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MEAAHXZ(ptr) basic_filebuf_char_sync -@ stub -arch=win32 ?sync@?$basic_filebuf@GU?$char_traits@G@std@@@std@@MAEHXZ -@ stub -arch=win64 ?sync@?$basic_filebuf@GU?$char_traits@G@std@@@std@@MEAAHXZ -@ stub -arch=win32 ?sync@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@MAEHXZ -@ stub -arch=win64 ?sync@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@MEAAHXZ +@ thiscall -arch=win32 ?sync@?$basic_filebuf@GU?$char_traits@G@std@@@std@@MAEHXZ(ptr) basic_filebuf_wchar_sync +@ cdecl -arch=win64 ?sync@?$basic_filebuf@GU?$char_traits@G@std@@@std@@MEAAHXZ(ptr) basic_filebuf_wchar_sync +@ thiscall -arch=win32 ?sync@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@MAEHXZ(ptr) basic_filebuf_wchar_sync +@ cdecl -arch=win64 ?sync@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@MEAAHXZ(ptr) basic_filebuf_wchar_sync @ thiscall -arch=win32 ?sync@?$basic_istream@DU?$char_traits@D@std@@@std@@QAEHXZ(ptr) basic_istream_char_sync @ cdecl -arch=win64 ?sync@?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAHXZ(ptr) basic_istream_char_sync @ stub -arch=win32 ?sync@?$basic_istream@GU?$char_traits@G@std@@@std@@QAEHXZ @@ -5630,10 +5630,10 @@ @ cdecl -arch=win64 ?truename@?$numpunct@_W@std@@QEBA?AV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@2@XZ(ptr ptr) numpunct_wchar_truename @ thiscall -arch=win32 ?uflow@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MAEHXZ(ptr) basic_filebuf_char_uflow @ cdecl -arch=win64 ?uflow@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MEAAHXZ(ptr) basic_filebuf_char_uflow -@ stub -arch=win32 ?uflow@?$basic_filebuf@GU?$char_traits@G@std@@@std@@MAEGXZ -@ stub -arch=win64 ?uflow@?$basic_filebuf@GU?$char_traits@G@std@@@std@@MEAAGXZ -@ stub -arch=win32 ?uflow@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@MAEGXZ -@ stub -arch=win64 ?uflow@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@MEAAGXZ +@ thiscall -arch=win32 ?uflow@?$basic_filebuf@GU?$char_traits@G@std@@@std@@MAEGXZ(ptr) basic_filebuf_wchar_uflow +@ cdecl -arch=win64 ?uflow@?$basic_filebuf@GU?$char_traits@G@std@@@std@@MEAAGXZ(ptr) basic_filebuf_wchar_uflow +@ thiscall -arch=win32 ?uflow@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@MAEGXZ(ptr) basic_filebuf_wchar_uflow +@ cdecl -arch=win64 ?uflow@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@MEAAGXZ(ptr) basic_filebuf_wchar_uflow @ thiscall -arch=win32 ?uflow@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MAEHXZ(ptr) basic_streambuf_char_uflow @ cdecl -arch=win64 ?uflow@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MEAAHXZ(ptr) basic_streambuf_char_uflow @ thiscall -arch=win32 ?uflow@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MAEGXZ(ptr) basic_streambuf_wchar_uflow @@ -5643,10 +5643,10 @@ @ cdecl ?uncaught_exception@std@@YA_NXZ() msvcrt.__uncaught_exception @ thiscall -arch=win32 ?underflow@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MAEHXZ(ptr) basic_filebuf_char_underflow @ cdecl -arch=win64 ?underflow@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MEAAHXZ(ptr) basic_filebuf_char_underflow -@ stub -arch=win32 ?underflow@?$basic_filebuf@GU?$char_traits@G@std@@@std@@MAEGXZ -@ stub -arch=win64 ?underflow@?$basic_filebuf@GU?$char_traits@G@std@@@std@@MEAAGXZ -@ stub -arch=win32 ?underflow@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@MAEGXZ -@ stub -arch=win64 ?underflow@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@MEAAGXZ +@ thiscall -arch=win32 ?underflow@?$basic_filebuf@GU?$char_traits@G@std@@@std@@MAEGXZ(ptr) basic_filebuf_wchar_underflow +@ cdecl -arch=win64 ?underflow@?$basic_filebuf@GU?$char_traits@G@std@@@std@@MEAAGXZ(ptr) basic_filebuf_wchar_underflow +@ thiscall -arch=win32 ?underflow@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@MAEGXZ(ptr) basic_filebuf_wchar_underflow +@ cdecl -arch=win64 ?underflow@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@MEAAGXZ(ptr) basic_filebuf_wchar_underflow @ thiscall -arch=win32 ?underflow@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MAEHXZ(ptr) basic_streambuf_char_underflow @ cdecl -arch=win64 ?underflow@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MEAAHXZ(ptr) basic_streambuf_char_underflow @ thiscall -arch=win32 ?underflow@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MAEGXZ(ptr) basic_streambuf_wchar_underflow