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
40f175f9
Commit
40f175f9
authored
Dec 16, 2013
by
Alexandre Julliard
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
msvcp71: Share the string.c implementation with msvcp90.
parent
0da24485
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
436 additions
and
3 deletions
+436
-3
msvcp71.spec
dlls/msvcp71/msvcp71.spec
+3
-3
string.c
dlls/msvcp71/string.c
+0
-0
string.c
dlls/msvcp90/string.c
+433
-0
No files found.
dlls/msvcp71/msvcp71.spec
View file @
40f175f9
...
...
@@ -2520,7 +2520,7 @@
@ cdecl -arch=win64 ?assign@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAAEAV12@PEBD_K@Z(ptr str long) MSVCP_basic_string_char_assign_cstr_len
@ thiscall -arch=win32 ?assign@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@PBDI@Z(ptr str long) MSVCP_basic_string_char_assign_cstr_len
@ cdecl -arch=win64 ?assign@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAAEAV12@_KD@Z(ptr long long) MSVCP_basic_string_char_assignn
@ thiscall -arch=win32 ?assign@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@Vconst_iterator@12@0@Z(ptr ptr ptr)
MSVCP_
basic_string_char_assign_iter
@ thiscall -arch=win32 ?assign@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@Vconst_iterator@12@0@Z(ptr ptr ptr) basic_string_char_assign_iter
@ thiscall -arch=win32 ?assign@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV12@ABV12@@Z(ptr ptr) MSVCP_basic_string_wchar_assign
@ cdecl -arch=win64 ?assign@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAAEAV12@AEBV12@@Z(ptr ptr) MSVCP_basic_string_wchar_assign
@ thiscall -arch=win32 ?assign@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV12@ABV12@II@Z(ptr ptr long long) MSVCP_basic_string_wchar_assign_substr
...
...
@@ -2533,7 +2533,7 @@
@ cdecl -arch=win64 ?assign@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAAEAV12@PEBG_K@Z(ptr wstr long) MSVCP_basic_string_wchar_assign_cstr_len
@ thiscall -arch=win32 ?assign@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV12@PBGI@Z(ptr wstr long) MSVCP_basic_string_wchar_assign_cstr_len
@ cdecl -arch=win64 ?assign@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAAEAV12@_KG@Z(ptr long long) MSVCP_basic_string_wchar_assignn
@ thiscall -arch=win32 ?assign@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV12@Vconst_iterator@12@0@Z(ptr ptr ptr)
MSVCP_
basic_string_wchar_assign_iter
@ thiscall -arch=win32 ?assign@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV12@Vconst_iterator@12@0@Z(ptr ptr ptr) basic_string_wchar_assign_iter
@ thiscall -arch=win32 ?assign@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV12@ABV12@@Z(ptr ptr) MSVCP_basic_string_wchar_assign
@ cdecl -arch=win64 ?assign@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAAEAV12@AEBV12@@Z(ptr ptr) MSVCP_basic_string_wchar_assign
@ thiscall -arch=win32 ?assign@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV12@ABV12@II@Z(ptr ptr long long) MSVCP_basic_string_wchar_assign_substr
...
...
@@ -2546,7 +2546,7 @@
@ cdecl -arch=win64 ?assign@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAAEAV12@PEB_W_K@Z(ptr wstr long) MSVCP_basic_string_wchar_assign_cstr_len
@ thiscall -arch=win32 ?assign@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV12@PB_WI@Z(ptr wstr long) MSVCP_basic_string_wchar_assign_cstr_len
@ cdecl -arch=win64 ?assign@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAAEAV12@_K_W@Z(ptr long long) MSVCP_basic_string_wchar_assignn
@ thiscall -arch=win32 ?assign@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV12@Vconst_iterator@12@0@Z(ptr ptr ptr)
MSVCP_
basic_string_wchar_assign_iter
@ thiscall -arch=win32 ?assign@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV12@Vconst_iterator@12@0@Z(ptr ptr ptr) basic_string_wchar_assign_iter
@ cdecl -arch=win32 ?assign@?$char_traits@D@std@@SAPADPADID@Z(ptr long long) MSVCP_char_traits_char_assignn
@ cdecl -arch=win64 ?assign@?$char_traits@D@std@@SAPEADPEAD_KD@Z(ptr long long) MSVCP_char_traits_char_assignn
@ cdecl -arch=win32 ?assign@?$char_traits@D@std@@SAXAADABD@Z(ptr ptr) MSVCP_char_traits_char_assign
...
...
dlls/msvcp71/string.c
deleted
100644 → 0
View file @
0da24485
This source diff could not be displayed because it is too large. You can
view the blob
instead.
dlls/msvcp90/string.c
View file @
40f175f9
...
...
@@ -514,6 +514,13 @@ void CDECL MSVCP__String_base_Xlen(void)
throw_exception
(
EXCEPTION_LENGTH_ERROR
,
msg
);
}
/* ?_Xlen@_String_base@std@@QBEXXZ */
DEFINE_THISCALL_WRAPPER
(
_String_base__Xlen
,
4
)
void
__thiscall
_String_base__Xlen
(
const
void
/*_String_base*/
*
this
)
{
MSVCP__String_base_Xlen
();
}
/* ?_Xran@_String_base@std@@SAXXZ */
void
CDECL
MSVCP__String_base_Xran
(
void
)
{
...
...
@@ -523,6 +530,13 @@ void CDECL MSVCP__String_base_Xran(void)
throw_exception
(
EXCEPTION_OUT_OF_RANGE
,
msg
);
}
/* ?_Xran@_String_base@std@@QBEXXZ */
DEFINE_THISCALL_WRAPPER
(
_String_base__Xran
,
4
)
void
__thiscall
_String_base__Xran
(
const
void
/*_String_base*/
*
this
)
{
MSVCP__String_base_Xran
();
}
/* ?_Xinvarg@_String_base@std@@SAXXZ */
void
CDECL
MSVCP__String_base_Xinvarg
(
void
)
{
...
...
@@ -4491,3 +4505,422 @@ void* __thiscall _String_val_null_ctor(void *this, const void *misc)
TRACE
(
"%p %p
\n
"
,
this
,
misc
);
return
this
;
}
#if _MSVCP_VER < 80
/* old iterator functions */
typedef
struct
{
const
char
*
pos
;
}
basic_string_char_iterator
;
typedef
struct
{
const
wchar_t
*
pos
;
}
basic_string_wchar_iterator
;
/* ?_Pdif@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@KAIVconst_iterator@12@0@Z */
MSVCP_size_t
__cdecl
basic_string_char__Pdif
(
basic_string_char_iterator
i1
,
basic_string_char_iterator
i2
)
{
TRACE
(
"(%p %p)
\n
"
,
i1
.
pos
,
i2
.
pos
);
return
!
i1
.
pos
?
0
:
i1
.
pos
-
i2
.
pos
;
}
/* ?erase@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE?AViterator@12@V312@0@Z */
DEFINE_THISCALL_WRAPPER
(
basic_string_char_erase_iter_range
,
16
)
basic_string_char_iterator
*
__thiscall
basic_string_char_erase_iter_range
(
basic_string_char
*
this
,
basic_string_char_iterator
*
ret
,
basic_string_char_iterator
beg
,
basic_string_char_iterator
end
)
{
MSVCP_size_t
off
;
ret
->
pos
=
basic_string_char_ptr
(
this
);
off
=
basic_string_char__Pdif
(
beg
,
*
ret
);
MSVCP_basic_string_char_erase
(
this
,
off
,
basic_string_char__Pdif
(
end
,
beg
));
ret
->
pos
=
basic_string_char_ptr
(
this
)
+
off
;
return
ret
;
}
/* ?erase@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE?AViterator@12@V312@@Z */
DEFINE_THISCALL_WRAPPER
(
basic_string_char_erase_iter
,
12
)
basic_string_char_iterator
*
__thiscall
basic_string_char_erase_iter
(
basic_string_char
*
this
,
basic_string_char_iterator
*
ret
,
basic_string_char_iterator
pos
)
{
MSVCP_size_t
off
;
ret
->
pos
=
basic_string_char_ptr
(
this
);
off
=
basic_string_char__Pdif
(
pos
,
*
ret
);
MSVCP_basic_string_char_erase
(
this
,
off
,
1
);
ret
->
pos
=
basic_string_char_ptr
(
this
)
+
off
;
return
ret
;
}
/* ?assign@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@Vconst_iterator@12@0@Z */
DEFINE_THISCALL_WRAPPER
(
basic_string_char_assign_iter
,
12
)
basic_string_char
*
__thiscall
basic_string_char_assign_iter
(
basic_string_char
*
this
,
basic_string_char_iterator
beg
,
basic_string_char_iterator
end
)
{
return
MSVCP_basic_string_char_assign_ptr_ptr
(
this
,
beg
.
pos
,
end
.
pos
);
}
/* ??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@Vconst_iterator@01@0@Z */
DEFINE_THISCALL_WRAPPER
(
basic_string_char_ctor_iter
,
12
)
basic_string_char
*
__thiscall
basic_string_char_ctor_iter
(
basic_string_char
*
this
,
basic_string_char_iterator
beg
,
basic_string_char_iterator
end
)
{
return
MSVCP_basic_string_char_ctor_cstr_len
(
this
,
beg
.
pos
,
end
.
pos
-
beg
.
pos
);
}
/* ?append@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@Vconst_iterator@12@0@Z */
DEFINE_THISCALL_WRAPPER
(
basic_string_char_append_iter
,
12
)
basic_string_char
*
__thiscall
basic_string_char_append_iter
(
basic_string_char
*
this
,
basic_string_char_iterator
beg
,
basic_string_char_iterator
end
)
{
return
basic_string_char_replace_cstr_len
(
this
,
this
->
size
,
0
,
beg
.
pos
,
end
.
pos
-
beg
.
pos
);
}
/* ?replace@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@Viterator@12@0Vconst_iterator@12@1@Z */
DEFINE_THISCALL_WRAPPER
(
basic_string_char_replace_iter_iter
,
20
)
basic_string_char
*
__thiscall
basic_string_char_replace_iter_iter
(
basic_string_char
*
this
,
basic_string_char_iterator
beg
,
basic_string_char_iterator
end
,
basic_string_char_iterator
rbeg
,
basic_string_char_iterator
rend
)
{
return
basic_string_char_replace_cstr_len
(
this
,
beg
.
pos
-
basic_string_char_ptr
(
this
),
end
.
pos
-
beg
.
pos
,
rbeg
.
pos
,
rend
.
pos
-
rbeg
.
pos
);
}
/* ?replace@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@Viterator@12@0ABV12@@Z */
DEFINE_THISCALL_WRAPPER
(
basic_string_char_replace_iter_bstr
,
16
)
basic_string_char
*
__thiscall
basic_string_char_replace_iter_bstr
(
basic_string_char
*
this
,
basic_string_char_iterator
beg
,
basic_string_char_iterator
end
,
basic_string_char
*
str
)
{
return
basic_string_char_replace_cstr_len
(
this
,
beg
.
pos
-
basic_string_char_ptr
(
this
),
end
.
pos
-
beg
.
pos
,
basic_string_char_ptr
(
str
),
str
->
size
);
}
/* ?replace@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@Viterator@12@0ID@Z */
DEFINE_THISCALL_WRAPPER
(
basic_string_char_replace_iter_ch
,
20
)
basic_string_char
*
__thiscall
basic_string_char_replace_iter_ch
(
basic_string_char
*
this
,
basic_string_char_iterator
beg
,
basic_string_char_iterator
end
,
MSVCP_size_t
count
,
char
ch
)
{
/* TODO: add more efficient implementation */
MSVCP_size_t
off
=
beg
.
pos
-
basic_string_char_ptr
(
this
);
basic_string_char_replace_cstr_len
(
this
,
off
,
end
.
pos
-
beg
.
pos
,
NULL
,
0
);
while
(
count
--
)
basic_string_char_replace_cstr_len
(
this
,
off
,
0
,
&
ch
,
1
);
return
this
;
}
/* ?replace@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@Viterator@12@0PBD1@Z */
DEFINE_THISCALL_WRAPPER
(
basic_string_char_replace_iter_beg_end
,
20
)
basic_string_char
*
__thiscall
basic_string_char_replace_iter_beg_end
(
basic_string_char
*
this
,
basic_string_char_iterator
beg
,
basic_string_char_iterator
end
,
const
char
*
rbeg
,
const
char
*
rend
)
{
return
basic_string_char_replace_cstr_len
(
this
,
beg
.
pos
-
basic_string_char_ptr
(
this
),
end
.
pos
-
beg
.
pos
,
rbeg
,
rend
-
rbeg
);
}
/* ?replace@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@Viterator@12@0PBD@Z */
DEFINE_THISCALL_WRAPPER
(
basic_string_char_replace_iter_cstr
,
16
)
basic_string_char
*
__thiscall
basic_string_char_replace_iter_cstr
(
basic_string_char
*
this
,
basic_string_char_iterator
beg
,
basic_string_char_iterator
end
,
const
char
*
str
)
{
return
basic_string_char_replace_cstr_len
(
this
,
beg
.
pos
-
basic_string_char_ptr
(
this
),
end
.
pos
-
beg
.
pos
,
str
,
strlen
(
str
));
}
/* ?replace@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@Viterator@12@0PBDI@Z */
DEFINE_THISCALL_WRAPPER
(
basic_string_char_replace_iter_cstr_len
,
20
)
basic_string_char
*
__thiscall
basic_string_char_replace_iter_cstr_len
(
basic_string_char
*
this
,
basic_string_char_iterator
beg
,
basic_string_char_iterator
end
,
const
char
*
str
,
MSVCP_size_t
len
)
{
return
basic_string_char_replace_cstr_len
(
this
,
beg
.
pos
-
basic_string_char_ptr
(
this
),
end
.
pos
-
beg
.
pos
,
str
,
len
);
}
/* ?insert@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEXViterator@12@ID@Z */
DEFINE_THISCALL_WRAPPER
(
basic_string_char_insert_iter_chn
,
16
)
void
__thiscall
basic_string_char_insert_iter_chn
(
basic_string_char
*
this
,
basic_string_char_iterator
where
,
MSVCP_size_t
count
,
char
ch
)
{
basic_string_char_iterator
iter
=
{
basic_string_char_ptr
(
this
)
};
MSVCP_size_t
off
=
basic_string_char__Pdif
(
where
,
iter
);
basic_string_char_insert_chn
(
this
,
off
,
count
,
ch
);
}
/* ?insert@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE?AViterator@12@V312@D@Z */
DEFINE_THISCALL_WRAPPER
(
basic_string_char_insert_iter_ch
,
16
)
basic_string_char_iterator
*
__thiscall
basic_string_char_insert_iter_ch
(
basic_string_char
*
this
,
basic_string_char_iterator
*
ret
,
basic_string_char_iterator
where
,
char
ch
)
{
MSVCP_size_t
off
;
ret
->
pos
=
basic_string_char_ptr
(
this
);
off
=
basic_string_char__Pdif
(
where
,
*
ret
);
basic_string_char_insert_chn
(
this
,
off
,
1
,
ch
);
ret
->
pos
=
basic_string_char_ptr
(
this
)
+
off
;
return
ret
;
}
/* ?insert@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE?AViterator@12@V312@@Z */
DEFINE_THISCALL_WRAPPER
(
basic_string_char_insert_iter_null
,
12
)
basic_string_char_iterator
*
__thiscall
basic_string_char_insert_iter_null
(
basic_string_char
*
this
,
basic_string_char_iterator
*
ret
,
basic_string_char_iterator
where
)
{
return
basic_string_char_insert_iter_ch
(
this
,
ret
,
where
,
0
);
}
/* ?begin@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE?AViterator@12@XZ */
/* ?begin@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBE?AVconst_iterator@12@XZ */
/* ?rend@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE?AV?$reverse_iterator@Viterator@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@XZ */
/* ?rend@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBE?AV?$reverse_iterator@Vconst_iterator@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@XZ */
DEFINE_THISCALL_WRAPPER
(
basic_string_char_begin
,
8
)
basic_string_char_iterator
*
__thiscall
basic_string_char_begin
(
basic_string_char
*
this
,
basic_string_char_iterator
*
ret
)
{
ret
->
pos
=
basic_string_char_ptr
(
this
);
return
ret
;
}
/* ?end@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE?AViterator@12@XZ */
/* ?end@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBE?AVconst_iterator@12@XZ */
/* ?rbegin@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE?AV?$reverse_iterator@Viterator@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@XZ */
/* ?rbegin@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBE?AV?$reverse_iterator@Vconst_iterator@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@XZ */
DEFINE_THISCALL_WRAPPER
(
basic_string_char_end
,
8
)
basic_string_char_iterator
*
__thiscall
basic_string_char_end
(
basic_string_char
*
this
,
basic_string_char_iterator
*
ret
)
{
ret
->
pos
=
basic_string_char_ptr
(
this
)
+
this
->
size
;
return
ret
;
}
/* ?_Pdif@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@KAIVconst_iterator@12@0@Z */
/* ?_Pdif@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@KAIVconst_iterator@12@0@Z */
MSVCP_size_t
__cdecl
basic_string_wchar__Pdif
(
basic_string_wchar_iterator
i1
,
basic_string_wchar_iterator
i2
)
{
TRACE
(
"(%p %p)
\n
"
,
i1
.
pos
,
i2
.
pos
);
return
!
i1
.
pos
?
0
:
i1
.
pos
-
i2
.
pos
;
}
/* ?erase@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE?AViterator@12@V312@0@Z */
/* ?erase@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAE?AViterator@12@V312@0@Z */
DEFINE_THISCALL_WRAPPER
(
basic_string_wchar_erase_iter_range
,
16
)
basic_string_wchar_iterator
*
__thiscall
basic_string_wchar_erase_iter_range
(
basic_string_wchar
*
this
,
basic_string_wchar_iterator
*
ret
,
basic_string_wchar_iterator
beg
,
basic_string_wchar_iterator
end
)
{
MSVCP_size_t
off
;
ret
->
pos
=
basic_string_wchar_ptr
(
this
);
off
=
basic_string_wchar__Pdif
(
beg
,
*
ret
);
MSVCP_basic_string_wchar_erase
(
this
,
off
,
basic_string_wchar__Pdif
(
end
,
beg
));
ret
->
pos
=
basic_string_wchar_ptr
(
this
)
+
off
;
return
ret
;
}
/* ?erase@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE?AViterator@12@V312@@Z */
/* ?erase@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAE?AViterator@12@V312@@Z */
DEFINE_THISCALL_WRAPPER
(
basic_string_wchar_erase_iter
,
12
)
basic_string_wchar_iterator
*
__thiscall
basic_string_wchar_erase_iter
(
basic_string_wchar
*
this
,
basic_string_wchar_iterator
*
ret
,
basic_string_wchar_iterator
pos
)
{
MSVCP_size_t
off
;
ret
->
pos
=
basic_string_wchar_ptr
(
this
);
off
=
basic_string_wchar__Pdif
(
pos
,
*
ret
);
MSVCP_basic_string_wchar_erase
(
this
,
off
,
1
);
ret
->
pos
=
basic_string_wchar_ptr
(
this
)
+
off
;
return
ret
;
}
/* ?assign@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV12@Vconst_iterator@12@0@Z */
/* ?assign@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV12@Vconst_iterator@12@0@Z */
DEFINE_THISCALL_WRAPPER
(
basic_string_wchar_assign_iter
,
12
)
basic_string_wchar
*
__thiscall
basic_string_wchar_assign_iter
(
basic_string_wchar
*
this
,
basic_string_wchar_iterator
beg
,
basic_string_wchar_iterator
end
)
{
return
MSVCP_basic_string_wchar_assign_ptr_ptr
(
this
,
beg
.
pos
,
end
.
pos
);
}
/* ??0?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE@Vconst_iterator@01@0@Z */
/* ??0?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAE@Vconst_iterator@01@0@Z */
DEFINE_THISCALL_WRAPPER
(
basic_string_wchar_ctor_iter
,
12
)
basic_string_wchar
*
__thiscall
basic_string_wchar_ctor_iter
(
basic_string_wchar
*
this
,
basic_string_wchar_iterator
beg
,
basic_string_wchar_iterator
end
)
{
return
MSVCP_basic_string_wchar_ctor_cstr_len
(
this
,
beg
.
pos
,
end
.
pos
-
beg
.
pos
);
}
/* ?append@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV12@Vconst_iterator@12@0@Z */
/* ?append@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV12@Vconst_iterator@12@0@Z */
DEFINE_THISCALL_WRAPPER
(
basic_string_wchar_append_iter
,
12
)
basic_string_wchar
*
__thiscall
basic_string_wchar_append_iter
(
basic_string_wchar
*
this
,
basic_string_wchar_iterator
beg
,
basic_string_wchar_iterator
end
)
{
return
basic_string_wchar_replace_cstr_len
(
this
,
this
->
size
,
0
,
beg
.
pos
,
end
.
pos
-
beg
.
pos
);
}
/* ?replace@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV12@Viterator@12@0Vconst_iterator@12@1@Z */
/* ?replace@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV12@Viterator@12@0Vconst_iterator@12@1@Z */
DEFINE_THISCALL_WRAPPER
(
basic_string_wchar_replace_iter_iter
,
20
)
basic_string_wchar
*
__thiscall
basic_string_wchar_replace_iter_iter
(
basic_string_wchar
*
this
,
basic_string_wchar_iterator
beg
,
basic_string_wchar_iterator
end
,
basic_string_wchar_iterator
rbeg
,
basic_string_wchar_iterator
rend
)
{
return
basic_string_wchar_replace_cstr_len
(
this
,
beg
.
pos
-
basic_string_wchar_ptr
(
this
),
end
.
pos
-
beg
.
pos
,
rbeg
.
pos
,
rend
.
pos
-
rbeg
.
pos
);
}
/* ?replace@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV12@Viterator@12@0ABV12@@Z */
/* ?replace@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV12@Viterator@12@0ABV12@@Z */
DEFINE_THISCALL_WRAPPER
(
basic_string_wchar_replace_iter_bstr
,
16
)
basic_string_wchar
*
__thiscall
basic_string_wchar_replace_iter_bstr
(
basic_string_wchar
*
this
,
basic_string_wchar_iterator
beg
,
basic_string_wchar_iterator
end
,
basic_string_wchar
*
str
)
{
return
basic_string_wchar_replace_cstr_len
(
this
,
beg
.
pos
-
basic_string_wchar_ptr
(
this
),
end
.
pos
-
beg
.
pos
,
basic_string_wchar_ptr
(
str
),
str
->
size
);
}
/* ?replace@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV12@Viterator@12@0IG@Z */
/* ?replace@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV12@Viterator@12@0I_W@Z */
DEFINE_THISCALL_WRAPPER
(
basic_string_wchar_replace_iter_ch
,
20
)
basic_string_wchar
*
__thiscall
basic_string_wchar_replace_iter_ch
(
basic_string_wchar
*
this
,
basic_string_wchar_iterator
beg
,
basic_string_wchar_iterator
end
,
MSVCP_size_t
count
,
wchar_t
ch
)
{
/* TODO: add more efficient implementation */
MSVCP_size_t
off
=
beg
.
pos
-
basic_string_wchar_ptr
(
this
);
basic_string_wchar_replace_cstr_len
(
this
,
off
,
end
.
pos
-
beg
.
pos
,
NULL
,
0
);
while
(
count
--
)
basic_string_wchar_replace_cstr_len
(
this
,
off
,
0
,
&
ch
,
1
);
return
this
;
}
/* ?replace@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV12@V?$_String_const_iterator@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@2@0PB_W1@Z */
/* ?replace@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAAEAV12@V?$_String_const_iterator@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@2@0PEB_W1@Z */
static
basic_string_wchar
*
basic_string_wchar_replace_iter_ptr_ptr
(
basic_string_wchar
*
this
,
basic_string_wchar_iterator
beg
,
basic_string_wchar_iterator
end
,
const
wchar_t
*
res_beg
,
const
wchar_t
*
res_end
)
{
basic_string_wchar_iterator
begin
=
{
basic_string_wchar_ptr
(
this
)
};
return
basic_string_wchar_replace_cstr_len
(
this
,
basic_string_wchar__Pdif
(
beg
,
begin
),
basic_string_wchar__Pdif
(
end
,
beg
),
res_beg
,
res_end
-
res_beg
);
}
/* ?replace@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV12@Viterator@12@0PBG1@Z */
/* ?replace@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV12@Viterator@12@0PB_W1@Z */
DEFINE_THISCALL_WRAPPER
(
basic_string_wchar_replace_iter_beg_end
,
20
)
basic_string_wchar
*
__thiscall
basic_string_wchar_replace_iter_beg_end
(
basic_string_wchar
*
this
,
basic_string_wchar_iterator
beg
,
basic_string_wchar_iterator
end
,
const
wchar_t
*
rbeg
,
const
wchar_t
*
rend
)
{
return
basic_string_wchar_replace_cstr_len
(
this
,
beg
.
pos
-
basic_string_wchar_ptr
(
this
),
end
.
pos
-
beg
.
pos
,
rbeg
,
rend
-
rbeg
);
}
/* ?replace@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV12@Viterator@12@0PBG@Z */
/* ?replace@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV12@Viterator@12@0PB_W@Z */
DEFINE_THISCALL_WRAPPER
(
basic_string_wchar_replace_iter_cstr
,
16
)
basic_string_wchar
*
__thiscall
basic_string_wchar_replace_iter_cstr
(
basic_string_wchar
*
this
,
basic_string_wchar_iterator
beg
,
basic_string_wchar_iterator
end
,
const
wchar_t
*
str
)
{
return
basic_string_wchar_replace_cstr_len
(
this
,
beg
.
pos
-
basic_string_wchar_ptr
(
this
),
end
.
pos
-
beg
.
pos
,
str
,
wcslen
(
str
));
}
/* ?replace@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV12@Viterator@12@0PBGI@Z */
/* ?replace@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV12@Viterator@12@0PB_WI@Z */
DEFINE_THISCALL_WRAPPER
(
basic_string_wchar_replace_iter_cstr_len
,
20
)
basic_string_wchar
*
__thiscall
basic_string_wchar_replace_iter_cstr_len
(
basic_string_wchar
*
this
,
basic_string_wchar_iterator
beg
,
basic_string_wchar_iterator
end
,
const
wchar_t
*
str
,
MSVCP_size_t
len
)
{
return
basic_string_wchar_replace_cstr_len
(
this
,
beg
.
pos
-
basic_string_wchar_ptr
(
this
),
end
.
pos
-
beg
.
pos
,
str
,
len
);
}
/* ?insert@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEXViterator@12@I_W@Z */
/* ?insert@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEXViterator@12@IG@Z */
DEFINE_THISCALL_WRAPPER
(
basic_string_wchar_insert_iter_chn
,
16
)
void
__thiscall
basic_string_wchar_insert_iter_chn
(
basic_string_wchar
*
this
,
basic_string_wchar_iterator
where
,
MSVCP_size_t
count
,
wchar_t
ch
)
{
basic_string_wchar_iterator
iter
=
{
basic_string_wchar_ptr
(
this
)
};
MSVCP_size_t
off
=
basic_string_wchar__Pdif
(
where
,
iter
);
basic_string_wchar_insert_chn
(
this
,
off
,
count
,
ch
);
}
/* ?insert@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE?AViterator@12@V312@_W@Z */
/* ?insert@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAE?AViterator@12@V312@G@Z */
DEFINE_THISCALL_WRAPPER
(
basic_string_wchar_insert_iter_ch
,
16
)
basic_string_wchar_iterator
*
__thiscall
basic_string_wchar_insert_iter_ch
(
basic_string_wchar
*
this
,
basic_string_wchar_iterator
*
ret
,
basic_string_wchar_iterator
where
,
wchar_t
ch
)
{
MSVCP_size_t
off
;
ret
->
pos
=
basic_string_wchar_ptr
(
this
);
off
=
basic_string_wchar__Pdif
(
where
,
*
ret
);
basic_string_wchar_insert_chn
(
this
,
off
,
1
,
ch
);
ret
->
pos
=
basic_string_wchar_ptr
(
this
)
+
off
;
return
ret
;
}
/* ?insert@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE?AViterator@12@V312@@Z */
/* ?insert@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAE?AViterator@12@V312@@Z */
DEFINE_THISCALL_WRAPPER
(
basic_string_wchar_insert_iter_null
,
12
)
basic_string_wchar_iterator
*
__thiscall
basic_string_wchar_insert_iter_null
(
basic_string_wchar
*
this
,
basic_string_wchar_iterator
*
ret
,
basic_string_wchar_iterator
where
)
{
return
basic_string_wchar_insert_iter_ch
(
this
,
ret
,
where
,
0
);
}
/* ?insert@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEXViterator@12@PB_W1@Z */
/* ?insert@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEXViterator@12@PBG1@Z */
DEFINE_THISCALL_WRAPPER
(
basic_string_wchar_insert_iter_ptr_ptr
,
16
)
void
__thiscall
basic_string_wchar_insert_iter_ptr_ptr
(
basic_string_wchar
*
this
,
basic_string_wchar_iterator
where
,
const
wchar_t
*
beg
,
const
wchar_t
*
end
)
{
basic_string_wchar_replace_iter_ptr_ptr
(
this
,
where
,
where
,
beg
,
end
);
}
/* ?begin@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAE?AViterator@12@XZ */
/* ?begin@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBE?AVconst_iterator@12@XZ */
/* ?begin@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE?AViterator@12@XZ */
/* ?begin@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBE?AVconst_iterator@12@XZ */
/* ?rend@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAE?AV?$reverse_iterator@Viterator@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@@2@XZ */
/* ?rend@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBE?AV?$reverse_iterator@Vconst_iterator@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@@2@XZ */
/* ?rend@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE?AV?$reverse_iterator@Viterator@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@@2@XZ */
/* ?rend@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBE?AV?$reverse_iterator@Vconst_iterator@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@@2@XZ */
DEFINE_THISCALL_WRAPPER
(
basic_string_wchar_begin
,
8
)
basic_string_wchar_iterator
*
__thiscall
basic_string_wchar_begin
(
basic_string_wchar
*
this
,
basic_string_wchar_iterator
*
ret
)
{
ret
->
pos
=
basic_string_wchar_ptr
(
this
);
return
ret
;
}
/* ?end@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAE?AViterator@12@XZ */
/* ?end@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBE?AVconst_iterator@12@XZ */
/* ?end@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE?AViterator@12@XZ */
/* ?end@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBE?AVconst_iterator@12@XZ */
/* ?rbegin@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAE?AV?$reverse_iterator@Viterator@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@@2@XZ */
/* ?rbegin@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBE?AV?$reverse_iterator@Vconst_iterator@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@@2@XZ */
/* ?rbegin@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE?AV?$reverse_iterator@Viterator@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@@2@XZ */
/* ?rbegin@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBE?AV?$reverse_iterator@Vconst_iterator@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@@2@XZ */
DEFINE_THISCALL_WRAPPER
(
basic_string_wchar_end
,
8
)
basic_string_wchar_iterator
*
__thiscall
basic_string_wchar_end
(
basic_string_wchar
*
this
,
basic_string_wchar_iterator
*
ret
)
{
ret
->
pos
=
basic_string_wchar_ptr
(
this
)
+
this
->
size
;
return
ret
;
}
#endif
/* _MSVCP_VER < 80 */
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