Module: wine Branch: master Commit: 7fcffc7b5834d15cb83d7744a38c7ead7effb781 URL: http://source.winehq.org/git/wine.git/?a=commit;h=7fcffc7b5834d15cb83d7744a3...
Author: Piotr Caban piotr@codeweavers.com Date: Fri Jun 15 11:08:31 2012 +0200
msvcp90: Added setprecision implementation.
---
dlls/msvcp90/ios.c | 21 +++++++++++++++++++++ dlls/msvcp90/msvcp90.spec | 4 ++-- 2 files changed, 23 insertions(+), 2 deletions(-)
diff --git a/dlls/msvcp90/ios.c b/dlls/msvcp90/ios.c index 5232ecf..2c47137 100644 --- a/dlls/msvcp90/ios.c +++ b/dlls/msvcp90/ios.c @@ -132,6 +132,11 @@ static inline const char* debugstr_fpos_int(fpos_int *fpos) }
typedef struct { + void (__cdecl *pfunc)(ios_base*, streamsize); + streamsize arg; +} manip_streamsize; + +typedef struct { const vtable_ptr *vtable; mutex lock; char *rbuf; @@ -5541,6 +5546,22 @@ basic_filebuf_char* __thiscall basic_fstream_char_rdbuf(const basic_fstream_char return (basic_filebuf_char*)&this->filebuf; }
+static void __cdecl setprecision_func(ios_base *base, streamsize prec) +{ + ios_base_precision_set(base, prec); +} + +/* ?setprecision@std@@YA?AU?$_Smanip@H@1@H@Z */ +/* ?setprecision@std@@YA?AU?$_Smanip@_J@1@_J@Z */ +manip_streamsize* __cdecl setprecision(manip_streamsize *ret, streamsize prec) +{ + TRACE("(%p %ld)\n", ret, prec); + + ret->pfunc = setprecision_func; + ret->arg = prec; + return ret; +} + static basic_filebuf_char filebuf_stdin; /* ?cin@std@@3V?$basic_istream@DU?$char_traits@D@std@@@1@A */ struct { diff --git a/dlls/msvcp90/msvcp90.spec b/dlls/msvcp90/msvcp90.spec index fb873b5..fccc07d 100644 --- a/dlls/msvcp90/msvcp90.spec +++ b/dlls/msvcp90/msvcp90.spec @@ -5348,8 +5348,8 @@ @ cdecl -arch=win64 ?setp@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEAAXPEA_W00@Z(ptr ptr ptr ptr) basic_streambuf_wchar_setp_next @ thiscall -arch=win32 ?setp@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IAEXPA_W0@Z(ptr ptr ptr) basic_streambuf_wchar_setp @ cdecl -arch=win64 ?setp@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEAAXPEA_W0@Z(ptr ptr ptr) basic_streambuf_wchar_setp -@ stub -arch=win32 ?setprecision@std@@YA?AU?$_Smanip@H@1@H@Z -@ stub -arch=win64 ?setprecision@std@@YA?AU?$_Smanip@_J@1@_J@Z +@ cdecl -arch=win32 ?setprecision@std@@YA?AU?$_Smanip@H@1@H@Z(ptr long) setprecision +@ cdecl -arch=win64 ?setprecision@std@@YA?AU?$_Smanip@_J@1@_J@Z(ptr long) setprecision @ thiscall -arch=win32 ?setstate@?$basic_ios@DU?$char_traits@D@std@@@std@@QAEXH_N@Z(ptr long long) basic_ios_char_setstate_reraise @ cdecl -arch=win64 ?setstate@?$basic_ios@DU?$char_traits@D@std@@@std@@QEAAXH_N@Z(ptr long long) basic_ios_char_setstate_reraise @ thiscall -arch=win32 ?setstate@?$basic_ios@DU?$char_traits@D@std@@@std@@QAEXI@Z(ptr long) basic_ios_char_setstate