From bc62a7a9dbc689006c5ed2bace9be57a69324479 Mon Sep 17 00:00:00 2001 From: Daniel Lehman Date: Thu, 25 Oct 2012 10:01:12 -0700 Subject: [PATCH] msvcp: Sync istream<>::seekg implementations. --- dlls/msvcp100/ios.c | 107 +++++++++++++++++++------------------------- dlls/msvcp60/ios.c | 107 +++++++++++++++++++------------------------- dlls/msvcp71/ios.c | 107 +++++++++++++++++++------------------------- 3 files changed, 141 insertions(+), 180 deletions(-) diff --git a/dlls/msvcp100/ios.c b/dlls/msvcp100/ios.c index 83a2c3aa86..278abd80f7 100644 --- a/dlls/msvcp100/ios.c +++ b/dlls/msvcp100/ios.c @@ -6006,24 +6006,20 @@ basic_istream_char* __thiscall basic_istream_char_seekg(basic_istream_char *this TRACE("(%p %s %d)\n", this, wine_dbgstr_longlong(off), dir); - if(basic_istream_char_sentry_create(this, TRUE)) { - if(!ios_base_fail(&base->base)) { - basic_streambuf_char *strbuf = basic_ios_char_rdbuf_get(base); - fpos_int ret; + if(!ios_base_fail(&base->base)) { + basic_streambuf_char *strbuf = basic_ios_char_rdbuf_get(base); + fpos_int ret; - basic_streambuf_char_pubseekoff(strbuf, &ret, off, dir, OPENMODE_in); - basic_istream_char_sentry_destroy(this); + basic_streambuf_char_pubseekoff(strbuf, &ret, off, dir, OPENMODE_in); - if(ret.off==0 && ret.pos==-1 && ret.state==0) - basic_ios_char_setstate(base, IOSTATE_failbit); - else - basic_ios_char_clear(base, IOSTATE_goodbit); - return this; - } - } - basic_istream_char_sentry_destroy(this); + if(ret.off==0 && ret.pos==-1 && ret.state==0) + basic_ios_char_setstate(base, IOSTATE_failbit); + else + basic_ios_char_clear(base, IOSTATE_goodbit); + return this; + }else + basic_ios_char_clear(base, IOSTATE_goodbit); - basic_ios_char_setstate(base, IOSTATE_failbit); return this; } @@ -6036,24 +6032,21 @@ basic_istream_char* __thiscall basic_istream_char_seekg_fpos(basic_istream_char TRACE("(%p %s)\n", this, debugstr_fpos_int(&pos)); - if(basic_istream_char_sentry_create(this, TRUE)) { - if(!ios_base_fail(&base->base)) { - basic_streambuf_char *strbuf = basic_ios_char_rdbuf_get(base); - fpos_int ret; + if(!ios_base_fail(&base->base)) { + basic_streambuf_char *strbuf = basic_ios_char_rdbuf_get(base); + fpos_int ret; - basic_streambuf_char_pubseekpos(strbuf, &ret, pos, OPENMODE_in); - basic_istream_char_sentry_destroy(this); + basic_streambuf_char_pubseekpos(strbuf, &ret, pos, OPENMODE_in); + basic_istream_char_sentry_destroy(this); - if(ret.off==0 && ret.pos==-1 && ret.state==0) - basic_ios_char_setstate(base, IOSTATE_failbit); - else - basic_ios_char_clear(base, IOSTATE_goodbit); - return this; - } - } - basic_istream_char_sentry_destroy(this); + if(ret.off==0 && ret.pos==-1 && ret.state==0) + basic_ios_char_setstate(base, IOSTATE_failbit); + else + basic_ios_char_clear(base, IOSTATE_goodbit); + return this; + }else + basic_ios_char_clear(base, IOSTATE_goodbit); - basic_ios_char_setstate(base, IOSTATE_failbit); return this; } @@ -7159,24 +7152,21 @@ basic_istream_wchar* __thiscall basic_istream_wchar_seekg(basic_istream_wchar *t TRACE("(%p %s %d)\n", this, wine_dbgstr_longlong(off), dir); - if(basic_istream_wchar_sentry_create(this, TRUE)) { - if(!ios_base_fail(&base->base)) { - basic_streambuf_wchar *strbuf = basic_ios_wchar_rdbuf_get(base); - fpos_int ret; + if(!ios_base_fail(&base->base)) { + basic_streambuf_wchar *strbuf = basic_ios_wchar_rdbuf_get(base); + fpos_int ret; - basic_streambuf_wchar_pubseekoff(strbuf, &ret, off, dir, OPENMODE_in); - basic_istream_wchar_sentry_destroy(this); + basic_streambuf_wchar_pubseekoff(strbuf, &ret, off, dir, OPENMODE_in); + basic_istream_wchar_sentry_destroy(this); - if(ret.off==0 && ret.pos==-1 && ret.state==0) - basic_ios_wchar_setstate(base, IOSTATE_failbit); - else - basic_ios_wchar_clear(base, IOSTATE_goodbit); - return this; - } - } - basic_istream_wchar_sentry_destroy(this); + if(ret.off==0 && ret.pos==-1 && ret.state==0) + basic_ios_wchar_setstate(base, IOSTATE_failbit); + else + basic_ios_wchar_clear(base, IOSTATE_goodbit); + return this; + }else + basic_ios_wchar_clear(base, IOSTATE_goodbit); - basic_ios_wchar_setstate(base, IOSTATE_failbit); return this; } @@ -7191,24 +7181,21 @@ basic_istream_wchar* __thiscall basic_istream_wchar_seekg_fpos(basic_istream_wch TRACE("(%p %s)\n", this, debugstr_fpos_int(&pos)); - if(basic_istream_wchar_sentry_create(this, TRUE)) { - if(!ios_base_fail(&base->base)) { - basic_streambuf_wchar *strbuf = basic_ios_wchar_rdbuf_get(base); - fpos_int ret; + if(!ios_base_fail(&base->base)) { + basic_streambuf_wchar *strbuf = basic_ios_wchar_rdbuf_get(base); + fpos_int ret; - basic_streambuf_wchar_pubseekpos(strbuf, &ret, pos, OPENMODE_in); - basic_istream_wchar_sentry_destroy(this); + basic_streambuf_wchar_pubseekpos(strbuf, &ret, pos, OPENMODE_in); + basic_istream_wchar_sentry_destroy(this); - if(ret.off==0 && ret.pos==-1 && ret.state==0) - basic_ios_wchar_setstate(base, IOSTATE_failbit); - else - basic_ios_wchar_clear(base, IOSTATE_goodbit); - return this; - } - } - basic_istream_wchar_sentry_destroy(this); + if(ret.off==0 && ret.pos==-1 && ret.state==0) + basic_ios_wchar_setstate(base, IOSTATE_failbit); + else + basic_ios_wchar_clear(base, IOSTATE_goodbit); + return this; + }else + basic_ios_wchar_clear(base, IOSTATE_goodbit); - basic_ios_wchar_setstate(base, IOSTATE_failbit); return this; } diff --git a/dlls/msvcp60/ios.c b/dlls/msvcp60/ios.c index 8201554709..71ff1931a2 100644 --- a/dlls/msvcp60/ios.c +++ b/dlls/msvcp60/ios.c @@ -7397,24 +7397,20 @@ basic_istream_char* __thiscall basic_istream_char_seekg(basic_istream_char *this TRACE("(%p %ld %d)\n", this, off, dir); - if(basic_istream_char_sentry_create(this, TRUE)) { - if(!ios_base_fail(&base->base)) { - basic_streambuf_char *strbuf = basic_ios_char_rdbuf_get(base); - fpos_int ret; + if(!ios_base_fail(&base->base)) { + basic_streambuf_char *strbuf = basic_ios_char_rdbuf_get(base); + fpos_int ret; - basic_streambuf_char_pubseekoff(strbuf, &ret, off, dir, OPENMODE_in); - basic_istream_char_sentry_destroy(this); + basic_streambuf_char_pubseekoff(strbuf, &ret, off, dir, OPENMODE_in); - if(ret.off==0 && ret.pos==-1 && ret.state==0) - basic_ios_char_setstate(base, IOSTATE_failbit); - else - basic_ios_char_clear(base, IOSTATE_goodbit); - return this; - } - } - basic_istream_char_sentry_destroy(this); + if(ret.off==0 && ret.pos==-1 && ret.state==0) + basic_ios_char_setstate(base, IOSTATE_failbit); + else + basic_ios_char_clear(base, IOSTATE_goodbit); + return this; + }else + basic_ios_char_clear(base, IOSTATE_goodbit); - basic_ios_char_setstate(base, IOSTATE_failbit); return this; } @@ -7427,24 +7423,21 @@ basic_istream_char* __thiscall basic_istream_char_seekg_fpos(basic_istream_char TRACE("(%p %s)\n", this, debugstr_fpos_int(&pos)); - if(basic_istream_char_sentry_create(this, TRUE)) { - if(!ios_base_fail(&base->base)) { - basic_streambuf_char *strbuf = basic_ios_char_rdbuf_get(base); - fpos_int ret; + if(!ios_base_fail(&base->base)) { + basic_streambuf_char *strbuf = basic_ios_char_rdbuf_get(base); + fpos_int ret; - basic_streambuf_char_pubseekpos(strbuf, &ret, pos, OPENMODE_in); - basic_istream_char_sentry_destroy(this); + basic_streambuf_char_pubseekpos(strbuf, &ret, pos, OPENMODE_in); + basic_istream_char_sentry_destroy(this); - if(ret.off==0 && ret.pos==-1 && ret.state==0) - basic_ios_char_setstate(base, IOSTATE_failbit); - else - basic_ios_char_clear(base, IOSTATE_goodbit); - return this; - } - } - basic_istream_char_sentry_destroy(this); + if(ret.off==0 && ret.pos==-1 && ret.state==0) + basic_ios_char_setstate(base, IOSTATE_failbit); + else + basic_ios_char_clear(base, IOSTATE_goodbit); + return this; + }else + basic_ios_char_clear(base, IOSTATE_goodbit); - basic_ios_char_setstate(base, IOSTATE_failbit); return this; } @@ -8675,24 +8668,21 @@ basic_istream_wchar* __thiscall basic_istream_wchar_seekg(basic_istream_wchar *t TRACE("(%p %ld %d)\n", this, off, dir); - if(basic_istream_wchar_sentry_create(this, TRUE)) { - if(!ios_base_fail(&base->base)) { - basic_streambuf_wchar *strbuf = basic_ios_wchar_rdbuf_get(base); - fpos_int ret; + if(!ios_base_fail(&base->base)) { + basic_streambuf_wchar *strbuf = basic_ios_wchar_rdbuf_get(base); + fpos_int ret; - basic_streambuf_wchar_pubseekoff(strbuf, &ret, off, dir, OPENMODE_in); - basic_istream_wchar_sentry_destroy(this); + basic_streambuf_wchar_pubseekoff(strbuf, &ret, off, dir, OPENMODE_in); + basic_istream_wchar_sentry_destroy(this); - if(ret.off==0 && ret.pos==-1 && ret.state==0) - basic_ios_wchar_setstate(base, IOSTATE_failbit); - else - basic_ios_wchar_clear(base, IOSTATE_goodbit); - return this; - } - } - basic_istream_wchar_sentry_destroy(this); + if(ret.off==0 && ret.pos==-1 && ret.state==0) + basic_ios_wchar_setstate(base, IOSTATE_failbit); + else + basic_ios_wchar_clear(base, IOSTATE_goodbit); + return this; + }else + basic_ios_wchar_clear(base, IOSTATE_goodbit); - basic_ios_wchar_setstate(base, IOSTATE_failbit); return this; } @@ -8707,24 +8697,21 @@ basic_istream_wchar* __thiscall basic_istream_wchar_seekg_fpos(basic_istream_wch TRACE("(%p %s)\n", this, debugstr_fpos_int(&pos)); - if(basic_istream_wchar_sentry_create(this, TRUE)) { - if(!ios_base_fail(&base->base)) { - basic_streambuf_wchar *strbuf = basic_ios_wchar_rdbuf_get(base); - fpos_int ret; + if(!ios_base_fail(&base->base)) { + basic_streambuf_wchar *strbuf = basic_ios_wchar_rdbuf_get(base); + fpos_int ret; - basic_streambuf_wchar_pubseekpos(strbuf, &ret, pos, OPENMODE_in); - basic_istream_wchar_sentry_destroy(this); + basic_streambuf_wchar_pubseekpos(strbuf, &ret, pos, OPENMODE_in); + basic_istream_wchar_sentry_destroy(this); - if(ret.off==0 && ret.pos==-1 && ret.state==0) - basic_ios_wchar_setstate(base, IOSTATE_failbit); - else - basic_ios_wchar_clear(base, IOSTATE_goodbit); - return this; - } - } - basic_istream_wchar_sentry_destroy(this); + if(ret.off==0 && ret.pos==-1 && ret.state==0) + basic_ios_wchar_setstate(base, IOSTATE_failbit); + else + basic_ios_wchar_clear(base, IOSTATE_goodbit); + return this; + }else + basic_ios_wchar_clear(base, IOSTATE_goodbit); - basic_ios_wchar_setstate(base, IOSTATE_failbit); return this; } diff --git a/dlls/msvcp71/ios.c b/dlls/msvcp71/ios.c index 34404b507c..be8f7443a8 100644 --- a/dlls/msvcp71/ios.c +++ b/dlls/msvcp71/ios.c @@ -7729,24 +7729,20 @@ basic_istream_char* __thiscall basic_istream_char_seekg(basic_istream_char *this TRACE("(%p %ld %d)\n", this, off, dir); - if(basic_istream_char_sentry_create(this, TRUE)) { - if(!ios_base_fail(&base->base)) { - basic_streambuf_char *strbuf = basic_ios_char_rdbuf_get(base); - fpos_int ret; + if(!ios_base_fail(&base->base)) { + basic_streambuf_char *strbuf = basic_ios_char_rdbuf_get(base); + fpos_int ret; - basic_streambuf_char_pubseekoff(strbuf, &ret, off, dir, OPENMODE_in); - basic_istream_char_sentry_destroy(this); + basic_streambuf_char_pubseekoff(strbuf, &ret, off, dir, OPENMODE_in); - if(ret.off==0 && ret.pos==-1 && ret.state==0) - basic_ios_char_setstate(base, IOSTATE_failbit); - else - basic_ios_char_clear(base, IOSTATE_goodbit); - return this; - } - } - basic_istream_char_sentry_destroy(this); + if(ret.off==0 && ret.pos==-1 && ret.state==0) + basic_ios_char_setstate(base, IOSTATE_failbit); + else + basic_ios_char_clear(base, IOSTATE_goodbit); + return this; + }else + basic_ios_char_clear(base, IOSTATE_goodbit); - basic_ios_char_setstate(base, IOSTATE_failbit); return this; } @@ -7759,24 +7755,21 @@ basic_istream_char* __thiscall basic_istream_char_seekg_fpos(basic_istream_char TRACE("(%p %s)\n", this, debugstr_fpos_int(&pos)); - if(basic_istream_char_sentry_create(this, TRUE)) { - if(!ios_base_fail(&base->base)) { - basic_streambuf_char *strbuf = basic_ios_char_rdbuf_get(base); - fpos_int ret; + if(!ios_base_fail(&base->base)) { + basic_streambuf_char *strbuf = basic_ios_char_rdbuf_get(base); + fpos_int ret; - basic_streambuf_char_pubseekpos(strbuf, &ret, pos, OPENMODE_in); - basic_istream_char_sentry_destroy(this); + basic_streambuf_char_pubseekpos(strbuf, &ret, pos, OPENMODE_in); + basic_istream_char_sentry_destroy(this); - if(ret.off==0 && ret.pos==-1 && ret.state==0) - basic_ios_char_setstate(base, IOSTATE_failbit); - else - basic_ios_char_clear(base, IOSTATE_goodbit); - return this; - } - } - basic_istream_char_sentry_destroy(this); + if(ret.off==0 && ret.pos==-1 && ret.state==0) + basic_ios_char_setstate(base, IOSTATE_failbit); + else + basic_ios_char_clear(base, IOSTATE_goodbit); + return this; + }else + basic_ios_char_clear(base, IOSTATE_goodbit); - basic_ios_char_setstate(base, IOSTATE_failbit); return this; } @@ -9012,24 +9005,21 @@ basic_istream_wchar* __thiscall basic_istream_wchar_seekg(basic_istream_wchar *t TRACE("(%p %ld %d)\n", this, off, dir); - if(basic_istream_wchar_sentry_create(this, TRUE)) { - if(!ios_base_fail(&base->base)) { - basic_streambuf_wchar *strbuf = basic_ios_wchar_rdbuf_get(base); - fpos_int ret; + if(!ios_base_fail(&base->base)) { + basic_streambuf_wchar *strbuf = basic_ios_wchar_rdbuf_get(base); + fpos_int ret; - basic_streambuf_wchar_pubseekoff(strbuf, &ret, off, dir, OPENMODE_in); - basic_istream_wchar_sentry_destroy(this); + basic_streambuf_wchar_pubseekoff(strbuf, &ret, off, dir, OPENMODE_in); + basic_istream_wchar_sentry_destroy(this); - if(ret.off==0 && ret.pos==-1 && ret.state==0) - basic_ios_wchar_setstate(base, IOSTATE_failbit); - else - basic_ios_wchar_clear(base, IOSTATE_goodbit); - return this; - } - } - basic_istream_wchar_sentry_destroy(this); + if(ret.off==0 && ret.pos==-1 && ret.state==0) + basic_ios_wchar_setstate(base, IOSTATE_failbit); + else + basic_ios_wchar_clear(base, IOSTATE_goodbit); + return this; + }else + basic_ios_wchar_clear(base, IOSTATE_goodbit); - basic_ios_wchar_setstate(base, IOSTATE_failbit); return this; } @@ -9044,24 +9034,21 @@ basic_istream_wchar* __thiscall basic_istream_wchar_seekg_fpos(basic_istream_wch TRACE("(%p %s)\n", this, debugstr_fpos_int(&pos)); - if(basic_istream_wchar_sentry_create(this, TRUE)) { - if(!ios_base_fail(&base->base)) { - basic_streambuf_wchar *strbuf = basic_ios_wchar_rdbuf_get(base); - fpos_int ret; + if(!ios_base_fail(&base->base)) { + basic_streambuf_wchar *strbuf = basic_ios_wchar_rdbuf_get(base); + fpos_int ret; - basic_streambuf_wchar_pubseekpos(strbuf, &ret, pos, OPENMODE_in); - basic_istream_wchar_sentry_destroy(this); + basic_streambuf_wchar_pubseekpos(strbuf, &ret, pos, OPENMODE_in); + basic_istream_wchar_sentry_destroy(this); - if(ret.off==0 && ret.pos==-1 && ret.state==0) - basic_ios_wchar_setstate(base, IOSTATE_failbit); - else - basic_ios_wchar_clear(base, IOSTATE_goodbit); - return this; - } - } - basic_istream_wchar_sentry_destroy(this); + if(ret.off==0 && ret.pos==-1 && ret.state==0) + basic_ios_wchar_setstate(base, IOSTATE_failbit); + else + basic_ios_wchar_clear(base, IOSTATE_goodbit); + return this; + }else + basic_ios_wchar_clear(base, IOSTATE_goodbit); - basic_ios_wchar_setstate(base, IOSTATE_failbit); return this; } -- 2.32.0.93.g670b81a890