2 * Copyright 2010 Piotr Caban for CodeWeavers
4 * This library is free software; you can redistribute it and/or
5 * modify it under the terms of the GNU Lesser General Public
6 * License as published by the Free Software Foundation; either
7 * version 2.1 of the License, or (at your option) any later version.
9 * This library is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12 * Lesser General Public License for more details.
14 * You should have received a copy of the GNU Lesser General Public
15 * License along with this library; if not, write to the Free Software
16 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
29 #include "wine/debug.h"
30 WINE_DEFAULT_DEBUG_CHANNEL(msvcp
);
32 /* _String_iterator<char> and _String_const_iterator<char> class */
34 basic_string_char
*bstr
;
36 } String_iterator_char
;
37 typedef String_iterator_char String_reverse_iterator_char
;
40 basic_string_wchar
*bstr
;
42 } String_iterator_wchar
;
43 typedef String_iterator_wchar String_reverse_iterator_wchar
;
45 /* size_t_noverify structure */
55 /* char_traits<char> */
56 /* ?assign@?$char_traits@D@std@@SAXAADABD@Z */
57 /* ?assign@?$char_traits@D@std@@SAXAEADAEBD@Z */
58 static void CDECL
MSVCP_char_traits_char_assign(char *ch
, const char *assign
)
63 /* ?compare@?$char_traits@D@std@@SAHPBD0I@Z */
64 /* ?compare@?$char_traits@D@std@@SAHPEBD0_K@Z */
65 static int CDECL
MSVCP_char_traits_char_compare(
66 const char *s1
, const char *s2
, MSVCP_size_t count
)
68 int ret
= memcmp(s1
, s2
, count
);
69 return (ret
>0 ? 1 : (ret
<0 ? -1 : 0));
72 /* ?length@?$char_traits@D@std@@SAIPBD@Z */
73 /* ?length@?$char_traits@D@std@@SA_KPEBD@Z */
74 static MSVCP_size_t CDECL
MSVCP_char_traits_char_length(const char *str
)
79 /* ?_Copy_s@?$char_traits@D@std@@SAPADPADIPBDI@Z */
80 /* ?_Copy_s@?$char_traits@D@std@@SAPEADPEAD_KPEBD1@Z */
81 static char* CDECL
MSVCP_char_traits_char__Copy_s(char *dest
,
82 MSVCP_size_t size
, const char *src
, MSVCP_size_t count
)
84 if(!dest
|| !src
|| size
<count
) {
87 _invalid_parameter(NULL
, NULL
, NULL
, 0, 0);
91 return memcpy(dest
, src
, count
);
94 /* ?find@?$char_traits@D@std@@SAPBDPBDIABD@Z */
95 /* ?find@?$char_traits@D@std@@SAPEBDPEBD_KAEBD@Z */
96 static const char * CDECL
MSVCP_char_traits_char_find(
97 const char *str
, MSVCP_size_t range
, const char *c
)
99 return memchr(str
, *c
, range
);
102 /* ?_Move_s@?$char_traits@D@std@@SAPADPADIPBDI@Z */
103 /* ?_Move_s@?$char_traits@D@std@@SAPEADPEAD_KPEBD1@Z */
104 static char* CDECL
MSVCP_char_traits_char__Move_s(char *dest
,
105 MSVCP_size_t size
, const char *src
, MSVCP_size_t count
)
107 if(!dest
|| !src
|| size
<count
) {
110 _invalid_parameter(NULL
, NULL
, NULL
, 0, 0);
114 return memmove(dest
, src
, count
);
117 /* ?assign@?$char_traits@D@std@@SAPADPADID@Z */
118 /* ?assign@?$char_traits@D@std@@SAPEADPEAD_KD@Z */
119 static char* CDECL
MSVCP_char_traits_char_assignn(char *str
, MSVCP_size_t num
, char c
)
121 return memset(str
, c
, num
);
125 /* char_traits<wchar_t> */
126 /* ?assign@?$char_traits@_W@std@@SAXAA_WAB_W@Z */
127 /* ?assign@?$char_traits@_W@std@@SAXAEA_WAEB_W@Z */
128 static void CDECL
MSVCP_char_traits_wchar_assign(wchar_t *ch
,
129 const wchar_t *assign
)
134 /* ?compare@?$char_traits@_W@std@@SAHPB_W0I@Z */
135 /* ?compare@?$char_traits@_W@std@@SAHPEB_W0_K@Z */
136 static int CDECL
MSVCP_char_traits_wchar_compare(const wchar_t *s1
,
137 const wchar_t *s2
, MSVCP_size_t count
)
139 int ret
= memcmp(s1
, s2
, count
* sizeof(wchar_t));
140 return (ret
>0 ? 1 : (ret
<0 ? -1 : 0));
143 /* ?length@?$char_traits@_W@std@@SAIPB_W@Z */
144 /* ?length@?$char_traits@_W@std@@SA_KPEB_W@Z */
145 static MSVCP_size_t CDECL
MSVCP_char_traits_wchar_length(const wchar_t *str
)
147 return wcslen((WCHAR
*)str
);
150 /* ?_Copy_s@?$char_traits@_W@std@@SAPA_WPA_WIPB_WI@Z */
151 /* ?_Copy_s@?$char_traits@_W@std@@SAPEA_WPEA_W_KPEB_W1@Z */
152 static wchar_t* CDECL
MSVCP_char_traits_wchar__Copy_s(wchar_t *dest
,
153 MSVCP_size_t size
, const wchar_t *src
, MSVCP_size_t count
)
155 if(!dest
|| !src
|| size
<count
) {
158 _invalid_parameter(NULL
, NULL
, NULL
, 0, 0);
162 return memcpy(dest
, src
, count
* sizeof(wchar_t));
165 /* ?find@?$char_traits@_W@std@@SAPB_WPB_WIAB_W@Z */
166 /* ?find@?$char_traits@_W@std@@SAPEB_WPEB_W_KAEB_W@Z */
167 static const wchar_t* CDECL
MSVCP_char_traits_wchar_find(
168 const wchar_t *str
, MSVCP_size_t range
, const wchar_t *c
)
172 for(i
=0; i
<range
; i
++)
179 /* ?_Move_s@?$char_traits@_W@std@@SAPA_WPA_WIPB_WI@Z */
180 /* ?_Move_s@?$char_traits@_W@std@@SAPEA_WPEA_W_KPEB_W1@Z */
181 static wchar_t* CDECL
MSVCP_char_traits_wchar__Move_s(wchar_t *dest
,
182 MSVCP_size_t size
, const wchar_t *src
, MSVCP_size_t count
)
184 if(!dest
|| !src
|| size
<count
) {
187 _invalid_parameter(NULL
, NULL
, NULL
, 0, 0);
191 return memmove(dest
, src
, count
* sizeof(WCHAR
));
194 /* ?assign@?$char_traits@_W@std@@SAPA_WPA_WI_W@Z */
195 /* ?assign@?$char_traits@_W@std@@SAPEA_WPEA_W_K_W@Z */
196 static wchar_t* CDECL
MSVCP_char_traits_wchar_assignn(wchar_t *str
,
197 MSVCP_size_t num
, wchar_t c
)
209 /* ?_Xlen@_String_base@std@@SAXXZ */
210 static void CDECL
MSVCP__String_base_Xlen(void)
212 static const char msg
[] = "string too long";
215 throw_exception(EXCEPTION_LENGTH_ERROR
, msg
);
218 /* ?_Xran@_String_base@std@@SAXXZ */
219 static void CDECL
MSVCP__String_base_Xran(void)
221 static const char msg
[] = "invalid string position";
224 throw_exception(EXCEPTION_OUT_OF_RANGE
, msg
);
228 /* basic_string<char, char_traits<char>, allocator<char>> */
229 /* ?npos@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@2IB */
230 /* ?npos@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@2_KB */
231 static const MSVCP_size_t MSVCP_basic_string_char_npos
= -1;
233 /* ?_Myptr@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IAEPADXZ */
234 /* ?_Myptr@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IEAAPEADXZ */
235 DEFINE_THISCALL_WRAPPER(basic_string_char_ptr
, 4)
236 char* __thiscall
basic_string_char_ptr(basic_string_char
*this)
238 if(this->res
== BUF_SIZE_CHAR
-1)
239 return this->data
.buf
;
240 return this->data
.ptr
;
243 /* ?_Myptr@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IBEPBDXZ */
244 /* ?_Myptr@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IEBAPEBDXZ */
245 DEFINE_THISCALL_WRAPPER(basic_string_char_const_ptr
, 4)
246 const char* __thiscall
basic_string_char_const_ptr(const basic_string_char
*this)
248 if(this->res
== BUF_SIZE_CHAR
-1)
249 return this->data
.buf
;
250 return this->data
.ptr
;
253 /* ?_Eos@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IAEXI@Z */
254 /* ?_Eos@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IEAAX_K@Z */
255 DEFINE_THISCALL_WRAPPER(basic_string_char_eos
, 8)
256 void __thiscall
basic_string_char_eos(basic_string_char
*this, MSVCP_size_t len
)
258 static const char nullbyte
= '\0';
261 MSVCP_char_traits_char_assign(basic_string_char_ptr(this)+len
, &nullbyte
);
264 /* ?_Inside@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IAE_NPBD@Z */
265 /* ?_Inside@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IEAA_NPEBD@Z */
266 DEFINE_THISCALL_WRAPPER(basic_string_char_inside
, 8)
267 MSVCP_bool __thiscall
basic_string_char_inside(
268 basic_string_char
*this, const char *ptr
)
270 char *cstr
= basic_string_char_ptr(this);
272 return (ptr
<cstr
|| ptr
>=cstr
+this->size
) ? FALSE
: TRUE
;
275 /* ?_Tidy@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IAEX_NI@Z */
276 /* ?_Tidy@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IEAAX_N_K@Z */
277 DEFINE_THISCALL_WRAPPER(basic_string_char_tidy
, 12)
278 void __thiscall
basic_string_char_tidy(basic_string_char
*this,
279 MSVCP_bool built
, MSVCP_size_t new_size
)
281 if(built
&& BUF_SIZE_CHAR
<=this->res
) {
282 char *ptr
= this->data
.ptr
;
285 MSVCP_char_traits_char__Copy_s(this->data
.buf
, BUF_SIZE_CHAR
, ptr
, new_size
);
286 MSVCP_allocator_char_deallocate(this->allocator
, ptr
, this->res
+1);
289 this->res
= BUF_SIZE_CHAR
-1;
290 basic_string_char_eos(this, new_size
);
293 /* Exported only from msvcp60/70 */
294 /* ?_Tidy@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@AAEX_N@Z */
295 /* ?_Tidy@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@AEAAX_N@Z */
296 DEFINE_THISCALL_WRAPPER(basic_string_char_tidy_built
, 8)
297 void __thiscall
basic_string_char_tidy_built(basic_string_char
*this, MSVCP_bool built
)
299 basic_string_char_tidy(this, built
, 0);
302 /* ?_Grow@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IAE_NI_N@Z */
303 /* ?_Grow@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IEAA_N_K_N@Z */
304 DEFINE_THISCALL_WRAPPER(basic_string_char_grow
, 12)
305 MSVCP_bool __thiscall
basic_string_char_grow(
306 basic_string_char
*this, MSVCP_size_t new_size
, MSVCP_bool trim
)
308 if(this->res
< new_size
) {
309 MSVCP_size_t new_res
= new_size
, len
= this->size
;
314 if(new_res
/3 < this->res
/2)
315 new_res
= this->res
+ this->res
/2;
317 ptr
= MSVCP_allocator_char_allocate(this->allocator
, new_res
+1);
319 ptr
= MSVCP_allocator_char_allocate(this->allocator
, new_size
+1);
323 ERR("Out of memory\n");
324 basic_string_char_tidy(this, TRUE
, 0);
328 MSVCP_char_traits_char__Copy_s(ptr
, new_size
,
329 basic_string_char_ptr(this), this->size
);
330 basic_string_char_tidy(this, TRUE
, 0);
331 this->data
.ptr
= ptr
;
332 this->res
= new_size
;
333 basic_string_char_eos(this, len
);
334 } else if(trim
&& new_size
< BUF_SIZE_CHAR
)
335 basic_string_char_tidy(this, TRUE
,
336 new_size
<this->size
? new_size
: this->size
);
337 else if(new_size
== 0)
338 basic_string_char_eos(this, 0);
343 /* ?_Copy@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IAEXII@Z */
344 /* ?_Copy@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IEAAX_K0@Z */
345 DEFINE_THISCALL_WRAPPER(basic_string_char__Copy
, 12)
346 void __thiscall
basic_string_char__Copy(basic_string_char
*this,
347 MSVCP_size_t new_size
, MSVCP_size_t copy_len
)
349 TRACE("%p %lu %lu\n", this, new_size
, copy_len
);
351 if(!basic_string_char_grow(this, new_size
, FALSE
))
353 basic_string_char_eos(this, copy_len
);
356 /* ?_Pdif@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@KAIV?$_String_const_iterator@DU?$char_traits@D@std@@V?$allocator@D@2@@2@0@Z */
357 /* ?_Pdif@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@KA_KV?$_String_const_iterator@DU?$char_traits@D@std@@V?$allocator@D@2@@2@0@Z */
358 static MSVCP_size_t __cdecl
MSVCP_basic_string_char_Pdif(String_iterator_char i1
, String_iterator_char i2
)
360 TRACE("(%p %p) (%p %p)\n", i1
.bstr
, i1
.pos
, i2
.bstr
, i2
.pos
);
362 if((!i1
.bstr
&& i1
.pos
) || i1
.bstr
!=i2
.bstr
) {
363 _invalid_parameter(NULL
, NULL
, NULL
, 0, 0);
367 return !i1
.pos
? 0 : i1
.pos
-i2
.pos
;
370 /* ?get_allocator@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBE?AV?$allocator@D@2@XZ */
371 /* ?get_allocator@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA?AV?$allocator@D@2@XZ */
372 DEFINE_THISCALL_WRAPPER(basic_string_char_get_allocator
, 8)
373 allocator
* __thiscall
basic_string_char_get_allocator(const basic_string_char
*this, allocator
*ret
)
379 /* ?erase@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@II@Z */
380 /* ?erase@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAAEAV12@_K0@Z */
381 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_erase
, 12)
382 basic_string_char
* __thiscall
MSVCP_basic_string_char_erase(
383 basic_string_char
*this, MSVCP_size_t pos
, MSVCP_size_t len
)
385 TRACE("%p %lu %lu\n", this, pos
, len
);
388 MSVCP__String_base_Xran();
390 if(len
> this->size
-pos
)
391 len
= this->size
-pos
;
394 MSVCP_char_traits_char__Move_s(basic_string_char_ptr(this)+pos
,
395 this->res
-pos
, basic_string_char_ptr(this)+pos
+len
,
397 basic_string_char_eos(this, this->size
-len
);
403 /* ?erase@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE?AV?$_String_iterator@DU?$char_traits@D@std@@V?$allocator@D@2@@2@V?$_String_const_iterator@DU?$char_traits@D@std@@V?$allocator@D@2@@2@0@Z */
404 /* ?erase@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAA?AV?$_String_iterator@DU?$char_traits@D@std@@V?$allocator@D@2@@2@V?$_String_const_iterator@DU?$char_traits@D@std@@V?$allocator@D@2@@2@0@Z */
405 DEFINE_THISCALL_WRAPPER(basic_string_char_erase_iter_range
, 24)
406 String_iterator_char
* __thiscall
basic_string_char_erase_iter_range(basic_string_char
*this,
407 String_iterator_char
*ret
, String_iterator_char beg
, String_iterator_char end
)
412 ret
->pos
= basic_string_char_ptr(this);
413 off
= MSVCP_basic_string_char_Pdif(beg
, *ret
);
415 MSVCP_basic_string_char_erase(this, off
, MSVCP_basic_string_char_Pdif(end
, beg
));
418 ret
->pos
= basic_string_char_ptr(this)+off
;
422 /* ?erase@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE?AV?$_String_iterator@DU?$char_traits@D@std@@V?$allocator@D@2@@2@V?$_String_const_iterator@DU?$char_traits@D@std@@V?$allocator@D@2@@2@@Z */
423 /* ?erase@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAA?AV?$_String_iterator@DU?$char_traits@D@std@@V?$allocator@D@2@@2@V?$_String_const_iterator@DU?$char_traits@D@std@@V?$allocator@D@2@@2@@Z */
424 DEFINE_THISCALL_WRAPPER(basic_string_char_erase_iter
, 16)
425 String_iterator_char
* __thiscall
basic_string_char_erase_iter(basic_string_char
*this,
426 String_iterator_char
*ret
, String_iterator_char pos
)
431 ret
->pos
= basic_string_char_ptr(this);
432 off
= MSVCP_basic_string_char_Pdif(pos
, *ret
);
434 MSVCP_basic_string_char_erase(this, off
, 1);
437 ret
->pos
= basic_string_char_ptr(this)+off
;
441 /* ?assign@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@ABV12@II@Z */
442 /* ?assign@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAAEAV12@AEBV12@_K1@Z */
443 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_assign_substr
, 16)
444 basic_string_char
* __thiscall
MSVCP_basic_string_char_assign_substr(
445 basic_string_char
*this, const basic_string_char
*assign
,
446 MSVCP_size_t pos
, MSVCP_size_t len
)
448 TRACE("%p %p %lu %lu\n", this, assign
, pos
, len
);
450 if(assign
->size
< pos
)
451 MSVCP__String_base_Xran();
453 if(len
> assign
->size
-pos
)
454 len
= assign
->size
-pos
;
457 MSVCP_basic_string_char_erase(this, pos
+len
, MSVCP_basic_string_char_npos
);
458 MSVCP_basic_string_char_erase(this, 0, pos
);
459 } else if(basic_string_char_grow(this, len
, FALSE
)) {
460 MSVCP_char_traits_char__Copy_s(basic_string_char_ptr(this),
461 this->res
, basic_string_char_const_ptr(assign
)+pos
, len
);
462 basic_string_char_eos(this, len
);
468 /* ?assign@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@ABV12@@Z */
469 /* ?assign@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAAEAV12@AEBV12@@Z */
470 /* ??4?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV01@ABV01@@Z */
471 /* ??4?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAAEAV01@AEBV01@@Z */
472 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_assign
, 8)
473 basic_string_char
* __thiscall
MSVCP_basic_string_char_assign(
474 basic_string_char
*this, const basic_string_char
*assign
)
476 return MSVCP_basic_string_char_assign_substr(this, assign
,
477 0, MSVCP_basic_string_char_npos
);
480 /* ?assign@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@PBDI@Z */
481 /* ?assign@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAAEAV12@PEBD_K@Z */
482 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_assign_cstr_len
, 12)
483 basic_string_char
* __thiscall
MSVCP_basic_string_char_assign_cstr_len(
484 basic_string_char
*this, const char *str
, MSVCP_size_t len
)
486 TRACE("%p %s %lu\n", this, debugstr_a(str
), len
);
488 if(basic_string_char_inside(this, str
))
489 return MSVCP_basic_string_char_assign_substr(this, this,
490 str
-basic_string_char_ptr(this), len
);
491 else if(basic_string_char_grow(this, len
, FALSE
)) {
492 MSVCP_char_traits_char__Copy_s(basic_string_char_ptr(this),
493 this->res
, str
, len
);
494 basic_string_char_eos(this, len
);
500 /* ??4?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV01@D@Z */
501 /* ??4?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAAEAV01@D@Z */
502 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_assign_ch
, 8)
503 basic_string_char
* __thiscall
MSVCP_basic_string_char_assign_ch(
504 basic_string_char
*this, char ch
)
506 return MSVCP_basic_string_char_assign_cstr_len(this, &ch
, 1);
509 /* ?assign@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@PBD@Z */
510 /* ?assign@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAAEAV12@PEBD@Z */
511 /* ??4?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV01@PBD@Z */
512 /* ??4?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAAEAV01@PEBD@Z */
513 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_assign_cstr
, 8)
514 basic_string_char
* __thiscall
MSVCP_basic_string_char_assign_cstr(
515 basic_string_char
*this, const char *str
)
517 return MSVCP_basic_string_char_assign_cstr_len(this, str
,
518 MSVCP_char_traits_char_length(str
));
521 /* ?assign@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@ID@Z */
522 /* ?assign@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAAEAV12@_KD@Z */
523 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_assignn
, 12)
524 basic_string_char
* __thiscall
MSVCP_basic_string_char_assignn(
525 basic_string_char
*this, MSVCP_size_t count
, char ch
)
527 TRACE("%p %ld %c\n", this, count
, ch
);
529 basic_string_char_grow(this, count
, FALSE
);
530 MSVCP_char_traits_char_assignn(basic_string_char_ptr(this), count
, ch
);
531 basic_string_char_eos(this, count
);
535 /* ?assign@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@PBD0@Z */
536 /* ?assign@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAAEAV12@PEBD0@Z */
537 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_assign_ptr_ptr
, 12)
538 basic_string_char
* __thiscall
MSVCP_basic_string_char_assign_ptr_ptr(
539 basic_string_char
*this, const char *first
, const char *last
)
541 return MSVCP_basic_string_char_assign_cstr_len(this, first
, last
-first
);
544 /* ?assign@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@V?$_String_const_iterator@DU?$char_traits@D@std@@V?$allocator@D@2@@2@0@Z */
545 /* ?assign@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAAEAV12@V?$_String_const_iterator@DU?$char_traits@D@std@@V?$allocator@D@2@@2@0@Z */
546 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_assign_iter
, 20)
547 basic_string_char
* __thiscall
MSVCP_basic_string_char_assign_iter(basic_string_char
*this,
548 String_iterator_char beg
, String_iterator_char end
)
550 return MSVCP_basic_string_char_assign_ptr_ptr(this, beg
.pos
, end
.pos
);
553 /* ?_Chassign@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IAEXIID@Z */
554 /* ?_Chassign@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IEAAX_K0D@Z */
555 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_Chassign
, 16)
556 void __thiscall
MSVCP_basic_string_char_Chassign(basic_string_char
*this,
557 MSVCP_size_t off
, MSVCP_size_t count
, char ch
)
559 TRACE("%p %lu %lu %c\n", this, off
, count
, ch
);
560 MSVCP_char_traits_char_assignn(basic_string_char_ptr(this)+off
, count
, ch
);
563 /* ?_Copy_s@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEIPADIII@Z */
564 /* ?_Copy_s@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA_KPEAD_K11@Z */
565 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_Copy_s
, 20)
566 MSVCP_size_t __thiscall
MSVCP_basic_string_char_Copy_s(const basic_string_char
*this,
567 char *dest
, MSVCP_size_t size
, MSVCP_size_t count
, MSVCP_size_t off
)
569 TRACE("%p %p %lu %lu %lu\n", this, dest
, size
, count
, off
);
572 MSVCP__String_base_Xran();
574 if(count
> this->size
-off
)
575 count
= this->size
-off
;
577 MSVCP_char_traits_char__Copy_s(dest
, size
,
578 basic_string_char_const_ptr(this)+off
, count
);
582 /* ?copy@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEIPADII@Z */
583 /* ?copy@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA_KPEAD_K1@Z */
584 DEFINE_THISCALL_WRAPPER(basic_string_char_copy
, 16)
585 MSVCP_size_t __thiscall
basic_string_char_copy(const basic_string_char
*this,
586 char *dest
, MSVCP_size_t count
, MSVCP_size_t off
)
588 return MSVCP_basic_string_char_Copy_s(this, dest
, count
, count
, off
);
591 /* ?c_str@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEPBDXZ */
592 /* ?c_str@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBAPEBDXZ */
593 /* ?data@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEPBDXZ */
594 /* ?data@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBAPEBDXZ */
595 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_c_str
, 4)
596 const char* __thiscall
MSVCP_basic_string_char_c_str(const basic_string_char
*this)
599 return basic_string_char_const_ptr(this);
602 /* ?capacity@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEIXZ */
603 /* ?capacity@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA_KXZ */
604 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_capacity
, 4)
605 MSVCP_size_t __thiscall
MSVCP_basic_string_char_capacity(basic_string_char
*this)
611 /* ?reserve@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEXI@Z */
612 /* ?reserve@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAX_K@Z */
613 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_reserve
, 8)
614 void __thiscall
MSVCP_basic_string_char_reserve(basic_string_char
*this, MSVCP_size_t size
)
618 TRACE("%p %ld\n", this, size
);
624 basic_string_char_grow(this, size
, FALSE
);
625 basic_string_char_eos(this, len
);
628 /* ??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@XZ */
629 /* ??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAA@XZ */
630 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_ctor
, 4)
631 basic_string_char
* __thiscall
MSVCP_basic_string_char_ctor(basic_string_char
*this)
635 basic_string_char_tidy(this, FALSE
, 0);
639 /* ??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@ABV01@@Z */
640 /* ??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAA@AEBV01@@Z */
641 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_copy_ctor
, 8)
642 basic_string_char
* __thiscall
MSVCP_basic_string_char_copy_ctor(
643 basic_string_char
*this, const basic_string_char
*copy
)
645 TRACE("%p %p\n", this, copy
);
647 basic_string_char_tidy(this, FALSE
, 0);
648 MSVCP_basic_string_char_assign(this, copy
);
652 /* ??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@PBD@Z */
653 /* ??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAA@PEBD@Z */
654 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_ctor_cstr
, 8)
655 basic_string_char
* __thiscall
MSVCP_basic_string_char_ctor_cstr(
656 basic_string_char
*this, const char *str
)
658 TRACE("%p %s\n", this, debugstr_a(str
));
660 basic_string_char_tidy(this, FALSE
, 0);
661 MSVCP_basic_string_char_assign_cstr(this, str
);
665 /* ??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@PBDABV?$allocator@D@1@@Z */
666 /* ??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAA@PEBDAEBV?$allocator@D@1@@Z */
667 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_ctor_cstr_alloc
, 12)
668 basic_string_char
* __thiscall
MSVCP_basic_string_char_ctor_cstr_alloc(
669 basic_string_char
*this, const char *str
, const void *alloc
)
671 return MSVCP_basic_string_char_ctor_cstr(this, str
);
674 /* ??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@PBDI@Z */
675 /* ??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAA@PEBD_K@Z */
676 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_ctor_cstr_len
, 12)
677 basic_string_char
* __thiscall
MSVCP_basic_string_char_ctor_cstr_len(
678 basic_string_char
*this, const char *str
, MSVCP_size_t len
)
680 TRACE("%p %s %ld\n", this, debugstr_a(str
), len
);
682 basic_string_char_tidy(this, FALSE
, 0);
683 MSVCP_basic_string_char_assign_cstr_len(this, str
, len
);
687 /* ??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@PBDIABV?$allocator@D@1@@Z */
688 /* ??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAA@PEBD_KAEBV?$allocator@D@1@@Z */
689 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_ctor_cstr_len_alloc
, 16)
690 basic_string_char
* __thiscall
MSVCP_basic_string_char_ctor_cstr_len_alloc(
691 basic_string_char
*this, const char *str
, MSVCP_size_t len
, const void *alloc
)
693 return MSVCP_basic_string_char_ctor_cstr_len(this, str
, len
);
696 /* ??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@ABV01@II@Z */
697 /* ??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAA@AEBV01@_K1@Z */
698 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_ctor_substr
, 16)
699 basic_string_char
* __thiscall
MSVCP_basic_string_char_ctor_substr(
700 basic_string_char
*this, const basic_string_char
*assign
,
701 MSVCP_size_t pos
, MSVCP_size_t len
)
703 TRACE("%p %p %lu %lu\n", this, assign
, pos
, len
);
705 basic_string_char_tidy(this, FALSE
, 0);
706 MSVCP_basic_string_char_assign_substr(this, assign
, pos
, len
);
710 /* ??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@ABV01@IIABV?$allocator@D@1@@Z */
711 /* ??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAA@AEBV01@_K1AEBV?$allocator@D@1@@Z */
712 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_ctor_substr_alloc
, 20)
713 basic_string_char
* __thiscall
MSVCP_basic_string_char_ctor_substr_alloc(
714 basic_string_char
*this, const basic_string_char
*assign
,
715 MSVCP_size_t pos
, MSVCP_size_t len
, const void *alloc
)
717 return MSVCP_basic_string_char_ctor_substr(this, assign
, pos
, len
);
720 /* ??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@ABV?$allocator@D@1@@Z */
721 /* ??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAA@AEBV?$allocator@D@1@@Z */
722 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_ctor_alloc
, 8)
723 basic_string_char
* __thiscall
MSVCP_basic_string_char_ctor_alloc(
724 basic_string_char
*this, const void *alloc
)
726 TRACE("%p %p\n", this, alloc
);
728 basic_string_char_tidy(this, FALSE
, 0);
732 /* ??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@ID@Z */
733 /* ??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAA@_KD@Z */
734 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_ctor_ch
, 12)
735 basic_string_char
* __thiscall
MSVCP_basic_string_char_ctor_ch(basic_string_char
*this,
736 MSVCP_size_t count
, char ch
)
738 TRACE("%p %ld %c\n", this, count
, ch
);
740 basic_string_char_tidy(this, FALSE
, 0);
741 MSVCP_basic_string_char_assignn(this, count
, ch
);
745 /* ??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@IDABV?$allocator@D@1@@Z */
746 /* ??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAA@_KDAEBV?$allocator@D@1@@Z */
747 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_ctor_ch_alloc
, 16)
748 basic_string_char
* __thiscall
MSVCP_basic_string_char_ctor_ch_alloc(basic_string_char
*this,
749 MSVCP_size_t count
, char ch
, const void *alloc
)
751 return MSVCP_basic_string_char_ctor_ch(this, count
, ch
);
754 /* ??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@PBD0@Z */
755 /* ??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAA@PEBD0@Z */
756 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_ctor_ptr_ptr
, 12)
757 basic_string_char
* __thiscall
MSVCP_basic_string_char_ctor_ptr_ptr(basic_string_char
*this,
758 const char *first
, const char *last
)
760 return MSVCP_basic_string_char_ctor_cstr_len(this, first
, last
-first
);
763 /* ??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@V?$_String_const_iterator@DU?$char_traits@D@std@@V?$allocator@D@2@@1@0@Z */
764 /* ??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAA@V?$_String_const_iterator@DU?$char_traits@D@std@@V?$allocator@D@2@@1@0@Z */
765 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_ctor_iter
, 20)
766 basic_string_char
* __thiscall
MSVCP_basic_string_char_ctor_iter(basic_string_char
*this,
767 String_iterator_char beg
, String_iterator_char end
)
769 return MSVCP_basic_string_char_ctor_cstr_len(this, beg
.pos
, end
.pos
-beg
.pos
);
772 /* ??1?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@XZ */
773 /* ??1?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAA@XZ */
774 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_dtor
, 4)
775 void __thiscall
MSVCP_basic_string_char_dtor(basic_string_char
*this)
778 basic_string_char_tidy(this, TRUE
, 0);
781 /* ?size@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEIXZ */
782 /* ?size@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA_KXZ */
783 /* ?length@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEIXZ */
784 /* ?length@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA_KXZ */
785 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_length
, 4)
786 MSVCP_size_t __thiscall
MSVCP_basic_string_char_length(const basic_string_char
*this)
792 /* ?max_size@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEIXZ */
793 /* ?max_size@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA_KXZ */
794 DEFINE_THISCALL_WRAPPER(basic_string_char_max_size
, 4)
795 MSVCP_size_t __thiscall
basic_string_char_max_size(const basic_string_char
*this)
798 return MSVCP_allocator_char_max_size(this->allocator
)-1;
801 /* ?empty@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBE_NXZ */
802 /* ?empty@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA_NXZ */
803 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_empty
, 4)
804 MSVCP_bool __thiscall
MSVCP_basic_string_char_empty(basic_string_char
*this)
807 return this->size
== 0;
810 /* ?swap@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEXAAV12@@Z */
811 /* ?swap@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAXAEAV12@@Z */
812 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_swap
, 8)
813 void __thiscall
MSVCP_basic_string_char_swap(basic_string_char
*this, basic_string_char
*str
)
816 char tmp
[sizeof(this->data
)];
817 const MSVCP_size_t size
= this->size
;
818 const MSVCP_size_t res
= this->res
;
820 memcpy(tmp
, this->data
.buf
, sizeof(this->data
));
821 memcpy(this->data
.buf
, str
->data
.buf
, sizeof(this->data
));
822 memcpy(str
->data
.buf
, tmp
, sizeof(this->data
));
824 this->size
= str
->size
;
825 this->res
= str
->res
;
832 /* ?substr@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBE?AV12@II@Z */
833 /* ?substr@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA?AV12@_K0@Z */
834 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_substr
, 16)
835 basic_string_char
* __thiscall
MSVCP_basic_string_char_substr(basic_string_char
*this,
836 basic_string_char
*ret
, MSVCP_size_t off
, MSVCP_size_t len
)
838 TRACE("%p %lu %lu\n", this, off
, len
);
840 MSVCP_basic_string_char_ctor_substr(ret
, this, off
, len
);
844 /* ?append@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@ABV12@II@Z */
845 /* ?append@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAAEAV12@AEBV12@_K1@Z */
846 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_append_substr
, 16)
847 basic_string_char
* __thiscall
MSVCP_basic_string_char_append_substr(basic_string_char
*this,
848 const basic_string_char
*append
, MSVCP_size_t offset
, MSVCP_size_t count
)
850 TRACE("%p %p %lu %lu\n", this, append
, offset
, count
);
852 if(append
->size
< offset
)
853 MSVCP__String_base_Xran();
855 if(count
> append
->size
-offset
)
856 count
= append
->size
-offset
;
858 if(MSVCP_basic_string_char_npos
-this->size
<=count
|| this->size
+count
<this->size
)
859 MSVCP__String_base_Xlen();
861 if(basic_string_char_grow(this, this->size
+count
, FALSE
)) {
862 MSVCP_char_traits_char__Copy_s(basic_string_char_ptr(this)+this->size
,
863 this->res
-this->size
, basic_string_char_const_ptr(append
)+offset
, count
);
864 basic_string_char_eos(this, this->size
+count
);
870 /* ?append@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@ABV12@@Z */
871 /* ?append@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAAEAV12@AEBV12@@Z */
872 /* ??Y?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV01@ABV01@@Z */
873 /* ??Y?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAAEAV01@AEBV01@@Z */
874 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_append
, 8)
875 basic_string_char
* __thiscall
MSVCP_basic_string_char_append(
876 basic_string_char
*this, const basic_string_char
*append
)
878 return MSVCP_basic_string_char_append_substr(this, append
,
879 0, MSVCP_basic_string_char_npos
);
882 /* ?append@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@PBDI@Z */
883 /* ?append@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAAEAV12@PEBD_K@Z */
884 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_append_cstr_len
, 12)
885 basic_string_char
* __thiscall
MSVCP_basic_string_char_append_cstr_len(
886 basic_string_char
*this, const char *append
, MSVCP_size_t count
)
888 TRACE("%p %s %lu\n", this, debugstr_a(append
), count
);
890 if(basic_string_char_inside(this, append
))
891 return MSVCP_basic_string_char_append_substr(this, this,
892 append
-basic_string_char_ptr(this), count
);
894 if(MSVCP_basic_string_char_npos
-this->size
<=count
|| this->size
+count
<this->size
)
895 MSVCP__String_base_Xlen();
897 if(basic_string_char_grow(this, this->size
+count
, FALSE
)) {
898 MSVCP_char_traits_char__Copy_s(basic_string_char_ptr(this)+this->size
,
899 this->res
-this->size
, append
, count
);
900 basic_string_char_eos(this, this->size
+count
);
906 /* ?append@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@PBD@Z */
907 /* ?append@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAAEAV12@PEBD@Z */
908 /* ??Y?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV01@PBD@Z */
909 /* ??Y?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAAEAV01@PEBD@Z */
910 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_append_cstr
, 8)
911 basic_string_char
* __thiscall
MSVCP_basic_string_char_append_cstr(
912 basic_string_char
*this, const char *append
)
914 return MSVCP_basic_string_char_append_cstr_len(this, append
,
915 MSVCP_char_traits_char_length(append
));
918 /* ?append@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@PBD0@Z */
919 /* ?append@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAAEAV12@PEBD0@Z */
920 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_append_beg_end
, 12)
921 basic_string_char
* __thiscall
MSVCP_basic_string_char_append_beg_end(
922 basic_string_char
*this, const char *beg
, const char *end
)
924 return MSVCP_basic_string_char_append_cstr_len(this, beg
, end
-beg
);
927 /* ?append@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@V?$_String_const_iterator@DU?$char_traits@D@std@@V?$allocator@D@2@@2@0@Z */
928 /* ?append@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAAEAV12@V?$_String_const_iterator@DU?$char_traits@D@std@@V?$allocator@D@2@@2@0@Z */
929 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_append_iter
, 20)
930 basic_string_char
* __thiscall
MSVCP_basic_string_char_append_iter(
931 basic_string_char
*this, String_iterator_char beg
, String_iterator_char end
)
933 return MSVCP_basic_string_char_append_cstr_len(this, beg
.pos
, end
.pos
-beg
.pos
);
936 /* ?append@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@ID@Z */
937 /* ?append@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAAEAV12@_KD@Z */
938 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_append_len_ch
, 12)
939 basic_string_char
* __thiscall
MSVCP_basic_string_char_append_len_ch(
940 basic_string_char
*this, MSVCP_size_t count
, char ch
)
942 TRACE("%p %lu %c\n", this, count
, ch
);
944 if(MSVCP_basic_string_char_npos
-this->size
<= count
)
945 MSVCP__String_base_Xlen();
947 if(basic_string_char_grow(this, this->size
+count
, FALSE
)) {
948 MSVCP_char_traits_char_assignn(basic_string_char_ptr(this)+this->size
, count
, ch
);
949 basic_string_char_eos(this, this->size
+count
);
955 /* ??Y?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV01@D@Z */
956 /* ??Y?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAAEAV01@D@Z */
957 /* ?push_back@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEXD@Z */
958 /* ?push_back@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAXD@Z */
959 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_append_ch
, 8)
960 basic_string_char
* __thiscall
MSVCP_basic_string_char_append_ch(
961 basic_string_char
*this, char ch
)
963 return MSVCP_basic_string_char_append_len_ch(this, 1, ch
);
966 /* ?compare@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEHIIPBDI@Z */
967 /* ?compare@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBAH_K0PEBD0@Z */
968 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_compare_substr_cstr_len
, 20)
969 int __thiscall
MSVCP_basic_string_char_compare_substr_cstr_len(
970 const basic_string_char
*this, MSVCP_size_t pos
, MSVCP_size_t num
,
971 const char *str
, MSVCP_size_t count
)
975 TRACE("%p %lu %lu %s %lu\n", this, pos
, num
, debugstr_a(str
), count
);
978 MSVCP__String_base_Xran();
980 if(pos
+num
> this->size
)
981 num
= this->size
-pos
;
983 ans
= MSVCP_char_traits_char_compare(basic_string_char_const_ptr(this)+pos
,
984 str
, num
>count
? count
: num
);
995 /* ?compare@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEHIIPBD@Z */
996 /* ?compare@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBAH_K0PEBD@Z */
997 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_compare_substr_cstr
, 16)
998 int __thiscall
MSVCP_basic_string_char_compare_substr_cstr(const basic_string_char
*this,
999 MSVCP_size_t pos
, MSVCP_size_t num
, const char *str
)
1001 return MSVCP_basic_string_char_compare_substr_cstr_len(this, pos
, num
,
1002 str
, MSVCP_char_traits_char_length(str
));
1005 /* ?compare@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEHPBD@Z */
1006 /* ?compare@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBAHPEBD@Z */
1007 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_compare_cstr
, 8)
1008 int __thiscall
MSVCP_basic_string_char_compare_cstr(
1009 const basic_string_char
*this, const char *str
)
1011 return MSVCP_basic_string_char_compare_substr_cstr_len(this, 0, this->size
,
1012 str
, MSVCP_char_traits_char_length(str
));
1015 /* ?compare@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEHIIABV12@II@Z */
1016 /* ?compare@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBAH_K0AEBV12@00@Z */
1017 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_compare_substr_substr
, 24)
1018 int __thiscall
MSVCP_basic_string_char_compare_substr_substr(
1019 const basic_string_char
*this, MSVCP_size_t pos
, MSVCP_size_t num
,
1020 const basic_string_char
*compare
, MSVCP_size_t off
, MSVCP_size_t count
)
1022 TRACE("%p %lu %lu %p %lu %lu\n", this, pos
, num
, compare
, off
, count
);
1024 if(compare
->size
< off
)
1025 MSVCP__String_base_Xran();
1027 if(off
+count
> compare
->size
)
1028 count
= compare
->size
-off
;
1030 return MSVCP_basic_string_char_compare_substr_cstr_len(this, pos
, num
,
1031 basic_string_char_const_ptr(compare
)+off
, count
);
1034 /* ?compare@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEHIIABV12@@Z */
1035 /* ?compare@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBAH_K0AEBV12@@Z */
1036 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_compare_substr
, 16)
1037 int __thiscall
MSVCP_basic_string_char_compare_substr(
1038 const basic_string_char
*this, MSVCP_size_t pos
, MSVCP_size_t num
,
1039 const basic_string_char
*compare
)
1041 return MSVCP_basic_string_char_compare_substr_cstr_len(this, pos
, num
,
1042 basic_string_char_const_ptr(compare
), compare
->size
);
1045 /* ?compare@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEHABV12@@Z */
1046 /* ?compare@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBAHAEBV12@@Z */
1047 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_compare
, 8)
1048 int __thiscall
MSVCP_basic_string_char_compare(
1049 const basic_string_char
*this, const basic_string_char
*compare
)
1051 return MSVCP_basic_string_char_compare_substr_cstr_len(this, 0, this->size
,
1052 basic_string_char_const_ptr(compare
), compare
->size
);
1055 /* ?find@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEIPBDII@Z */
1056 /* ?find@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA_KPEBD_K1@Z */
1057 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_find_cstr_substr
, 16)
1058 MSVCP_size_t __thiscall
MSVCP_basic_string_char_find_cstr_substr(
1059 const basic_string_char
*this, const char *find
, MSVCP_size_t pos
, MSVCP_size_t len
)
1061 const char *p
, *end
;
1063 TRACE("%p %s %lu %lu\n", this, debugstr_a(find
), pos
, len
);
1065 if(len
==0 && pos
<=this->size
)
1068 end
= basic_string_char_const_ptr(this)+this->size
-len
+1;
1069 for(p
=basic_string_char_const_ptr(this)+pos
; p
<end
; p
++) {
1070 p
= MSVCP_char_traits_char_find(p
, end
-p
, find
);
1074 if(!MSVCP_char_traits_char_compare(p
, find
, len
))
1075 return p
-basic_string_char_const_ptr(this);
1078 return MSVCP_basic_string_char_npos
;
1081 /* ?find@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEIPBDI@Z */
1082 /* ?find@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA_KPEBD_K@Z */
1083 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_find_cstr_off
, 12)
1084 MSVCP_size_t __thiscall
MSVCP_basic_string_char_find_cstr_off(
1085 const basic_string_char
*this, const char *find
, MSVCP_size_t pos
)
1087 return MSVCP_basic_string_char_find_cstr_substr(this, find
, pos
,
1088 MSVCP_char_traits_char_length(find
));
1091 /* ?find@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEIABV12@I@Z */
1092 /* ?find@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA_KAEBV12@_K@Z */
1093 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_find_off
, 12)
1094 MSVCP_size_t __thiscall
MSVCP_basic_string_char_find_off(
1095 const basic_string_char
*this, const basic_string_char
*find
, MSVCP_size_t off
)
1097 return MSVCP_basic_string_char_find_cstr_substr(this,
1098 basic_string_char_const_ptr(find
), off
, find
->size
);
1101 /* ?find@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEIDI@Z */
1102 /* ?find@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA_KD_K@Z */
1103 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_find_ch
, 12)
1104 MSVCP_size_t __thiscall
MSVCP_basic_string_char_find_ch(
1105 const basic_string_char
*this, char ch
, MSVCP_size_t pos
)
1107 return MSVCP_basic_string_char_find_cstr_substr(this, &ch
, pos
, 1);
1110 /* ?rfind@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEIPBDII@Z */
1111 /* ?rfind@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA_KPEBD_K1@Z */
1112 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_rfind_cstr_substr
, 16)
1113 MSVCP_size_t __thiscall
MSVCP_basic_string_char_rfind_cstr_substr(
1114 const basic_string_char
*this, const char *find
, MSVCP_size_t pos
, MSVCP_size_t len
)
1116 const char *p
, *end
;
1118 TRACE("%p %s %lu %lu\n", this, debugstr_a(find
), pos
, len
);
1121 return pos
<this->size
? pos
: this->size
;
1123 if(len
> this->size
)
1124 return MSVCP_basic_string_char_npos
;
1126 if(pos
> this->size
-len
+1)
1127 pos
= this->size
-len
+1;
1128 end
= basic_string_char_const_ptr(this);
1129 for(p
=end
+pos
; p
>=end
; p
--) {
1130 if(*p
==*find
&& !MSVCP_char_traits_char_compare(p
, find
, len
))
1131 return p
-basic_string_char_const_ptr(this);
1134 return MSVCP_basic_string_char_npos
;
1137 /* ?rfind@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEIPBDI@Z */
1138 /* ?rfind@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA_KPEBD_K@Z */
1139 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_rfind_cstr_off
, 12)
1140 MSVCP_size_t __thiscall
MSVCP_basic_string_char_rfind_cstr_off(
1141 const basic_string_char
*this, const char *find
, MSVCP_size_t pos
)
1143 return MSVCP_basic_string_char_rfind_cstr_substr(this, find
, pos
,
1144 MSVCP_char_traits_char_length(find
));
1147 /* ?rfind@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEIABV12@I@Z */
1148 /* ?rfind@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA_KAEBV12@_K@Z */
1149 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_rfind_off
, 12)
1150 MSVCP_size_t __thiscall
MSVCP_basic_string_char_rfind_off(
1151 const basic_string_char
*this, const basic_string_char
*find
, MSVCP_size_t off
)
1153 return MSVCP_basic_string_char_rfind_cstr_substr(this,
1154 basic_string_char_const_ptr(find
), off
, find
->size
);
1157 /* ?rfind@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEIDI@Z */
1158 /* ?rfind@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA_KD_K@Z */
1159 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_rfind_ch
, 12)
1160 MSVCP_size_t __thiscall
MSVCP_basic_string_char_rfind_ch(
1161 const basic_string_char
*this, char ch
, MSVCP_size_t pos
)
1163 return MSVCP_basic_string_char_rfind_cstr_substr(this, &ch
, pos
, 1);
1166 /* ?find_first_of@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEIPBDII@Z */
1167 /* ?find_first_of@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA_KPEBD_K1@Z */
1168 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_find_first_of_cstr_substr
, 16)
1169 MSVCP_size_t __thiscall
MSVCP_basic_string_char_find_first_of_cstr_substr(
1170 const basic_string_char
*this, const char *find
, MSVCP_size_t off
, MSVCP_size_t len
)
1172 const char *p
, *end
;
1174 TRACE("%p %p %lu %lu\n", this, find
, off
, len
);
1176 if(len
>0 && off
<this->size
) {
1177 end
= basic_string_char_const_ptr(this)+this->size
;
1178 for(p
=basic_string_char_const_ptr(this)+off
; p
<end
; p
++)
1179 if(MSVCP_char_traits_char_find(find
, len
, p
))
1180 return p
-basic_string_char_const_ptr(this);
1183 return MSVCP_basic_string_char_npos
;
1186 /* ?find_first_of@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEIABV12@I@Z */
1187 /* ?find_first_of@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA_KAEBV12@_K@Z */
1188 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_find_first_of
, 12)
1189 MSVCP_size_t __thiscall
MSVCP_basic_string_char_find_first_of(
1190 const basic_string_char
*this, const basic_string_char
*find
, MSVCP_size_t off
)
1192 return MSVCP_basic_string_char_find_first_of_cstr_substr(this,
1193 basic_string_char_const_ptr(find
), off
, find
->size
);
1196 /* ?find_first_of@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEIPBDI@Z */
1197 /* ?find_first_of@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA_KPEBD_K@Z */
1198 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_find_first_of_cstr
, 12)
1199 MSVCP_size_t __thiscall
MSVCP_basic_string_char_find_first_of_cstr(
1200 const basic_string_char
*this, const char *find
, MSVCP_size_t off
)
1202 return MSVCP_basic_string_char_find_first_of_cstr_substr(
1203 this, find
, off
, MSVCP_char_traits_char_length(find
));
1206 /* ?find_first_of@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEIDI@Z */
1207 /* ?find_first_of@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA_KD_K@Z */
1208 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_find_first_of_ch
, 12)
1209 MSVCP_size_t __thiscall
MSVCP_basic_string_char_find_first_of_ch(
1210 const basic_string_char
*this, char ch
, MSVCP_size_t off
)
1212 return MSVCP_basic_string_char_find_first_of_cstr_substr(this, &ch
, off
, 1);
1215 /* ?find_first_not_of@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEIPBDII@Z */
1216 /* ?find_first_not_of@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA_KPEBD_K1@Z */
1217 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_find_first_not_of_cstr_substr
, 16)
1218 MSVCP_size_t __thiscall
MSVCP_basic_string_char_find_first_not_of_cstr_substr(
1219 const basic_string_char
*this, const char *find
, MSVCP_size_t off
, MSVCP_size_t len
)
1221 const char *p
, *end
;
1223 TRACE("%p %p %lu %lu\n", this, find
, off
, len
);
1225 if(off
<this->size
) {
1226 end
= basic_string_char_const_ptr(this)+this->size
;
1227 for(p
=basic_string_char_const_ptr(this)+off
; p
<end
; p
++)
1228 if(!MSVCP_char_traits_char_find(find
, len
, p
))
1229 return p
-basic_string_char_const_ptr(this);
1232 return MSVCP_basic_string_char_npos
;
1235 /* ?find_first_not_of@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEIABV12@I@Z */
1236 /* ?find_first_not_of@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA_KAEBV12@_K@Z */
1237 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_find_first_not_of
, 12)
1238 MSVCP_size_t __thiscall
MSVCP_basic_string_char_find_first_not_of(
1239 const basic_string_char
*this, const basic_string_char
*find
, MSVCP_size_t off
)
1241 return MSVCP_basic_string_char_find_first_not_of_cstr_substr(this,
1242 basic_string_char_const_ptr(find
), off
, find
->size
);
1245 /* ?find_first_not_of@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEIPBDI@Z */
1246 /* ?find_first_not_of@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA_KPEBD_K@Z */
1247 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_find_first_not_of_cstr
, 12)
1248 MSVCP_size_t __thiscall
MSVCP_basic_string_char_find_first_not_of_cstr(
1249 const basic_string_char
*this, const char *find
, MSVCP_size_t off
)
1251 return MSVCP_basic_string_char_find_first_not_of_cstr_substr(
1252 this, find
, off
, MSVCP_char_traits_char_length(find
));
1255 /* ?find_first_not_of@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEIDI@Z */
1256 /* ?find_first_not_of@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA_KD_K@Z */
1257 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_find_first_not_of_ch
, 12)
1258 MSVCP_size_t __thiscall
MSVCP_basic_string_char_find_first_not_of_ch(
1259 const basic_string_char
*this, char ch
, MSVCP_size_t off
)
1261 return MSVCP_basic_string_char_find_first_not_of_cstr_substr(this, &ch
, off
, 1);
1264 /* ?find_last_of@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEIPBDII@Z */
1265 /* ?find_last_of@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA_KPEBD_K1@Z */
1266 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_find_last_of_cstr_substr
, 16)
1267 MSVCP_size_t __thiscall
MSVCP_basic_string_char_find_last_of_cstr_substr(
1268 const basic_string_char
*this, const char *find
, MSVCP_size_t off
, MSVCP_size_t len
)
1270 const char *p
, *beg
;
1272 TRACE("%p %p %lu %lu\n", this, find
, off
, len
);
1274 if(len
>0 && this->size
>0) {
1275 if(off
>= this->size
)
1278 beg
= basic_string_char_const_ptr(this);
1279 for(p
=beg
+off
; p
>=beg
; p
--)
1280 if(MSVCP_char_traits_char_find(find
, len
, p
))
1284 return MSVCP_basic_string_char_npos
;
1287 /* ?find_last_of@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEIABV12@I@Z */
1288 /* ?find_last_of@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA_KAEBV12@_K@Z */
1289 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_find_last_of
, 12)
1290 MSVCP_size_t __thiscall
MSVCP_basic_string_char_find_last_of(
1291 const basic_string_char
*this, const basic_string_char
*find
, MSVCP_size_t off
)
1293 return MSVCP_basic_string_char_find_last_of_cstr_substr(this,
1294 basic_string_char_const_ptr(find
), off
, find
->size
);
1297 /* ?find_last_of@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEIPBDI@Z */
1298 /* ?find_last_of@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA_KPEBD_K@Z */
1299 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_find_last_of_cstr
, 12)
1300 MSVCP_size_t __thiscall
MSVCP_basic_string_char_find_last_of_cstr(
1301 const basic_string_char
*this, const char *find
, MSVCP_size_t off
)
1303 return MSVCP_basic_string_char_find_last_of_cstr_substr(
1304 this, find
, off
, MSVCP_char_traits_char_length(find
));
1307 /* ?find_last_of@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEIDI@Z */
1308 /* ?find_last_of@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA_KD_K@Z */
1309 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_find_last_of_ch
, 12)
1310 MSVCP_size_t __thiscall
MSVCP_basic_string_char_find_last_of_ch(
1311 const basic_string_char
*this, char ch
, MSVCP_size_t off
)
1313 return MSVCP_basic_string_char_find_last_of_cstr_substr(this, &ch
, off
, 1);
1316 /* ?find_last_not_of@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEIPBDII@Z */
1317 /* ?find_last_not_of@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA_KPEBD_K1@Z */
1318 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_find_last_not_of_cstr_substr
, 16)
1319 MSVCP_size_t __thiscall
MSVCP_basic_string_char_find_last_not_of_cstr_substr(
1320 const basic_string_char
*this, const char *find
, MSVCP_size_t off
, MSVCP_size_t len
)
1322 const char *p
, *beg
;
1324 TRACE("%p %p %lu %lu\n", this, find
, off
, len
);
1326 if(len
>0 && this->size
>0) {
1327 if(off
>= this->size
)
1330 beg
= basic_string_char_const_ptr(this);
1331 for(p
=beg
+off
; p
>=beg
; p
--)
1332 if(!MSVCP_char_traits_char_find(find
, len
, p
))
1336 return MSVCP_basic_string_char_npos
;
1339 /* ?find_last_not_of@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEIABV12@I@Z */
1340 /* ?find_last_not_of@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA_KAEBV12@_K@Z */
1341 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_find_last_not_of
, 12)
1342 MSVCP_size_t __thiscall
MSVCP_basic_string_char_find_last_not_of(
1343 const basic_string_char
*this, const basic_string_char
*find
, MSVCP_size_t off
)
1345 return MSVCP_basic_string_char_find_last_not_of_cstr_substr(this,
1346 basic_string_char_const_ptr(find
), off
, find
->size
);
1349 /* ?find_last_not_of@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEIPBDI@Z */
1350 /* ?find_last_not_of@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA_KPEBD_K@Z */
1351 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_find_last_not_of_cstr
, 12)
1352 MSVCP_size_t __thiscall
MSVCP_basic_string_char_find_last_not_of_cstr(
1353 const basic_string_char
*this, const char *find
, MSVCP_size_t off
)
1355 return MSVCP_basic_string_char_find_last_not_of_cstr_substr(
1356 this, find
, off
, MSVCP_char_traits_char_length(find
));
1359 /* ?find_last_not_of@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEIDI@Z */
1360 /* ?find_last_not_of@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA_KD_K@Z */
1361 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_find_last_not_of_ch
, 12)
1362 MSVCP_size_t __thiscall
MSVCP_basic_string_char_find_last_not_of_ch(
1363 const basic_string_char
*this, char ch
, MSVCP_size_t off
)
1365 return MSVCP_basic_string_char_find_last_not_of_cstr_substr(this, &ch
, off
, 1);
1368 /* ??A?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAADI@Z */
1369 /* ??A?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAAEAD_K@Z */
1370 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_operator_at
, 8)
1371 char* __thiscall
MSVCP_basic_string_char_operator_at(
1372 basic_string_char
*this, MSVCP_size_t pos
)
1374 TRACE("%p %lu\n", this, pos
);
1376 assert(this->size
>= pos
);
1377 return basic_string_char_ptr(this)+pos
;
1380 /* ??A?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEABDI@Z */
1381 /* ??A?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBAAEBD_K@Z */
1382 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_const_operator_at
, 8)
1383 const char* __thiscall
MSVCP_basic_string_char_const_operator_at(
1384 const basic_string_char
*this, MSVCP_size_t pos
)
1386 TRACE("%p %lu\n", this, pos
);
1388 assert(this->size
>= pos
);
1389 return basic_string_char_const_ptr(this)+pos
;
1392 /* ??A?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAADU_Size_type_nosscl@01@@Z */
1393 /* ??A?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAAEADU_Size_type_nosscl@01@@Z */
1394 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_operator_at_noverify
, 8)
1395 char* __thiscall
MSVCP_basic_string_char_operator_at_noverify(
1396 basic_string_char
*this, size_t_noverify pos
)
1398 TRACE("%p %lu\n", this, pos
.val
);
1399 return basic_string_char_ptr(this)+pos
.val
;
1402 /* ??A?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEABDU_Size_type_nosscl@01@@Z */
1403 /* ??A?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBAAEBDU_Size_type_nosscl@01@@Z */
1404 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_operator_const_at_noverify
, 8)
1405 const char* __thiscall
MSVCP_basic_string_char_operator_const_at_noverify(
1406 const basic_string_char
*this, size_t_noverify pos
)
1408 TRACE("%p %lu\n", this, pos
.val
);
1409 return basic_string_char_const_ptr(this)+pos
.val
;
1412 /* ?at@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAADI@Z */
1413 /* ?at@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAAEAD_K@Z */
1414 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_at
, 8)
1415 char* __thiscall
MSVCP_basic_string_char_at(
1416 basic_string_char
*this, MSVCP_size_t pos
)
1418 TRACE("%p %lu\n", this, pos
);
1420 if(this->size
<= pos
)
1421 MSVCP__String_base_Xran();
1423 return basic_string_char_ptr(this)+pos
;
1426 /* ?at@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEABDI@Z */
1427 /* ?at@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBAAEBD_K@Z */
1428 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_const_at
, 8)
1429 const char* __thiscall
MSVCP_basic_string_char_const_at(
1430 const basic_string_char
*this, MSVCP_size_t pos
)
1432 TRACE("%p %lu\n", this, pos
);
1434 if(this->size
<= pos
)
1435 MSVCP__String_base_Xran();
1437 return basic_string_char_const_ptr(this)+pos
;
1440 /* ?replace@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@IIPBDI@Z */
1441 /* ?replace@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAAEAV12@_K0PEBD0@Z */
1442 DEFINE_THISCALL_WRAPPER(basic_string_char_replace_cstr_len
, 20)
1443 basic_string_char
* __thiscall
basic_string_char_replace_cstr_len(basic_string_char
*this,
1444 MSVCP_size_t off
, MSVCP_size_t len
, const char *str
, MSVCP_size_t str_len
)
1446 MSVCP_size_t inside_pos
= -1;
1447 char *ptr
= basic_string_char_ptr(this);
1449 TRACE("%p %ld %ld %p %ld\n", this, off
, len
, str
, str_len
);
1451 if(this->size
< off
)
1452 MSVCP__String_base_Xran();
1454 if(len
> this->size
-off
)
1455 len
= this->size
-off
;
1457 if(MSVCP_basic_string_char_npos
-str_len
<= this->size
-len
)
1458 MSVCP__String_base_Xlen();
1460 if(basic_string_char_inside(this, str
))
1461 inside_pos
= str
-ptr
;
1464 basic_string_char_grow(this, this->size
-len
+str_len
, FALSE
);
1465 ptr
= basic_string_char_ptr(this);
1468 if(inside_pos
== -1) {
1469 memmove(ptr
+off
+str_len
, ptr
+off
+len
, (this->size
-off
-len
)*sizeof(char));
1470 memcpy(ptr
+off
, str
, str_len
*sizeof(char));
1471 } else if(len
>= str_len
) {
1472 memmove(ptr
+off
, ptr
+inside_pos
, str_len
*sizeof(char));
1473 memmove(ptr
+off
+str_len
, ptr
+off
+len
, (this->size
-off
-len
)*sizeof(char));
1477 memmove(ptr
+off
+str_len
, ptr
+off
+len
, (this->size
-off
-len
)*sizeof(char));
1479 if(inside_pos
< off
+len
) {
1480 size
= off
+len
-inside_pos
;
1483 memmove(ptr
+off
, ptr
+inside_pos
, size
*sizeof(char));
1489 memmove(ptr
+off
+size
, ptr
+off
+str_len
, (str_len
-size
)*sizeof(char));
1492 basic_string_char_eos(this, this->size
-len
+str_len
);
1496 /* ?replace@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@IIPBD@Z */
1497 /* ?replace@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAAEAV12@_K0PEBD@Z */
1498 DEFINE_THISCALL_WRAPPER(basic_string_char_replace_cstr
, 16)
1499 basic_string_char
* __thiscall
basic_string_char_replace_cstr(basic_string_char
*this,
1500 MSVCP_size_t off
, MSVCP_size_t len
, const char *str
)
1502 return basic_string_char_replace_cstr_len(this, off
, len
, str
,
1503 MSVCP_char_traits_char_length(str
));
1506 /* ?replace@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@IIABV12@II@Z */
1507 /* ?replace@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAAEAV12@_K0AEBV12@00@Z */
1508 DEFINE_THISCALL_WRAPPER(basic_string_char_replace_substr
, 24)
1509 basic_string_char
* __thiscall
basic_string_char_replace_substr(basic_string_char
*this, MSVCP_size_t off
,
1510 MSVCP_size_t len
, const basic_string_char
*str
, MSVCP_size_t str_off
, MSVCP_size_t str_len
)
1512 if(str
->size
< str_off
)
1513 MSVCP__String_base_Xran();
1515 if(str_off
+str_len
> str
->size
)
1516 str_len
= str
->size
-str_off
;
1518 return basic_string_char_replace_cstr_len(this, off
, len
,
1519 basic_string_char_const_ptr(str
)+str_off
, str_len
);
1522 /* ?replace@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@IIABV12@@Z */
1523 /* ?replace@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAAEAV12@_K0AEBV12@@Z */
1524 DEFINE_THISCALL_WRAPPER(basic_string_char_replace
, 16)
1525 basic_string_char
* __thiscall
basic_string_char_replace(basic_string_char
*this,
1526 MSVCP_size_t off
, MSVCP_size_t len
, const basic_string_char
*str
)
1528 return basic_string_char_replace_cstr_len(this, off
, len
,
1529 basic_string_char_const_ptr(str
), str
->size
);
1532 /* ?replace@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@IIID@Z */
1533 /* ?replace@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAAEAV12@_K00D@Z */
1534 DEFINE_THISCALL_WRAPPER(basic_string_char_replace_ch
, 20)
1535 basic_string_char
* __thiscall
basic_string_char_replace_ch(basic_string_char
*this,
1536 MSVCP_size_t off
, MSVCP_size_t len
, MSVCP_size_t count
, char ch
)
1538 char *ptr
= basic_string_char_ptr(this);
1540 TRACE("%p %ld %ld %ld %c\n", this, off
, len
, count
, ch
);
1542 if(this->size
< off
)
1543 MSVCP__String_base_Xran();
1545 if(len
> this->size
-off
)
1546 len
= this->size
-off
;
1548 if(MSVCP_basic_string_char_npos
-count
<= this->size
-len
)
1549 MSVCP__String_base_Xlen();
1552 basic_string_char_grow(this, this->size
-len
+count
, FALSE
);
1553 ptr
= basic_string_char_ptr(this);
1556 memmove(ptr
+off
+count
, ptr
+off
+len
, (this->size
-off
-len
)*sizeof(char));
1557 MSVCP_char_traits_char_assignn(ptr
+off
, count
, ch
);
1558 basic_string_char_eos(this, this->size
-len
+count
);
1563 /* ?replace@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@V?$_String_const_iterator@DU?$char_traits@D@std@@V?$allocator@D@2@@2@000@Z */
1564 /* ?replace@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAAEAV12@V?$_String_const_iterator@DU?$char_traits@D@std@@V?$allocator@D@2@@2@000@Z */
1565 DEFINE_THISCALL_WRAPPER(basic_string_char_replace_iter_iter
, 36)
1566 basic_string_char
* __thiscall
basic_string_char_replace_iter_iter(basic_string_char
*this,
1567 String_iterator_char beg
, String_iterator_char end
,
1568 String_iterator_char res_beg
, String_iterator_char res_end
)
1570 String_iterator_char begin
= { this, basic_string_char_ptr(this) };
1571 return basic_string_char_replace_cstr_len(this,
1572 MSVCP_basic_string_char_Pdif(beg
, begin
), MSVCP_basic_string_char_Pdif(end
, beg
),
1573 res_beg
.pos
, MSVCP_basic_string_char_Pdif(res_end
, res_beg
));
1576 /* ?replace@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@V?$_String_const_iterator@DU?$char_traits@D@std@@V?$allocator@D@2@@2@0ABV12@@Z */
1577 /* ?replace@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAAEAV12@V?$_String_const_iterator@DU?$char_traits@D@std@@V?$allocator@D@2@@2@0AEBV12@@Z */
1578 DEFINE_THISCALL_WRAPPER(basic_string_char_replace_iter_bstr
, 24)
1579 basic_string_char
* __thiscall
basic_string_char_replace_iter_bstr(basic_string_char
*this,
1580 String_iterator_char beg
, String_iterator_char end
, const basic_string_char
*str
)
1582 String_iterator_char begin
= { this, basic_string_char_ptr(this) };
1583 return basic_string_char_replace(this, MSVCP_basic_string_char_Pdif(beg
, begin
),
1584 MSVCP_basic_string_char_Pdif(end
, beg
), str
);
1587 /* ?replace@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@V?$_String_const_iterator@DU?$char_traits@D@std@@V?$allocator@D@2@@2@0ID@Z */
1588 /* ?replace@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAAEAV12@V?$_String_const_iterator@DU?$char_traits@D@std@@V?$allocator@D@2@@2@0_KD@Z */
1589 DEFINE_THISCALL_WRAPPER(basic_string_char_replace_iter_ch
, 28)
1590 basic_string_char
* __thiscall
basic_string_char_replace_iter_ch(basic_string_char
*this,
1591 String_iterator_char beg
, String_iterator_char end
, MSVCP_size_t count
, char ch
)
1593 String_iterator_char begin
= { this, basic_string_char_ptr(this) };
1594 return basic_string_char_replace_ch(this, MSVCP_basic_string_char_Pdif(beg
, begin
),
1595 MSVCP_basic_string_char_Pdif(end
, beg
), count
, ch
);
1598 /* ?replace@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@V?$_String_const_iterator@DU?$char_traits@D@std@@V?$allocator@D@2@@2@0PBD1@Z */
1599 /* ?replace@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAAEAV12@V?$_String_const_iterator@DU?$char_traits@D@std@@V?$allocator@D@2@@2@0PEBD1@Z */
1600 DEFINE_THISCALL_WRAPPER(basic_string_char_replace_iter_ptr_ptr
, 28)
1601 basic_string_char
* __thiscall
basic_string_char_replace_iter_ptr_ptr(basic_string_char
*this,
1602 String_iterator_char beg
, String_iterator_char end
,
1603 const char *res_beg
, const char *res_end
)
1605 String_iterator_char begin
= { this, basic_string_char_ptr(this) };
1606 return basic_string_char_replace_cstr_len(this, MSVCP_basic_string_char_Pdif(beg
, begin
),
1607 MSVCP_basic_string_char_Pdif(end
, beg
), res_beg
, res_end
-res_beg
);
1610 /* ?replace@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@V?$_String_const_iterator@DU?$char_traits@D@std@@V?$allocator@D@2@@2@0PBD@Z */
1611 /* ?replace@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAAEAV12@V?$_String_const_iterator@DU?$char_traits@D@std@@V?$allocator@D@2@@2@0PEBD@Z */
1612 DEFINE_THISCALL_WRAPPER(basic_string_char_replace_iter_cstr
, 24)
1613 basic_string_char
* __thiscall
basic_string_char_replace_iter_cstr(basic_string_char
*this,
1614 String_iterator_char beg
, String_iterator_char end
, const char *str
)
1616 String_iterator_char begin
= { this, basic_string_char_ptr(this) };
1617 return basic_string_char_replace_cstr(this, MSVCP_basic_string_char_Pdif(beg
, begin
),
1618 MSVCP_basic_string_char_Pdif(end
, beg
), str
);
1621 /* ?replace@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@V?$_String_const_iterator@DU?$char_traits@D@std@@V?$allocator@D@2@@2@0PBDI@Z */
1622 /* ?replace@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAAEAV12@V?$_String_const_iterator@DU?$char_traits@D@std@@V?$allocator@D@2@@2@0PEBD_K@Z */
1623 DEFINE_THISCALL_WRAPPER(basic_string_char_replace_iter_cstr_len
, 28)
1624 basic_string_char
* __thiscall
basic_string_char_replace_iter_cstr_len(basic_string_char
*this,
1625 String_iterator_char beg
, String_iterator_char end
, const char *str
, MSVCP_size_t len
)
1627 String_iterator_char begin
= { this, basic_string_char_ptr(this) };
1628 return basic_string_char_replace_cstr_len(this, MSVCP_basic_string_char_Pdif(beg
, begin
),
1629 MSVCP_basic_string_char_Pdif(end
, beg
), str
, len
);
1632 /* ?insert@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@IABV12@@Z */
1633 /* ?insert@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAAEAV12@_KAEBV12@@Z */
1634 DEFINE_THISCALL_WRAPPER(basic_string_char_insert
, 12)
1635 basic_string_char
* __thiscall
basic_string_char_insert(basic_string_char
*this,
1636 MSVCP_size_t off
, const basic_string_char
*str
)
1638 return basic_string_char_replace(this, off
, 0, str
);
1641 /* ?insert@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@IABV12@II@Z */
1642 /* ?insert@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAAEAV12@_KAEBV12@00@Z */
1643 DEFINE_THISCALL_WRAPPER(basic_string_char_insert_substr
, 20)
1644 basic_string_char
* __thiscall
basic_string_char_insert_substr(
1645 basic_string_char
*this, MSVCP_size_t off
, const basic_string_char
*str
,
1646 MSVCP_size_t str_off
, MSVCP_size_t str_count
)
1648 return basic_string_char_replace_substr(this, off
, 0, str
, str_off
, str_count
);
1651 /* ?insert@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@IPBD@Z */
1652 /* ?insert@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAAEAV12@_KPEBD@Z */
1653 DEFINE_THISCALL_WRAPPER(basic_string_char_insert_cstr
, 12)
1654 basic_string_char
* __thiscall
basic_string_char_insert_cstr(
1655 basic_string_char
*this, MSVCP_size_t off
, const char *str
)
1657 return basic_string_char_replace_cstr(this, off
, 0, str
);
1660 /* ?insert@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@IPBDI@Z */
1661 /* ?insert@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAAEAV12@_KPEBD0@Z */
1662 DEFINE_THISCALL_WRAPPER(basic_string_char_insert_cstr_len
, 16)
1663 basic_string_char
* __thiscall
basic_string_char_insert_cstr_len(basic_string_char
*this,
1664 MSVCP_size_t off
, const char *str
, MSVCP_size_t str_len
)
1666 return basic_string_char_replace_cstr_len(this, off
, 0, str
, str_len
);
1669 /* ?insert@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@IID@Z */
1670 /* ?insert@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAAEAV12@_K0D@Z */
1671 DEFINE_THISCALL_WRAPPER(basic_string_char_insert_chn
, 16)
1672 basic_string_char
* __thiscall
basic_string_char_insert_chn(basic_string_char
*this,
1673 MSVCP_size_t off
, MSVCP_size_t count
, char ch
)
1675 return basic_string_char_replace_ch(this, off
, 0, count
, ch
);
1678 /* ?insert@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEXV?$_String_const_iterator@DU?$char_traits@D@std@@V?$allocator@D@2@@2@ID@Z */
1679 /* ?insert@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAXV?$_String_const_iterator@DU?$char_traits@D@std@@V?$allocator@D@2@@2@_KD@Z */
1680 DEFINE_THISCALL_WRAPPER(basic_string_char_insert_iter_chn
, 20)
1681 void __thiscall
basic_string_char_insert_iter_chn(basic_string_char
*this,
1682 String_iterator_char where
, MSVCP_size_t count
, char ch
)
1684 String_iterator_char iter
= { this, basic_string_char_ptr(this) };
1685 MSVCP_size_t off
= MSVCP_basic_string_char_Pdif(where
, iter
);
1687 basic_string_char_insert_chn(this, off
, count
, ch
);
1690 /* ?insert@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE?AV?$_String_iterator@DU?$char_traits@D@std@@V?$allocator@D@2@@2@V?$_String_const_iterator@DU?$char_traits@D@std@@V?$allocator@D@2@@2@D@Z */
1691 /* ?insert@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAA?AV?$_String_iterator@DU?$char_traits@D@std@@V?$allocator@D@2@@2@V?$_String_const_iterator@DU?$char_traits@D@std@@V?$allocator@D@2@@2@D@Z */
1692 DEFINE_THISCALL_WRAPPER(basic_string_char_insert_iter_ch
, 20)
1693 String_iterator_char
* __thiscall
basic_string_char_insert_iter_ch(basic_string_char
*this,
1694 String_iterator_char
*ret
, String_iterator_char where
, char ch
)
1699 ret
->pos
= basic_string_char_ptr(this);
1700 off
= MSVCP_basic_string_char_Pdif(where
, *ret
);
1702 basic_string_char_insert_chn(this, off
, 1, ch
);
1703 ret
->pos
= basic_string_char_ptr(this)+off
;
1707 /* ?insert@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE?AV?$_String_iterator@DU?$char_traits@D@std@@V?$allocator@D@2@@2@V?$_String_const_iterator@DU?$char_traits@D@std@@V?$allocator@D@2@@2@@Z */
1708 /* ?insert@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAA?AV?$_String_iterator@DU?$char_traits@D@std@@V?$allocator@D@2@@2@V?$_String_const_iterator@DU?$char_traits@D@std@@V?$allocator@D@2@@2@@Z */
1709 DEFINE_THISCALL_WRAPPER(basic_string_char_insert_iter_null
, 16)
1710 String_iterator_char
* __thiscall
basic_string_char_insert_iter_null(basic_string_char
*this,
1711 String_iterator_char
*ret
, String_iterator_char where
)
1713 return basic_string_char_insert_iter_ch(this, ret
, where
, 0);
1716 /* ?insert@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEXV?$_String_const_iterator@DU?$char_traits@D@std@@V?$allocator@D@2@@2@00@Z */
1717 /* ?insert@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAXV?$_String_const_iterator@DU?$char_traits@D@std@@V?$allocator@D@2@@2@00@Z */
1718 DEFINE_THISCALL_WRAPPER(basic_string_char_insert_iter_beg_end
, 28)
1719 void __thiscall
basic_string_char_insert_iter_beg_end(basic_string_char
*this,
1720 String_iterator_char where
, String_iterator_char beg
, String_iterator_char end
)
1722 basic_string_char_replace_iter_iter(this, where
, where
, beg
, end
);
1725 /* ?insert@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEXV?$_String_const_iterator@DU?$char_traits@D@std@@V?$allocator@D@2@@2@PBD1@Z */
1726 /* ?insert@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAXV?$_String_const_iterator@DU?$char_traits@D@std@@V?$allocator@D@2@@2@PEBD1@Z */
1727 DEFINE_THISCALL_WRAPPER(basic_string_char_insert_iter_ptr_ptr
, 20)
1728 void __thiscall
basic_string_char_insert_iter_ptr_ptr(basic_string_char
*this,
1729 String_iterator_char where
, const char *beg
, const char *end
)
1731 basic_string_char_replace_iter_ptr_ptr(this, where
, where
, beg
, end
);
1734 /* ?resize@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEXID@Z */
1735 /* ?resize@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAX_KD@Z */
1736 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_resize_ch
, 12)
1737 void __thiscall
MSVCP_basic_string_char_resize_ch(
1738 basic_string_char
*this, MSVCP_size_t size
, char ch
)
1740 TRACE("%p %lu %c\n", this, size
, ch
);
1742 if(size
<= this->size
)
1743 MSVCP_basic_string_char_erase(this, size
, this->size
);
1745 MSVCP_basic_string_char_append_len_ch(this, size
-this->size
, ch
);
1748 /* ?resize@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEXI@Z */
1749 /* ?resize@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAX_K@Z */
1750 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_resize
, 8)
1751 void __thiscall
MSVCP_basic_string_char_resize(
1752 basic_string_char
*this, MSVCP_size_t size
)
1754 MSVCP_basic_string_char_resize_ch(this, size
, '\0');
1757 /* ?clear@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEXXZ */
1758 /* ?clear@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAXXZ */
1759 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_clear
, 4)
1760 void __thiscall
MSVCP_basic_string_char_clear(basic_string_char
*this)
1762 basic_string_char_eos(this, 0);
1765 /* ?begin@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE?AV?$_String_iterator@DU?$char_traits@D@std@@V?$allocator@D@2@@2@XZ */
1766 /* ?begin@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAA?AV?$_String_iterator@DU?$char_traits@D@std@@V?$allocator@D@2@@2@XZ */
1767 /* ?begin@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBE?AV?$_String_const_iterator@DU?$char_traits@D@std@@V?$allocator@D@2@@2@XZ */
1768 /* ?begin@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA?AV?$_String_const_iterator@DU?$char_traits@D@std@@V?$allocator@D@2@@2@XZ */
1769 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_begin
, 8)
1770 String_iterator_char
* __thiscall
MSVCP_basic_string_char_begin(
1771 basic_string_char
*this, String_iterator_char
*ret
)
1773 TRACE("%p\n", this);
1776 ret
->pos
= basic_string_char_const_ptr(this);
1780 /* ?end@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE?AV?$_String_iterator@DU?$char_traits@D@std@@V?$allocator@D@2@@2@XZ */
1781 /* ?end@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAA?AV?$_String_iterator@DU?$char_traits@D@std@@V?$allocator@D@2@@2@XZ */
1782 /* ?end@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBE?AV?$_String_const_iterator@DU?$char_traits@D@std@@V?$allocator@D@2@@2@XZ */
1783 /* ?end@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA?AV?$_String_const_iterator@DU?$char_traits@D@std@@V?$allocator@D@2@@2@XZ */
1784 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_end
, 8)
1785 String_iterator_char
* __thiscall
MSVCP_basic_string_char_end(
1786 basic_string_char
*this, String_iterator_char
*ret
)
1788 TRACE("%p\n", this);
1791 ret
->pos
= basic_string_char_const_ptr(this)+this->size
;
1795 /* ?rbegin@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE?AV?$reverse_iterator@V?$_String_iterator@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@XZ */
1796 /* ?rbegin@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAA?AV?$reverse_iterator@V?$_String_iterator@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@XZ */
1797 /* ?rbegin@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBE?AV?$reverse_iterator@V?$_String_const_iterator@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@XZ */
1798 /* ?rbegin@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA?AV?$reverse_iterator@V?$_String_const_iterator@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@XZ */
1799 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_rbegin
, 8)
1800 String_reverse_iterator_char
* __thiscall
MSVCP_basic_string_char_rbegin(
1801 basic_string_char
*this, String_reverse_iterator_char
*ret
)
1803 TRACE("%p\n", this);
1806 ret
->pos
= basic_string_char_const_ptr(this)+this->size
;
1810 /* ?rend@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE?AV?$reverse_iterator@V?$_String_iterator@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@XZ */
1811 /* ?rend@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAA?AV?$reverse_iterator@V?$_String_iterator@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@XZ */
1812 /* ?rend@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBE?AV?$reverse_iterator@V?$_String_const_iterator@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@XZ */
1813 /* ?rend@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA?AV?$reverse_iterator@V?$_String_const_iterator@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@XZ */
1814 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_rend
, 8)
1815 String_reverse_iterator_char
* __thiscall
MSVCP_basic_string_char_rend(
1816 basic_string_char
*this, String_reverse_iterator_char
*ret
)
1818 TRACE("%p\n", this);
1821 ret
->pos
= basic_string_char_const_ptr(this);
1825 /* basic_string<wchar_t, char_traits<wchar_t>, allocator<wchar_t>> */
1826 /* basic_string<unsigned short, char_traits<unsigned short>, allocator<unsigned short>> */
1827 /* ?npos@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@2IB */
1828 /* ?npos@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@2_KB */
1829 /* ?npos@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@2IB */
1830 /* ?npos@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@2_KB */
1831 const MSVCP_size_t MSVCP_basic_string_wchar_npos
= -1;
1833 /* ?_Myptr@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@IAEPA_WXZ */
1834 /* ?_Myptr@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@IEAAPEA_WXZ */
1835 /* ?_Myptr@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@IAEPAGXZ */
1836 /* ?_Myptr@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@IEAAPEAGXZ */
1837 DEFINE_THISCALL_WRAPPER(basic_string_wchar_ptr
, 4)
1838 wchar_t* __thiscall
basic_string_wchar_ptr(basic_string_wchar
*this)
1840 if(this->res
== BUF_SIZE_WCHAR
-1)
1841 return this->data
.buf
;
1842 return this->data
.ptr
;
1845 /* ?_Myptr@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@IBEPB_WXZ */
1846 /* ?_Myptr@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@IEBAPEB_WXZ */
1847 /* ?_Myptr@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@IBEPBGXZ */
1848 /* ?_Myptr@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@IEBAPEBGXZ */
1849 DEFINE_THISCALL_WRAPPER(basic_string_wchar_const_ptr
, 4)
1850 const wchar_t* __thiscall
basic_string_wchar_const_ptr(const basic_string_wchar
*this)
1852 if(this->res
== BUF_SIZE_WCHAR
-1)
1853 return this->data
.buf
;
1854 return this->data
.ptr
;
1857 /* ?_Eos@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@IAEXI@Z */
1858 /* ?_Eos@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@IEAAX_K@Z */
1859 /* ?_Eos@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@IAEXI@Z */
1860 /* ?_Eos@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@IEAAX_K@Z */
1861 DEFINE_THISCALL_WRAPPER(basic_string_wchar_eos
, 8)
1862 void __thiscall
basic_string_wchar_eos(basic_string_wchar
*this, MSVCP_size_t len
)
1864 static const wchar_t nullbyte_w
= '\0';
1867 MSVCP_char_traits_wchar_assign(basic_string_wchar_ptr(this)+len
, &nullbyte_w
);
1870 /* ?_Inside@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@IAE_NPB_W@Z */
1871 /* ?_Inside@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@IEAA_NPEB_W@Z */
1872 /* ?_Inside@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@IAE_NPBG@Z */
1873 /* ?_Inside@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@IEAA_NPEBG@Z */
1874 DEFINE_THISCALL_WRAPPER(basic_string_wchar_inside
, 8)
1875 MSVCP_bool __thiscall
basic_string_wchar_inside(
1876 basic_string_wchar
*this, const wchar_t *ptr
)
1878 wchar_t *cstr
= basic_string_wchar_ptr(this);
1880 return (ptr
<cstr
|| ptr
>=cstr
+this->size
) ? FALSE
: TRUE
;
1883 /* ?_Tidy@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@IAEX_NI@Z */
1884 /* ?_Tidy@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@IEAAX_N_K@Z */
1885 /* ?_Tidy@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@IAEX_NI@Z */
1886 /* ?_Tidy@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@IEAAX_N_K@Z */
1887 DEFINE_THISCALL_WRAPPER(basic_string_wchar_tidy
, 12)
1888 void __thiscall
basic_string_wchar_tidy(basic_string_wchar
*this,
1889 MSVCP_bool built
, MSVCP_size_t new_size
)
1891 if(built
&& BUF_SIZE_WCHAR
<=this->res
) {
1892 wchar_t *ptr
= this->data
.ptr
;
1895 MSVCP_char_traits_wchar__Copy_s(this->data
.buf
, BUF_SIZE_WCHAR
, ptr
, new_size
);
1896 MSVCP_allocator_wchar_deallocate(this->allocator
, ptr
, this->res
+1);
1899 this->res
= BUF_SIZE_WCHAR
-1;
1900 basic_string_wchar_eos(this, new_size
);
1903 /* ?_Grow@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@IAE_NI_N@Z */
1904 /* ?_Grow@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@IEAA_N_K_N@Z */
1905 /* ?_Grow@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@IAE_NI_N@Z */
1906 /* ?_Grow@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@IEAA_N_K_N@Z */
1907 DEFINE_THISCALL_WRAPPER(basic_string_wchar_grow
, 12)
1908 MSVCP_bool __thiscall
basic_string_wchar_grow(
1909 basic_string_wchar
*this, MSVCP_size_t new_size
, MSVCP_bool trim
)
1911 if(this->res
< new_size
) {
1912 MSVCP_size_t new_res
= new_size
, len
= this->size
;
1917 if(new_res
/3 < this->res
/2)
1918 new_res
= this->res
+ this->res
/2;
1920 ptr
= MSVCP_allocator_wchar_allocate(this->allocator
, new_res
+1);
1922 ptr
= MSVCP_allocator_wchar_allocate(this->allocator
, new_size
+1);
1926 ERR("Out of memory\n");
1927 basic_string_wchar_tidy(this, TRUE
, 0);
1931 MSVCP_char_traits_wchar__Copy_s(ptr
, new_size
,
1932 basic_string_wchar_ptr(this), this->size
);
1933 basic_string_wchar_tidy(this, TRUE
, 0);
1934 this->data
.ptr
= ptr
;
1935 this->res
= new_size
;
1936 basic_string_wchar_eos(this, len
);
1937 } else if(trim
&& new_size
< BUF_SIZE_WCHAR
)
1938 basic_string_wchar_tidy(this, TRUE
,
1939 new_size
<this->size
? new_size
: this->size
);
1940 else if(new_size
== 0)
1941 basic_string_wchar_eos(this, 0);
1943 return (new_size
>0);
1946 /* ?_Copy@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@IAEXII@Z */
1947 /* ?_Copy@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@IEAAX_K0@Z */
1948 /* ?_Copy@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@IAEXII@Z */
1949 /* ?_Copy@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@IEAAX_K0@Z */
1950 DEFINE_THISCALL_WRAPPER(basic_string_wchar__Copy
, 12)
1951 void __thiscall
basic_string_wchar__Copy(basic_string_wchar
*this,
1952 MSVCP_size_t new_size
, MSVCP_size_t copy_len
)
1954 TRACE("%p %lu %lu\n", this, new_size
, copy_len
);
1956 if(!basic_string_wchar_grow(this, new_size
, FALSE
))
1958 basic_string_wchar_eos(this, copy_len
);
1961 /* ?_Pdif@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@KAIV?$_String_const_iterator@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@2@0@Z */
1962 /* ?_Pdif@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@KA_KV?$_String_const_iterator@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@2@0@Z */
1963 /* ?_Pdif@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@KAIV?$_String_const_iterator@GU?$char_traits@G@std@@V?$allocator@G@2@@2@0@Z */
1964 /* ?_Pdif@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@KA_KV?$_String_const_iterator@GU?$char_traits@G@std@@V?$allocator@G@2@@2@0@Z */
1965 static MSVCP_size_t __cdecl
MSVCP_basic_string_wchar_Pdif(String_iterator_wchar i1
, String_iterator_wchar i2
)
1967 TRACE("(%p %p) (%p %p)\n", i1
.bstr
, i1
.pos
, i2
.bstr
, i2
.pos
);
1969 if((!i1
.bstr
&& i1
.pos
) || i1
.bstr
!=i2
.bstr
) {
1970 _invalid_parameter(NULL
, NULL
, NULL
, 0, 0);
1974 return !i1
.pos
? 0 : i1
.pos
-i2
.pos
;
1977 /* ?get_allocator@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBE?AV?$allocator@_W@2@XZ */
1978 /* ?get_allocator@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBA?AV?$allocator@_W@2@XZ */
1979 /* ?get_allocator@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBE?AV?$allocator@G@2@XZ */
1980 /* ?get_allocator@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBA?AV?$allocator@G@2@XZ */
1981 DEFINE_THISCALL_WRAPPER(basic_string_wchar_get_allocator
, 8)
1982 allocator
* __thiscall
basic_string_wchar_get_allocator(const basic_string_wchar
*this, allocator
*ret
)
1984 TRACE("%p\n", this);
1988 /* ?erase@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV12@II@Z */
1989 /* ?erase@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAAEAV12@_K0@Z */
1990 /* ?erase@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV12@II@Z */
1991 /* ?erase@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAAEAV12@_K0@Z */
1992 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_erase
, 12)
1993 basic_string_wchar
* __thiscall
MSVCP_basic_string_wchar_erase(
1994 basic_string_wchar
*this, MSVCP_size_t pos
, MSVCP_size_t len
)
1996 TRACE("%p %lu %lu\n", this, pos
, len
);
1998 if(pos
> this->size
)
1999 MSVCP__String_base_Xran();
2001 if(len
> this->size
-pos
)
2002 len
= this->size
-pos
;
2005 MSVCP_char_traits_wchar__Move_s(basic_string_wchar_ptr(this)+pos
,
2006 this->res
-pos
, basic_string_wchar_ptr(this)+pos
+len
,
2007 this->size
-pos
-len
);
2008 basic_string_wchar_eos(this, this->size
-len
);
2014 /* ?erase@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE?AV?$_String_iterator@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@2@V?$_String_const_iterator@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@2@0@Z */
2015 /* ?erase@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAA?AV?$_String_iterator@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@2@V?$_String_const_iterator@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@2@0@Z */
2016 /* ?erase@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAE?AV?$_String_iterator@GU?$char_traits@G@std@@V?$allocator@G@2@@2@V?$_String_const_iterator@GU?$char_traits@G@std@@V?$allocator@G@2@@2@0@Z */
2017 /* ?erase@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAA?AV?$_String_iterator@GU?$char_traits@G@std@@V?$allocator@G@2@@2@V?$_String_const_iterator@GU?$char_traits@G@std@@V?$allocator@G@2@@2@0@Z */
2018 DEFINE_THISCALL_WRAPPER(basic_string_wchar_erase_iter_range
, 24)
2019 String_iterator_wchar
* __thiscall
basic_string_wchar_erase_iter_range(basic_string_wchar
*this,
2020 String_iterator_wchar
*ret
, String_iterator_wchar beg
, String_iterator_wchar end
)
2025 ret
->pos
= basic_string_wchar_ptr(this);
2026 off
= MSVCP_basic_string_wchar_Pdif(beg
, *ret
);
2028 MSVCP_basic_string_wchar_erase(this, off
, MSVCP_basic_string_wchar_Pdif(end
, beg
));
2031 ret
->pos
= basic_string_wchar_ptr(this)+off
;
2035 /* ?erase@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE?AV?$_String_iterator@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@2@V?$_String_const_iterator@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@2@@Z */
2036 /* ?erase@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAA?AV?$_String_iterator@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@2@V?$_String_const_iterator@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@2@@Z */
2037 /* ?erase@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAE?AV?$_String_iterator@GU?$char_traits@G@std@@V?$allocator@G@2@@2@V?$_String_const_iterator@GU?$char_traits@G@std@@V?$allocator@G@2@@2@@Z */
2038 /* ?erase@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAA?AV?$_String_iterator@GU?$char_traits@G@std@@V?$allocator@G@2@@2@V?$_String_const_iterator@GU?$char_traits@G@std@@V?$allocator@G@2@@2@@Z */
2039 DEFINE_THISCALL_WRAPPER(basic_string_wchar_erase_iter
, 16)
2040 String_iterator_wchar
* __thiscall
basic_string_wchar_erase_iter(basic_string_wchar
*this,
2041 String_iterator_wchar
*ret
, String_iterator_wchar pos
)
2046 ret
->pos
= basic_string_wchar_ptr(this);
2047 off
= MSVCP_basic_string_wchar_Pdif(pos
, *ret
);
2049 MSVCP_basic_string_wchar_erase(this, off
, 1);
2052 ret
->pos
= basic_string_wchar_ptr(this)+off
;
2056 /* ?assign@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV12@ABV12@II@Z */
2057 /* ?assign@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAAEAV12@AEBV12@_K1@Z */
2058 /* ?assign@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV12@ABV12@II@Z */
2059 /* ?assign@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAAEAV12@AEBV12@_K1@Z */
2060 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_assign_substr
, 16)
2061 basic_string_wchar
* __thiscall
MSVCP_basic_string_wchar_assign_substr(
2062 basic_string_wchar
*this, const basic_string_wchar
*assign
,
2063 MSVCP_size_t pos
, MSVCP_size_t len
)
2065 TRACE("%p %p %lu %lu\n", this, assign
, pos
, len
);
2067 if(assign
->size
< pos
)
2068 MSVCP__String_base_Xran();
2070 if(len
> assign
->size
-pos
)
2071 len
= assign
->size
-pos
;
2073 if(this == assign
) {
2074 MSVCP_basic_string_wchar_erase(this, pos
+len
, MSVCP_basic_string_wchar_npos
);
2075 MSVCP_basic_string_wchar_erase(this, 0, pos
);
2076 } else if(basic_string_wchar_grow(this, len
, FALSE
)) {
2077 MSVCP_char_traits_wchar__Copy_s(basic_string_wchar_ptr(this),
2078 this->res
, basic_string_wchar_const_ptr(assign
)+pos
, len
);
2079 basic_string_wchar_eos(this, len
);
2085 /* ?assign@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV12@ABV12@@Z */
2086 /* ?assign@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAAEAV12@AEBV12@@Z */
2087 /* ??4?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV01@ABV01@@Z */
2088 /* ??4?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAAEAV01@AEBV01@@Z */
2089 /* ?assign@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV12@ABV12@@Z */
2090 /* ?assign@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAAEAV12@AEBV12@@Z */
2091 /* ??4?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV01@ABV01@@Z */
2092 /* ??4?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAAEAV01@AEBV01@@Z */
2093 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_assign
, 8)
2094 basic_string_wchar
* __thiscall
MSVCP_basic_string_wchar_assign(
2095 basic_string_wchar
*this, const basic_string_wchar
*assign
)
2097 return MSVCP_basic_string_wchar_assign_substr(this, assign
,
2098 0, MSVCP_basic_string_wchar_npos
);
2101 /* ?assign@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV12@PB_WI@Z */
2102 /* ?assign@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAAEAV12@PEB_W_K@Z */
2103 /* ?assign@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV12@PBGI@Z */
2104 /* ?assign@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAAEAV12@PEBG_K@Z */
2105 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_assign_cstr_len
, 12)
2106 basic_string_wchar
* __thiscall
MSVCP_basic_string_wchar_assign_cstr_len(
2107 basic_string_wchar
*this, const wchar_t *str
, MSVCP_size_t len
)
2109 TRACE("%p %s %lu\n", this, debugstr_w(str
), len
);
2111 if(basic_string_wchar_inside(this, str
))
2112 return MSVCP_basic_string_wchar_assign_substr(this, this,
2113 str
-basic_string_wchar_ptr(this), len
);
2114 else if(basic_string_wchar_grow(this, len
, FALSE
)) {
2115 MSVCP_char_traits_wchar__Copy_s(basic_string_wchar_ptr(this),
2116 this->res
, str
, len
);
2117 basic_string_wchar_eos(this, len
);
2123 /* ??4?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV01@_W@Z */
2124 /* ??4?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAAEAV01@_W@Z */
2125 /* ??4?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV01@G@Z */
2126 /* ??4?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAAEAV01@G@Z */
2127 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_assign_ch
, 8)
2128 basic_string_wchar
* __thiscall
MSVCP_basic_string_wchar_assign_ch(
2129 basic_string_wchar
*this, wchar_t ch
)
2131 return MSVCP_basic_string_wchar_assign_cstr_len(this, &ch
, 1);
2134 /* ?assign@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV12@PB_W@Z */
2135 /* ?assign@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAAEAV12@PEB_W@Z */
2136 /* ??4?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV01@PB_W@Z */
2137 /* ??4?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAAEAV01@PEB_W@Z */
2138 /* ?assign@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV12@PBG@Z */
2139 /* ?assign@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAAEAV12@PEBG@Z */
2140 /* ??4?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV01@PBG@Z */
2141 /* ??4?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAAEAV01@PEBG@Z */
2142 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_assign_cstr
, 8)
2143 basic_string_wchar
* __thiscall
MSVCP_basic_string_wchar_assign_cstr(
2144 basic_string_wchar
*this, const wchar_t *str
)
2146 return MSVCP_basic_string_wchar_assign_cstr_len(this, str
,
2147 MSVCP_char_traits_wchar_length(str
));
2150 /* ?assign@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV12@I_W@Z */
2151 /* ?assign@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAAEAV12@_K_W@Z */
2152 /* ?assign@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV12@IG@Z */
2153 /* ?assign@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAAEAV12@_KG@Z */
2154 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_assignn
, 12)
2155 basic_string_wchar
* __thiscall
MSVCP_basic_string_wchar_assignn(
2156 basic_string_wchar
*this, MSVCP_size_t count
, wchar_t ch
)
2158 TRACE("%p %ld %c\n", this, count
, ch
);
2160 basic_string_wchar_grow(this, count
, FALSE
);
2161 MSVCP_char_traits_wchar_assignn(basic_string_wchar_ptr(this), count
, ch
);
2162 basic_string_wchar_eos(this, count
);
2166 /* ?assign@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV12@PB_W0@Z */
2167 /* ?assign@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAAEAV12@PEB_W0@Z */
2168 /* ?assign@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV12@PBG0@Z */
2169 /* ?assign@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAAEAV12@PEBG0@Z */
2170 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_assign_ptr_ptr
, 12)
2171 basic_string_wchar
* __thiscall
MSVCP_basic_string_wchar_assign_ptr_ptr(
2172 basic_string_wchar
*this, const wchar_t *first
, const wchar_t *last
)
2174 return MSVCP_basic_string_wchar_assign_cstr_len(this, first
, last
-first
);
2177 /* ?assign@?$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@0@Z */
2178 /* ?assign@?$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@0@Z */
2179 /* ?assign@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV12@V?$_String_const_iterator@GU?$char_traits@G@std@@V?$allocator@G@2@@2@0@Z */
2180 /* ?assign@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAAEAV12@V?$_String_const_iterator@GU?$char_traits@G@std@@V?$allocator@G@2@@2@0@Z */
2181 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_assign_iter
, 20)
2182 basic_string_wchar
* __thiscall
MSVCP_basic_string_wchar_assign_iter(basic_string_wchar
*this,
2183 String_iterator_wchar beg
, String_iterator_wchar end
)
2185 return MSVCP_basic_string_wchar_assign_ptr_ptr(this, beg
.pos
, end
.pos
);
2188 /* ?_Chassign@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@IAEXII_W@Z */
2189 /* ?_Chassign@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@IEAAX_K0_W@Z */
2190 /* ?_Chassign@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@IAEXIIG@Z */
2191 /* ?_Chassign@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@IEAAX_K0G@Z */
2192 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_Chassign
, 16)
2193 void __thiscall
MSVCP_basic_string_wchar_Chassign(basic_string_wchar
*this,
2194 MSVCP_size_t off
, MSVCP_size_t count
, wchar_t ch
)
2196 TRACE("%p %lu %lu %c\n", this, off
, count
, ch
);
2197 MSVCP_char_traits_wchar_assignn(basic_string_wchar_ptr(this)+off
, count
, ch
);
2200 /* ?_Copy_s@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEIPA_WIII@Z */
2201 /* ?_Copy_s@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBA_KPEA_W_K11@Z */
2202 /* ?_Copy_s@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEIPAGIII@Z */
2203 /* ?_Copy_s@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBA_KPEAG_K11@Z */
2204 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_Copy_s
, 20)
2205 MSVCP_size_t __thiscall
MSVCP_basic_string_wchar_Copy_s(const basic_string_wchar
*this,
2206 wchar_t *dest
, MSVCP_size_t size
, MSVCP_size_t count
, MSVCP_size_t off
)
2208 TRACE("%p %p %lu %lu %lu\n", this, dest
, size
, count
, off
);
2210 if(this->size
< off
)
2211 MSVCP__String_base_Xran();
2213 if(count
> this->size
-off
)
2214 count
= this->size
-off
;
2216 MSVCP_char_traits_wchar__Copy_s(dest
, size
,
2217 basic_string_wchar_const_ptr(this)+off
, count
);
2221 /* ?copy@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEIPA_WII@Z */
2222 /* ?copy@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBA_KPEA_W_K1@Z */
2223 /* ?copy@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEIPAGII@Z */
2224 /* ?copy@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBA_KPEAG_K1@Z */
2225 DEFINE_THISCALL_WRAPPER(basic_string_wchar_copy
, 16)
2226 MSVCP_size_t __thiscall
basic_string_wchar_copy(const basic_string_wchar
*this,
2227 wchar_t *dest
, MSVCP_size_t count
, MSVCP_size_t off
)
2229 return MSVCP_basic_string_wchar_Copy_s(this, dest
, count
, count
, off
);
2232 /* ?c_str@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEPB_WXZ */
2233 /* ?c_str@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBAPEB_WXZ */
2234 /* ?data@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEPB_WXZ */
2235 /* ?data@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBAPEB_WXZ */
2236 /* ?c_str@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEPBGXZ */
2237 /* ?c_str@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBAPEBGXZ */
2238 /* ?data@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEPBGXZ */
2239 /* ?data@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBAPEBGXZ */
2240 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_c_str
, 4)
2241 const wchar_t* __thiscall
MSVCP_basic_string_wchar_c_str(const basic_string_wchar
*this)
2243 TRACE("%p\n", this);
2244 return basic_string_wchar_const_ptr(this);
2247 /* ?capacity@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEIXZ */
2248 /* ?capacity@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBA_KXZ */
2249 /* ?capacity@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEIXZ */
2250 /* ?capacity@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBA_KXZ */
2251 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_capacity
, 4)
2252 MSVCP_size_t __thiscall
MSVCP_basic_string_wchar_capacity(basic_string_wchar
*this)
2254 TRACE("%p\n", this);
2258 /* ?reserve@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEXI@Z */
2259 /* ?reserve@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAX_K@Z */
2260 /* ?reserve@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEXI@Z */
2261 /* ?reserve@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAX_K@Z */
2262 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_reserve
, 8)
2263 void __thiscall
MSVCP_basic_string_wchar_reserve(basic_string_wchar
*this, MSVCP_size_t size
)
2267 TRACE("%p %ld\n", this, size
);
2273 basic_string_wchar_grow(this, size
, FALSE
);
2274 basic_string_wchar_eos(this, len
);
2277 /* ??0?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE@XZ */
2278 /* ??0?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAA@XZ */
2279 /* ??0?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAE@XZ */
2280 /* ??0?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAA@XZ */
2281 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_ctor
, 4)
2282 basic_string_wchar
* __thiscall
MSVCP_basic_string_wchar_ctor(basic_string_wchar
*this)
2284 TRACE("%p\n", this);
2286 basic_string_wchar_tidy(this, FALSE
, 0);
2290 /* ??0?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE@ABV01@@Z */
2291 /* ??0?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAA@AEBV01@@Z */
2292 /* ??0?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAE@ABV01@@Z */
2293 /* ??0?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAA@AEBV01@@Z */
2294 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_copy_ctor
, 8)
2295 basic_string_wchar
* __thiscall
MSVCP_basic_string_wchar_copy_ctor(
2296 basic_string_wchar
*this, const basic_string_wchar
*copy
)
2298 TRACE("%p %p\n", this, copy
);
2300 basic_string_wchar_tidy(this, FALSE
, 0);
2301 MSVCP_basic_string_wchar_assign(this, copy
);
2305 /* ??0?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE@PB_W@Z */
2306 /* ??0?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAA@PEB_W@Z */
2307 /* ??0?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAE@PBG@Z */
2308 /* ??0?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAA@PEBG@Z */
2309 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_ctor_cstr
, 8)
2310 basic_string_wchar
* __thiscall
MSVCP_basic_string_wchar_ctor_cstr(
2311 basic_string_wchar
*this, const wchar_t *str
)
2313 TRACE("%p %s\n", this, debugstr_w(str
));
2315 basic_string_wchar_tidy(this, FALSE
, 0);
2316 MSVCP_basic_string_wchar_assign_cstr(this, str
);
2320 /* ??0?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE@PB_WABV?$allocator@_W@1@@Z */
2321 /* ??0?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAA@PEB_WAEBV?$allocator@_W@1@@Z */
2322 /* ??0?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAE@PBGABV?$allocator@G@1@@Z */
2323 /* ??0?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAA@PEBGAEBV?$allocator@G@1@@Z */
2324 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_ctor_cstr_alloc
, 12)
2325 basic_string_wchar
* __thiscall
MSVCP_basic_string_wchar_ctor_cstr_alloc(
2326 basic_string_wchar
*this, const wchar_t *str
, const void *alloc
)
2328 return MSVCP_basic_string_wchar_ctor_cstr(this, str
);
2331 /* ??0?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE@PB_WI@Z */
2332 /* ??0?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAA@PEB_W_K@Z */
2333 /* ??0?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAE@PBGI@Z */
2334 /* ??0?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAA@PEBG_K@Z */
2335 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_ctor_cstr_len
, 12)
2336 basic_string_wchar
* __thiscall
MSVCP_basic_string_wchar_ctor_cstr_len(
2337 basic_string_wchar
*this, const wchar_t *str
, MSVCP_size_t len
)
2339 TRACE("%p %s %ld\n", this, debugstr_w(str
), len
);
2341 basic_string_wchar_tidy(this, FALSE
, 0);
2342 MSVCP_basic_string_wchar_assign_cstr_len(this, str
, len
);
2346 /* ??0?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE@PB_WIABV?$allocator@_W@1@@Z */
2347 /* ??0?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAA@PEB_W_KAEBV?$allocator@_W@1@@Z */
2348 /* ??0?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAE@PBGIABV?$allocator@G@1@@Z */
2349 /* ??0?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAA@PEBG_KAEBV?$allocator@G@1@@Z */
2350 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_ctor_cstr_len_alloc
, 16)
2351 basic_string_wchar
* __thiscall
MSVCP_basic_string_wchar_ctor_cstr_len_alloc(
2352 basic_string_wchar
*this, const wchar_t *str
, MSVCP_size_t len
, const void *alloc
)
2354 return MSVCP_basic_string_wchar_ctor_cstr_len(this, str
, len
);
2357 /* ??0?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE@ABV01@II@Z */
2358 /* ??0?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAA@AEBV01@_K1@Z */
2359 /* ??0?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAE@ABV01@II@Z */
2360 /* ??0?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAA@AEBV01@_K1@Z */
2361 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_ctor_substr
, 16)
2362 basic_string_wchar
* __thiscall
MSVCP_basic_string_wchar_ctor_substr(
2363 basic_string_wchar
*this, const basic_string_wchar
*assign
,
2364 MSVCP_size_t pos
, MSVCP_size_t len
)
2366 TRACE("%p %p %lu %lu\n", this, assign
, pos
, len
);
2368 basic_string_wchar_tidy(this, FALSE
, 0);
2369 MSVCP_basic_string_wchar_assign_substr(this, assign
, pos
, len
);
2373 /* ??0?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE@ABV01@IIABV?$allocator@_W@1@@Z */
2374 /* ??0?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAA@AEBV01@_K1AEBV?$allocator@_W@1@@Z */
2375 /* ??0?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAE@ABV01@IIABV?$allocator@G@1@@Z */
2376 /* ??0?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAA@AEBV01@_K1AEBV?$allocator@G@1@@Z */
2377 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_ctor_substr_alloc
, 20)
2378 basic_string_wchar
* __thiscall
MSVCP_basic_string_wchar_ctor_substr_alloc(
2379 basic_string_wchar
*this, const basic_string_wchar
*assign
,
2380 MSVCP_size_t pos
, MSVCP_size_t len
, const void *alloc
)
2382 return MSVCP_basic_string_wchar_ctor_substr(this, assign
, pos
, len
);
2385 /* ??0?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE@ABV?$allocator@_W@1@@Z */
2386 /* ??0?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAA@AEBV?$allocator@_W@1@@Z */
2387 /* ??0?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAE@ABV?$allocator@G@1@@Z */
2388 /* ??0?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAA@AEBV?$allocator@G@1@@Z */
2389 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_ctor_alloc
, 8)
2390 basic_string_wchar
* __thiscall
MSVCP_basic_string_wchar_ctor_alloc(
2391 basic_string_wchar
*this, const void *alloc
)
2393 TRACE("%p %p\n", this, alloc
);
2395 basic_string_wchar_tidy(this, FALSE
, 0);
2399 /* ??0?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE@I_W@Z */
2400 /* ??0?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAA@_K_W@Z */
2401 /* ??0?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAE@IG@Z */
2402 /* ??0?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAA@_KG@Z */
2403 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_ctor_ch
, 12)
2404 basic_string_wchar
* __thiscall
MSVCP_basic_string_wchar_ctor_ch(basic_string_wchar
*this,
2405 MSVCP_size_t count
, wchar_t ch
)
2407 TRACE("%p %ld %c\n", this, count
, ch
);
2409 basic_string_wchar_tidy(this, FALSE
, 0);
2410 MSVCP_basic_string_wchar_assignn(this, count
, ch
);
2414 /* ??0?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE@I_WABV?$allocator@_W@1@@Z */
2415 /* ??0?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAA@_K_WAEBV?$allocator@_W@1@@Z */
2416 /* ??0?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAE@IGABV?$allocator@G@1@@Z */
2417 /* ??0?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAA@_KGAEBV?$allocator@G@1@@Z */
2418 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_ctor_ch_alloc
, 16)
2419 basic_string_wchar
* __thiscall
MSVCP_basic_string_wchar_ctor_ch_alloc(basic_string_wchar
*this,
2420 MSVCP_size_t count
, wchar_t ch
, const void *alloc
)
2422 return MSVCP_basic_string_wchar_ctor_ch(this, count
, ch
);
2425 /* ??0?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE@PB_W0@Z */
2426 /* ??0?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAA@PEB_W0@Z */
2427 /* ??0?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAE@PBG0@Z */
2428 /* ??0?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAA@PEBG0@Z */
2429 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_ctor_ptr_ptr
, 12)
2430 basic_string_wchar
* __thiscall
MSVCP_basic_string_wchar_ctor_ptr_ptr(basic_string_wchar
*this,
2431 const wchar_t *first
, const wchar_t *last
)
2433 return MSVCP_basic_string_wchar_ctor_cstr_len(this, first
, last
-first
);
2436 /* ??0?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE@V?$_String_const_iterator@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@1@0@Z */
2437 /* ??0?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAA@V?$_String_const_iterator@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@1@0@Z */
2438 /* ??0?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAE@V?$_String_const_iterator@GU?$char_traits@G@std@@V?$allocator@G@2@@1@0@Z */
2439 /* ??0?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAA@V?$_String_const_iterator@GU?$char_traits@G@std@@V?$allocator@G@2@@1@0@Z */
2440 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_ctor_iter
, 20)
2441 basic_string_wchar
* __thiscall
MSVCP_basic_string_wchar_ctor_iter(basic_string_wchar
*this,
2442 String_iterator_wchar beg
, String_iterator_wchar end
)
2444 return MSVCP_basic_string_wchar_ctor_cstr_len(this, beg
.pos
, end
.pos
-beg
.pos
);
2447 /* ??1?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE@XZ */
2448 /* ??1?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAA@XZ */
2449 /* ??1?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAE@XZ */
2450 /* ??1?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAA@XZ */
2451 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_dtor
, 4)
2452 void __thiscall
MSVCP_basic_string_wchar_dtor(basic_string_wchar
*this)
2454 TRACE("%p\n", this);
2455 basic_string_wchar_tidy(this, TRUE
, 0);
2458 /* ?size@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEIXZ */
2459 /* ?size@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBA_KXZ */
2460 /* ?length@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEIXZ */
2461 /* ?length@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBA_KXZ */
2462 /* ?size@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEIXZ */
2463 /* ?size@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBA_KXZ */
2464 /* ?length@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEIXZ */
2465 /* ?length@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBA_KXZ */
2466 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_length
, 4)
2467 MSVCP_size_t __thiscall
MSVCP_basic_string_wchar_length(const basic_string_wchar
*this)
2469 TRACE("%p\n", this);
2473 /* ?max_size@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEIXZ */
2474 /* ?max_size@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBA_KXZ */
2475 /* ?max_size@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEIXZ */
2476 /* ?max_size@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBA_KXZ */
2477 DEFINE_THISCALL_WRAPPER(basic_string_wchar_max_size
, 4)
2478 MSVCP_size_t __thiscall
basic_string_wchar_max_size(const basic_string_wchar
*this)
2480 TRACE("%p\n", this);
2481 return MSVCP_allocator_wchar_max_size(this->allocator
)-1;
2484 /* ?empty@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBE_NXZ */
2485 /* ?empty@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBA_NXZ */
2486 /* ?empty@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBE_NXZ */
2487 /* ?empty@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBA_NXZ */
2488 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_empty
, 4)
2489 MSVCP_bool __thiscall
MSVCP_basic_string_wchar_empty(basic_string_wchar
*this)
2491 TRACE("%p\n", this);
2492 return this->size
== 0;
2495 /* ?swap@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEXAAV12@@Z */
2496 /* ?swap@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAXAEAV12@@Z */
2497 /* ?swap@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEXAAV12@@Z */
2498 /* ?swap@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAXAEAV12@@Z */
2499 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_swap
, 8)
2500 void __thiscall
MSVCP_basic_string_wchar_swap(basic_string_wchar
*this, basic_string_wchar
*str
)
2503 char tmp
[sizeof(this->data
)];
2504 const MSVCP_size_t size
= this->size
;
2505 const MSVCP_size_t res
= this->res
;
2507 memcpy(tmp
, this->data
.buf
, sizeof(this->data
));
2508 memcpy(this->data
.buf
, str
->data
.buf
, sizeof(this->data
));
2509 memcpy(str
->data
.buf
, tmp
, sizeof(this->data
));
2511 this->size
= str
->size
;
2512 this->res
= str
->res
;
2519 /* ?substr@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBE?AV12@II@Z */
2520 /* ?substr@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBA?AV12@_K0@Z */
2521 /* ?substr@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBE?AV12@II@Z */
2522 /* ?substr@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBA?AV12@_K0@Z */
2523 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_substr
, 16)
2524 basic_string_wchar
* __thiscall
MSVCP_basic_string_wchar_substr(basic_string_wchar
*this,
2525 basic_string_wchar
*ret
, MSVCP_size_t off
, MSVCP_size_t len
)
2527 TRACE("%p %lu %lu\n", this, off
, len
);
2529 MSVCP_basic_string_wchar_ctor_substr(ret
, this, off
, len
);
2533 /* ?append@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV12@ABV12@II@Z */
2534 /* ?append@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAAEAV12@AEBV12@_K1@Z */
2535 /* ?append@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV12@ABV12@II@Z */
2536 /* ?append@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAAEAV12@AEBV12@_K1@Z */
2537 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_append_substr
, 16)
2538 basic_string_wchar
* __thiscall
MSVCP_basic_string_wchar_append_substr(basic_string_wchar
*this,
2539 const basic_string_wchar
*append
, MSVCP_size_t offset
, MSVCP_size_t count
)
2541 TRACE("%p %p %lu %lu\n", this, append
, offset
, count
);
2543 if(append
->size
< offset
)
2544 MSVCP__String_base_Xran();
2546 if(count
> append
->size
-offset
)
2547 count
= append
->size
-offset
;
2549 if(MSVCP_basic_string_wchar_npos
-this->size
<=count
|| this->size
+count
<this->size
)
2550 MSVCP__String_base_Xlen();
2552 if(basic_string_wchar_grow(this, this->size
+count
, FALSE
)) {
2553 MSVCP_char_traits_wchar__Copy_s(basic_string_wchar_ptr(this)+this->size
,
2554 this->res
-this->size
, basic_string_wchar_const_ptr(append
)+offset
, count
);
2555 basic_string_wchar_eos(this, this->size
+count
);
2561 /* ?append@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV12@ABV12@@Z */
2562 /* ?append@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAAEAV12@AEBV12@@Z */
2563 /* ??Y?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV01@ABV01@@Z */
2564 /* ??Y?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAAEAV01@AEBV01@@Z */
2565 /* ?append@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV12@ABV12@@Z */
2566 /* ?append@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAAEAV12@AEBV12@@Z */
2567 /* ??Y?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV01@ABV01@@Z */
2568 /* ??Y?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAAEAV01@AEBV01@@Z */
2569 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_append
, 8)
2570 basic_string_wchar
* __thiscall
MSVCP_basic_string_wchar_append(
2571 basic_string_wchar
*this, const basic_string_wchar
*append
)
2573 return MSVCP_basic_string_wchar_append_substr(this, append
,
2574 0, MSVCP_basic_string_wchar_npos
);
2577 /* ?append@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV12@PB_WI@Z */
2578 /* ?append@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAAEAV12@PEB_W_K@Z */
2579 /* ?append@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV12@PBGI@Z */
2580 /* ?append@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAAEAV12@PEBG_K@Z */
2581 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_append_cstr_len
, 12)
2582 basic_string_wchar
* __thiscall
MSVCP_basic_string_wchar_append_cstr_len(
2583 basic_string_wchar
*this, const wchar_t *append
, MSVCP_size_t count
)
2585 TRACE("%p %s %lu\n", this, debugstr_w(append
), count
);
2587 if(basic_string_wchar_inside(this, append
))
2588 return MSVCP_basic_string_wchar_append_substr(this, this,
2589 append
-basic_string_wchar_ptr(this), count
);
2591 if(MSVCP_basic_string_wchar_npos
-this->size
<=count
|| this->size
+count
<this->size
)
2592 MSVCP__String_base_Xlen();
2594 if(basic_string_wchar_grow(this, this->size
+count
, FALSE
)) {
2595 MSVCP_char_traits_wchar__Copy_s(basic_string_wchar_ptr(this)+this->size
,
2596 this->res
-this->size
, append
, count
);
2597 basic_string_wchar_eos(this, this->size
+count
);
2603 /* ?append@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV12@PB_W@Z */
2604 /* ?append@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAAEAV12@PEB_W@Z */
2605 /* ??Y?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV01@PB_W@Z */
2606 /* ??Y?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAAEAV01@PEB_W@Z */
2607 /* ?append@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV12@PBG@Z */
2608 /* ?append@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAAEAV12@PEBG@Z */
2609 /* ??Y?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV01@PBG@Z */
2610 /* ??Y?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAAEAV01@PEBG@Z */
2611 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_append_cstr
, 8)
2612 basic_string_wchar
* __thiscall
MSVCP_basic_string_wchar_append_cstr(
2613 basic_string_wchar
*this, const wchar_t *append
)
2615 return MSVCP_basic_string_wchar_append_cstr_len(this, append
,
2616 MSVCP_char_traits_wchar_length(append
));
2619 /* ?append@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV12@PB_W0@Z */
2620 /* ?append@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAAEAV12@PEB_W0@Z */
2621 /* ?append@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV12@PBG0@Z */
2622 /* ?append@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAAEAV12@PEBG0@Z */
2623 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_append_beg_end
, 12)
2624 basic_string_wchar
* __thiscall
MSVCP_basic_string_wchar_append_beg_end(
2625 basic_string_wchar
*this, const wchar_t *beg
, const wchar_t *end
)
2627 return MSVCP_basic_string_wchar_append_cstr_len(this, beg
, end
-beg
);
2630 /* ?append@?$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@0@Z */
2631 /* ?append@?$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@0@Z */
2632 /* ?append@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV12@V?$_String_const_iterator@GU?$char_traits@G@std@@V?$allocator@G@2@@2@0@Z */
2633 /* ?append@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAAEAV12@V?$_String_const_iterator@GU?$char_traits@G@std@@V?$allocator@G@2@@2@0@Z */
2634 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_append_iter
, 20)
2635 basic_string_wchar
* __thiscall
MSVCP_basic_string_wchar_append_iter(
2636 basic_string_wchar
*this, String_iterator_wchar beg
, String_iterator_wchar end
)
2638 return MSVCP_basic_string_wchar_append_cstr_len(this, beg
.pos
, end
.pos
-beg
.pos
);
2641 /* ?append@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV12@I_W@Z */
2642 /* ?append@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAAEAV12@_K_W@Z */
2643 /* ?append@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV12@IG@Z */
2644 /* ?append@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAAEAV12@_KG@Z */
2645 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_append_len_ch
, 12)
2646 basic_string_wchar
* __thiscall
MSVCP_basic_string_wchar_append_len_ch(
2647 basic_string_wchar
*this, MSVCP_size_t count
, wchar_t ch
)
2649 TRACE("%p %lu %c\n", this, count
, ch
);
2651 if(MSVCP_basic_string_wchar_npos
-this->size
<= count
)
2652 MSVCP__String_base_Xlen();
2654 if(basic_string_wchar_grow(this, this->size
+count
, FALSE
)) {
2655 MSVCP_char_traits_wchar_assignn(basic_string_wchar_ptr(this)+this->size
, count
, ch
);
2656 basic_string_wchar_eos(this, this->size
+count
);
2662 /* ??Y?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV01@_W@Z */
2663 /* ??Y?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAAEAV01@_W@Z */
2664 /* ?push_back@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEX_W@Z */
2665 /* ?push_back@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAX_W@Z */
2666 /* ??Y?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV01@G@Z */
2667 /* ??Y?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAAEAV01@G@Z */
2668 /* ?push_back@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEXG@Z */
2669 /* ?push_back@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAXG@Z */
2670 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_append_ch
, 8)
2671 basic_string_wchar
* __thiscall
MSVCP_basic_string_wchar_append_ch(
2672 basic_string_wchar
*this, wchar_t ch
)
2674 return MSVCP_basic_string_wchar_append_len_ch(this, 1, ch
);
2677 /* ?compare@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEHIIPB_WI@Z */
2678 /* ?compare@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBAH_K0PEB_W0@Z */
2679 /* ?compare@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEHIIPBGI@Z */
2680 /* ?compare@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBAH_K0PEBG0@Z */
2681 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_compare_substr_cstr_len
, 20)
2682 int __thiscall
MSVCP_basic_string_wchar_compare_substr_cstr_len(
2683 const basic_string_wchar
*this, MSVCP_size_t pos
, MSVCP_size_t num
,
2684 const wchar_t *str
, MSVCP_size_t count
)
2688 TRACE("%p %lu %lu %s %lu\n", this, pos
, num
, debugstr_w(str
), count
);
2690 if(this->size
< pos
)
2691 MSVCP__String_base_Xran();
2693 if(pos
+num
> this->size
)
2694 num
= this->size
-pos
;
2696 ans
= MSVCP_char_traits_wchar_compare(basic_string_wchar_const_ptr(this)+pos
,
2697 str
, num
>count
? count
: num
);
2703 else if(num
< count
)
2708 /* ?compare@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEHIIPB_W@Z */
2709 /* ?compare@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBAH_K0PEB_W@Z */
2710 /* ?compare@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEHIIPBG@Z */
2711 /* ?compare@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBAH_K0PEBG@Z */
2712 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_compare_substr_cstr
, 16)
2713 int __thiscall
MSVCP_basic_string_wchar_compare_substr_cstr(const basic_string_wchar
*this,
2714 MSVCP_size_t pos
, MSVCP_size_t num
, const wchar_t *str
)
2716 return MSVCP_basic_string_wchar_compare_substr_cstr_len(this, pos
, num
,
2717 str
, MSVCP_char_traits_wchar_length(str
));
2720 /* ?compare@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEHPB_W@Z */
2721 /* ?compare@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBAHPEB_W@Z */
2722 /* ?compare@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEHPBG@Z */
2723 /* ?compare@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBAHPEBG@Z */
2724 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_compare_cstr
, 8)
2725 int __thiscall
MSVCP_basic_string_wchar_compare_cstr(
2726 const basic_string_wchar
*this, const wchar_t *str
)
2728 return MSVCP_basic_string_wchar_compare_substr_cstr_len(this, 0, this->size
,
2729 str
, MSVCP_char_traits_wchar_length(str
));
2732 /* ?compare@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEHIIABV12@II@Z */
2733 /* ?compare@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBAH_K0AEBV12@00@Z */
2734 /* ?compare@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEHIIABV12@II@Z */
2735 /* ?compare@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBAH_K0AEBV12@00@Z */
2736 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_compare_substr_substr
, 24)
2737 int __thiscall
MSVCP_basic_string_wchar_compare_substr_substr(
2738 const basic_string_wchar
*this, MSVCP_size_t pos
, MSVCP_size_t num
,
2739 const basic_string_wchar
*compare
, MSVCP_size_t off
, MSVCP_size_t count
)
2741 TRACE("%p %lu %lu %p %lu %lu\n", this, pos
, num
, compare
, off
, count
);
2743 if(compare
->size
< off
)
2744 MSVCP__String_base_Xran();
2746 if(off
+count
> compare
->size
)
2747 count
= compare
->size
-off
;
2749 return MSVCP_basic_string_wchar_compare_substr_cstr_len(this, pos
, num
,
2750 basic_string_wchar_const_ptr(compare
)+off
, count
);
2753 /* ?compare@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEHIIABV12@@Z */
2754 /* ?compare@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBAH_K0AEBV12@@Z */
2755 /* ?compare@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEHIIABV12@@Z */
2756 /* ?compare@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBAH_K0AEBV12@@Z */
2757 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_compare_substr
, 16)
2758 int __thiscall
MSVCP_basic_string_wchar_compare_substr(
2759 const basic_string_wchar
*this, MSVCP_size_t pos
, MSVCP_size_t num
,
2760 const basic_string_wchar
*compare
)
2762 return MSVCP_basic_string_wchar_compare_substr_cstr_len(this, pos
, num
,
2763 basic_string_wchar_const_ptr(compare
), compare
->size
);
2766 /* ?compare@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEHABV12@@Z */
2767 /* ?compare@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBAHAEBV12@@Z */
2768 /* ?compare@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEHABV12@@Z */
2769 /* ?compare@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBAHAEBV12@@Z */
2770 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_compare
, 8)
2771 int __thiscall
MSVCP_basic_string_wchar_compare(
2772 const basic_string_wchar
*this, const basic_string_wchar
*compare
)
2774 return MSVCP_basic_string_wchar_compare_substr_cstr_len(this, 0, this->size
,
2775 basic_string_wchar_const_ptr(compare
), compare
->size
);
2778 /* ?find@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEIPB_WII@Z */
2779 /* ?find@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBA_KPEB_W_K1@Z */
2780 /* ?find@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEIPBGII@Z */
2781 /* ?find@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBA_KPEBG_K1@Z */
2782 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_find_cstr_substr
, 16)
2783 MSVCP_size_t __thiscall
MSVCP_basic_string_wchar_find_cstr_substr(
2784 const basic_string_wchar
*this, const wchar_t *find
, MSVCP_size_t pos
, MSVCP_size_t len
)
2786 const wchar_t *p
, *end
;
2788 TRACE("%p %s %lu %lu\n", this, debugstr_w(find
), pos
, len
);
2790 if(len
==0 && pos
<=this->size
)
2793 end
= basic_string_wchar_const_ptr(this)+this->size
-len
+1;
2794 for(p
=basic_string_wchar_const_ptr(this)+pos
; p
<end
; p
++) {
2795 p
= MSVCP_char_traits_wchar_find(p
, end
-p
, find
);
2799 if(!MSVCP_char_traits_wchar_compare(p
, find
, len
))
2800 return p
-basic_string_wchar_const_ptr(this);
2803 return MSVCP_basic_string_wchar_npos
;
2806 /* ?find@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEIPB_WI@Z */
2807 /* ?find@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBA_KPEB_W_K@Z */
2808 /* ?find@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEIPBGI@Z */
2809 /* ?find@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBA_KPEBG_K@Z */
2810 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_find_cstr_off
, 12)
2811 MSVCP_size_t __thiscall
MSVCP_basic_string_wchar_find_cstr_off(
2812 const basic_string_wchar
*this, const wchar_t *find
, MSVCP_size_t pos
)
2814 return MSVCP_basic_string_wchar_find_cstr_substr(this, find
, pos
,
2815 MSVCP_char_traits_wchar_length(find
));
2818 /* ?find@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEIABV12@I@Z */
2819 /* ?find@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBA_KAEBV12@_K@Z */
2820 /* ?find@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEIABV12@I@Z */
2821 /* ?find@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBA_KAEBV12@_K@Z */
2822 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_find_off
, 12)
2823 MSVCP_size_t __thiscall
MSVCP_basic_string_wchar_find_off(
2824 const basic_string_wchar
*this, const basic_string_wchar
*find
, MSVCP_size_t off
)
2826 return MSVCP_basic_string_wchar_find_cstr_substr(this,
2827 basic_string_wchar_const_ptr(find
), off
, find
->size
);
2830 /* ?find@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEI_WI@Z */
2831 /* ?find@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBA_K_W_K@Z */
2832 /* ?find@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEIGI@Z */
2833 /* ?find@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBA_KG_K@Z */
2834 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_find_ch
, 12)
2835 MSVCP_size_t __thiscall
MSVCP_basic_string_wchar_find_ch(
2836 const basic_string_wchar
*this, wchar_t ch
, MSVCP_size_t pos
)
2838 return MSVCP_basic_string_wchar_find_cstr_substr(this, &ch
, pos
, 1);
2841 /* ?rfind@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEIPB_WII@Z */
2842 /* ?rfind@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBA_KPEB_W_K1@Z */
2843 /* ?rfind@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEIPBGII@Z */
2844 /* ?rfind@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBA_KPEBG_K1@Z */
2845 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_rfind_cstr_substr
, 16)
2846 MSVCP_size_t __thiscall
MSVCP_basic_string_wchar_rfind_cstr_substr(
2847 const basic_string_wchar
*this, const wchar_t *find
, MSVCP_size_t pos
, MSVCP_size_t len
)
2849 const wchar_t *p
, *end
;
2851 TRACE("%p %s %lu %lu\n", this, debugstr_w(find
), pos
, len
);
2854 return pos
<this->size
? pos
: this->size
;
2856 if(len
> this->size
)
2857 return MSVCP_basic_string_wchar_npos
;
2859 if(pos
> this->size
-len
+1)
2860 pos
= this->size
-len
+1;
2861 end
= basic_string_wchar_const_ptr(this);
2862 for(p
=end
+pos
; p
>=end
; p
--) {
2863 if(*p
==*find
&& !MSVCP_char_traits_wchar_compare(p
, find
, len
))
2864 return p
-basic_string_wchar_const_ptr(this);
2867 return MSVCP_basic_string_wchar_npos
;
2870 /* ?rfind@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEIPB_WI@Z */
2871 /* ?rfind@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBA_KPEB_W_K@Z */
2872 /* ?rfind@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEIPBGI@Z */
2873 /* ?rfind@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBA_KPEBG_K@Z */
2874 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_rfind_cstr_off
, 12)
2875 MSVCP_size_t __thiscall
MSVCP_basic_string_wchar_rfind_cstr_off(
2876 const basic_string_wchar
*this, const wchar_t *find
, MSVCP_size_t pos
)
2878 return MSVCP_basic_string_wchar_rfind_cstr_substr(this, find
, pos
,
2879 MSVCP_char_traits_wchar_length(find
));
2882 /* ?rfind@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEIABV12@I@Z */
2883 /* ?rfind@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBA_KAEBV12@_K@Z */
2884 /* ?rfind@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEIABV12@I@Z */
2885 /* ?rfind@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBA_KAEBV12@_K@Z */
2886 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_rfind_off
, 12)
2887 MSVCP_size_t __thiscall
MSVCP_basic_string_wchar_rfind_off(
2888 const basic_string_wchar
*this, const basic_string_wchar
*find
, MSVCP_size_t off
)
2890 return MSVCP_basic_string_wchar_rfind_cstr_substr(this,
2891 basic_string_wchar_const_ptr(find
), off
, find
->size
);
2894 /* ?rfind@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEI_WI@Z */
2895 /* ?rfind@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBA_K_W_K@Z */
2896 /* ?rfind@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEIGI@Z */
2897 /* ?rfind@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBA_KG_K@Z */
2898 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_rfind_ch
, 12)
2899 MSVCP_size_t __thiscall
MSVCP_basic_string_wchar_rfind_ch(
2900 const basic_string_wchar
*this, wchar_t ch
, MSVCP_size_t pos
)
2902 return MSVCP_basic_string_wchar_rfind_cstr_substr(this, &ch
, pos
, 1);
2905 /* ?find_first_of@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEIPB_WII@Z */
2906 /* ?find_first_of@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBA_KPEB_W_K1@Z */
2907 /* ?find_first_of@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEIPBGII@Z */
2908 /* ?find_first_of@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBA_KPEBG_K1@Z */
2909 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_find_first_of_cstr_substr
, 16)
2910 MSVCP_size_t __thiscall
MSVCP_basic_string_wchar_find_first_of_cstr_substr(
2911 const basic_string_wchar
*this, const wchar_t *find
, MSVCP_size_t off
, MSVCP_size_t len
)
2913 const wchar_t *p
, *end
;
2915 TRACE("%p %p %lu %lu\n", this, find
, off
, len
);
2917 if(len
>0 && off
<this->size
) {
2918 end
= basic_string_wchar_const_ptr(this)+this->size
;
2919 for(p
=basic_string_wchar_const_ptr(this)+off
; p
<end
; p
++)
2920 if(MSVCP_char_traits_wchar_find(find
, len
, p
))
2921 return p
-basic_string_wchar_const_ptr(this);
2924 return MSVCP_basic_string_wchar_npos
;
2927 /* ?find_first_of@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEIABV12@I@Z */
2928 /* ?find_first_of@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBA_KAEBV12@_K@Z */
2929 /* ?find_first_of@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEIABV12@I@Z */
2930 /* ?find_first_of@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBA_KAEBV12@_K@Z */
2931 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_find_first_of
, 12)
2932 MSVCP_size_t __thiscall
MSVCP_basic_string_wchar_find_first_of(
2933 const basic_string_wchar
*this, const basic_string_wchar
*find
, MSVCP_size_t off
)
2935 return MSVCP_basic_string_wchar_find_first_of_cstr_substr(this,
2936 basic_string_wchar_const_ptr(find
), off
, find
->size
);
2939 /* ?find_first_of@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEIPB_WI@Z */
2940 /* ?find_first_of@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBA_KPEB_W_K@Z */
2941 /* ?find_first_of@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEIPBGI@Z */
2942 /* ?find_first_of@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBA_KPEBG_K@Z */
2943 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_find_first_of_cstr
, 12)
2944 MSVCP_size_t __thiscall
MSVCP_basic_string_wchar_find_first_of_cstr(
2945 const basic_string_wchar
*this, const wchar_t *find
, MSVCP_size_t off
)
2947 return MSVCP_basic_string_wchar_find_first_of_cstr_substr(
2948 this, find
, off
, MSVCP_char_traits_wchar_length(find
));
2951 /* ?find_first_of@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEI_WI@Z */
2952 /* ?find_first_of@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBA_K_W_K@Z */
2953 /* ?find_first_of@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEIGI@Z */
2954 /* ?find_first_of@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBA_KG_K@Z */
2955 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_find_first_of_ch
, 12)
2956 MSVCP_size_t __thiscall
MSVCP_basic_string_wchar_find_first_of_ch(
2957 const basic_string_wchar
*this, wchar_t ch
, MSVCP_size_t off
)
2959 return MSVCP_basic_string_wchar_find_first_of_cstr_substr(this, &ch
, off
, 1);
2962 /* ?find_first_not_of@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEIPB_WII@Z */
2963 /* ?find_first_not_of@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBA_KPEB_W_K1@Z */
2964 /* ?find_first_not_of@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEIPBGII@Z */
2965 /* ?find_first_not_of@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBA_KPEBG_K1@Z */
2966 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_find_first_not_of_cstr_substr
, 16)
2967 MSVCP_size_t __thiscall
MSVCP_basic_string_wchar_find_first_not_of_cstr_substr(
2968 const basic_string_wchar
*this, const wchar_t *find
, MSVCP_size_t off
, MSVCP_size_t len
)
2970 const wchar_t *p
, *end
;
2972 TRACE("%p %p %lu %lu\n", this, find
, off
, len
);
2974 if(off
<this->size
) {
2975 end
= basic_string_wchar_const_ptr(this)+this->size
;
2976 for(p
=basic_string_wchar_const_ptr(this)+off
; p
<end
; p
++)
2977 if(!MSVCP_char_traits_wchar_find(find
, len
, p
))
2978 return p
-basic_string_wchar_const_ptr(this);
2981 return MSVCP_basic_string_wchar_npos
;
2984 /* ?find_first_not_of@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEIABV12@I@Z */
2985 /* ?find_first_not_of@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBA_KAEBV12@_K@Z */
2986 /* ?find_first_not_of@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEIABV12@I@Z */
2987 /* ?find_first_not_of@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBA_KAEBV12@_K@Z */
2988 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_find_first_not_of
, 12)
2989 MSVCP_size_t __thiscall
MSVCP_basic_string_wchar_find_first_not_of(
2990 const basic_string_wchar
*this, const basic_string_wchar
*find
, MSVCP_size_t off
)
2992 return MSVCP_basic_string_wchar_find_first_not_of_cstr_substr(this,
2993 basic_string_wchar_const_ptr(find
), off
, find
->size
);
2996 /* ?find_first_not_of@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEIPB_WI@Z */
2997 /* ?find_first_not_of@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBA_KPEB_W_K@Z */
2998 /* ?find_first_not_of@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEIPBGI@Z */
2999 /* ?find_first_not_of@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBA_KPEBG_K@Z */
3000 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_find_first_not_of_cstr
, 12)
3001 MSVCP_size_t __thiscall
MSVCP_basic_string_wchar_find_first_not_of_cstr(
3002 const basic_string_wchar
*this, const wchar_t *find
, MSVCP_size_t off
)
3004 return MSVCP_basic_string_wchar_find_first_not_of_cstr_substr(
3005 this, find
, off
, MSVCP_char_traits_wchar_length(find
));
3008 /* ?find_first_not_of@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEI_WI@Z */
3009 /* ?find_first_not_of@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBA_K_W_K@Z */
3010 /* ?find_first_not_of@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEIGI@Z */
3011 /* ?find_first_not_of@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBA_KG_K@Z */
3012 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_find_first_not_of_ch
, 12)
3013 MSVCP_size_t __thiscall
MSVCP_basic_string_wchar_find_first_not_of_ch(
3014 const basic_string_wchar
*this, wchar_t ch
, MSVCP_size_t off
)
3016 return MSVCP_basic_string_wchar_find_first_not_of_cstr_substr(this, &ch
, off
, 1);
3019 /* ?find_last_of@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEIPB_WII@Z */
3020 /* ?find_last_of@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBA_KPEB_W_K1@Z */
3021 /* ?find_last_of@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEIPBGII@Z */
3022 /* ?find_last_of@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBA_KPEBG_K1@Z */
3023 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_find_last_of_cstr_substr
, 16)
3024 MSVCP_size_t __thiscall
MSVCP_basic_string_wchar_find_last_of_cstr_substr(
3025 const basic_string_wchar
*this, const wchar_t *find
, MSVCP_size_t off
, MSVCP_size_t len
)
3027 const wchar_t *p
, *beg
;
3029 TRACE("%p %p %lu %lu\n", this, find
, off
, len
);
3032 if(len
>0 && this->size
>0) {
3033 if(off
>= this->size
)
3036 beg
= basic_string_wchar_const_ptr(this);
3037 for(p
=beg
+off
; p
>=beg
; p
--)
3038 if(MSVCP_char_traits_wchar_find(find
, len
, p
))
3042 return MSVCP_basic_string_wchar_npos
;
3045 /* ?find_last_of@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEIABV12@I@Z */
3046 /* ?find_last_of@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBA_KAEBV12@_K@Z */
3047 /* ?find_last_of@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEIABV12@I@Z */
3048 /* ?find_last_of@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBA_KAEBV12@_K@Z */
3049 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_find_last_of
, 12)
3050 MSVCP_size_t __thiscall
MSVCP_basic_string_wchar_find_last_of(
3051 const basic_string_wchar
*this, const basic_string_wchar
*find
, MSVCP_size_t off
)
3053 return MSVCP_basic_string_wchar_find_last_of_cstr_substr(this,
3054 basic_string_wchar_const_ptr(find
), off
, find
->size
);
3057 /* ?find_last_of@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEIPB_WI@Z */
3058 /* ?find_last_of@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBA_KPEB_W_K@Z */
3059 /* ?find_last_of@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEIPBGI@Z */
3060 /* ?find_last_of@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBA_KPEBG_K@Z */
3061 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_find_last_of_cstr
, 12)
3062 MSVCP_size_t __thiscall
MSVCP_basic_string_wchar_find_last_of_cstr(
3063 const basic_string_wchar
*this, const wchar_t *find
, MSVCP_size_t off
)
3065 return MSVCP_basic_string_wchar_find_last_of_cstr_substr(
3066 this, find
, off
, MSVCP_char_traits_wchar_length(find
));
3069 /* ?find_last_of@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEI_WI@Z */
3070 /* ?find_last_of@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBA_K_W_K@Z */
3071 /* ?find_last_of@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEIGI@Z */
3072 /* ?find_last_of@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBA_KG_K@Z */
3073 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_find_last_of_ch
, 12)
3074 MSVCP_size_t __thiscall
MSVCP_basic_string_wchar_find_last_of_ch(
3075 const basic_string_wchar
*this, wchar_t ch
, MSVCP_size_t off
)
3077 return MSVCP_basic_string_wchar_find_last_of_cstr_substr(this, &ch
, off
, 1);
3080 /* ?find_last_not_of@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEIPB_WII@Z */
3081 /* ?find_last_not_of@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBA_KPEB_W_K1@Z */
3082 /* ?find_last_not_of@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEIPBGII@Z */
3083 /* ?find_last_not_of@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBA_KPEBG_K1@Z */
3084 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_find_last_not_of_cstr_substr
, 16)
3085 MSVCP_size_t __thiscall
MSVCP_basic_string_wchar_find_last_not_of_cstr_substr(
3086 const basic_string_wchar
*this, const wchar_t *find
, MSVCP_size_t off
, MSVCP_size_t len
)
3088 const wchar_t *p
, *beg
;
3090 TRACE("%p %p %lu %lu\n", this, find
, off
, len
);
3092 if(len
>0 && this->size
>0) {
3093 if(off
>= this->size
)
3096 beg
= basic_string_wchar_const_ptr(this);
3097 for(p
=beg
+off
; p
>=beg
; p
--)
3098 if(!MSVCP_char_traits_wchar_find(find
, len
, p
))
3102 return MSVCP_basic_string_wchar_npos
;
3105 /* ?find_last_not_of@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEIABV12@I@Z */
3106 /* ?find_last_not_of@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBA_KAEBV12@_K@Z */
3107 /* ?find_last_not_of@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEIABV12@I@Z */
3108 /* ?find_last_not_of@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBA_KAEBV12@_K@Z */
3109 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_find_last_not_of
, 12)
3110 MSVCP_size_t __thiscall
MSVCP_basic_string_wchar_find_last_not_of(
3111 const basic_string_wchar
*this, const basic_string_wchar
*find
, MSVCP_size_t off
)
3113 return MSVCP_basic_string_wchar_find_last_not_of_cstr_substr(this,
3114 basic_string_wchar_const_ptr(find
), off
, find
->size
);
3117 /* ?find_last_not_of@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEIPB_WI@Z */
3118 /* ?find_last_not_of@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBA_KPEB_W_K@Z */
3119 /* ?find_last_not_of@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEIPBGI@Z */
3120 /* ?find_last_not_of@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBA_KPEBG_K@Z */
3121 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_find_last_not_of_cstr
, 12)
3122 MSVCP_size_t __thiscall
MSVCP_basic_string_wchar_find_last_not_of_cstr(
3123 const basic_string_wchar
*this, const wchar_t *find
, MSVCP_size_t off
)
3125 return MSVCP_basic_string_wchar_find_last_not_of_cstr_substr(
3126 this, find
, off
, MSVCP_char_traits_wchar_length(find
));
3129 /* ?find_last_not_of@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEI_WI@Z */
3130 /* ?find_last_not_of@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBA_K_W_K@Z */
3131 /* ?find_last_not_of@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEIGI@Z */
3132 /* ?find_last_not_of@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBA_KG_K@Z */
3133 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_find_last_not_of_ch
, 12)
3134 MSVCP_size_t __thiscall
MSVCP_basic_string_wchar_find_last_not_of_ch(
3135 const basic_string_wchar
*this, wchar_t ch
, MSVCP_size_t off
)
3137 return MSVCP_basic_string_wchar_find_last_not_of_cstr_substr(this, &ch
, off
, 1);
3140 /* ?replace@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV12@IIPB_WI@Z */
3141 /* ?replace@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAAEAV12@_K0PEB_W0@Z */
3142 /* ?replace@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV12@IIPBGI@Z */
3143 /* ?replace@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAAEAV12@_K0PEBG0@Z */
3144 DEFINE_THISCALL_WRAPPER(basic_string_wchar_replace_cstr_len
, 20)
3145 basic_string_wchar
* __thiscall
basic_string_wchar_replace_cstr_len(basic_string_wchar
*this,
3146 MSVCP_size_t off
, MSVCP_size_t len
, const wchar_t *str
, MSVCP_size_t str_len
)
3148 MSVCP_size_t inside_pos
= -1;
3149 wchar_t *ptr
= basic_string_wchar_ptr(this);
3151 TRACE("%p %ld %ld %p %ld\n", this, off
, len
, str
, str_len
);
3153 if(this->size
< off
)
3154 MSVCP__String_base_Xran();
3156 if(len
> this->size
-off
)
3157 len
= this->size
-off
;
3159 if(MSVCP_basic_string_wchar_npos
-str_len
<= this->size
-len
)
3160 MSVCP__String_base_Xlen();
3162 if(basic_string_wchar_inside(this, str
))
3163 inside_pos
= str
-ptr
;
3166 basic_string_wchar_grow(this, this->size
-len
+str_len
, FALSE
);
3167 ptr
= basic_string_wchar_ptr(this);
3170 if(inside_pos
== -1) {
3171 memmove(ptr
+off
+str_len
, ptr
+off
+len
, (this->size
-off
-len
)*sizeof(wchar_t));
3172 memcpy(ptr
+off
, str
, str_len
*sizeof(wchar_t));
3173 } else if(len
>= str_len
) {
3174 memmove(ptr
+off
, ptr
+inside_pos
, str_len
*sizeof(wchar_t));
3175 memmove(ptr
+off
+str_len
, ptr
+off
+len
, (this->size
-off
-len
)*sizeof(wchar_t));
3179 memmove(ptr
+off
+str_len
, ptr
+off
+len
, (this->size
-off
-len
)*sizeof(wchar_t));
3181 if(inside_pos
< off
+len
) {
3182 size
= off
+len
-inside_pos
;
3185 memmove(ptr
+off
, ptr
+inside_pos
, size
*sizeof(wchar_t));
3191 memmove(ptr
+off
+size
, ptr
+off
+str_len
, (str_len
-size
)*sizeof(wchar_t));
3194 basic_string_wchar_eos(this, this->size
-len
+str_len
);
3198 /* ?replace@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV12@IIPB_W@Z */
3199 /* ?replace@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAAEAV12@_K0PEB_W@Z */
3200 /* ?replace@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV12@IIPBG@Z */
3201 /* ?replace@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAAEAV12@_K0PEBG@Z */
3202 DEFINE_THISCALL_WRAPPER(basic_string_wchar_replace_cstr
, 16)
3203 basic_string_wchar
* __thiscall
basic_string_wchar_replace_cstr(basic_string_wchar
*this,
3204 MSVCP_size_t off
, MSVCP_size_t len
, const wchar_t *str
)
3206 return basic_string_wchar_replace_cstr_len(this, off
, len
, str
,
3207 MSVCP_char_traits_wchar_length(str
));
3210 /* ?replace@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV12@IIABV12@II@Z */
3211 /* ?replace@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAAEAV12@_K0AEBV12@00@Z */
3212 /* ?replace@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV12@IIABV12@II@Z */
3213 /* ?replace@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAAEAV12@_K0AEBV12@00@Z */
3214 DEFINE_THISCALL_WRAPPER(basic_string_wchar_replace_substr
, 24)
3215 basic_string_wchar
* __thiscall
basic_string_wchar_replace_substr(basic_string_wchar
*this, MSVCP_size_t off
,
3216 MSVCP_size_t len
, const basic_string_wchar
*str
, MSVCP_size_t str_off
, MSVCP_size_t str_len
)
3218 if(str
->size
< str_off
)
3219 MSVCP__String_base_Xran();
3221 if(str_off
+str_len
> str
->size
)
3222 str_len
= str
->size
-str_off
;
3224 return basic_string_wchar_replace_cstr_len(this, off
, len
,
3225 basic_string_wchar_const_ptr(str
)+str_off
, str_len
);
3228 /* ?replace@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV12@IIABV12@@Z */
3229 /* ?replace@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAAEAV12@_K0AEBV12@@Z */
3230 /* ?replace@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV12@IIABV12@@Z */
3231 /* ?replace@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAAEAV12@_K0AEBV12@@Z */
3232 DEFINE_THISCALL_WRAPPER(basic_string_wchar_replace
, 16)
3233 basic_string_wchar
* __thiscall
basic_string_wchar_replace(basic_string_wchar
*this,
3234 MSVCP_size_t off
, MSVCP_size_t len
, const basic_string_wchar
*str
)
3236 return basic_string_wchar_replace_cstr_len(this, off
, len
,
3237 basic_string_wchar_const_ptr(str
), str
->size
);
3240 /* ?replace@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV12@III_W@Z */
3241 /* ?replace@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAAEAV12@_K00_W@Z */
3242 /* ?replace@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV12@IIIG@Z */
3243 /* ?replace@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAAEAV12@_K00G@Z */
3244 DEFINE_THISCALL_WRAPPER(basic_string_wchar_replace_ch
, 20)
3245 basic_string_wchar
* __thiscall
basic_string_wchar_replace_ch(basic_string_wchar
*this,
3246 MSVCP_size_t off
, MSVCP_size_t len
, MSVCP_size_t count
, wchar_t ch
)
3248 wchar_t *ptr
= basic_string_wchar_ptr(this);
3250 TRACE("%p %ld %ld %ld %c\n", this, off
, len
, count
, ch
);
3252 if(this->size
< off
)
3253 MSVCP__String_base_Xran();
3255 if(len
> this->size
-off
)
3256 len
= this->size
-off
;
3258 if(MSVCP_basic_string_wchar_npos
-count
<= this->size
-len
)
3259 MSVCP__String_base_Xlen();
3262 basic_string_wchar_grow(this, this->size
-len
+count
, FALSE
);
3263 ptr
= basic_string_wchar_ptr(this);
3266 memmove(ptr
+off
+count
, ptr
+off
+len
, (this->size
-off
-len
)*sizeof(wchar_t));
3267 MSVCP_char_traits_wchar_assignn(ptr
+off
, count
, ch
);
3268 basic_string_wchar_eos(this, this->size
-len
+count
);
3273 /* ?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@000@Z */
3274 /* ?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@000@Z */
3275 /* ?replace@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV12@V?$_String_const_iterator@GU?$char_traits@G@std@@V?$allocator@G@2@@2@000@Z */
3276 /* ?replace@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAAEAV12@V?$_String_const_iterator@GU?$char_traits@G@std@@V?$allocator@G@2@@2@000@Z */
3277 DEFINE_THISCALL_WRAPPER(basic_string_wchar_replace_iter_iter
, 36)
3278 basic_string_wchar
* __thiscall
basic_string_wchar_replace_iter_iter(basic_string_wchar
*this,
3279 String_iterator_wchar beg
, String_iterator_wchar end
,
3280 String_iterator_wchar res_beg
, String_iterator_wchar res_end
)
3282 String_iterator_wchar begin
= { this, basic_string_wchar_ptr(this) };
3283 return basic_string_wchar_replace_cstr_len(this,
3284 MSVCP_basic_string_wchar_Pdif(beg
, begin
), MSVCP_basic_string_wchar_Pdif(end
, beg
),
3285 res_beg
.pos
, MSVCP_basic_string_wchar_Pdif(res_end
, res_beg
));
3288 /* ?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@0ABV12@@Z */
3289 /* ?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@0AEBV12@@Z */
3290 /* ?replace@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV12@V?$_String_const_iterator@GU?$char_traits@G@std@@V?$allocator@G@2@@2@0ABV12@@Z */
3291 /* ?replace@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAAEAV12@V?$_String_const_iterator@GU?$char_traits@G@std@@V?$allocator@G@2@@2@0AEBV12@@Z */
3292 DEFINE_THISCALL_WRAPPER(basic_string_wchar_replace_iter_bstr
, 24)
3293 basic_string_wchar
* __thiscall
basic_string_wchar_replace_iter_bstr(basic_string_wchar
*this,
3294 String_iterator_wchar beg
, String_iterator_wchar end
, const basic_string_wchar
*str
)
3296 String_iterator_wchar begin
= { this, basic_string_wchar_ptr(this) };
3297 return basic_string_wchar_replace(this, MSVCP_basic_string_wchar_Pdif(beg
, begin
),
3298 MSVCP_basic_string_wchar_Pdif(end
, beg
), str
);
3301 /* ?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@0I_W@Z */
3302 /* ?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@0_K_W@Z */
3303 /* ?replace@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV12@V?$_String_const_iterator@GU?$char_traits@G@std@@V?$allocator@G@2@@2@0IG@Z */
3304 /* ?replace@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAAEAV12@V?$_String_const_iterator@GU?$char_traits@G@std@@V?$allocator@G@2@@2@0_KG@Z */
3305 DEFINE_THISCALL_WRAPPER(basic_string_wchar_replace_iter_ch
, 28)
3306 basic_string_wchar
* __thiscall
basic_string_wchar_replace_iter_ch(basic_string_wchar
*this,
3307 String_iterator_wchar beg
, String_iterator_wchar end
, MSVCP_size_t count
, wchar_t ch
)
3309 String_iterator_wchar begin
= { this, basic_string_wchar_ptr(this) };
3310 return basic_string_wchar_replace_ch(this, MSVCP_basic_string_wchar_Pdif(beg
, begin
),
3311 MSVCP_basic_string_wchar_Pdif(end
, beg
), count
, ch
);
3314 /* ?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 */
3315 /* ?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 */
3316 /* ?replace@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV12@V?$_String_const_iterator@GU?$char_traits@G@std@@V?$allocator@G@2@@2@0PBG1@Z */
3317 /* ?replace@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAAEAV12@V?$_String_const_iterator@GU?$char_traits@G@std@@V?$allocator@G@2@@2@0PEBG1@Z */
3318 DEFINE_THISCALL_WRAPPER(basic_string_wchar_replace_iter_ptr_ptr
, 28)
3319 basic_string_wchar
* __thiscall
basic_string_wchar_replace_iter_ptr_ptr(basic_string_wchar
*this,
3320 String_iterator_wchar beg
, String_iterator_wchar end
,
3321 const wchar_t *res_beg
, const wchar_t *res_end
)
3323 String_iterator_wchar begin
= { this, basic_string_wchar_ptr(this) };
3324 return basic_string_wchar_replace_cstr_len(this, MSVCP_basic_string_wchar_Pdif(beg
, begin
),
3325 MSVCP_basic_string_wchar_Pdif(end
, beg
), res_beg
, res_end
-res_beg
);
3328 /* ?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_W@Z */
3329 /* ?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_W@Z */
3330 /* ?replace@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV12@V?$_String_const_iterator@GU?$char_traits@G@std@@V?$allocator@G@2@@2@0PBG@Z */
3331 /* ?replace@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAAEAV12@V?$_String_const_iterator@GU?$char_traits@G@std@@V?$allocator@G@2@@2@0PEBG@Z */
3332 DEFINE_THISCALL_WRAPPER(basic_string_wchar_replace_iter_cstr
, 24)
3333 basic_string_wchar
* __thiscall
basic_string_wchar_replace_iter_cstr(basic_string_wchar
*this,
3334 String_iterator_wchar beg
, String_iterator_wchar end
, const wchar_t *str
)
3336 String_iterator_wchar begin
= { this, basic_string_wchar_ptr(this) };
3337 return basic_string_wchar_replace_cstr(this, MSVCP_basic_string_wchar_Pdif(beg
, begin
),
3338 MSVCP_basic_string_wchar_Pdif(end
, beg
), str
);
3341 /* ?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_WI@Z */
3342 /* ?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_W_K@Z */
3343 /* ?replace@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV12@V?$_String_const_iterator@GU?$char_traits@G@std@@V?$allocator@G@2@@2@0PBGI@Z */
3344 /* ?replace@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAAEAV12@V?$_String_const_iterator@GU?$char_traits@G@std@@V?$allocator@G@2@@2@0PEBG_K@Z */
3345 DEFINE_THISCALL_WRAPPER(basic_string_wchar_replace_iter_cstr_len
, 28)
3346 basic_string_wchar
* __thiscall
basic_string_wchar_replace_iter_cstr_len(basic_string_wchar
*this,
3347 String_iterator_wchar beg
, String_iterator_wchar end
, const wchar_t *str
, MSVCP_size_t len
)
3349 String_iterator_wchar begin
= { this, basic_string_wchar_ptr(this) };
3350 return basic_string_wchar_replace_cstr_len(this, MSVCP_basic_string_wchar_Pdif(beg
, begin
),
3351 MSVCP_basic_string_wchar_Pdif(end
, beg
), str
, len
);
3354 /* ?insert@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV12@IABV12@@Z */
3355 /* ?insert@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAAEAV12@_KAEBV12@@Z */
3356 /* ?insert@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV12@IABV12@@Z */
3357 /* ?insert@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAAEAV12@_KAEBV12@@Z */
3358 DEFINE_THISCALL_WRAPPER(basic_string_wchar_insert
, 12)
3359 basic_string_wchar
* __thiscall
basic_string_wchar_insert(basic_string_wchar
*this,
3360 MSVCP_size_t off
, const basic_string_wchar
*str
)
3362 return basic_string_wchar_replace(this, off
, 0, str
);
3365 /* ?insert@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV12@IABV12@II@Z */
3366 /* ?insert@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAAEAV12@_KAEBV12@00@Z */
3367 /* ?insert@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV12@IABV12@II@Z */
3368 /* ?insert@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAAEAV12@_KAEBV12@00@Z */
3369 DEFINE_THISCALL_WRAPPER(basic_string_wchar_insert_substr
, 20)
3370 basic_string_wchar
* __thiscall
basic_string_wchar_insert_substr(
3371 basic_string_wchar
*this, MSVCP_size_t off
, const basic_string_wchar
*str
,
3372 MSVCP_size_t str_off
, MSVCP_size_t str_count
)
3374 return basic_string_wchar_replace_substr(this, off
, 0, str
, str_off
, str_count
);
3377 /* ?insert@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV12@IPB_W@Z */
3378 /* ?insert@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAAEAV12@_KPEB_W@Z */
3379 /* ?insert@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV12@IPBG@Z */
3380 /* ?insert@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAAEAV12@_KPEBG@Z */
3381 DEFINE_THISCALL_WRAPPER(basic_string_wchar_insert_cstr
, 12)
3382 basic_string_wchar
* __thiscall
basic_string_wchar_insert_cstr(
3383 basic_string_wchar
*this, MSVCP_size_t off
, const wchar_t *str
)
3385 return basic_string_wchar_replace_cstr(this, off
, 0, str
);
3388 /* ?insert@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV12@IPB_WI@Z */
3389 /* ?insert@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAAEAV12@_KPEB_W0@Z */
3390 /* ?insert@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV12@IPBGI@Z */
3391 /* ?insert@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAAEAV12@_KPEBG0@Z */
3392 DEFINE_THISCALL_WRAPPER(basic_string_wchar_insert_cstr_len
, 16)
3393 basic_string_wchar
* __thiscall
basic_string_wchar_insert_cstr_len(basic_string_wchar
*this,
3394 MSVCP_size_t off
, const wchar_t *str
, MSVCP_size_t str_len
)
3396 return basic_string_wchar_replace_cstr_len(this, off
, 0, str
, str_len
);
3399 /* ?insert@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV12@II_W@Z */
3400 /* ?insert@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAAEAV12@_K0_W@Z */
3401 /* ?insert@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV12@IIG@Z */
3402 /* ?insert@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAAEAV12@_K0G@Z */
3403 DEFINE_THISCALL_WRAPPER(basic_string_wchar_insert_chn
, 16)
3404 basic_string_wchar
* __thiscall
basic_string_wchar_insert_chn(basic_string_wchar
*this,
3405 MSVCP_size_t off
, MSVCP_size_t count
, wchar_t ch
)
3407 return basic_string_wchar_replace_ch(this, off
, 0, count
, ch
);
3410 /* ?insert@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEXV?$_String_const_iterator@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@2@I_W@Z */
3411 /* ?insert@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAXV?$_String_const_iterator@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@2@_K_W@Z */
3412 /* ?insert@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEXV?$_String_const_iterator@GU?$char_traits@G@std@@V?$allocator@G@2@@2@IG@Z */
3413 /* ?insert@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAXV?$_String_const_iterator@GU?$char_traits@G@std@@V?$allocator@G@2@@2@_KG@Z */
3414 DEFINE_THISCALL_WRAPPER(basic_string_wchar_insert_iter_chn
, 20)
3415 void __thiscall
basic_string_wchar_insert_iter_chn(basic_string_wchar
*this,
3416 String_iterator_wchar where
, MSVCP_size_t count
, wchar_t ch
)
3418 String_iterator_wchar iter
= { this, basic_string_wchar_ptr(this) };
3419 MSVCP_size_t off
= MSVCP_basic_string_wchar_Pdif(where
, iter
);
3421 basic_string_wchar_insert_chn(this, off
, count
, ch
);
3424 /* ?insert@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE?AV?$_String_iterator@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@2@V?$_String_const_iterator@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@2@_W@Z */
3425 /* ?insert@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAA?AV?$_String_iterator@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@2@V?$_String_const_iterator@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@2@_W@Z */
3426 /* ?insert@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAE?AV?$_String_iterator@GU?$char_traits@G@std@@V?$allocator@G@2@@2@V?$_String_const_iterator@GU?$char_traits@G@std@@V?$allocator@G@2@@2@G@Z */
3427 /* ?insert@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAA?AV?$_String_iterator@GU?$char_traits@G@std@@V?$allocator@G@2@@2@V?$_String_const_iterator@GU?$char_traits@G@std@@V?$allocator@G@2@@2@G@Z */
3428 DEFINE_THISCALL_WRAPPER(basic_string_wchar_insert_iter_ch
, 20)
3429 String_iterator_wchar
* __thiscall
basic_string_wchar_insert_iter_ch(basic_string_wchar
*this,
3430 String_iterator_wchar
*ret
, String_iterator_wchar where
, wchar_t ch
)
3435 ret
->pos
= basic_string_wchar_ptr(this);
3436 off
= MSVCP_basic_string_wchar_Pdif(where
, *ret
);
3438 basic_string_wchar_insert_chn(this, off
, 1, ch
);
3439 ret
->pos
= basic_string_wchar_ptr(this)+off
;
3443 /* ?insert@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE?AV?$_String_iterator@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@2@V?$_String_const_iterator@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@2@@Z */
3444 /* ?insert@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAA?AV?$_String_iterator@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@2@V?$_String_const_iterator@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@2@@Z */
3445 /* ?insert@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAE?AV?$_String_iterator@GU?$char_traits@G@std@@V?$allocator@G@2@@2@V?$_String_const_iterator@GU?$char_traits@G@std@@V?$allocator@G@2@@2@@Z */
3446 /* ?insert@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAA?AV?$_String_iterator@GU?$char_traits@G@std@@V?$allocator@G@2@@2@V?$_String_const_iterator@GU?$char_traits@G@std@@V?$allocator@G@2@@2@@Z */
3447 DEFINE_THISCALL_WRAPPER(basic_string_wchar_insert_iter_null
, 16)
3448 String_iterator_wchar
* __thiscall
basic_string_wchar_insert_iter_null(basic_string_wchar
*this,
3449 String_iterator_wchar
*ret
, String_iterator_wchar where
)
3451 return basic_string_wchar_insert_iter_ch(this, ret
, where
, 0);
3454 /* ?insert@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEXV?$_String_const_iterator@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@2@00@Z */
3455 /* ?insert@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAXV?$_String_const_iterator@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@2@00@Z */
3456 /* ?insert@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEXV?$_String_const_iterator@GU?$char_traits@G@std@@V?$allocator@G@2@@2@00@Z */
3457 /* ?insert@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAXV?$_String_const_iterator@GU?$char_traits@G@std@@V?$allocator@G@2@@2@00@Z */
3458 DEFINE_THISCALL_WRAPPER(basic_string_wchar_insert_iter_beg_end
, 28)
3459 void __thiscall
basic_string_wchar_insert_iter_beg_end(basic_string_wchar
*this,
3460 String_iterator_wchar where
, String_iterator_wchar beg
, String_iterator_wchar end
)
3462 basic_string_wchar_replace_iter_iter(this, where
, where
, beg
, end
);
3465 /* ?insert@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEXV?$_String_const_iterator@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@2@PB_W1@Z */
3466 /* ?insert@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAXV?$_String_const_iterator@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@2@PEB_W1@Z */
3467 /* ?insert@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEXV?$_String_const_iterator@GU?$char_traits@G@std@@V?$allocator@G@2@@2@PBG1@Z */
3468 /* ?insert@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAXV?$_String_const_iterator@GU?$char_traits@G@std@@V?$allocator@G@2@@2@PEBG1@Z */
3469 DEFINE_THISCALL_WRAPPER(basic_string_wchar_insert_iter_ptr_ptr
, 20)
3470 void __thiscall
basic_string_wchar_insert_iter_ptr_ptr(basic_string_wchar
*this,
3471 String_iterator_wchar where
, const wchar_t *beg
, const wchar_t *end
)
3473 basic_string_wchar_replace_iter_ptr_ptr(this, where
, where
, beg
, end
);
3476 /* ??A?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAA_WI@Z */
3477 /* ??A?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAAEA_W_K@Z */
3478 /* ??A?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAGI@Z */
3479 /* ??A?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAAEAG_K@Z */
3480 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_operator_at
, 8)
3481 wchar_t* __thiscall
MSVCP_basic_string_wchar_operator_at(
3482 basic_string_wchar
*this, MSVCP_size_t pos
)
3484 TRACE("%p %lu\n", this, pos
);
3486 assert(this->size
>= pos
);
3487 return basic_string_wchar_ptr(this)+pos
;
3490 /* ??A?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEAB_WI@Z */
3491 /* ??A?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBAAEB_W_K@Z */
3492 /* ??A?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEABGI@Z */
3493 /* ??A?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBAAEBG_K@Z */
3494 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_const_operator_at
, 8)
3495 const wchar_t* __thiscall
MSVCP_basic_string_wchar_const_operator_at(
3496 const basic_string_wchar
*this, MSVCP_size_t pos
)
3498 TRACE("%p %lu\n", this, pos
);
3500 assert(this->size
>= pos
);
3501 return basic_string_wchar_const_ptr(this)+pos
;
3504 /* ??A?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAA_WU_Size_type_nosscl@01@@Z */
3505 /* ??A?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAAEA_WU_Size_type_nosscl@01@@Z */
3506 /* ??A?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAGU_Size_type_nosscl@01@@Z */
3507 /* ??A?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAAEAGU_Size_type_nosscl@01@@Z */
3508 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_operator_at_noverify
, 8)
3509 wchar_t* __thiscall
MSVCP_basic_string_wchar_operator_at_noverify(
3510 basic_string_wchar
*this, size_t_noverify pos
)
3512 TRACE("%p %lu\n", this, pos
.val
);
3513 return basic_string_wchar_ptr(this)+pos
.val
;
3516 /* ??A?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEAB_WU_Size_type_nosscl@01@@Z */
3517 /* ??A?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBAAEB_WU_Size_type_nosscl@01@@Z */
3518 /* ??A?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEABGU_Size_type_nosscl@01@@Z */
3519 /* ??A?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBAAEBGU_Size_type_nosscl@01@@Z */
3520 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_operator_const_at_noverify
, 8)
3521 const wchar_t* __thiscall
MSVCP_basic_string_wchar_operator_const_at_noverify(
3522 const basic_string_wchar
*this, size_t_noverify pos
)
3524 TRACE("%p %lu\n", this, pos
.val
);
3525 return basic_string_wchar_const_ptr(this)+pos
.val
;
3528 /* ?at@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAA_WI@Z */
3529 /* ?at@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAAEA_W_K@Z */
3530 /* ?at@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAGI@Z */
3531 /* ?at@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAAEAG_K@Z */
3532 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_at
, 8)
3533 wchar_t* __thiscall
MSVCP_basic_string_wchar_at(
3534 basic_string_wchar
*this, MSVCP_size_t pos
)
3536 TRACE("%p %lu\n", this, pos
);
3538 if(this->size
<= pos
)
3539 MSVCP__String_base_Xran();
3541 return basic_string_wchar_ptr(this)+pos
;
3544 /* ?at@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEAB_WI@Z */
3545 /* ?at@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBAAEB_W_K@Z */
3546 /* ?at@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEABGI@Z */
3547 /* ?at@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBAAEBG_K@Z */
3548 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_const_at
, 8)
3549 const wchar_t* __thiscall
MSVCP_basic_string_wchar_const_at(
3550 const basic_string_wchar
*this, MSVCP_size_t pos
)
3552 TRACE("%p %lu\n", this, pos
);
3554 if(this->size
<= pos
)
3555 MSVCP__String_base_Xran();
3557 return basic_string_wchar_const_ptr(this)+pos
;
3560 /* ?resize@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEXI_W@Z */
3561 /* ?resize@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAX_K_W@Z */
3562 /* ?resize@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEXIG@Z */
3563 /* ?resize@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAX_KG@Z */
3564 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_resize_ch
, 12)
3565 void __thiscall
MSVCP_basic_string_wchar_resize_ch(
3566 basic_string_wchar
*this, MSVCP_size_t size
, wchar_t ch
)
3568 TRACE("%p %lu %c\n", this, size
, ch
);
3570 if(size
<= this->size
)
3571 MSVCP_basic_string_wchar_erase(this, size
, this->size
);
3573 MSVCP_basic_string_wchar_append_len_ch(this, size
-this->size
, ch
);
3576 /* ?resize@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEXI@Z */
3577 /* ?resize@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAX_K@Z */
3578 /* ?resize@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEXI@Z */
3579 /* ?resize@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAX_K@Z */
3580 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_resize
, 8)
3581 void __thiscall
MSVCP_basic_string_wchar_resize(
3582 basic_string_wchar
*this, MSVCP_size_t size
)
3584 MSVCP_basic_string_wchar_resize_ch(this, size
, '\0');
3587 /* ?clear@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEXXZ */
3588 /* ?clear@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAXXZ */
3589 /* ?clear@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEXXZ */
3590 /* ?clear@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAXXZ */
3591 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_clear
, 4)
3592 void __thiscall
MSVCP_basic_string_wchar_clear(basic_string_wchar
*this)
3594 basic_string_wchar_eos(this, 0);
3597 /* ?begin@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE?AV?$_String_iterator@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@2@XZ */
3598 /* ?begin@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAA?AV?$_String_iterator@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@2@XZ */
3599 /* ?begin@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBE?AV?$_String_const_iterator@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@2@XZ */
3600 /* ?begin@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBA?AV?$_String_const_iterator@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@2@XZ */
3601 /* ?begin@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAE?AV?$_String_iterator@GU?$char_traits@G@std@@V?$allocator@G@2@@2@XZ */
3602 /* ?begin@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAA?AV?$_String_iterator@GU?$char_traits@G@std@@V?$allocator@G@2@@2@XZ */
3603 /* ?begin@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBE?AV?$_String_const_iterator@GU?$char_traits@G@std@@V?$allocator@G@2@@2@XZ */
3604 /* ?begin@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBA?AV?$_String_const_iterator@GU?$char_traits@G@std@@V?$allocator@G@2@@2@XZ */
3605 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_begin
, 8)
3606 String_iterator_wchar
* __thiscall
MSVCP_basic_string_wchar_begin(
3607 basic_string_wchar
*this, String_iterator_wchar
*ret
)
3609 TRACE("%p\n", this);
3612 ret
->pos
= basic_string_wchar_const_ptr(this);
3616 /* ?end@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE?AV?$_String_iterator@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@2@XZ */
3617 /* ?end@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAA?AV?$_String_iterator@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@2@XZ */
3618 /* ?end@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBE?AV?$_String_const_iterator@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@2@XZ */
3619 /* ?end@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBA?AV?$_String_const_iterator@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@2@XZ */
3620 /* ?end@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAE?AV?$_String_iterator@GU?$char_traits@G@std@@V?$allocator@G@2@@2@XZ */
3621 /* ?end@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAA?AV?$_String_iterator@GU?$char_traits@G@std@@V?$allocator@G@2@@2@XZ */
3622 /* ?end@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBE?AV?$_String_const_iterator@GU?$char_traits@G@std@@V?$allocator@G@2@@2@XZ */
3623 /* ?end@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBA?AV?$_String_const_iterator@GU?$char_traits@G@std@@V?$allocator@G@2@@2@XZ */
3624 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_end
, 8)
3625 String_iterator_wchar
* __thiscall
MSVCP_basic_string_wchar_end(
3626 basic_string_wchar
*this, String_iterator_wchar
*ret
)
3628 TRACE("%p\n", this);
3631 ret
->pos
= basic_string_wchar_const_ptr(this)+this->size
;
3635 /* ?rbegin@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE?AV?$reverse_iterator@V?$_String_iterator@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@@2@XZ */
3636 /* ?rbegin@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAA?AV?$reverse_iterator@V?$_String_iterator@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@@2@XZ */
3637 /* ?rbegin@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBE?AV?$reverse_iterator@V?$_String_const_iterator@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@@2@XZ */
3638 /* ?rbegin@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBA?AV?$reverse_iterator@V?$_String_const_iterator@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@@2@XZ */
3639 /* ?rbegin@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAE?AV?$reverse_iterator@V?$_String_iterator@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@@2@XZ */
3640 /* ?rbegin@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAA?AV?$reverse_iterator@V?$_String_iterator@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@@2@XZ */
3641 /* ?rbegin@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBE?AV?$reverse_iterator@V?$_String_const_iterator@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@@2@XZ */
3642 /* ?rbegin@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBA?AV?$reverse_iterator@V?$_String_const_iterator@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@@2@XZ */
3643 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_rbegin
, 8)
3644 String_reverse_iterator_wchar
* __thiscall
MSVCP_basic_string_wchar_rbegin(
3645 basic_string_wchar
*this, String_reverse_iterator_wchar
*ret
)
3647 TRACE("%p\n", this);
3650 ret
->pos
= basic_string_wchar_const_ptr(this)+this->size
;
3654 /* ?rend@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE?AV?$reverse_iterator@V?$_String_iterator@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@@2@XZ */
3655 /* ?rend@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAA?AV?$reverse_iterator@V?$_String_iterator@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@@2@XZ */
3656 /* ?rend@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBE?AV?$reverse_iterator@V?$_String_const_iterator@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@@2@XZ */
3657 /* ?rend@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBA?AV?$reverse_iterator@V?$_String_const_iterator@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@@2@XZ */
3658 /* ?rend@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAE?AV?$reverse_iterator@V?$_String_iterator@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@@2@XZ */
3659 /* ?rend@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAA?AV?$reverse_iterator@V?$_String_iterator@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@@2@XZ */
3660 /* ?rend@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBE?AV?$reverse_iterator@V?$_String_const_iterator@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@@2@XZ */
3661 /* ?rend@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBA?AV?$reverse_iterator@V?$_String_const_iterator@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@@2@XZ */
3662 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_rend
, 8)
3663 String_reverse_iterator_wchar
* __thiscall
MSVCP_basic_string_wchar_rend(
3664 basic_string_wchar
*this, String_reverse_iterator_wchar
*ret
)
3666 TRACE("%p\n", this);
3669 ret
->pos
= basic_string_wchar_const_ptr(this);
3673 /* _String_val class */
3674 /* ??_F?$_String_val@DV?$allocator@D@std@@@std@@QAEXXZ */
3675 /* ??_F?$_String_val@DV?$allocator@D@std@@@std@@QEAAXXZ */
3676 /* ??_F?$_String_val@GV?$allocator@G@std@@@std@@QAEXXZ */
3677 /* ??_F?$_String_val@GV?$allocator@G@std@@@std@@QEAAXXZ */
3678 /* ??_F?$_String_val@_WV?$allocator@_W@std@@@std@@QAEXXZ */
3679 /* ??_F?$_String_val@_WV?$allocator@_W@std@@@std@@QEAAXXZ */
3680 DEFINE_THISCALL_WRAPPER(_String_val_ctor
, 4)
3681 void* __thiscall
_String_val_ctor(void *this)
3683 TRACE("%p\n", this);
3687 /* ??0?$_String_val@DV?$allocator@D@std@@@std@@IAE@V?$allocator@D@1@@Z */
3688 /* ??0?$_String_val@DV?$allocator@D@std@@@std@@IEAA@V?$allocator@D@1@@Z */
3689 /* ??0?$_String_val@GV?$allocator@G@std@@@std@@IAE@V?$allocator@G@1@@Z */
3690 /* ??0?$_String_val@GV?$allocator@G@std@@@std@@IEAA@V?$allocator@G@1@@Z */
3691 /* ??0?$_String_val@_WV?$allocator@_W@std@@@std@@IAE@V?$allocator@_W@1@@Z */
3692 /* ??0?$_String_val@_WV?$allocator@_W@std@@@std@@IEAA@V?$allocator@_W@1@@Z */
3693 /* ??0?$_String_val@DV?$allocator@D@std@@@std@@QAE@ABV01@@Z */
3694 /* ??0?$_String_val@DV?$allocator@D@std@@@std@@QEAA@AEBV01@@Z */
3695 /* ??0?$_String_val@GV?$allocator@G@std@@@std@@QAE@ABV01@@Z */
3696 /* ??0?$_String_val@GV?$allocator@G@std@@@std@@QEAA@AEBV01@@Z */
3697 /* ??0?$_String_val@_WV?$allocator@_W@std@@@std@@QAE@ABV01@@Z */
3698 /* ??0?$_String_val@_WV?$allocator@_W@std@@@std@@QEAA@AEBV01@@Z */
3699 /* ??4?$_String_val@DV?$allocator@D@std@@@std@@QAEAAV01@ABV01@@Z */
3700 /* ??4?$_String_val@DV?$allocator@D@std@@@std@@QEAAAEAV01@AEBV01@@Z */
3701 /* ??4?$_String_val@GV?$allocator@G@std@@@std@@QAEAAV01@ABV01@@Z */
3702 /* ??4?$_String_val@GV?$allocator@G@std@@@std@@QEAAAEAV01@AEBV01@@Z */
3703 /* ??4?$_String_val@_WV?$allocator@_W@std@@@std@@QAEAAV01@ABV01@@Z */
3704 /* ??4?$_String_val@_WV?$allocator@_W@std@@@std@@QEAAAEAV01@AEBV01@@Z */
3705 /* ??4?$_String_val@DV?$allocator@D@std@@@std@@QAEAAV01@ABV01@@Z */
3706 DEFINE_THISCALL_WRAPPER(_String_val_null_ctor
, 8)
3707 void* __thiscall
_String_val_null_ctor(void *this, const void *misc
)
3709 TRACE("%p %p\n", this, misc
);