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
a6897e88
Commit
a6897e88
authored
Oct 18, 2011
by
Piotr Caban
Committed by
Alexandre Julliard
Oct 18, 2011
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
msvcp90: Added basic_string::find_last_not_of implementation.
parent
ed6c1ff8
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
120 additions
and
17 deletions
+120
-17
msvcp90.spec
dlls/msvcp90/msvcp90.spec
+16
-16
string.c
dlls/msvcp90/string.c
+104
-1
No files found.
dlls/msvcp90/msvcp90.spec
View file @
a6897e88
...
...
@@ -3895,14 +3895,14 @@
@ cdecl -arch=win64 ?find_first_of@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBA_KPEB_W_K@Z(ptr ptr long) MSVCP_basic_string_wchar_find_first_of_cstr
@ thiscall -arch=win32 ?find_first_of@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEI_WI@Z(ptr long long) MSVCP_basic_string_wchar_find_first_of_ch
@ cdecl -arch=win64 ?find_first_of@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBA_K_W_K@Z(ptr long long) MSVCP_basic_string_wchar_find_first_of_ch
@
stub -arch=win32 ?find_last_not_of@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEIABV12@I@Z
@
stub -arch=win64 ?find_last_not_of@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA_KAEBV12@_K@Z
@
stub -arch=win32 ?find_last_not_of@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEIDI@Z
@
stub -arch=win64 ?find_last_not_of@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA_KD_K@Z
@
stub -arch=win32 ?find_last_not_of@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEIPBDI@Z
@
stub -arch=win64 ?find_last_not_of@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA_KPEBD_K1@Z
@
stub -arch=win32 ?find_last_not_of@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEIPBDII@Z
@
stub -arch=win64 ?find_last_not_of@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA_KPEBD_K@Z
@
thiscall -arch=win32 ?find_last_not_of@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEIABV12@I@Z(ptr ptr long) MSVCP_basic_string_char_find_last_not_of
@
cdecl -arch=win64 ?find_last_not_of@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA_KAEBV12@_K@Z(ptr ptr long) MSVCP_basic_string_char_find_last_not_of
@
thiscall -arch=win32 ?find_last_not_of@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEIDI@Z(ptr long long) MSVCP_basic_string_char_find_last_not_of_ch
@
cdecl -arch=win64 ?find_last_not_of@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA_KD_K@Z(ptr long long) MSVCP_basic_string_char_find_last_not_of_ch
@
thiscall -arch=win32 ?find_last_not_of@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEIPBDI@Z(ptr str long) MSVCP_basic_string_char_find_last_not_of_cstr
@
cdecl -arch=win64 ?find_last_not_of@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA_KPEBD_K1@Z(ptr str long long) MSVCP_basic_string_char_find_last_not_of_cstr_substr
@
thiscall -arch=win32 ?find_last_not_of@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEIPBDII@Z(ptr str long long) MSVCP_basic_string_char_find_last_not_of_cstr_substr
@
cdecl -arch=win64 ?find_last_not_of@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA_KPEBD_K@Z(ptr str long) MSVCP_basic_string_char_find_last_not_of_cstr
@ stub -arch=win32 ?find_last_not_of@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEIABV12@I@Z
@ stub -arch=win64 ?find_last_not_of@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBA_KAEBV12@_K@Z
@ stub -arch=win32 ?find_last_not_of@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEIGI@Z
...
...
@@ -3911,14 +3911,14 @@
@ stub -arch=win64 ?find_last_not_of@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBA_KPEBG_K1@Z
@ stub -arch=win32 ?find_last_not_of@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEIPBGII@Z
@ stub -arch=win64 ?find_last_not_of@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBA_KPEBG_K@Z
@
stub -arch=win32 ?find_last_not_of@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEIABV12@I@Z
@
stub -arch=win64 ?find_last_not_of@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBA_KAEBV12@_K@Z
@
stub -arch=win32 ?find_last_not_of@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEIPB_WI@Z
@
stub -arch=win64 ?find_last_not_of@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBA_KPEB_W_K1@Z
@
stub -arch=win32 ?find_last_not_of@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEIPB_WII@Z
@
stub -arch=win64 ?find_last_not_of@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBA_KPEB_W_K@Z
@
stub -arch=win32 ?find_last_not_of@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEI_WI@Z
@
stub -arch=win64 ?find_last_not_of@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBA_K_W_K@Z
@
thiscall -arch=win32 ?find_last_not_of@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEIABV12@I@Z(ptr ptr long) MSVCP_basic_string_wchar_find_last_not_of
@
cdecl -arch=win64 ?find_last_not_of@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBA_KAEBV12@_K@Z(ptr ptr long) MSVCP_basic_string_wchar_find_last_not_of
@
thiscall -arch=win32 ?find_last_not_of@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEIPB_WI@Z(ptr wstr long) MSVCP_basic_string_wchar_find_last_not_of_cstr
@
cdecl -arch=win64 ?find_last_not_of@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBA_KPEB_W_K1@Z(ptr wstr long long) MSVCP_basic_string_wchar_find_last_not_of_cstr_substr
@
thiscall -arch=win32 ?find_last_not_of@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEIPB_WII@Z(ptr wstr long long) MSVCP_basic_string_wchar_find_last_not_of_cstr_substr
@
cdecl -arch=win64 ?find_last_not_of@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBA_KPEB_W_K@Z(ptr wstr long) MSVCP_basic_string_wchar_find_last_not_of_cstr
@
thiscall -arch=win32 ?find_last_not_of@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEI_WI@Z(ptr long long) MSVCP_basic_string_wchar_find_last_not_of_ch
@
cdecl -arch=win64 ?find_last_not_of@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBA_K_W_K@Z(ptr long long) MSVCP_basic_string_wchar_find_last_not_of_ch
@ thiscall -arch=win32 ?find_last_of@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEIABV12@I@Z(ptr ptr long) MSVCP_basic_string_char_find_last_of
@ cdecl -arch=win64 ?find_last_of@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA_KAEBV12@_K@Z(ptr ptr long) MSVCP_basic_string_char_find_last_of
@ thiscall -arch=win32 ?find_last_of@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEIDI@Z(ptr long long) MSVCP_basic_string_char_find_last_of_ch
...
...
dlls/msvcp90/string.c
View file @
a6897e88
...
...
@@ -1682,7 +1682,6 @@ MSVCP_size_t __thiscall MSVCP_basic_string_char_find_last_of_cstr_substr(
TRACE
(
"%p %p %lu %lu
\n
"
,
this
,
find
,
off
,
len
);
if
(
len
>
0
&&
this
->
size
>
0
)
{
if
(
off
>=
this
->
size
)
off
=
this
->
size
-
1
;
...
...
@@ -1725,6 +1724,58 @@ MSVCP_size_t __thiscall MSVCP_basic_string_char_find_last_of_ch(
return
MSVCP_basic_string_char_find_last_of_cstr_substr
(
this
,
&
ch
,
off
,
1
);
}
/* ?find_last_not_of@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEIPBDII@Z */
/* ?find_last_not_of@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA_KPEBD_K1@Z */
DEFINE_THISCALL_WRAPPER
(
MSVCP_basic_string_char_find_last_not_of_cstr_substr
,
16
)
MSVCP_size_t
__thiscall
MSVCP_basic_string_char_find_last_not_of_cstr_substr
(
const
basic_string_char
*
this
,
const
char
*
find
,
MSVCP_size_t
off
,
MSVCP_size_t
len
)
{
const
char
*
p
,
*
beg
;
TRACE
(
"%p %p %lu %lu
\n
"
,
this
,
find
,
off
,
len
);
if
(
len
>
0
&&
this
->
size
>
0
)
{
if
(
off
>=
this
->
size
)
off
=
this
->
size
-
1
;
beg
=
basic_string_char_const_ptr
(
this
);
for
(
p
=
beg
+
off
;
p
>=
beg
;
p
--
)
if
(
!
MSVCP_char_traits_char_find
(
find
,
len
,
p
))
return
p
-
beg
;
}
return
MSVCP_basic_string_char_npos
;
}
/* ?find_last_not_of@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEIABV12@I@Z */
/* ?find_last_not_of@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA_KAEBV12@_K@Z */
DEFINE_THISCALL_WRAPPER
(
MSVCP_basic_string_char_find_last_not_of
,
12
)
MSVCP_size_t
__thiscall
MSVCP_basic_string_char_find_last_not_of
(
const
basic_string_char
*
this
,
const
basic_string_char
*
find
,
MSVCP_size_t
off
)
{
return
MSVCP_basic_string_char_find_last_not_of_cstr_substr
(
this
,
basic_string_char_const_ptr
(
find
),
off
,
find
->
size
);
}
/* ?find_last_not_of@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEIPBDI@Z */
/* ?find_last_not_of@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA_KPEBD_K@Z */
DEFINE_THISCALL_WRAPPER
(
MSVCP_basic_string_char_find_last_not_of_cstr
,
12
)
MSVCP_size_t
__thiscall
MSVCP_basic_string_char_find_last_not_of_cstr
(
const
basic_string_char
*
this
,
const
char
*
find
,
MSVCP_size_t
off
)
{
return
MSVCP_basic_string_char_find_last_not_of_cstr_substr
(
this
,
find
,
off
,
MSVCP_char_traits_char_length
(
find
));
}
/* ?find_last_not_of@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEIDI@Z */
/* ?find_last_not_of@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA_KD_K@Z */
DEFINE_THISCALL_WRAPPER
(
MSVCP_basic_string_char_find_last_not_of_ch
,
12
)
MSVCP_size_t
__thiscall
MSVCP_basic_string_char_find_last_not_of_ch
(
const
basic_string_char
*
this
,
char
ch
,
MSVCP_size_t
off
)
{
return
MSVCP_basic_string_char_find_last_not_of_cstr_substr
(
this
,
&
ch
,
off
,
1
);
}
/* ??A?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAADI@Z */
/* ??A?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAAEAD_K@Z */
DEFINE_THISCALL_WRAPPER
(
MSVCP_basic_string_char_operator_at
,
8
)
...
...
@@ -3231,6 +3282,58 @@ MSVCP_size_t __thiscall MSVCP_basic_string_wchar_find_last_of_ch(
return
MSVCP_basic_string_wchar_find_last_of_cstr_substr
(
this
,
&
ch
,
off
,
1
);
}
/* ?find_last_not_of@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEIPB_WII@Z */
/* ?find_last_not_of@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBA_KPEB_W_K1@Z */
DEFINE_THISCALL_WRAPPER
(
MSVCP_basic_string_wchar_find_last_not_of_cstr_substr
,
16
)
MSVCP_size_t
__thiscall
MSVCP_basic_string_wchar_find_last_not_of_cstr_substr
(
const
basic_string_wchar
*
this
,
const
wchar_t
*
find
,
MSVCP_size_t
off
,
MSVCP_size_t
len
)
{
const
wchar_t
*
p
,
*
beg
;
TRACE
(
"%p %p %lu %lu
\n
"
,
this
,
find
,
off
,
len
);
if
(
len
>
0
&&
this
->
size
>
0
)
{
if
(
off
>=
this
->
size
)
off
=
this
->
size
-
1
;
beg
=
basic_string_wchar_const_ptr
(
this
);
for
(
p
=
beg
+
off
;
p
>=
beg
;
p
--
)
if
(
!
MSVCP_char_traits_wchar_find
(
find
,
len
,
p
))
return
p
-
beg
;
}
return
MSVCP_basic_string_wchar_npos
;
}
/* ?find_last_not_of@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEIABV12@I@Z */
/* ?find_last_not_of@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBA_KAEBV12@_K@Z */
DEFINE_THISCALL_WRAPPER
(
MSVCP_basic_string_wchar_find_last_not_of
,
12
)
MSVCP_size_t
__thiscall
MSVCP_basic_string_wchar_find_last_not_of
(
const
basic_string_wchar
*
this
,
const
basic_string_wchar
*
find
,
MSVCP_size_t
off
)
{
return
MSVCP_basic_string_wchar_find_last_not_of_cstr_substr
(
this
,
basic_string_wchar_const_ptr
(
find
),
off
,
find
->
size
);
}
/* ?find_last_not_of@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEIPB_WI@Z */
/* ?find_last_not_of@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBA_KPEB_W_K@Z */
DEFINE_THISCALL_WRAPPER
(
MSVCP_basic_string_wchar_find_last_not_of_cstr
,
12
)
MSVCP_size_t
__thiscall
MSVCP_basic_string_wchar_find_last_not_of_cstr
(
const
basic_string_wchar
*
this
,
const
wchar_t
*
find
,
MSVCP_size_t
off
)
{
return
MSVCP_basic_string_wchar_find_last_not_of_cstr_substr
(
this
,
find
,
off
,
MSVCP_char_traits_wchar_length
(
find
));
}
/* ?find_last_not_of@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEI_WI@Z */
/* ?find_last_not_of@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBA_K_W_K@Z */
DEFINE_THISCALL_WRAPPER
(
MSVCP_basic_string_wchar_find_last_not_of_ch
,
12
)
MSVCP_size_t
__thiscall
MSVCP_basic_string_wchar_find_last_not_of_ch
(
const
basic_string_wchar
*
this
,
wchar_t
ch
,
MSVCP_size_t
off
)
{
return
MSVCP_basic_string_wchar_find_last_not_of_cstr_substr
(
this
,
&
ch
,
off
,
1
);
}
/* ?replace@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV12@IIPB_WI@Z */
/* ?replace@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAAEAV12@_K0PEB_W0@Z */
DEFINE_THISCALL_WRAPPER
(
basic_string_wchar_replace_cstr_len
,
20
)
...
...
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