Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
W
wine-winehq
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Registry
Registry
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
wine
wine-winehq
Commits
ff6231d1
Commit
ff6231d1
authored
Mar 19, 2015
by
YongHao Hu
Committed by
Alexandre Julliard
Mar 19, 2015
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
msvcp90: Add istream::operator>>complex implementation and tests.
parent
5acb82fc
Show whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
299 additions
and
18 deletions
+299
-18
msvcp71.spec
dlls/msvcp71/msvcp71.spec
+6
-6
msvcp80.spec
dlls/msvcp80/msvcp80.spec
+6
-6
ios.c
dlls/msvcp90/ios.c
+177
-0
msvcp90.spec
dlls/msvcp90/msvcp90.spec
+6
-6
ios.c
dlls/msvcp90/tests/ios.c
+104
-0
No files found.
dlls/msvcp71/msvcp71.spec
View file @
ff6231d1
...
...
@@ -18,20 +18,20 @@
@ cdecl -arch=win64 ??$?5GU?$char_traits@G@std@@@std@@YAAEAV?$basic_istream@GU?$char_traits@G@std@@@0@AEAV10@PEAG@Z(ptr ptr) basic_istream_short_read_str
@ cdecl -arch=win32 ??$?5GU?$char_traits@G@std@@V?$allocator@G@1@@std@@YAAAV?$basic_istream@GU?$char_traits@G@std@@@0@AAV10@AAV?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@0@@Z(ptr ptr) basic_istream_short_read_bstr
@ cdecl -arch=win64 ??$?5GU?$char_traits@G@std@@V?$allocator@G@1@@std@@YAAEAV?$basic_istream@GU?$char_traits@G@std@@@0@AEAV10@AEAV?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@0@@Z(ptr ptr) basic_istream_short_read_bstr
@
stub -arch=win32 ??$?5MDU?$char_traits@D@std@@@std@@YAAAV?$basic_istream@DU?$char_traits@D@std@@@0@AAV10@AAV?$complex@M@0@@Z
@
stub -arch=win64 ??$?5MDU?$char_traits@D@std@@@std@@YAAEAV?$basic_istream@DU?$char_traits@D@std@@@0@AEAV10@AEAV?$complex@M@0@@Z
@
cdecl -arch=win32 ??$?5MDU?$char_traits@D@std@@@std@@YAAAV?$basic_istream@DU?$char_traits@D@std@@@0@AAV10@AAV?$complex@M@0@@Z(ptr ptr) basic_istream_char_read_complex_float
@
cdecl -arch=win64 ??$?5MDU?$char_traits@D@std@@@std@@YAAEAV?$basic_istream@DU?$char_traits@D@std@@@0@AEAV10@AEAV?$complex@M@0@@Z(ptr ptr) basic_istream_char_read_complex_float
@ stub -arch=win32 ??$?5MGU?$char_traits@G@std@@@std@@YAAAV?$basic_istream@GU?$char_traits@G@std@@@0@AAV10@AAV?$complex@M@0@@Z
@ stub -arch=win64 ??$?5MGU?$char_traits@G@std@@@std@@YAAEAV?$basic_istream@GU?$char_traits@G@std@@@0@AEAV10@AEAV?$complex@M@0@@Z
@ stub -arch=win32 ??$?5M_WU?$char_traits@_W@std@@@std@@YAAAV?$basic_istream@_WU?$char_traits@_W@std@@@0@AAV10@AAV?$complex@M@0@@Z
@ stub -arch=win64 ??$?5M_WU?$char_traits@_W@std@@@std@@YAAEAV?$basic_istream@_WU?$char_traits@_W@std@@@0@AEAV10@AEAV?$complex@M@0@@Z
@
stub -arch=win32 ??$?5NDU?$char_traits@D@std@@@std@@YAAAV?$basic_istream@DU?$char_traits@D@std@@@0@AAV10@AAV?$complex@N@0@@Z
@
stub -arch=win64 ??$?5NDU?$char_traits@D@std@@@std@@YAAEAV?$basic_istream@DU?$char_traits@D@std@@@0@AEAV10@AEAV?$complex@N@0@@Z
@
cdecl -arch=win32 ??$?5NDU?$char_traits@D@std@@@std@@YAAAV?$basic_istream@DU?$char_traits@D@std@@@0@AAV10@AAV?$complex@N@0@@Z(ptr ptr) basic_istream_char_read_complex_double
@
cdecl -arch=win64 ??$?5NDU?$char_traits@D@std@@@std@@YAAEAV?$basic_istream@DU?$char_traits@D@std@@@0@AEAV10@AEAV?$complex@N@0@@Z(ptr ptr) basic_istream_char_read_complex_double
@ stub -arch=win32 ??$?5NGU?$char_traits@G@std@@@std@@YAAAV?$basic_istream@GU?$char_traits@G@std@@@0@AAV10@AAV?$complex@N@0@@Z
@ stub -arch=win64 ??$?5NGU?$char_traits@G@std@@@std@@YAAEAV?$basic_istream@GU?$char_traits@G@std@@@0@AEAV10@AEAV?$complex@N@0@@Z
@ stub -arch=win32 ??$?5N_WU?$char_traits@_W@std@@@std@@YAAAV?$basic_istream@_WU?$char_traits@_W@std@@@0@AAV10@AAV?$complex@N@0@@Z
@ stub -arch=win64 ??$?5N_WU?$char_traits@_W@std@@@std@@YAAEAV?$basic_istream@_WU?$char_traits@_W@std@@@0@AEAV10@AEAV?$complex@N@0@@Z
@
stub -arch=win32 ??$?5ODU?$char_traits@D@std@@@std@@YAAAV?$basic_istream@DU?$char_traits@D@std@@@0@AAV10@AAV?$complex@O@0@@Z
@
stub -arch=win64 ??$?5ODU?$char_traits@D@std@@@std@@YAAEAV?$basic_istream@DU?$char_traits@D@std@@@0@AEAV10@AEAV?$complex@O@0@@Z
@
cdecl -arch=win32 ??$?5ODU?$char_traits@D@std@@@std@@YAAAV?$basic_istream@DU?$char_traits@D@std@@@0@AAV10@AAV?$complex@O@0@@Z(ptr ptr) basic_istream_char_read_complex_ldouble
@
cdecl -arch=win64 ??$?5ODU?$char_traits@D@std@@@std@@YAAEAV?$basic_istream@DU?$char_traits@D@std@@@0@AEAV10@AEAV?$complex@O@0@@Z(ptr ptr) basic_istream_char_read_complex_ldouble
@ stub -arch=win32 ??$?5OGU?$char_traits@G@std@@@std@@YAAAV?$basic_istream@GU?$char_traits@G@std@@@0@AAV10@AAV?$complex@O@0@@Z
@ stub -arch=win64 ??$?5OGU?$char_traits@G@std@@@std@@YAAEAV?$basic_istream@GU?$char_traits@G@std@@@0@AEAV10@AEAV?$complex@O@0@@Z
@ stub -arch=win32 ??$?5O_WU?$char_traits@_W@std@@@std@@YAAAV?$basic_istream@_WU?$char_traits@_W@std@@@0@AAV10@AAV?$complex@O@0@@Z
...
...
dlls/msvcp80/msvcp80.spec
View file @
ff6231d1
...
...
@@ -10,20 +10,20 @@
@ cdecl -arch=win64 ??$?5GU?$char_traits@G@std@@@std@@YAAEAV?$basic_istream@GU?$char_traits@G@std@@@0@AEAV10@PEAG@Z(ptr ptr) basic_istream_short_read_str
@ cdecl -arch=win32 ??$?5GU?$char_traits@G@std@@V?$allocator@G@1@@std@@YAAAV?$basic_istream@GU?$char_traits@G@std@@@0@AAV10@AAV?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@0@@Z(ptr ptr) basic_istream_short_read_bstr
@ cdecl -arch=win64 ??$?5GU?$char_traits@G@std@@V?$allocator@G@1@@std@@YAAEAV?$basic_istream@GU?$char_traits@G@std@@@0@AEAV10@AEAV?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@0@@Z(ptr ptr) basic_istream_short_read_bstr
@
stub -arch=win32 ??$?5MDU?$char_traits@D@std@@@std@@YAAAV?$basic_istream@DU?$char_traits@D@std@@@0@AAV10@AAV?$complex@M@0@@Z
@
stub -arch=win64 ??$?5MDU?$char_traits@D@std@@@std@@YAAEAV?$basic_istream@DU?$char_traits@D@std@@@0@AEAV10@AEAV?$complex@M@0@@Z
@
cdecl -arch=win32 ??$?5MDU?$char_traits@D@std@@@std@@YAAAV?$basic_istream@DU?$char_traits@D@std@@@0@AAV10@AAV?$complex@M@0@@Z(ptr ptr) basic_istream_char_read_complex_float
@
cdecl -arch=win64 ??$?5MDU?$char_traits@D@std@@@std@@YAAEAV?$basic_istream@DU?$char_traits@D@std@@@0@AEAV10@AEAV?$complex@M@0@@Z(ptr ptr) basic_istream_char_read_complex_float
@ stub -arch=win32 ??$?5MGU?$char_traits@G@std@@@std@@YAAAV?$basic_istream@GU?$char_traits@G@std@@@0@AAV10@AAV?$complex@M@0@@Z
@ stub -arch=win64 ??$?5MGU?$char_traits@G@std@@@std@@YAAEAV?$basic_istream@GU?$char_traits@G@std@@@0@AEAV10@AEAV?$complex@M@0@@Z
@ stub -arch=win32 ??$?5M_WU?$char_traits@_W@std@@@std@@YAAAV?$basic_istream@_WU?$char_traits@_W@std@@@0@AAV10@AAV?$complex@M@0@@Z
@ stub -arch=win64 ??$?5M_WU?$char_traits@_W@std@@@std@@YAAEAV?$basic_istream@_WU?$char_traits@_W@std@@@0@AEAV10@AEAV?$complex@M@0@@Z
@
stub -arch=win32 ??$?5NDU?$char_traits@D@std@@@std@@YAAAV?$basic_istream@DU?$char_traits@D@std@@@0@AAV10@AAV?$complex@N@0@@Z
@
stub -arch=win64 ??$?5NDU?$char_traits@D@std@@@std@@YAAEAV?$basic_istream@DU?$char_traits@D@std@@@0@AEAV10@AEAV?$complex@N@0@@Z
@
cdecl -arch=win32 ??$?5NDU?$char_traits@D@std@@@std@@YAAAV?$basic_istream@DU?$char_traits@D@std@@@0@AAV10@AAV?$complex@N@0@@Z(ptr ptr) basic_istream_char_read_complex_double
@
cdecl -arch=win64 ??$?5NDU?$char_traits@D@std@@@std@@YAAEAV?$basic_istream@DU?$char_traits@D@std@@@0@AEAV10@AEAV?$complex@N@0@@Z(ptr ptr) basic_istream_char_read_complex_double
@ stub -arch=win32 ??$?5NGU?$char_traits@G@std@@@std@@YAAAV?$basic_istream@GU?$char_traits@G@std@@@0@AAV10@AAV?$complex@N@0@@Z
@ stub -arch=win64 ??$?5NGU?$char_traits@G@std@@@std@@YAAEAV?$basic_istream@GU?$char_traits@G@std@@@0@AEAV10@AEAV?$complex@N@0@@Z
@ stub -arch=win32 ??$?5N_WU?$char_traits@_W@std@@@std@@YAAAV?$basic_istream@_WU?$char_traits@_W@std@@@0@AAV10@AAV?$complex@N@0@@Z
@ stub -arch=win64 ??$?5N_WU?$char_traits@_W@std@@@std@@YAAEAV?$basic_istream@_WU?$char_traits@_W@std@@@0@AEAV10@AEAV?$complex@N@0@@Z
@
stub -arch=win32 ??$?5ODU?$char_traits@D@std@@@std@@YAAAV?$basic_istream@DU?$char_traits@D@std@@@0@AAV10@AAV?$complex@O@0@@Z
@
stub -arch=win64 ??$?5ODU?$char_traits@D@std@@@std@@YAAEAV?$basic_istream@DU?$char_traits@D@std@@@0@AEAV10@AEAV?$complex@O@0@@Z
@
cdecl -arch=win32 ??$?5ODU?$char_traits@D@std@@@std@@YAAAV?$basic_istream@DU?$char_traits@D@std@@@0@AAV10@AAV?$complex@O@0@@Z(ptr ptr) basic_istream_char_read_complex_ldouble
@
cdecl -arch=win64 ??$?5ODU?$char_traits@D@std@@@std@@YAAEAV?$basic_istream@DU?$char_traits@D@std@@@0@AEAV10@AEAV?$complex@O@0@@Z(ptr ptr) basic_istream_char_read_complex_ldouble
@ stub -arch=win32 ??$?5OGU?$char_traits@G@std@@@std@@YAAAV?$basic_istream@GU?$char_traits@G@std@@@0@AAV10@AAV?$complex@O@0@@Z
@ stub -arch=win64 ??$?5OGU?$char_traits@G@std@@@std@@YAAEAV?$basic_istream@GU?$char_traits@G@std@@@0@AEAV10@AEAV?$complex@O@0@@Z
@ stub -arch=win32 ??$?5O_WU?$char_traits@_W@std@@@std@@YAAAV?$basic_istream@_WU?$char_traits@_W@std@@@0@AAV10@AAV?$complex@O@0@@Z
...
...
dlls/msvcp90/ios.c
View file @
ff6231d1
...
...
@@ -9026,6 +9026,183 @@ basic_istream_char* __thiscall basic_istream_char_read_func_ios_base(basic_istre
return
this
;
}
/* ??$?5MDU?$char_traits@D@std@@@std@@YAAAV?$basic_istream@DU?$char_traits@D@std@@@0@AAV10@AAV?$complex@M@0@@Z */
/* ??$?5MDU?$char_traits@D@std@@@std@@YAAEAV?$basic_istream@DU?$char_traits@D@std@@@0@AEAV10@AEAV?$complex@M@0@@Z */
basic_istream_char
*
__cdecl
basic_istream_char_read_complex_float
(
basic_istream_char
*
this
,
complex_float
*
v
)
{
float
r
;
basic_ios_char
*
base
=
basic_istream_char_get_basic_ios
(
this
);
TRACE
(
"(%p %p)
\n
"
,
this
,
v
);
ws_basic_istream_char
(
this
);
if
(
basic_istream_char_peek
(
this
)
==
'('
)
{
char
c
;
basic_istream_char_get
(
this
);
basic_istream_char_read_float
(
this
,
&
r
);
if
(
ios_base_fail
(
&
base
->
base
))
return
this
;
ws_basic_istream_char
(
this
);
c
=
basic_istream_char_peek
(
this
);
if
(
c
==
','
)
{
float
i
;
basic_istream_char_get
(
this
);
basic_istream_char_read_float
(
this
,
&
i
);
if
(
ios_base_fail
(
&
base
->
base
))
return
this
;
ws_basic_istream_char
(
this
);
c
=
basic_istream_char_peek
(
this
);
if
(
c
==
')'
)
{
/* supported format: (real, imag) */
basic_istream_char_get
(
this
);
v
->
real
=
r
;
v
->
imag
=
i
;
}
else
{
basic_ios_char_setstate
(
base
,
IOSTATE_failbit
);
return
this
;
}
}
else
if
(
c
==
')'
)
{
/* supported format: (real) */
basic_istream_char_get
(
this
);
v
->
real
=
r
;
v
->
imag
=
0
;
}
else
{
basic_ios_char_setstate
(
base
,
IOSTATE_failbit
);
return
this
;
}
}
else
{
/* supported format: real */
basic_istream_char_read_float
(
this
,
&
r
);
if
(
ios_base_fail
(
&
base
->
base
))
return
this
;
v
->
real
=
r
;
v
->
imag
=
0
;
}
return
this
;
}
/* ??$?5NDU?$char_traits@D@std@@@std@@YAAAV?$basic_istream@DU?$char_traits@D@std@@@0@AAV10@AAV?$complex@N@0@@Z */
/* ??$?5DU?$char_traits@D@std@@@std@@YAAEAV?$basic_istream@DU?$char_traits@D@std@@@0@AEAV10@AEAV?$complex@N@0@@Z */
basic_istream_char
*
__cdecl
basic_istream_char_read_complex_double
(
basic_istream_char
*
this
,
complex_double
*
v
)
{
double
r
;
basic_ios_char
*
base
=
basic_istream_char_get_basic_ios
(
this
);
TRACE
(
"(%p %p)
\n
"
,
this
,
v
);
ws_basic_istream_char
(
this
);
if
(
basic_istream_char_peek
(
this
)
==
'('
)
{
char
c
;
basic_istream_char_get
(
this
);
basic_istream_char_read_double
(
this
,
&
r
);
if
(
ios_base_fail
(
&
base
->
base
))
return
this
;
ws_basic_istream_char
(
this
);
c
=
basic_istream_char_peek
(
this
);
if
(
c
==
','
)
{
double
i
;
basic_istream_char_get
(
this
);
basic_istream_char_read_double
(
this
,
&
i
);
if
(
ios_base_fail
(
&
base
->
base
))
return
this
;
ws_basic_istream_char
(
this
);
c
=
basic_istream_char_peek
(
this
);
if
(
c
==
')'
)
{
/* supported format: (real, imag) */
basic_istream_char_get
(
this
);
v
->
real
=
r
;
v
->
imag
=
i
;
}
else
{
basic_ios_char_setstate
(
base
,
IOSTATE_failbit
);
return
this
;
}
}
else
if
(
c
==
')'
)
{
/* supported format: (real) */
basic_istream_char_get
(
this
);
v
->
real
=
r
;
v
->
imag
=
0
;
}
else
{
basic_ios_char_setstate
(
base
,
IOSTATE_failbit
);
return
this
;
}
}
else
{
/* supported format: real */
basic_istream_char_read_double
(
this
,
&
r
);
if
(
ios_base_fail
(
&
base
->
base
))
return
this
;
v
->
real
=
r
;
v
->
imag
=
0
;
}
return
this
;
}
/* ??$?5ODU?$char_traits@D@std@@@std@@YAAAV?$basic_istream@DU?$char_traits@D@std@@@0@AAV10@AAV?$complex@O@0@@Z */
/* ??$?5ODU?$char_traits@D@std@@@std@@YAAEAV?$basic_istream@DU?$char_traits@D@std@@@0@AEAV10@AEAV?$complex@O@0@@Z */
basic_istream_char
*
__cdecl
basic_istream_char_read_complex_ldouble
(
basic_istream_char
*
this
,
complex_double
*
v
)
{
double
r
;
basic_ios_char
*
base
=
basic_istream_char_get_basic_ios
(
this
);
TRACE
(
"(%p %p)
\n
"
,
this
,
v
);
ws_basic_istream_char
(
this
);
if
(
basic_istream_char_peek
(
this
)
==
'('
)
{
char
c
;
basic_istream_char_get
(
this
);
basic_istream_char_read_ldouble
(
this
,
&
r
);
if
(
ios_base_fail
(
&
base
->
base
))
return
this
;
ws_basic_istream_char
(
this
);
c
=
basic_istream_char_peek
(
this
);
if
(
c
==
','
)
{
double
i
;
basic_istream_char_get
(
this
);
basic_istream_char_read_ldouble
(
this
,
&
i
);
if
(
ios_base_fail
(
&
base
->
base
))
return
this
;
ws_basic_istream_char
(
this
);
c
=
basic_istream_char_peek
(
this
);
if
(
c
==
')'
)
{
/* supported format: (real, imag) */
basic_istream_char_get
(
this
);
v
->
real
=
r
;
v
->
imag
=
i
;
}
else
{
basic_ios_char_setstate
(
base
,
IOSTATE_failbit
);
return
this
;
}
}
else
if
(
c
==
')'
)
{
/* supported format: (real) */
basic_istream_char_get
(
this
);
v
->
real
=
r
;
v
->
imag
=
0
;
}
else
{
basic_ios_char_setstate
(
base
,
IOSTATE_failbit
);
return
this
;
}
}
else
{
/* supported format: real */
basic_istream_char_read_ldouble
(
this
,
&
r
);
if
(
ios_base_fail
(
&
base
->
base
))
return
this
;
v
->
real
=
r
;
v
->
imag
=
0
;
}
return
this
;
}
/* ?swap@?$basic_istream@DU?$char_traits@D@std@@@std@@QAEXAAV12@@Z */
/* ?swap@?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAXAEAV12@@Z */
DEFINE_THISCALL_WRAPPER
(
basic_istream_char_swap
,
8
)
...
...
dlls/msvcp90/msvcp90.spec
View file @
ff6231d1
...
...
@@ -10,20 +10,20 @@
@ cdecl -arch=win64 ??$?5GU?$char_traits@G@std@@@std@@YAAEAV?$basic_istream@GU?$char_traits@G@std@@@0@AEAV10@PEAG@Z(ptr ptr) basic_istream_short_read_str
@ cdecl -arch=win32 ??$?5GU?$char_traits@G@std@@V?$allocator@G@1@@std@@YAAAV?$basic_istream@GU?$char_traits@G@std@@@0@AAV10@AAV?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@0@@Z(ptr ptr) basic_istream_short_read_bstr
@ cdecl -arch=win64 ??$?5GU?$char_traits@G@std@@V?$allocator@G@1@@std@@YAAEAV?$basic_istream@GU?$char_traits@G@std@@@0@AEAV10@AEAV?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@0@@Z(ptr ptr) basic_istream_short_read_bstr
@
stub -arch=win32 ??$?5MDU?$char_traits@D@std@@@std@@YAAAV?$basic_istream@DU?$char_traits@D@std@@@0@AAV10@AAV?$complex@M@0@@Z
@
stub -arch=win64 ??$?5MDU?$char_traits@D@std@@@std@@YAAEAV?$basic_istream@DU?$char_traits@D@std@@@0@AEAV10@AEAV?$complex@M@0@@Z
@
cdecl -arch=win32 ??$?5MDU?$char_traits@D@std@@@std@@YAAAV?$basic_istream@DU?$char_traits@D@std@@@0@AAV10@AAV?$complex@M@0@@Z(ptr ptr) basic_istream_char_read_complex_float
@
cdecl -arch=win64 ??$?5MDU?$char_traits@D@std@@@std@@YAAEAV?$basic_istream@DU?$char_traits@D@std@@@0@AEAV10@AEAV?$complex@M@0@@Z(ptr ptr) basic_istream_char_read_complex_float
@ stub -arch=win32 ??$?5MGU?$char_traits@G@std@@@std@@YAAAV?$basic_istream@GU?$char_traits@G@std@@@0@AAV10@AAV?$complex@M@0@@Z
@ stub -arch=win64 ??$?5MGU?$char_traits@G@std@@@std@@YAAEAV?$basic_istream@GU?$char_traits@G@std@@@0@AEAV10@AEAV?$complex@M@0@@Z
@ stub -arch=win32 ??$?5M_WU?$char_traits@_W@std@@@std@@YAAAV?$basic_istream@_WU?$char_traits@_W@std@@@0@AAV10@AAV?$complex@M@0@@Z
@ stub -arch=win64 ??$?5M_WU?$char_traits@_W@std@@@std@@YAAEAV?$basic_istream@_WU?$char_traits@_W@std@@@0@AEAV10@AEAV?$complex@M@0@@Z
@
stub -arch=win32 ??$?5NDU?$char_traits@D@std@@@std@@YAAAV?$basic_istream@DU?$char_traits@D@std@@@0@AAV10@AAV?$complex@N@0@@Z
@
stub -arch=win64 ??$?5NDU?$char_traits@D@std@@@std@@YAAEAV?$basic_istream@DU?$char_traits@D@std@@@0@AEAV10@AEAV?$complex@N@0@@Z
@
cdecl -arch=win32 ??$?5NDU?$char_traits@D@std@@@std@@YAAAV?$basic_istream@DU?$char_traits@D@std@@@0@AAV10@AAV?$complex@N@0@@Z(ptr ptr) basic_istream_char_read_complex_double
@
cdecl -arch=win64 ??$?5NDU?$char_traits@D@std@@@std@@YAAEAV?$basic_istream@DU?$char_traits@D@std@@@0@AEAV10@AEAV?$complex@N@0@@Z(ptr ptr) basic_istream_char_read_complex_double
@ stub -arch=win32 ??$?5NGU?$char_traits@G@std@@@std@@YAAAV?$basic_istream@GU?$char_traits@G@std@@@0@AAV10@AAV?$complex@N@0@@Z
@ stub -arch=win64 ??$?5NGU?$char_traits@G@std@@@std@@YAAEAV?$basic_istream@GU?$char_traits@G@std@@@0@AEAV10@AEAV?$complex@N@0@@Z
@ stub -arch=win32 ??$?5N_WU?$char_traits@_W@std@@@std@@YAAAV?$basic_istream@_WU?$char_traits@_W@std@@@0@AAV10@AAV?$complex@N@0@@Z
@ stub -arch=win64 ??$?5N_WU?$char_traits@_W@std@@@std@@YAAEAV?$basic_istream@_WU?$char_traits@_W@std@@@0@AEAV10@AEAV?$complex@N@0@@Z
@
stub -arch=win32 ??$?5ODU?$char_traits@D@std@@@std@@YAAAV?$basic_istream@DU?$char_traits@D@std@@@0@AAV10@AAV?$complex@O@0@@Z
@
stub -arch=win64 ??$?5ODU?$char_traits@D@std@@@std@@YAAEAV?$basic_istream@DU?$char_traits@D@std@@@0@AEAV10@AEAV?$complex@O@0@@Z
@
cdecl -arch=win32 ??$?5ODU?$char_traits@D@std@@@std@@YAAAV?$basic_istream@DU?$char_traits@D@std@@@0@AAV10@AAV?$complex@O@0@@Z(ptr ptr) basic_istream_char_read_complex_ldouble
@
cdecl -arch=win64 ??$?5ODU?$char_traits@D@std@@@std@@YAAEAV?$basic_istream@DU?$char_traits@D@std@@@0@AEAV10@AEAV?$complex@O@0@@Z(ptr ptr) basic_istream_char_read_complex_ldouble
@ stub -arch=win32 ??$?5OGU?$char_traits@G@std@@@std@@YAAAV?$basic_istream@GU?$char_traits@G@std@@@0@AAV10@AAV?$complex@O@0@@Z
@ stub -arch=win64 ??$?5OGU?$char_traits@G@std@@@std@@YAAEAV?$basic_istream@GU?$char_traits@G@std@@@0@AEAV10@AEAV?$complex@O@0@@Z
@ stub -arch=win32 ??$?5O_WU?$char_traits@_W@std@@@std@@YAAAV?$basic_istream@_WU?$char_traits@_W@std@@@0@AAV10@AAV?$complex@O@0@@Z
...
...
dlls/msvcp90/tests/ios.c
View file @
ff6231d1
...
...
@@ -457,6 +457,8 @@ static void (*__thiscall p_basic_fstream_wchar_vbase_dtor)(basic_fstream_wchar*)
static
basic_istream_char
*
(
*
__thiscall
p_basic_istream_char_read_uint64
)(
basic_istream_char
*
,
unsigned
__int64
*
);
static
basic_istream_char
*
(
*
__thiscall
p_basic_istream_char_read_float
)(
basic_istream_char
*
,
float
*
);
static
basic_istream_char
*
(
*
__thiscall
p_basic_istream_char_read_double
)(
basic_istream_char
*
,
double
*
);
static
basic_istream_char
*
(
*
__cdecl
p_basic_istream_char_read_str
)(
basic_istream_char
*
,
char
*
);
static
basic_istream_char
*
(
*
__cdecl
p_basic_istream_char_read_complex_double
)(
basic_istream_char
*
,
complex_double
*
);
static
int
(
*
__thiscall
p_basic_istream_char_get
)(
basic_istream_char
*
);
static
MSVCP_bool
(
*
__thiscall
p_basic_istream_char_ipfx
)(
basic_istream_char
*
,
MSVCP_bool
);
static
basic_istream_char
*
(
*
__thiscall
p_basic_istream_char_ignore
)(
basic_istream_char
*
,
streamsize
,
int
);
...
...
@@ -672,6 +674,10 @@ static BOOL init(void)
"??5?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@AEAM@Z"
);
SET
(
p_basic_istream_char_read_double
,
"??5?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@AEAN@Z"
);
SET
(
p_basic_istream_char_read_str
,
"??$?5DU?$char_traits@D@std@@@std@@YAAEAV?$basic_istream@DU?$char_traits@D@std@@@0@AEAV10@PEAD@Z"
);
SET
(
p_basic_istream_char_read_complex_double
,
"??$?5NDU?$char_traits@D@std@@@std@@YAAEAV?$basic_istream@DU?$char_traits@D@std@@@0@AEAV10@AEAV?$complex@N@0@@Z"
);
SET
(
p_basic_istream_char_get
,
"?get@?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAHXZ"
);
SET
(
p_basic_istream_char_ipfx
,
...
...
@@ -800,6 +806,10 @@ static BOOL init(void)
"??5?$basic_istream@DU?$char_traits@D@std@@@std@@QAAAAV01@AAM@Z"
);
SET
(
p_basic_istream_char_read_double
,
"??5?$basic_istream@DU?$char_traits@D@std@@@std@@QAAAAV01@AAN@Z"
);
SET
(
p_basic_istream_char_read_str
,
"??$?5DU?$char_traits@D@std@@@std@@YAAAV?$basic_istream@DU?$char_traits@D@std@@@0@AAV10@PAD@Z"
);
SET
(
p_basic_istream_char_read_complex_double
,
"??$?5NDU?$char_traits@D@std@@@std@@YAAAV?$basic_istream@DU?$char_traits@D@std@@@0@AAV10@AAV?$complex@N@0@@Z"
);
SET
(
p_basic_istream_char_get
,
"?get@?$basic_istream@DU?$char_traits@D@std@@@std@@QAAHXZ"
);
SET
(
p_basic_istream_char_ipfx
,
...
...
@@ -927,6 +937,10 @@ static BOOL init(void)
"??5?$basic_istream@DU?$char_traits@D@std@@@std@@QAEAAV01@AAM@Z"
);
SET
(
p_basic_istream_char_read_double
,
"??5?$basic_istream@DU?$char_traits@D@std@@@std@@QAEAAV01@AAN@Z"
);
SET
(
p_basic_istream_char_read_str
,
"??$?5DU?$char_traits@D@std@@@std@@YAAAV?$basic_istream@DU?$char_traits@D@std@@@0@AAV10@PAD@Z"
);
SET
(
p_basic_istream_char_read_complex_double
,
"??$?5NDU?$char_traits@D@std@@@std@@YAAAV?$basic_istream@DU?$char_traits@D@std@@@0@AAV10@AAV?$complex@N@0@@Z"
);
SET
(
p_basic_istream_char_get
,
"?get@?$basic_istream@DU?$char_traits@D@std@@@std@@QAEHXZ"
);
SET
(
p_basic_istream_char_ipfx
,
...
...
@@ -2241,6 +2255,95 @@ static void test_ostream_print_complex_ldouble(void)
call_func1
(
p_basic_stringstream_char_vbase_dtor
,
&
ss
);
}
static
void
test_istream_read_complex_double
(
void
)
{
basic_string_char
str
;
IOSB_iostate
state
;
complex_double
val
;
locale
lcl
,
retlcl
;
basic_stringstream_char
ss
;
int
i
;
char
next
[
100
];
const
char
deadbeef_str
[]
=
"(3.14159,3456.7890)"
;
const
complex_double
deadbeef
=
{
3
.
14159
,
3456
.
7890
};
const
IOSB_iostate
IOSTATE_faileof
=
IOSTATE_failbit
|
IOSTATE_eofbit
;
struct
_test_istream_read_complex_double
{
const
char
*
complex_double_str
;
const
char
*
lcl
;
complex_double
correct_val
;
IOSB_iostate
state
;
const
char
*
str
;
}
tests
[]
=
{
/* supported format: real */
{
"-12 3"
,
NULL
,
{
-
12
,
0
},
IOSTATE_goodbit
,
"3"
},
{
"1e2,3"
,
NULL
,
{
100
,
0
},
IOSTATE_goodbit
,
",3"
},
{
"3E2,,"
,
NULL
,
{
300
,
0
},
IOSTATE_goodbit
,
",,"
},
/* supported format: (real) */
{
"(3.)"
,
NULL
,
{
3
.,
0
},
IOSTATE_goodbit
,
""
},
{
"(3E10)1"
,
NULL
,
{
3e+10
,
0
},
IOSTATE_goodbit
,
"1"
},
/* supported format: (real,imaginary) */
{
"(3, -.4)"
,
NULL
,
{
3
,
-
0
.
4
}
,
IOSTATE_goodbit
,
""
},
{
" (6.6,
\n
1.1
\t
)"
,
NULL
,
{
6
.
6
,
1
.
1
},
IOSTATE_goodbit
,
""
},
{
"(6.666 , 7.77)mark"
,
NULL
,
{
6
.
666
,
7
.
77
},
IOSTATE_goodbit
,
"mark"
},
/* different locales */
{
"1,234e10"
,
"English"
,
{
1234.0e10
,
0
},
IOSTATE_eofbit
,
""
},
{
"1,234e10"
,
"German"
,
{
1.234e10
,
0
},
IOSTATE_eofbit
,
""
},
{
"1,234,567,890"
,
"English"
,
{
1234567890
.
0
,
0
},
IOSTATE_eofbit
,
""
},
{
"1,234,567,890"
,
"German"
,
{
1
.
234
,
0
}
,
IOSTATE_goodbit
,
",567,890"
},
{
"(0.123,-4.5)"
,
"English"
,
{
0
.
123
,
-
4
.
5
},
IOSTATE_goodbit
,
""
},
{
"(0,123,4,5)"
,
"German"
,
{
0
.
123
,
4
.
5
},
IOSTATE_goodbit
,
""
},
{
"(123,456.,4.5678)"
,
"English"
,
{
123456
,
4
.
5678
},
IOSTATE_goodbit
,
""
},
{
"(123.456,,4,5678)"
,
"German"
,
{
123456
,
4
.
5678
},
IOSTATE_goodbit
,
""
},
/* eofbit */
{
".09"
,
NULL
,
{
0
.
09
,
0
},
IOSTATE_eofbit
,
""
},
{
"
\t
-1e2"
,
NULL
,
{
-
100
,
0
},
IOSTATE_eofbit
,
""
},
{
"+"
,
NULL
,
deadbeef
,
IOSTATE_faileof
,
""
},
{
"(-1.1,3
\t
"
,
NULL
,
deadbeef
,
IOSTATE_faileof
,
""
},
{
"(-1.1 ,
\t
-3.4E3
\t
"
,
NULL
,
deadbeef
,
IOSTATE_faileof
,
""
},
/* nonsupported formats */
{
"(*)"
,
NULL
,
deadbeef
,
IOSTATE_failbit
,
""
},
{
"(
\n
*"
,
NULL
,
deadbeef
,
IOSTATE_failbit
,
""
},
{
"(6..)"
,
NULL
,
deadbeef
,
IOSTATE_failbit
,
""
},
{
"(3.12,*"
,
NULL
,
deadbeef
,
IOSTATE_failbit
,
""
},
{
"(3.12,)"
,
NULL
,
deadbeef
,
IOSTATE_failbit
,
""
},
{
"(1.0eE10, 3)"
,
NULL
,
deadbeef
,
IOSTATE_failbit
,
""
},
};
for
(
i
=
0
;
i
<
sizeof
(
tests
)
/
sizeof
(
tests
[
0
]);
i
++
)
{
call_func2
(
p_basic_string_char_ctor_cstr
,
&
str
,
deadbeef_str
);
call_func4
(
p_basic_stringstream_char_ctor_str
,
&
ss
,
&
str
,
OPENMODE_out
|
OPENMODE_in
,
TRUE
);
p_basic_istream_char_read_complex_double
(
&
ss
.
base
.
base1
,
&
val
);
call_func2
(
p_basic_string_char_ctor_cstr
,
&
str
,
tests
[
i
].
complex_double_str
);
call_func4
(
p_basic_stringstream_char_ctor_str
,
&
ss
,
&
str
,
OPENMODE_out
|
OPENMODE_in
,
TRUE
);
if
(
tests
[
i
].
lcl
)
{
call_func3
(
p_locale_ctor_cstr
,
&
lcl
,
tests
[
i
].
lcl
,
0x3f
/* FIXME: support categories */
);
call_func3
(
p_basic_ios_char_imbue
,
&
ss
.
basic_ios
,
&
retlcl
,
&
lcl
);
}
p_basic_istream_char_read_complex_double
(
&
ss
.
base
.
base1
,
&
val
);
state
=
(
IOSB_iostate
)
call_func1
(
p_ios_base_rdstate
,
&
ss
.
basic_ios
.
base
);
memset
(
next
,
0
,
sizeof
(
next
));
p_basic_istream_char_read_str
(
&
ss
.
base
.
base1
,
next
);
ok
(
tests
[
i
].
state
==
state
,
"test %d fail, wrong state, expected = %x found = %x
\n
"
,
i
+
1
,
tests
[
i
].
state
,
state
);
ok
(
tests
[
i
].
correct_val
.
real
==
val
.
real
,
"test %d fail, wrong val, expected = %g found %g
\n
"
,
i
+
1
,
tests
[
i
].
correct_val
.
real
,
val
.
real
);
ok
(
tests
[
i
].
correct_val
.
imag
==
val
.
imag
,
"test %d fail, wrong val, expected = %g found %g
\n
"
,
i
+
1
,
tests
[
i
].
correct_val
.
imag
,
val
.
imag
);
ok
(
!
strcmp
(
tests
[
i
].
str
,
next
),
"test %d fail, wrong next, expected = %s found %s
\n
"
,
i
+
1
,
tests
[
i
].
str
,
next
);
if
(
tests
[
i
].
lcl
)
call_func1
(
p_locale_dtor
,
&
lcl
);
call_func1
(
p_basic_stringstream_char_vbase_dtor
,
&
ss
);
call_func1
(
p_basic_string_char_dtor
,
&
str
);
}
}
START_TEST
(
ios
)
{
if
(
!
init
())
...
...
@@ -2265,6 +2368,7 @@ START_TEST(ios)
test_ostream_print_complex_float
();
test_ostream_print_complex_double
();
test_ostream_print_complex_ldouble
();
test_istream_read_complex_double
();
ok
(
!
invalid_parameter
,
"invalid_parameter_handler was invoked too many times
\n
"
);
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment