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
;
40 const basic_string_char
*bstr
;
42 } basic_string_char_reverse_iter
;
45 basic_string_wchar
*bstr
;
47 } String_iterator_wchar
;
51 const basic_string_wchar
*bstr
;
53 } basic_string_wchar_reverse_iter
;
55 /* size_t_noverify structure */
65 /* char_traits<char> */
66 /* ?assign@?$char_traits@D@std@@SAXAADABD@Z */
67 /* ?assign@?$char_traits@D@std@@SAXAEADAEBD@Z */
68 void CDECL
MSVCP_char_traits_char_assign(char *ch
, const char *assign
)
73 /* ?eq@?$char_traits@D@std@@SA_NABD0@Z */
74 /* ?eq@?$char_traits@D@std@@SA_NAEBD0@Z */
75 MSVCP_bool CDECL
MSVCP_char_traits_char_eq(const char *ch1
, const char *ch2
)
80 /* ?lt@?$char_traits@D@std@@SA_NABD0@Z */
81 /* ?lt@?$char_traits@D@std@@SA_NAEBD0@Z */
82 MSVCP_bool CDECL
MSVCP_char_traits_lt(const char *ch1
, const char *ch2
)
87 /* ?compare@?$char_traits@D@std@@SAHPBD0I@Z */
88 /* ?compare@?$char_traits@D@std@@SAHPEBD0_K@Z */
89 int CDECL
MSVCP_char_traits_char_compare(
90 const char *s1
, const char *s2
, MSVCP_size_t count
)
92 int ret
= memcmp(s1
, s2
, count
);
93 return (ret
>0 ? 1 : (ret
<0 ? -1 : 0));
96 /* ?length@?$char_traits@D@std@@SAIPBD@Z */
97 /* ?length@?$char_traits@D@std@@SA_KPEBD@Z */
98 MSVCP_size_t CDECL
MSVCP_char_traits_char_length(const char *str
)
103 /* ?_Copy_s@?$char_traits@D@std@@SAPADPADIPBDI@Z */
104 /* ?_Copy_s@?$char_traits@D@std@@SAPEADPEAD_KPEBD1@Z */
105 char* CDECL
MSVCP_char_traits_char__Copy_s(char *dest
,
106 MSVCP_size_t size
, const char *src
, MSVCP_size_t count
)
108 if(!dest
|| !src
|| size
<count
) {
111 _invalid_parameter(NULL
, NULL
, NULL
, 0, 0);
115 return memcpy(dest
, src
, count
);
118 /* ?copy@?$char_traits@D@std@@SAPADPADPBDI@Z */
119 /* ?copy@?$char_traits@D@std@@SAPEADPEADPEBD_K@Z */
120 char* CDECL
MSVCP_char_traits_char_copy(
121 char *dest
, const char *src
, MSVCP_size_t count
)
123 return MSVCP_char_traits_char__Copy_s(dest
, count
, src
, count
);
126 /* ?find@?$char_traits@D@std@@SAPBDPBDIABD@Z */
127 /* ?find@?$char_traits@D@std@@SAPEBDPEBD_KAEBD@Z */
128 const char * CDECL
MSVCP_char_traits_char_find(
129 const char *str
, MSVCP_size_t range
, const char *c
)
131 return memchr(str
, *c
, range
);
134 /* ?_Move_s@?$char_traits@D@std@@SAPADPADIPBDI@Z */
135 /* ?_Move_s@?$char_traits@D@std@@SAPEADPEAD_KPEBD1@Z */
136 char* CDECL
MSVCP_char_traits_char__Move_s(char *dest
,
137 MSVCP_size_t size
, const char *src
, MSVCP_size_t count
)
139 if(!dest
|| !src
|| size
<count
) {
142 _invalid_parameter(NULL
, NULL
, NULL
, 0, 0);
146 return memmove(dest
, src
, count
);
149 /* ?move@?$char_traits@D@std@@SAPADPADPBDI@Z */
150 /* ?move@?$char_traits@D@std@@SAPEADPEADPEBD_K@Z */
151 char* CDECL
MSVCP_char_traits_char_move(
152 char *dest
, const char *src
, MSVCP_size_t count
)
154 return MSVCP_char_traits_char__Move_s(dest
, count
, src
, count
);
157 /* ?assign@?$char_traits@D@std@@SAPADPADID@Z */
158 /* ?assign@?$char_traits@D@std@@SAPEADPEAD_KD@Z */
159 char* CDECL
MSVCP_char_traits_char_assignn(char *str
, MSVCP_size_t num
, char c
)
161 return memset(str
, c
, num
);
164 /* ?to_char_type@?$char_traits@D@std@@SADABH@Z */
165 /* ?to_char_type@?$char_traits@D@std@@SADAEBH@Z */
166 char CDECL
MSVCP_char_traits_char_to_char_type(const int *i
)
171 /* ?to_int_type@?$char_traits@D@std@@SAHABD@Z */
172 /* ?to_int_type@?$char_traits@D@std@@SAHAEBD@Z */
173 int CDECL
MSVCP_char_traits_char_to_int_type(const char *ch
)
178 /* ?eq_int_type@?$char_traits@D@std@@SA_NABH0@Z */
179 /* ?eq_int_type@?$char_traits@D@std@@SA_NAEBH0@Z */
180 MSVCP_bool CDECL
MSVCP_char_traits_char_eq_int_type(const int *i1
, const int *i2
)
185 /* ?eof@?$char_traits@D@std@@SAHXZ */
186 int CDECL
MSVCP_char_traits_char_eof(void)
191 /* ?not_eof@?$char_traits@D@std@@SAHABH@Z */
192 /* ?not_eof@?$char_traits@D@std@@SAHAEBH@Z */
193 int CDECL
MSVCP_char_traits_char_not_eof(int *in
)
195 return (*in
==EOF
? !EOF
: *in
);
199 /* char_traits<wchar_t> */
200 /* ?assign@?$char_traits@_W@std@@SAXAA_WAB_W@Z */
201 /* ?assign@?$char_traits@_W@std@@SAXAEA_WAEB_W@Z */
202 void CDECL
MSVCP_char_traits_wchar_assign(wchar_t *ch
,
203 const wchar_t *assign
)
208 /* ?eq@?$char_traits@_W@std@@SA_NAB_W0@Z */
209 /* ?eq@?$char_traits@_W@std@@SA_NAEB_W0@Z */
210 MSVCP_bool CDECL
MSVCP_char_traits_wchar_eq(wchar_t *ch1
, wchar_t *ch2
)
215 /* ?lt@?$char_traits@_W@std@@SA_NAB_W0@Z */
216 /* ?lt@?$char_traits@_W@std@@SA_NAEB_W0@Z */
217 MSVCP_bool CDECL
MSVCP_char_traits_wchar_lt(const wchar_t *ch1
,
223 /* ?compare@?$char_traits@_W@std@@SAHPB_W0I@Z */
224 /* ?compare@?$char_traits@_W@std@@SAHPEB_W0_K@Z */
225 int CDECL
MSVCP_char_traits_wchar_compare(const wchar_t *s1
,
226 const wchar_t *s2
, MSVCP_size_t count
)
228 int ret
= memcmp(s1
, s2
, count
* sizeof(wchar_t));
229 return (ret
>0 ? 1 : (ret
<0 ? -1 : 0));
232 /* ?length@?$char_traits@_W@std@@SAIPB_W@Z */
233 /* ?length@?$char_traits@_W@std@@SA_KPEB_W@Z */
234 MSVCP_size_t CDECL
MSVCP_char_traits_wchar_length(const wchar_t *str
)
236 return wcslen((WCHAR
*)str
);
239 /* ?_Copy_s@?$char_traits@_W@std@@SAPA_WPA_WIPB_WI@Z */
240 /* ?_Copy_s@?$char_traits@_W@std@@SAPEA_WPEA_W_KPEB_W1@Z */
241 wchar_t* CDECL
MSVCP_char_traits_wchar__Copy_s(wchar_t *dest
,
242 MSVCP_size_t size
, const wchar_t *src
, MSVCP_size_t count
)
244 if(!dest
|| !src
|| size
<count
) {
247 _invalid_parameter(NULL
, NULL
, NULL
, 0, 0);
251 return memcpy(dest
, src
, count
* sizeof(wchar_t));
254 /* ?copy@?$char_traits@_W@std@@SAPA_WPA_WPB_WI@Z */
255 /* ?copy@?$char_traits@_W@std@@SAPEA_WPEA_WPEB_W_K@Z */
256 wchar_t* CDECL
MSVCP_char_traits_wchar_copy(wchar_t *dest
,
257 const wchar_t *src
, MSVCP_size_t count
)
259 return MSVCP_char_traits_wchar__Copy_s(dest
, count
, src
, count
);
262 /* ?find@?$char_traits@_W@std@@SAPB_WPB_WIAB_W@Z */
263 /* ?find@?$char_traits@_W@std@@SAPEB_WPEB_W_KAEB_W@Z */
264 const wchar_t* CDECL
MSVCP_char_traits_wchar_find(
265 const wchar_t *str
, MSVCP_size_t range
, const wchar_t *c
)
269 for(i
=0; i
<range
; i
++)
276 /* ?_Move_s@?$char_traits@_W@std@@SAPA_WPA_WIPB_WI@Z */
277 /* ?_Move_s@?$char_traits@_W@std@@SAPEA_WPEA_W_KPEB_W1@Z */
278 wchar_t* CDECL
MSVCP_char_traits_wchar__Move_s(wchar_t *dest
,
279 MSVCP_size_t size
, const wchar_t *src
, MSVCP_size_t count
)
281 if(!dest
|| !src
|| size
<count
) {
284 _invalid_parameter(NULL
, NULL
, NULL
, 0, 0);
288 return memmove(dest
, src
, count
* sizeof(WCHAR
));
291 /* ?move@?$char_traits@_W@std@@SAPA_WPA_WPB_WI@Z */
292 /* ?move@?$char_traits@_W@std@@SAPEA_WPEA_WPEB_W_K@Z */
293 wchar_t* CDECL
MSVCP_char_traits_wchar_move(wchar_t *dest
,
294 const wchar_t *src
, MSVCP_size_t count
)
296 return MSVCP_char_traits_wchar__Move_s(dest
, count
, src
, count
);
299 /* ?assign@?$char_traits@_W@std@@SAPA_WPA_WI_W@Z */
300 /* ?assign@?$char_traits@_W@std@@SAPEA_WPEA_W_K_W@Z */
301 wchar_t* CDECL
MSVCP_char_traits_wchar_assignn(wchar_t *str
,
302 MSVCP_size_t num
, wchar_t c
)
312 /* ?to_char_type@?$char_traits@_W@std@@SA_WABG@Z */
313 /* ?to_char_type@?$char_traits@_W@std@@SA_WAEBG@Z */
314 wchar_t CDECL
MSVCP_char_traits_wchar_to_char_type(const unsigned short *i
)
319 /* ?to_int_type@?$char_traits@_W@std@@SAGAB_W@Z */
320 /* ?to_int_type@?$char_traits@_W@std@@SAGAEB_W@Z */
321 unsigned short CDECL
MSVCP_char_traits_wchar_to_int_type(const wchar_t *ch
)
326 /* ?eq_int_type@?$char_traits@_W@std@@SA_NABG0@Z */
327 /* ?eq_int_type@?$char_traits@_W@std@@SA_NAEBG0@Z */
328 MSVCP_bool CDECL
MSVCP_char_traits_wchar_eq_int_tpe(const unsigned short *i1
,
329 const unsigned short *i2
)
334 /* ?eof@?$char_traits@_W@std@@SAGXZ */
335 unsigned short CDECL
MSVCP_char_traits_wchar_eof(void)
340 /* ?not_eof@?$char_traits@_W@std@@SAGABG@Z */
341 /* ?not_eof@?$char_traits@_W@std@@SAGAEBG@Z */
342 unsigned short CDECL
MSVCP_char_traits_wchar_not_eof(const unsigned short *in
)
344 return (*in
==WEOF
? !WEOF
: *in
);
348 /* char_traits<unsigned short> */
349 /* ?assign@?$char_traits@G@std@@SAXAAGABG@Z */
350 /* ?assign@?$char_traits@G@std@@SAXAEAGAEBG@Z */
351 void CDECL
MSVCP_char_traits_short_assign(unsigned short *ch
,
352 const unsigned short *assign
)
357 /* ?eq@?$char_traits@G@std@@SA_NABG0@Z */
358 /* ?eq@?$char_traits@G@std@@SA_NAEBG0@Z */
359 MSVCP_bool CDECL
MSVCP_char_traits_short_eq(const unsigned short *ch1
,
360 const unsigned short *ch2
)
365 /* ?lt@?$char_traits@G@std@@SA_NABG0@Z */
366 /* ?lt@?$char_traits@G@std@@SA_NAEBG0@Z */
367 MSVCP_bool CDECL
MSVCP_char_traits_short_lt(const unsigned short *ch1
,
368 const unsigned short *ch2
)
373 /* ?compare@?$char_traits@G@std@@SAHPBG0I@Z */
374 /* ?compare@?$char_traits@G@std@@SAHPEBG0_K@Z */
375 int CDECL
MSVCP_char_traits_short_compare(const unsigned short *s1
,
376 const unsigned short *s2
, MSVCP_size_t count
)
380 for(i
=0; i
<count
; i
++)
382 return (s1
[i
] < s2
[i
] ? -1 : 1);
387 /* ?length@?$char_traits@G@std@@SAIPBG@Z */
388 /* ?length@?$char_traits@G@std@@SA_KPEBG@Z */
389 MSVCP_size_t CDECL
MSVCP_char_traits_short_length(const unsigned short *str
)
393 for(len
=0; str
[len
]; len
++);
398 /* ?_Copy_s@?$char_traits@G@std@@SAPAGPAGIPBGI@Z */
399 /* ?_Copy_s@?$char_traits@G@std@@SAPEAGPEAG_KPEBG1@Z */
400 unsigned short * CDECL
MSVCP_char_traits_short__Copy_s(unsigned short *dest
,
401 MSVCP_size_t size
, const unsigned short *src
, MSVCP_size_t count
)
404 _invalid_parameter(NULL
, NULL
, NULL
, 0, 0);
408 return memcpy(dest
, src
, count
* sizeof(unsigned short));
411 /* ?copy@?$char_traits@G@std@@SAPAGPAGPBGI@Z */
412 /* ?copy@?$char_traits@G@std@@SAPEAGPEAGPEBG_K@Z */
413 unsigned short* CDECL
MSVCP_char_traits_short_copy(unsigned short *dest
,
414 const unsigned short *src
, MSVCP_size_t count
)
416 return MSVCP_char_traits_short__Copy_s(dest
, count
, src
, count
);
419 /* ?find@?$char_traits@G@std@@SAPBGPBGIABG@Z */
420 /* ?find@?$char_traits@G@std@@SAPEBGPEBG_KAEBG@Z */
421 const unsigned short* CDECL
MSVCP_char_traits_short_find(
422 const unsigned short *str
, MSVCP_size_t range
, const unsigned short *c
)
426 for(i
=0; i
<range
; i
++)
433 /* ?_Move_s@?$char_traits@G@std@@SAPAGPAGIPBGI@Z */
434 /* ?_Move_s@?$char_traits@G@std@@SAPEAGPEAG_KPEBG1@Z */
435 unsigned short* CDECL
MSVCP_char_traits_short__Move_s(unsigned short *dest
,
436 MSVCP_size_t size
, const unsigned short *src
, MSVCP_size_t count
)
439 _invalid_parameter(NULL
, NULL
, NULL
, 0, 0);
443 return memmove(dest
, src
, count
* sizeof(unsigned short));
446 /* ?move@?$char_traits@G@std@@SAPAGPAGPBGI@Z */
447 /* ?move@?$char_traits@G@std@@SAPEAGPEAGPEBG_K@Z */
448 unsigned short* CDECL
MSVCP_char_traits_short_move(unsigned short *dest
,
449 const unsigned short *src
, MSVCP_size_t count
)
451 return MSVCP_char_traits_short__Move_s(dest
, count
, src
, count
);
454 /* ?assign@?$char_traits@G@std@@SAPAGPAGIG@Z */
455 /* ?assign@?$char_traits@G@std@@SAPEAGPEAG_KG@Z */
456 unsigned short* CDECL
MSVCP_char_traits_short_assignn(unsigned short *str
,
457 MSVCP_size_t num
, unsigned short c
)
467 /* ?to_char_type@?$char_traits@G@std@@SAGABG@Z */
468 /* ?to_char_type@?$char_traits@G@std@@SAGAEBG@Z */
469 unsigned short CDECL
MSVCP_char_traits_short_to_char_type(const unsigned short *i
)
474 /* ?to_int_type@?$char_traits@G@std@@SAGABG@Z */
475 /* ?to_int_type@?$char_traits@G@std@@SAGAEBG@Z */
476 unsigned short CDECL
MSVCP_char_traits_short_to_int_type(const unsigned short *ch
)
481 /* ?eq_int_type@?$char_traits@G@std@@SA_NABG0@Z */
482 /* ?eq_int_type@?$char_traits@G@std@@SA_NAEBG0@Z */
483 MSVCP_bool CDECL
MSVCP_char_traits_short_eq_int_type(unsigned short *i1
,
489 /* ?eof@?$char_traits@G@std@@SAGXZ */
490 unsigned short CDECL
MSVCP_char_traits_short_eof(void)
495 /* ?not_eof@?$char_traits@G@std@@SAGABG@Z */
496 /* ?not_eof@?$char_traits@G@std@@SAGAEBG@Z */
497 unsigned short CDECL
MSVCP_char_traits_short_not_eof(const unsigned short *in
)
499 return (*in
==(unsigned short)-1 ? 0 : *in
);
504 /* ?_Xlen@_String_base@std@@SAXXZ */
505 void CDECL
MSVCP__String_base_Xlen(void)
507 static const char msg
[] = "string too long";
510 throw_exception(EXCEPTION_LENGTH_ERROR
, msg
);
513 /* ?_Xran@_String_base@std@@SAXXZ */
514 void CDECL
MSVCP__String_base_Xran(void)
516 static const char msg
[] = "invalid string position";
519 throw_exception(EXCEPTION_OUT_OF_RANGE
, msg
);
522 /* ?_Xinvarg@_String_base@std@@SAXXZ */
523 void CDECL
MSVCP__String_base_Xinvarg(void)
525 static const char msg
[] = "invalid string argument";
528 throw_exception(EXCEPTION_INVALID_ARGUMENT
, msg
);
532 /* basic_string<char, char_traits<char>, allocator<char>> */
533 /* ?npos@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@2IB */
534 /* ?npos@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@2_KB */
535 const MSVCP_size_t MSVCP_basic_string_char_npos
= -1;
537 /* ?_Myptr@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IAEPADXZ */
538 /* ?_Myptr@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IEAAPEADXZ */
539 DEFINE_THISCALL_WRAPPER(basic_string_char_ptr
, 4)
540 char* __thiscall
basic_string_char_ptr(basic_string_char
*this)
542 if(this->res
< BUF_SIZE_CHAR
)
543 return this->data
.buf
;
544 return this->data
.ptr
;
547 /* ?_Myptr@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IBEPBDXZ */
548 /* ?_Myptr@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IEBAPEBDXZ */
549 DEFINE_THISCALL_WRAPPER(basic_string_char_const_ptr
, 4)
550 const char* __thiscall
basic_string_char_const_ptr(const basic_string_char
*this)
552 if(this->res
< BUF_SIZE_CHAR
)
553 return this->data
.buf
;
554 return this->data
.ptr
;
557 /* ?_Eos@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IAEXI@Z */
558 /* ?_Eos@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IEAAX_K@Z */
559 DEFINE_THISCALL_WRAPPER(basic_string_char_eos
, 8)
560 void __thiscall
basic_string_char_eos(basic_string_char
*this, MSVCP_size_t len
)
562 static const char nullbyte
= '\0';
565 MSVCP_char_traits_char_assign(basic_string_char_ptr(this)+len
, &nullbyte
);
568 /* ?_Inside@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IAE_NPBD@Z */
569 /* ?_Inside@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IEAA_NPEBD@Z */
570 DEFINE_THISCALL_WRAPPER(basic_string_char_inside
, 8)
571 MSVCP_bool __thiscall
basic_string_char_inside(
572 basic_string_char
*this, const char *ptr
)
574 char *cstr
= basic_string_char_ptr(this);
576 return ptr
>=cstr
&& ptr
<cstr
+this->size
;
579 /* ?_Tidy@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IAEX_NI@Z */
580 /* ?_Tidy@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IEAAX_N_K@Z */
581 DEFINE_THISCALL_WRAPPER(basic_string_char_tidy
, 12)
582 void __thiscall
basic_string_char_tidy(basic_string_char
*this,
583 MSVCP_bool built
, MSVCP_size_t new_size
)
585 if(built
&& BUF_SIZE_CHAR
<=this->res
) {
586 char *ptr
= this->data
.ptr
;
589 MSVCP_char_traits_char__Copy_s(this->data
.buf
, BUF_SIZE_CHAR
, ptr
, new_size
);
590 MSVCP_allocator_char_deallocate(this->allocator
, ptr
, this->res
+1);
593 this->res
= BUF_SIZE_CHAR
-1;
594 basic_string_char_eos(this, new_size
);
597 /* ?_Grow@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IAE_NI_N@Z */
598 /* ?_Grow@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IEAA_N_K_N@Z */
599 DEFINE_THISCALL_WRAPPER(basic_string_char_grow
, 12)
600 MSVCP_bool __thiscall
basic_string_char_grow(
601 basic_string_char
*this, MSVCP_size_t new_size
, MSVCP_bool trim
)
603 if(this->res
< new_size
) {
604 MSVCP_size_t new_res
= new_size
, len
= this->size
;
609 if(new_res
/3 < this->res
/2)
610 new_res
= this->res
+ this->res
/2;
612 ptr
= MSVCP_allocator_char_allocate(this->allocator
, new_res
+1);
614 ptr
= MSVCP_allocator_char_allocate(this->allocator
, new_size
+1);
618 ERR("Out of memory\n");
619 basic_string_char_tidy(this, TRUE
, 0);
623 MSVCP_char_traits_char__Copy_s(ptr
, new_size
,
624 basic_string_char_ptr(this), this->size
);
625 basic_string_char_tidy(this, TRUE
, 0);
626 this->data
.ptr
= ptr
;
627 this->res
= new_size
;
628 basic_string_char_eos(this, len
);
629 } else if(trim
&& new_size
< BUF_SIZE_CHAR
)
630 basic_string_char_tidy(this, TRUE
,
631 new_size
<this->size
? new_size
: this->size
);
632 else if(new_size
== 0)
633 basic_string_char_eos(this, 0);
638 /* ?_Copy@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IAEXII@Z */
639 /* ?_Copy@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IEAAX_K0@Z */
640 DEFINE_THISCALL_WRAPPER(basic_string_char__Copy
, 12)
641 void __thiscall
basic_string_char__Copy(basic_string_char
*this,
642 MSVCP_size_t new_size
, MSVCP_size_t copy_len
)
644 TRACE("%p %lu %lu\n", this, new_size
, copy_len
);
646 if(!basic_string_char_grow(this, new_size
, FALSE
))
648 basic_string_char_eos(this, copy_len
);
651 /* ?_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 */
652 /* ?_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 */
653 MSVCP_size_t __cdecl
MSVCP_basic_string_char_Pdif(String_iterator_char i1
, String_iterator_char i2
)
655 TRACE("(%p %p) (%p %p)\n", i1
.bstr
, i1
.pos
, i2
.bstr
, i2
.pos
);
657 if((!i1
.bstr
&& i1
.pos
) || i1
.bstr
!=i2
.bstr
) {
658 _invalid_parameter(NULL
, NULL
, NULL
, 0, 0);
662 return !i1
.pos
? 0 : i1
.pos
-i2
.pos
;
665 /* ?get_allocator@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBE?AV?$allocator@D@2@XZ */
666 /* ?get_allocator@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA?AV?$allocator@D@2@XZ */
667 DEFINE_THISCALL_WRAPPER(basic_string_char_get_allocator
, 8)
668 allocator
* __thiscall
basic_string_char_get_allocator(const basic_string_char
*this, allocator
*ret
)
674 /* ?erase@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@II@Z */
675 /* ?erase@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAAEAV12@_K0@Z */
676 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_erase
, 12)
677 basic_string_char
* __thiscall
MSVCP_basic_string_char_erase(
678 basic_string_char
*this, MSVCP_size_t pos
, MSVCP_size_t len
)
680 TRACE("%p %lu %lu\n", this, pos
, len
);
683 MSVCP__String_base_Xran();
685 if(len
> this->size
-pos
)
686 len
= this->size
-pos
;
689 MSVCP_char_traits_char__Move_s(basic_string_char_ptr(this)+pos
,
690 this->res
-pos
, basic_string_char_ptr(this)+pos
+len
,
692 basic_string_char_eos(this, this->size
-len
);
698 /* ?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 */
699 /* ?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 */
700 DEFINE_THISCALL_WRAPPER(basic_string_char_erase_iter_range
, 24)
701 String_iterator_char
* __thiscall
basic_string_char_erase_iter_range(basic_string_char
*this,
702 String_iterator_char
*ret
, String_iterator_char beg
, String_iterator_char end
)
707 ret
->pos
= basic_string_char_ptr(this);
708 off
= MSVCP_basic_string_char_Pdif(beg
, *ret
);
710 MSVCP_basic_string_char_erase(this, off
, MSVCP_basic_string_char_Pdif(end
, beg
));
713 ret
->pos
= basic_string_char_ptr(this)+off
;
717 /* ?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 */
718 /* ?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 */
719 DEFINE_THISCALL_WRAPPER(basic_string_char_erase_iter
, 16)
720 String_iterator_char
* __thiscall
basic_string_char_erase_iter(basic_string_char
*this,
721 String_iterator_char
*ret
, String_iterator_char pos
)
726 ret
->pos
= basic_string_char_ptr(this);
727 off
= MSVCP_basic_string_char_Pdif(pos
, *ret
);
729 MSVCP_basic_string_char_erase(this, off
, 1);
732 ret
->pos
= basic_string_char_ptr(this)+off
;
736 /* ?assign@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@ABV12@II@Z */
737 /* ?assign@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAAEAV12@AEBV12@_K1@Z */
738 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_assign_substr
, 16)
739 basic_string_char
* __thiscall
MSVCP_basic_string_char_assign_substr(
740 basic_string_char
*this, const basic_string_char
*assign
,
741 MSVCP_size_t pos
, MSVCP_size_t len
)
743 TRACE("%p %p %lu %lu\n", this, assign
, pos
, len
);
745 if(assign
->size
< pos
)
746 MSVCP__String_base_Xran();
748 if(len
> assign
->size
-pos
)
749 len
= assign
->size
-pos
;
752 MSVCP_basic_string_char_erase(this, pos
+len
, MSVCP_basic_string_char_npos
);
753 MSVCP_basic_string_char_erase(this, 0, pos
);
754 } else if(basic_string_char_grow(this, len
, FALSE
)) {
755 MSVCP_char_traits_char__Copy_s(basic_string_char_ptr(this),
756 this->res
, basic_string_char_const_ptr(assign
)+pos
, len
);
757 basic_string_char_eos(this, len
);
763 /* ?assign@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@ABV12@@Z */
764 /* ?assign@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAAEAV12@AEBV12@@Z */
765 /* ??4?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV01@ABV01@@Z */
766 /* ??4?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAAEAV01@AEBV01@@Z */
767 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_assign
, 8)
768 basic_string_char
* __thiscall
MSVCP_basic_string_char_assign(
769 basic_string_char
*this, const basic_string_char
*assign
)
771 return MSVCP_basic_string_char_assign_substr(this, assign
,
772 0, MSVCP_basic_string_char_npos
);
775 /* ?assign@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@PBDI@Z */
776 /* ?assign@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAAEAV12@PEBD_K@Z */
777 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_assign_cstr_len
, 12)
778 basic_string_char
* __thiscall
MSVCP_basic_string_char_assign_cstr_len(
779 basic_string_char
*this, const char *str
, MSVCP_size_t len
)
781 TRACE("%p %s %lu\n", this, debugstr_an(str
, len
), len
);
783 if(basic_string_char_inside(this, str
))
784 return MSVCP_basic_string_char_assign_substr(this, this,
785 str
-basic_string_char_ptr(this), len
);
786 else if(basic_string_char_grow(this, len
, FALSE
)) {
787 MSVCP_char_traits_char__Copy_s(basic_string_char_ptr(this),
788 this->res
, str
, len
);
789 basic_string_char_eos(this, len
);
795 /* ??4?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV01@D@Z */
796 /* ??4?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAAEAV01@D@Z */
797 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_assign_ch
, 8)
798 basic_string_char
* __thiscall
MSVCP_basic_string_char_assign_ch(
799 basic_string_char
*this, char ch
)
801 return MSVCP_basic_string_char_assign_cstr_len(this, &ch
, 1);
804 /* ?assign@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@PBD@Z */
805 /* ?assign@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAAEAV12@PEBD@Z */
806 /* ??4?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV01@PBD@Z */
807 /* ??4?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAAEAV01@PEBD@Z */
808 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_assign_cstr
, 8)
809 basic_string_char
* __thiscall
MSVCP_basic_string_char_assign_cstr(
810 basic_string_char
*this, const char *str
)
812 return MSVCP_basic_string_char_assign_cstr_len(this, str
,
813 MSVCP_char_traits_char_length(str
));
816 /* ?assign@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@ID@Z */
817 /* ?assign@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAAEAV12@_KD@Z */
818 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_assignn
, 12)
819 basic_string_char
* __thiscall
MSVCP_basic_string_char_assignn(
820 basic_string_char
*this, MSVCP_size_t count
, char ch
)
822 TRACE("%p %ld %c\n", this, count
, ch
);
824 basic_string_char_grow(this, count
, FALSE
);
825 MSVCP_char_traits_char_assignn(basic_string_char_ptr(this), count
, ch
);
826 basic_string_char_eos(this, count
);
830 /* ?assign@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@PBD0@Z */
831 /* ?assign@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAAEAV12@PEBD0@Z */
832 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_assign_ptr_ptr
, 12)
833 basic_string_char
* __thiscall
MSVCP_basic_string_char_assign_ptr_ptr(
834 basic_string_char
*this, const char *first
, const char *last
)
836 return MSVCP_basic_string_char_assign_cstr_len(this, first
, last
-first
);
839 /* ?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 */
840 /* ?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 */
841 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_assign_iter
, 20)
842 basic_string_char
* __thiscall
MSVCP_basic_string_char_assign_iter(basic_string_char
*this,
843 String_iterator_char beg
, String_iterator_char end
)
845 return MSVCP_basic_string_char_assign_ptr_ptr(this, beg
.pos
, end
.pos
);
848 /* ?_Chassign@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IAEXIID@Z */
849 /* ?_Chassign@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IEAAX_K0D@Z */
850 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_Chassign
, 16)
851 void __thiscall
MSVCP_basic_string_char_Chassign(basic_string_char
*this,
852 MSVCP_size_t off
, MSVCP_size_t count
, char ch
)
854 TRACE("%p %lu %lu %c\n", this, off
, count
, ch
);
855 MSVCP_char_traits_char_assignn(basic_string_char_ptr(this)+off
, count
, ch
);
858 /* ?_Copy_s@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEIPADIII@Z */
859 /* ?_Copy_s@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA_KPEAD_K11@Z */
860 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_Copy_s
, 20)
861 MSVCP_size_t __thiscall
MSVCP_basic_string_char_Copy_s(const basic_string_char
*this,
862 char *dest
, MSVCP_size_t size
, MSVCP_size_t count
, MSVCP_size_t off
)
864 TRACE("%p %p %lu %lu %lu\n", this, dest
, size
, count
, off
);
867 MSVCP__String_base_Xran();
869 if(count
> this->size
-off
)
870 count
= this->size
-off
;
872 MSVCP_char_traits_char__Copy_s(dest
, size
,
873 basic_string_char_const_ptr(this)+off
, count
);
877 /* ?copy@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEIPADII@Z */
878 /* ?copy@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA_KPEAD_K1@Z */
879 DEFINE_THISCALL_WRAPPER(basic_string_char_copy
, 16)
880 MSVCP_size_t __thiscall
basic_string_char_copy(const basic_string_char
*this,
881 char *dest
, MSVCP_size_t count
, MSVCP_size_t off
)
883 return MSVCP_basic_string_char_Copy_s(this, dest
, count
, count
, off
);
886 /* ?c_str@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEPBDXZ */
887 /* ?c_str@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBAPEBDXZ */
888 /* ?data@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEPBDXZ */
889 /* ?data@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBAPEBDXZ */
890 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_c_str
, 4)
891 const char* __thiscall
MSVCP_basic_string_char_c_str(const basic_string_char
*this)
894 return basic_string_char_const_ptr(this);
897 /* ?capacity@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEIXZ */
898 /* ?capacity@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA_KXZ */
899 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_capacity
, 4)
900 MSVCP_size_t __thiscall
MSVCP_basic_string_char_capacity(basic_string_char
*this)
906 /* ?reserve@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEXI@Z */
907 /* ?reserve@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAX_K@Z */
908 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_reserve
, 8)
909 void __thiscall
MSVCP_basic_string_char_reserve(basic_string_char
*this, MSVCP_size_t size
)
913 TRACE("%p %ld\n", this, size
);
919 if(basic_string_char_grow(this, size
, TRUE
))
920 basic_string_char_eos(this, len
);
923 /* ??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@XZ */
924 /* ??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAA@XZ */
925 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_ctor
, 4)
926 basic_string_char
* __thiscall
MSVCP_basic_string_char_ctor(basic_string_char
*this)
930 basic_string_char_tidy(this, FALSE
, 0);
934 /* ??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@ABV01@@Z */
935 /* ??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAA@AEBV01@@Z */
936 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_copy_ctor
, 8)
937 basic_string_char
* __thiscall
MSVCP_basic_string_char_copy_ctor(
938 basic_string_char
*this, const basic_string_char
*copy
)
940 TRACE("%p %p\n", this, copy
);
942 basic_string_char_tidy(this, FALSE
, 0);
943 MSVCP_basic_string_char_assign(this, copy
);
947 /* ??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@PBD@Z */
948 /* ??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAA@PEBD@Z */
949 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_ctor_cstr
, 8)
950 basic_string_char
* __thiscall
MSVCP_basic_string_char_ctor_cstr(
951 basic_string_char
*this, const char *str
)
953 TRACE("%p %s\n", this, debugstr_a(str
));
955 basic_string_char_tidy(this, FALSE
, 0);
956 MSVCP_basic_string_char_assign_cstr(this, str
);
960 /* ??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@PBDABV?$allocator@D@1@@Z */
961 /* ??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAA@PEBDAEBV?$allocator@D@1@@Z */
962 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_ctor_cstr_alloc
, 12)
963 basic_string_char
* __thiscall
MSVCP_basic_string_char_ctor_cstr_alloc(
964 basic_string_char
*this, const char *str
, const void *alloc
)
966 return MSVCP_basic_string_char_ctor_cstr(this, str
);
969 /* ??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@PBDI@Z */
970 /* ??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAA@PEBD_K@Z */
971 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_ctor_cstr_len
, 12)
972 basic_string_char
* __thiscall
MSVCP_basic_string_char_ctor_cstr_len(
973 basic_string_char
*this, const char *str
, MSVCP_size_t len
)
975 TRACE("%p %s %ld\n", this, debugstr_an(str
, len
), len
);
977 basic_string_char_tidy(this, FALSE
, 0);
978 MSVCP_basic_string_char_assign_cstr_len(this, str
, len
);
982 /* ??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@PBDIABV?$allocator@D@1@@Z */
983 /* ??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAA@PEBD_KAEBV?$allocator@D@1@@Z */
984 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_ctor_cstr_len_alloc
, 16)
985 basic_string_char
* __thiscall
MSVCP_basic_string_char_ctor_cstr_len_alloc(
986 basic_string_char
*this, const char *str
, MSVCP_size_t len
, const void *alloc
)
988 return MSVCP_basic_string_char_ctor_cstr_len(this, str
, len
);
991 /* ??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@ABV01@II@Z */
992 /* ??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAA@AEBV01@_K1@Z */
993 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_ctor_substr
, 16)
994 basic_string_char
* __thiscall
MSVCP_basic_string_char_ctor_substr(
995 basic_string_char
*this, const basic_string_char
*assign
,
996 MSVCP_size_t pos
, MSVCP_size_t len
)
998 TRACE("%p %p %lu %lu\n", this, assign
, pos
, len
);
1000 basic_string_char_tidy(this, FALSE
, 0);
1001 MSVCP_basic_string_char_assign_substr(this, assign
, pos
, len
);
1005 /* ??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@ABV01@IIABV?$allocator@D@1@@Z */
1006 /* ??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAA@AEBV01@_K1AEBV?$allocator@D@1@@Z */
1007 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_ctor_substr_alloc
, 20)
1008 basic_string_char
* __thiscall
MSVCP_basic_string_char_ctor_substr_alloc(
1009 basic_string_char
*this, const basic_string_char
*assign
,
1010 MSVCP_size_t pos
, MSVCP_size_t len
, const void *alloc
)
1012 return MSVCP_basic_string_char_ctor_substr(this, assign
, pos
, len
);
1015 /* ??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@ABV?$allocator@D@1@@Z */
1016 /* ??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAA@AEBV?$allocator@D@1@@Z */
1017 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_ctor_alloc
, 8)
1018 basic_string_char
* __thiscall
MSVCP_basic_string_char_ctor_alloc(
1019 basic_string_char
*this, const void *alloc
)
1021 TRACE("%p %p\n", this, alloc
);
1023 basic_string_char_tidy(this, FALSE
, 0);
1027 /* ??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@ID@Z */
1028 /* ??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAA@_KD@Z */
1029 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_ctor_ch
, 12)
1030 basic_string_char
* __thiscall
MSVCP_basic_string_char_ctor_ch(basic_string_char
*this,
1031 MSVCP_size_t count
, char ch
)
1033 TRACE("%p %ld %c\n", this, count
, ch
);
1035 basic_string_char_tidy(this, FALSE
, 0);
1036 MSVCP_basic_string_char_assignn(this, count
, ch
);
1040 /* ??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@IDABV?$allocator@D@1@@Z */
1041 /* ??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAA@_KDAEBV?$allocator@D@1@@Z */
1042 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_ctor_ch_alloc
, 16)
1043 basic_string_char
* __thiscall
MSVCP_basic_string_char_ctor_ch_alloc(basic_string_char
*this,
1044 MSVCP_size_t count
, char ch
, const void *alloc
)
1046 return MSVCP_basic_string_char_ctor_ch(this, count
, ch
);
1049 /* ??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@PBD0@Z */
1050 /* ??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAA@PEBD0@Z */
1051 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_ctor_ptr_ptr
, 12)
1052 basic_string_char
* __thiscall
MSVCP_basic_string_char_ctor_ptr_ptr(basic_string_char
*this,
1053 const char *first
, const char *last
)
1055 return MSVCP_basic_string_char_ctor_cstr_len(this, first
, last
-first
);
1058 /* ??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 */
1059 /* ??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 */
1060 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_ctor_iter
, 20)
1061 basic_string_char
* __thiscall
MSVCP_basic_string_char_ctor_iter(basic_string_char
*this,
1062 String_iterator_char beg
, String_iterator_char end
)
1064 return MSVCP_basic_string_char_ctor_cstr_len(this, beg
.pos
, end
.pos
-beg
.pos
);
1067 /* ??1?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@XZ */
1068 /* ??1?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAA@XZ */
1069 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_dtor
, 4)
1070 void __thiscall
MSVCP_basic_string_char_dtor(basic_string_char
*this)
1072 TRACE("%p\n", this);
1073 basic_string_char_tidy(this, TRUE
, 0);
1076 /* ?size@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEIXZ */
1077 /* ?size@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA_KXZ */
1078 /* ?length@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEIXZ */
1079 /* ?length@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA_KXZ */
1080 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_length
, 4)
1081 MSVCP_size_t __thiscall
MSVCP_basic_string_char_length(const basic_string_char
*this)
1083 TRACE("%p\n", this);
1087 /* ?max_size@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEIXZ */
1088 /* ?max_size@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA_KXZ */
1089 DEFINE_THISCALL_WRAPPER(basic_string_char_max_size
, 4)
1090 MSVCP_size_t __thiscall
basic_string_char_max_size(const basic_string_char
*this)
1092 TRACE("%p\n", this);
1093 return MSVCP_allocator_char_max_size(this->allocator
)-1;
1096 /* ?empty@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBE_NXZ */
1097 /* ?empty@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA_NXZ */
1098 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_empty
, 4)
1099 MSVCP_bool __thiscall
MSVCP_basic_string_char_empty(basic_string_char
*this)
1101 TRACE("%p\n", this);
1102 return this->size
== 0;
1105 /* ?swap@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEXAAV12@@Z */
1106 /* ?swap@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAXAEAV12@@Z */
1107 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_swap
, 8)
1108 void __thiscall
MSVCP_basic_string_char_swap(basic_string_char
*this, basic_string_char
*str
)
1111 char tmp
[sizeof(this->data
)];
1112 const MSVCP_size_t size
= this->size
;
1113 const MSVCP_size_t res
= this->res
;
1115 memcpy(tmp
, this->data
.buf
, sizeof(this->data
));
1116 memcpy(this->data
.buf
, str
->data
.buf
, sizeof(this->data
));
1117 memcpy(str
->data
.buf
, tmp
, sizeof(this->data
));
1119 this->size
= str
->size
;
1120 this->res
= str
->res
;
1127 /* ?substr@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBE?AV12@II@Z */
1128 /* ?substr@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA?AV12@_K0@Z */
1129 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_substr
, 16)
1130 basic_string_char
* __thiscall
MSVCP_basic_string_char_substr(basic_string_char
*this,
1131 basic_string_char
*ret
, MSVCP_size_t off
, MSVCP_size_t len
)
1133 TRACE("%p %lu %lu\n", this, off
, len
);
1135 MSVCP_basic_string_char_ctor_substr(ret
, this, off
, len
);
1139 /* ?append@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@ABV12@II@Z */
1140 /* ?append@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAAEAV12@AEBV12@_K1@Z */
1141 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_append_substr
, 16)
1142 basic_string_char
* __thiscall
MSVCP_basic_string_char_append_substr(basic_string_char
*this,
1143 const basic_string_char
*append
, MSVCP_size_t offset
, MSVCP_size_t count
)
1145 TRACE("%p %p %lu %lu\n", this, append
, offset
, count
);
1147 if(append
->size
< offset
)
1148 MSVCP__String_base_Xran();
1150 if(count
> append
->size
-offset
)
1151 count
= append
->size
-offset
;
1153 if(MSVCP_basic_string_char_npos
-this->size
<=count
|| this->size
+count
<this->size
)
1154 MSVCP__String_base_Xlen();
1156 if(basic_string_char_grow(this, this->size
+count
, FALSE
)) {
1157 MSVCP_char_traits_char__Copy_s(basic_string_char_ptr(this)+this->size
,
1158 this->res
-this->size
, basic_string_char_const_ptr(append
)+offset
, count
);
1159 basic_string_char_eos(this, this->size
+count
);
1165 /* ?append@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@ABV12@@Z */
1166 /* ?append@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAAEAV12@AEBV12@@Z */
1167 /* ??Y?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV01@ABV01@@Z */
1168 /* ??Y?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAAEAV01@AEBV01@@Z */
1169 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_append
, 8)
1170 basic_string_char
* __thiscall
MSVCP_basic_string_char_append(
1171 basic_string_char
*this, const basic_string_char
*append
)
1173 return MSVCP_basic_string_char_append_substr(this, append
,
1174 0, MSVCP_basic_string_char_npos
);
1177 /* ?append@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@PBDI@Z */
1178 /* ?append@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAAEAV12@PEBD_K@Z */
1179 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_append_cstr_len
, 12)
1180 basic_string_char
* __thiscall
MSVCP_basic_string_char_append_cstr_len(
1181 basic_string_char
*this, const char *append
, MSVCP_size_t count
)
1183 TRACE("%p %s %lu\n", this, debugstr_an(append
, count
), count
);
1185 if(basic_string_char_inside(this, append
))
1186 return MSVCP_basic_string_char_append_substr(this, this,
1187 append
-basic_string_char_ptr(this), count
);
1189 if(MSVCP_basic_string_char_npos
-this->size
<=count
|| this->size
+count
<this->size
)
1190 MSVCP__String_base_Xlen();
1192 if(basic_string_char_grow(this, this->size
+count
, FALSE
)) {
1193 MSVCP_char_traits_char__Copy_s(basic_string_char_ptr(this)+this->size
,
1194 this->res
-this->size
, append
, count
);
1195 basic_string_char_eos(this, this->size
+count
);
1201 /* ?append@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@PBD@Z */
1202 /* ?append@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAAEAV12@PEBD@Z */
1203 /* ??Y?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV01@PBD@Z */
1204 /* ??Y?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAAEAV01@PEBD@Z */
1205 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_append_cstr
, 8)
1206 basic_string_char
* __thiscall
MSVCP_basic_string_char_append_cstr(
1207 basic_string_char
*this, const char *append
)
1209 return MSVCP_basic_string_char_append_cstr_len(this, append
,
1210 MSVCP_char_traits_char_length(append
));
1213 /* ?append@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@PBD0@Z */
1214 /* ?append@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAAEAV12@PEBD0@Z */
1215 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_append_beg_end
, 12)
1216 basic_string_char
* __thiscall
MSVCP_basic_string_char_append_beg_end(
1217 basic_string_char
*this, const char *beg
, const char *end
)
1219 return MSVCP_basic_string_char_append_cstr_len(this, beg
, end
-beg
);
1222 /* ?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 */
1223 /* ?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 */
1224 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_append_iter
, 20)
1225 basic_string_char
* __thiscall
MSVCP_basic_string_char_append_iter(
1226 basic_string_char
*this, String_iterator_char beg
, String_iterator_char end
)
1228 return MSVCP_basic_string_char_append_cstr_len(this, beg
.pos
, end
.pos
-beg
.pos
);
1231 /* ?append@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@ID@Z */
1232 /* ?append@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAAEAV12@_KD@Z */
1233 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_append_len_ch
, 12)
1234 basic_string_char
* __thiscall
MSVCP_basic_string_char_append_len_ch(
1235 basic_string_char
*this, MSVCP_size_t count
, char ch
)
1237 TRACE("%p %lu %c\n", this, count
, ch
);
1239 if(MSVCP_basic_string_char_npos
-this->size
<= count
)
1240 MSVCP__String_base_Xlen();
1242 if(basic_string_char_grow(this, this->size
+count
, FALSE
)) {
1243 MSVCP_char_traits_char_assignn(basic_string_char_ptr(this)+this->size
, count
, ch
);
1244 basic_string_char_eos(this, this->size
+count
);
1250 /* ??Y?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV01@D@Z */
1251 /* ??Y?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAAEAV01@D@Z */
1252 /* ?push_back@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEXD@Z */
1253 /* ?push_back@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAXD@Z */
1254 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_append_ch
, 8)
1255 basic_string_char
* __thiscall
MSVCP_basic_string_char_append_ch(
1256 basic_string_char
*this, char ch
)
1258 return MSVCP_basic_string_char_append_len_ch(this, 1, ch
);
1261 /* ??$?HDU?$char_traits@D@std@@V?$allocator@D@1@@std@@YA?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@ABV10@PBD@Z */
1262 /* ??$?HDU?$char_traits@D@std@@V?$allocator@D@1@@std@@YA?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@AEBV10@PEBD@Z */
1263 basic_string_char
* __cdecl
MSVCP_basic_string_char_concatenate_bstr_cstr(basic_string_char
*ret
,
1264 const basic_string_char
*left
, const char *right
)
1266 TRACE("%p %s\n", left
, debugstr_a(right
));
1268 MSVCP_basic_string_char_copy_ctor(ret
, left
);
1269 MSVCP_basic_string_char_append_cstr(ret
, right
);
1273 /* ??$?HDU?$char_traits@D@std@@V?$allocator@D@1@@std@@YA?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@PBDABV10@@Z */
1274 /* ??$?HDU?$char_traits@D@std@@V?$allocator@D@1@@std@@YA?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@PEBDAEBV10@@Z */
1275 basic_string_char
* __cdecl
MSVCP_basic_string_char_concatenate_cstr_bstr(basic_string_char
*ret
,
1276 const char *left
, const basic_string_char
*right
)
1278 TRACE("%s %p\n", debugstr_a(left
), right
);
1280 MSVCP_basic_string_char_ctor_cstr(ret
, left
);
1281 MSVCP_basic_string_char_append(ret
, right
);
1285 /* ??$?HDU?$char_traits@D@std@@V?$allocator@D@1@@std@@YA?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@ABV10@0@Z */
1286 /* ??$?HDU?$char_traits@D@std@@V?$allocator@D@1@@std@@YA?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@AEBV10@0@Z */
1287 basic_string_char
* __cdecl
MSVCP_basic_string_char_concatenate(basic_string_char
*ret
,
1288 const basic_string_char
*left
, const basic_string_char
*right
)
1290 TRACE("%p %p\n", left
, right
);
1292 MSVCP_basic_string_char_copy_ctor(ret
, left
);
1293 MSVCP_basic_string_char_append(ret
, right
);
1297 /* ??$?HDU?$char_traits@D@std@@V?$allocator@D@1@@std@@YA?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@ABV10@D@Z */
1298 /* ??$?HDU?$char_traits@D@std@@V?$allocator@D@1@@std@@YA?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@AEBV10@D@Z */
1299 basic_string_char
* __cdecl
MSVCP_basic_string_char_concatenate_bstr_ch(basic_string_char
*ret
,
1300 const basic_string_char
*left
, char right
)
1302 TRACE("%p %c\n", left
, right
);
1304 MSVCP_basic_string_char_copy_ctor(ret
, left
);
1305 MSVCP_basic_string_char_append_ch(ret
, right
);
1309 /* ??$?HDU?$char_traits@D@std@@V?$allocator@D@1@@std@@YA?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@DABV10@@Z */
1310 /* ??$?HDU?$char_traits@D@std@@V?$allocator@D@1@@std@@YA?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@DAEBV10@@Z */
1311 basic_string_char
* __cdecl
MSVCP_basic_string_char_concatenate_ch_bstr(basic_string_char
*ret
,
1312 char left
, const basic_string_char
*right
)
1314 TRACE("%c %p\n", left
, right
);
1316 MSVCP_basic_string_char_ctor_cstr_len(ret
, &left
, 1);
1317 MSVCP_basic_string_char_append(ret
, right
);
1321 /* ?compare@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEHIIPBDI@Z */
1322 /* ?compare@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBAH_K0PEBD0@Z */
1323 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_compare_substr_cstr_len
, 20)
1324 int __thiscall
MSVCP_basic_string_char_compare_substr_cstr_len(
1325 const basic_string_char
*this, MSVCP_size_t pos
, MSVCP_size_t num
,
1326 const char *str
, MSVCP_size_t count
)
1330 TRACE("%p %lu %lu %s %lu\n", this, pos
, num
, debugstr_an(str
, count
), count
);
1332 if(this->size
< pos
)
1333 MSVCP__String_base_Xran();
1335 if(num
> this->size
-pos
)
1336 num
= this->size
-pos
;
1338 ans
= MSVCP_char_traits_char_compare(basic_string_char_const_ptr(this)+pos
,
1339 str
, num
>count
? count
: num
);
1345 else if(num
< count
)
1350 /* ?compare@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEHIIPBD@Z */
1351 /* ?compare@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBAH_K0PEBD@Z */
1352 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_compare_substr_cstr
, 16)
1353 int __thiscall
MSVCP_basic_string_char_compare_substr_cstr(const basic_string_char
*this,
1354 MSVCP_size_t pos
, MSVCP_size_t num
, const char *str
)
1356 return MSVCP_basic_string_char_compare_substr_cstr_len(this, pos
, num
,
1357 str
, MSVCP_char_traits_char_length(str
));
1360 /* ?compare@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEHPBD@Z */
1361 /* ?compare@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBAHPEBD@Z */
1362 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_compare_cstr
, 8)
1363 int __thiscall
MSVCP_basic_string_char_compare_cstr(
1364 const basic_string_char
*this, const char *str
)
1366 return MSVCP_basic_string_char_compare_substr_cstr_len(this, 0, this->size
,
1367 str
, MSVCP_char_traits_char_length(str
));
1370 /* ?compare@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEHIIABV12@II@Z */
1371 /* ?compare@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBAH_K0AEBV12@00@Z */
1372 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_compare_substr_substr
, 24)
1373 int __thiscall
MSVCP_basic_string_char_compare_substr_substr(
1374 const basic_string_char
*this, MSVCP_size_t pos
, MSVCP_size_t num
,
1375 const basic_string_char
*compare
, MSVCP_size_t off
, MSVCP_size_t count
)
1377 TRACE("%p %lu %lu %p %lu %lu\n", this, pos
, num
, compare
, off
, count
);
1379 if(compare
->size
< off
)
1380 MSVCP__String_base_Xran();
1382 if(count
> compare
->size
-off
)
1383 count
= compare
->size
-off
;
1385 return MSVCP_basic_string_char_compare_substr_cstr_len(this, pos
, num
,
1386 basic_string_char_const_ptr(compare
)+off
, count
);
1389 /* ?compare@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEHIIABV12@@Z */
1390 /* ?compare@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBAH_K0AEBV12@@Z */
1391 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_compare_substr
, 16)
1392 int __thiscall
MSVCP_basic_string_char_compare_substr(
1393 const basic_string_char
*this, MSVCP_size_t pos
, MSVCP_size_t num
,
1394 const basic_string_char
*compare
)
1396 return MSVCP_basic_string_char_compare_substr_cstr_len(this, pos
, num
,
1397 basic_string_char_const_ptr(compare
), compare
->size
);
1400 /* ?compare@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEHABV12@@Z */
1401 /* ?compare@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBAHAEBV12@@Z */
1402 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_compare
, 8)
1403 int __thiscall
MSVCP_basic_string_char_compare(
1404 const basic_string_char
*this, const basic_string_char
*compare
)
1406 return MSVCP_basic_string_char_compare_substr_cstr_len(this, 0, this->size
,
1407 basic_string_char_const_ptr(compare
), compare
->size
);
1410 /* ??$?8DU?$char_traits@D@std@@V?$allocator@D@1@@std@@YA_NABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@0@Z */
1411 /* ??$?8DU?$char_traits@D@std@@V?$allocator@D@1@@std@@YA_NAEBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@0@Z */
1412 MSVCP_bool __cdecl
MSVCP_basic_string_char_equal(
1413 const basic_string_char
*left
, const basic_string_char
*right
)
1415 return MSVCP_basic_string_char_compare(left
, right
) == 0;
1418 /* ??$?8DU?$char_traits@D@std@@V?$allocator@D@1@@std@@YA_NABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@PBD@Z */
1419 /* ??$?8DU?$char_traits@D@std@@V?$allocator@D@1@@std@@YA_NAEBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@PEBD@Z */
1420 MSVCP_bool __cdecl
MSVCP_basic_string_char_equal_str_cstr(
1421 const basic_string_char
*left
, const char *right
)
1423 return MSVCP_basic_string_char_compare_cstr(left
, right
) == 0;
1426 /* ??$?8DU?$char_traits@D@std@@V?$allocator@D@1@@std@@YA_NPBDABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@@Z */
1427 /* ??$?8DU?$char_traits@D@std@@V?$allocator@D@1@@std@@YA_NPEBDAEBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@@Z */
1428 MSVCP_bool __cdecl
MSVCP_basic_string_char_equal_cstr_str(
1429 const char *left
, const basic_string_char
*right
)
1431 return MSVCP_basic_string_char_compare_cstr(right
, left
) == 0;
1434 /* ??$?9DU?$char_traits@D@std@@V?$allocator@D@1@@std@@YA_NABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@0@Z */
1435 /* ??$?9DU?$char_traits@D@std@@V?$allocator@D@1@@std@@YA_NAEBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@0@Z */
1436 MSVCP_bool __cdecl
MSVCP_basic_string_char_not_equal(
1437 const basic_string_char
*left
, const basic_string_char
*right
)
1439 return MSVCP_basic_string_char_compare(left
, right
) != 0;
1442 /* ??$?9DU?$char_traits@D@std@@V?$allocator@D@1@@std@@YA_NABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@PBD@Z */
1443 /* ??$?9DU?$char_traits@D@std@@V?$allocator@D@1@@std@@YA_NAEBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@PEBD@Z */
1444 MSVCP_bool __cdecl
MSVCP_basic_string_char_not_equal_str_cstr(
1445 const basic_string_char
*left
, const char *right
)
1447 return MSVCP_basic_string_char_compare_cstr(left
, right
) != 0;
1450 /* ??$?9DU?$char_traits@D@std@@V?$allocator@D@1@@std@@YA_NPBDABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@@Z */
1451 /* ??$?9DU?$char_traits@D@std@@V?$allocator@D@1@@std@@YA_NPEBDAEBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@@Z */
1452 MSVCP_bool __cdecl
MSVCP_basic_string_char_not_equal_cstr_str(
1453 const char *left
, const basic_string_char
*right
)
1455 return MSVCP_basic_string_char_compare_cstr(right
, left
) != 0;
1458 /* ??$?MDU?$char_traits@D@std@@V?$allocator@D@1@@std@@YA_NABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@0@Z */
1459 /* ??$?MDU?$char_traits@D@std@@V?$allocator@D@1@@std@@YA_NAEBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@0@Z */
1460 MSVCP_bool __cdecl
MSVCP_basic_string_char_lower(
1461 const basic_string_char
*left
, const basic_string_char
*right
)
1463 return MSVCP_basic_string_char_compare(left
, right
) < 0;
1466 /* ??$?MDU?$char_traits@D@std@@V?$allocator@D@1@@std@@YA_NABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@PBD@Z */
1467 /* ??$?MDU?$char_traits@D@std@@V?$allocator@D@1@@std@@YA_NAEBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@PEBD@Z */
1468 MSVCP_bool __cdecl
MSVCP_basic_string_char_lower_bstr_cstr(
1469 const basic_string_char
*left
, const char *right
)
1471 return MSVCP_basic_string_char_compare_cstr(left
, right
) < 0;
1474 /* ??$?MDU?$char_traits@D@std@@V?$allocator@D@1@@std@@YA_NPBDABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@@Z */
1475 /* ??$?MDU?$char_traits@D@std@@V?$allocator@D@1@@std@@YA_NPEBDAEBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@@Z */
1476 MSVCP_bool __cdecl
MSVCP_basic_string_char_lower_cstr_bstr(
1477 const char *left
, const basic_string_char
*right
)
1479 return MSVCP_basic_string_char_compare_cstr(right
, left
) > 0;
1482 /* ??$?NDU?$char_traits@D@std@@V?$allocator@D@1@@std@@YA_NABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@0@Z */
1483 /* ??$?NDU?$char_traits@D@std@@V?$allocator@D@1@@std@@YA_NAEBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@0@Z */
1484 MSVCP_bool __cdecl
MSVCP_basic_string_char_leq(
1485 const basic_string_char
*left
, const basic_string_char
*right
)
1487 return MSVCP_basic_string_char_compare(left
, right
) <= 0;
1490 /* ??$?NDU?$char_traits@D@std@@V?$allocator@D@1@@std@@YA_NABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@PBD@Z */
1491 /* ??$?NDU?$char_traits@D@std@@V?$allocator@D@1@@std@@YA_NAEBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@PEBD@Z */
1492 MSVCP_bool __cdecl
MSVCP_basic_string_char_leq_bstr_cstr(
1493 const basic_string_char
*left
, const char *right
)
1495 return MSVCP_basic_string_char_compare_cstr(left
, right
) <= 0;
1498 /* ??$?NDU?$char_traits@D@std@@V?$allocator@D@1@@std@@YA_NPBDABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@@Z */
1499 /* ??$?NDU?$char_traits@D@std@@V?$allocator@D@1@@std@@YA_NPEBDAEBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@@Z */
1500 MSVCP_bool __cdecl
MSVCP_basic_string_char_leq_cstr_bstr(
1501 const char *left
, const basic_string_char
*right
)
1503 return MSVCP_basic_string_char_compare_cstr(right
, left
) >= 0;
1506 /* ??$?ODU?$char_traits@D@std@@V?$allocator@D@1@@std@@YA_NABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@0@Z */
1507 /* ??$?ODU?$char_traits@D@std@@V?$allocator@D@1@@std@@YA_NAEBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@0@Z */
1508 MSVCP_bool __cdecl
MSVCP_basic_string_char_greater(
1509 const basic_string_char
*left
, const basic_string_char
*right
)
1511 return MSVCP_basic_string_char_compare(left
, right
) > 0;
1514 /* ??$?ODU?$char_traits@D@std@@V?$allocator@D@1@@std@@YA_NABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@PBD@Z */
1515 /* ??$?ODU?$char_traits@D@std@@V?$allocator@D@1@@std@@YA_NAEBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@PEBD@Z */
1516 MSVCP_bool __cdecl
MSVCP_basic_string_char_greater_bstr_cstr(
1517 const basic_string_char
*left
, const char *right
)
1519 return MSVCP_basic_string_char_compare_cstr(left
, right
) > 0;
1522 /* ??$?ODU?$char_traits@D@std@@V?$allocator@D@1@@std@@YA_NPBDABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@@Z */
1523 /* ??$?ODU?$char_traits@D@std@@V?$allocator@D@1@@std@@YA_NPEBDAEBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@@Z */
1524 MSVCP_bool __cdecl
MSVCP_basic_string_char_greater_cstr_bstr(
1525 const char *left
, const basic_string_char
*right
)
1527 return MSVCP_basic_string_char_compare_cstr(right
, left
) < 0;
1530 /* ??$?PDU?$char_traits@D@std@@V?$allocator@D@1@@std@@YA_NABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@0@Z */
1531 /* ??$?PDU?$char_traits@D@std@@V?$allocator@D@1@@std@@YA_NAEBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@0@Z */
1532 MSVCP_bool __cdecl
MSVCP_basic_string_char_geq(
1533 const basic_string_char
*left
, const basic_string_char
*right
)
1535 return MSVCP_basic_string_char_compare(left
, right
) >= 0;
1538 /* ??$?PDU?$char_traits@D@std@@V?$allocator@D@1@@std@@YA_NABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@PBD@Z */
1539 /* ??$?PDU?$char_traits@D@std@@V?$allocator@D@1@@std@@YA_NAEBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@PEBD@Z */
1540 MSVCP_bool __cdecl
MSVCP_basic_string_char_geq_bstr_cstr(
1541 const basic_string_char
*left
, const char *right
)
1543 return MSVCP_basic_string_char_compare_cstr(left
, right
) >= 0;
1546 /* ??$?PDU?$char_traits@D@std@@V?$allocator@D@1@@std@@YA_NPBDABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@@Z */
1547 /* ??$?PDU?$char_traits@D@std@@V?$allocator@D@1@@std@@YA_NPEBDAEBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@@Z */
1548 MSVCP_bool __cdecl
MSVCP_basic_string_char_geq_cstr_bstr(
1549 const char *left
, const basic_string_char
*right
)
1551 return MSVCP_basic_string_char_compare_cstr(right
, left
) <= 0;
1554 /* ?find@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEIPBDII@Z */
1555 /* ?find@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA_KPEBD_K1@Z */
1556 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_find_cstr_substr
, 16)
1557 MSVCP_size_t __thiscall
MSVCP_basic_string_char_find_cstr_substr(
1558 const basic_string_char
*this, const char *find
, MSVCP_size_t pos
, MSVCP_size_t len
)
1560 const char *p
, *end
;
1562 TRACE("%p %s %lu %lu\n", this, debugstr_an(find
, len
), pos
, len
);
1564 if(len
==0 && pos
<=this->size
)
1566 if(pos
>=this->size
|| len
>this->size
)
1567 return MSVCP_basic_string_char_npos
;
1569 end
= basic_string_char_const_ptr(this)+this->size
-len
+1;
1570 for(p
=basic_string_char_const_ptr(this)+pos
; p
<end
; p
++) {
1571 p
= MSVCP_char_traits_char_find(p
, end
-p
, find
);
1575 if(!MSVCP_char_traits_char_compare(p
, find
, len
))
1576 return p
-basic_string_char_const_ptr(this);
1579 return MSVCP_basic_string_char_npos
;
1582 /* ?find@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEIPBDI@Z */
1583 /* ?find@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA_KPEBD_K@Z */
1584 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_find_cstr_off
, 12)
1585 MSVCP_size_t __thiscall
MSVCP_basic_string_char_find_cstr_off(
1586 const basic_string_char
*this, const char *find
, MSVCP_size_t pos
)
1588 return MSVCP_basic_string_char_find_cstr_substr(this, find
, pos
,
1589 MSVCP_char_traits_char_length(find
));
1592 /* ?find@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEIABV12@I@Z */
1593 /* ?find@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA_KAEBV12@_K@Z */
1594 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_find_off
, 12)
1595 MSVCP_size_t __thiscall
MSVCP_basic_string_char_find_off(
1596 const basic_string_char
*this, const basic_string_char
*find
, MSVCP_size_t off
)
1598 return MSVCP_basic_string_char_find_cstr_substr(this,
1599 basic_string_char_const_ptr(find
), off
, find
->size
);
1602 /* ?find@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEIDI@Z */
1603 /* ?find@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA_KD_K@Z */
1604 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_find_ch
, 12)
1605 MSVCP_size_t __thiscall
MSVCP_basic_string_char_find_ch(
1606 const basic_string_char
*this, char ch
, MSVCP_size_t pos
)
1608 return MSVCP_basic_string_char_find_cstr_substr(this, &ch
, pos
, 1);
1611 /* ?rfind@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEIPBDII@Z */
1612 /* ?rfind@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA_KPEBD_K1@Z */
1613 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_rfind_cstr_substr
, 16)
1614 MSVCP_size_t __thiscall
MSVCP_basic_string_char_rfind_cstr_substr(
1615 const basic_string_char
*this, const char *find
, MSVCP_size_t pos
, MSVCP_size_t len
)
1617 const char *p
, *end
;
1619 TRACE("%p %s %lu %lu\n", this, debugstr_an(find
, len
), pos
, len
);
1622 return pos
<this->size
? pos
: this->size
;
1624 if(len
> this->size
)
1625 return MSVCP_basic_string_char_npos
;
1627 if(pos
> this->size
-len
+1)
1628 pos
= this->size
-len
+1;
1629 end
= basic_string_char_const_ptr(this);
1630 for(p
=end
+pos
; p
>=end
; p
--) {
1631 if(*p
==*find
&& !MSVCP_char_traits_char_compare(p
, find
, len
))
1632 return p
-basic_string_char_const_ptr(this);
1635 return MSVCP_basic_string_char_npos
;
1638 /* ?rfind@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEIPBDI@Z */
1639 /* ?rfind@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA_KPEBD_K@Z */
1640 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_rfind_cstr_off
, 12)
1641 MSVCP_size_t __thiscall
MSVCP_basic_string_char_rfind_cstr_off(
1642 const basic_string_char
*this, const char *find
, MSVCP_size_t pos
)
1644 return MSVCP_basic_string_char_rfind_cstr_substr(this, find
, pos
,
1645 MSVCP_char_traits_char_length(find
));
1648 /* ?rfind@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEIABV12@I@Z */
1649 /* ?rfind@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA_KAEBV12@_K@Z */
1650 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_rfind_off
, 12)
1651 MSVCP_size_t __thiscall
MSVCP_basic_string_char_rfind_off(
1652 const basic_string_char
*this, const basic_string_char
*find
, MSVCP_size_t off
)
1654 return MSVCP_basic_string_char_rfind_cstr_substr(this,
1655 basic_string_char_const_ptr(find
), off
, find
->size
);
1658 /* ?rfind@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEIDI@Z */
1659 /* ?rfind@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA_KD_K@Z */
1660 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_rfind_ch
, 12)
1661 MSVCP_size_t __thiscall
MSVCP_basic_string_char_rfind_ch(
1662 const basic_string_char
*this, char ch
, MSVCP_size_t pos
)
1664 return MSVCP_basic_string_char_rfind_cstr_substr(this, &ch
, pos
, 1);
1667 /* ?find_first_of@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEIPBDII@Z */
1668 /* ?find_first_of@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA_KPEBD_K1@Z */
1669 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_find_first_of_cstr_substr
, 16)
1670 MSVCP_size_t __thiscall
MSVCP_basic_string_char_find_first_of_cstr_substr(
1671 const basic_string_char
*this, const char *find
, MSVCP_size_t off
, MSVCP_size_t len
)
1673 const char *p
, *end
;
1675 TRACE("%p %p %lu %lu\n", this, find
, off
, len
);
1677 if(len
>0 && off
<this->size
) {
1678 end
= basic_string_char_const_ptr(this)+this->size
;
1679 for(p
=basic_string_char_const_ptr(this)+off
; p
<end
; p
++)
1680 if(MSVCP_char_traits_char_find(find
, len
, p
))
1681 return p
-basic_string_char_const_ptr(this);
1684 return MSVCP_basic_string_char_npos
;
1687 /* ?find_first_of@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEIABV12@I@Z */
1688 /* ?find_first_of@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA_KAEBV12@_K@Z */
1689 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_find_first_of
, 12)
1690 MSVCP_size_t __thiscall
MSVCP_basic_string_char_find_first_of(
1691 const basic_string_char
*this, const basic_string_char
*find
, MSVCP_size_t off
)
1693 return MSVCP_basic_string_char_find_first_of_cstr_substr(this,
1694 basic_string_char_const_ptr(find
), off
, find
->size
);
1697 /* ?find_first_of@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEIPBDI@Z */
1698 /* ?find_first_of@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA_KPEBD_K@Z */
1699 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_find_first_of_cstr
, 12)
1700 MSVCP_size_t __thiscall
MSVCP_basic_string_char_find_first_of_cstr(
1701 const basic_string_char
*this, const char *find
, MSVCP_size_t off
)
1703 return MSVCP_basic_string_char_find_first_of_cstr_substr(
1704 this, find
, off
, MSVCP_char_traits_char_length(find
));
1707 /* ?find_first_of@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEIDI@Z */
1708 /* ?find_first_of@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA_KD_K@Z */
1709 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_find_first_of_ch
, 12)
1710 MSVCP_size_t __thiscall
MSVCP_basic_string_char_find_first_of_ch(
1711 const basic_string_char
*this, char ch
, MSVCP_size_t off
)
1713 return MSVCP_basic_string_char_find_first_of_cstr_substr(this, &ch
, off
, 1);
1716 /* ?find_first_not_of@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEIPBDII@Z */
1717 /* ?find_first_not_of@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA_KPEBD_K1@Z */
1718 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_find_first_not_of_cstr_substr
, 16)
1719 MSVCP_size_t __thiscall
MSVCP_basic_string_char_find_first_not_of_cstr_substr(
1720 const basic_string_char
*this, const char *find
, MSVCP_size_t off
, MSVCP_size_t len
)
1722 const char *p
, *end
;
1724 TRACE("%p %p %lu %lu\n", this, find
, off
, len
);
1726 if(off
<this->size
) {
1727 end
= basic_string_char_const_ptr(this)+this->size
;
1728 for(p
=basic_string_char_const_ptr(this)+off
; p
<end
; p
++)
1729 if(!MSVCP_char_traits_char_find(find
, len
, p
))
1730 return p
-basic_string_char_const_ptr(this);
1733 return MSVCP_basic_string_char_npos
;
1736 /* ?find_first_not_of@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEIABV12@I@Z */
1737 /* ?find_first_not_of@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA_KAEBV12@_K@Z */
1738 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_find_first_not_of
, 12)
1739 MSVCP_size_t __thiscall
MSVCP_basic_string_char_find_first_not_of(
1740 const basic_string_char
*this, const basic_string_char
*find
, MSVCP_size_t off
)
1742 return MSVCP_basic_string_char_find_first_not_of_cstr_substr(this,
1743 basic_string_char_const_ptr(find
), off
, find
->size
);
1746 /* ?find_first_not_of@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEIPBDI@Z */
1747 /* ?find_first_not_of@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA_KPEBD_K@Z */
1748 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_find_first_not_of_cstr
, 12)
1749 MSVCP_size_t __thiscall
MSVCP_basic_string_char_find_first_not_of_cstr(
1750 const basic_string_char
*this, const char *find
, MSVCP_size_t off
)
1752 return MSVCP_basic_string_char_find_first_not_of_cstr_substr(
1753 this, find
, off
, MSVCP_char_traits_char_length(find
));
1756 /* ?find_first_not_of@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEIDI@Z */
1757 /* ?find_first_not_of@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA_KD_K@Z */
1758 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_find_first_not_of_ch
, 12)
1759 MSVCP_size_t __thiscall
MSVCP_basic_string_char_find_first_not_of_ch(
1760 const basic_string_char
*this, char ch
, MSVCP_size_t off
)
1762 return MSVCP_basic_string_char_find_first_not_of_cstr_substr(this, &ch
, off
, 1);
1765 /* ?find_last_of@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEIPBDII@Z */
1766 /* ?find_last_of@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA_KPEBD_K1@Z */
1767 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_find_last_of_cstr_substr
, 16)
1768 MSVCP_size_t __thiscall
MSVCP_basic_string_char_find_last_of_cstr_substr(
1769 const basic_string_char
*this, const char *find
, MSVCP_size_t off
, MSVCP_size_t len
)
1771 const char *p
, *beg
;
1773 TRACE("%p %p %lu %lu\n", this, find
, off
, len
);
1775 if(len
>0 && this->size
>0) {
1776 if(off
>= this->size
)
1779 beg
= basic_string_char_const_ptr(this);
1780 for(p
=beg
+off
; p
>=beg
; p
--)
1781 if(MSVCP_char_traits_char_find(find
, len
, p
))
1785 return MSVCP_basic_string_char_npos
;
1788 /* ?find_last_of@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEIABV12@I@Z */
1789 /* ?find_last_of@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA_KAEBV12@_K@Z */
1790 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_find_last_of
, 12)
1791 MSVCP_size_t __thiscall
MSVCP_basic_string_char_find_last_of(
1792 const basic_string_char
*this, const basic_string_char
*find
, MSVCP_size_t off
)
1794 return MSVCP_basic_string_char_find_last_of_cstr_substr(this,
1795 basic_string_char_const_ptr(find
), off
, find
->size
);
1798 /* ?find_last_of@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEIPBDI@Z */
1799 /* ?find_last_of@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA_KPEBD_K@Z */
1800 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_find_last_of_cstr
, 12)
1801 MSVCP_size_t __thiscall
MSVCP_basic_string_char_find_last_of_cstr(
1802 const basic_string_char
*this, const char *find
, MSVCP_size_t off
)
1804 return MSVCP_basic_string_char_find_last_of_cstr_substr(
1805 this, find
, off
, MSVCP_char_traits_char_length(find
));
1808 /* ?find_last_of@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEIDI@Z */
1809 /* ?find_last_of@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA_KD_K@Z */
1810 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_find_last_of_ch
, 12)
1811 MSVCP_size_t __thiscall
MSVCP_basic_string_char_find_last_of_ch(
1812 const basic_string_char
*this, char ch
, MSVCP_size_t off
)
1814 return MSVCP_basic_string_char_find_last_of_cstr_substr(this, &ch
, off
, 1);
1817 /* ?find_last_not_of@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEIPBDII@Z */
1818 /* ?find_last_not_of@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA_KPEBD_K1@Z */
1819 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_find_last_not_of_cstr_substr
, 16)
1820 MSVCP_size_t __thiscall
MSVCP_basic_string_char_find_last_not_of_cstr_substr(
1821 const basic_string_char
*this, const char *find
, MSVCP_size_t off
, MSVCP_size_t len
)
1823 const char *p
, *beg
;
1825 TRACE("%p %p %lu %lu\n", this, find
, off
, len
);
1827 if(len
>0 && this->size
>0) {
1828 if(off
>= this->size
)
1831 beg
= basic_string_char_const_ptr(this);
1832 for(p
=beg
+off
; p
>=beg
; p
--)
1833 if(!MSVCP_char_traits_char_find(find
, len
, p
))
1837 return MSVCP_basic_string_char_npos
;
1840 /* ?find_last_not_of@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEIABV12@I@Z */
1841 /* ?find_last_not_of@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA_KAEBV12@_K@Z */
1842 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_find_last_not_of
, 12)
1843 MSVCP_size_t __thiscall
MSVCP_basic_string_char_find_last_not_of(
1844 const basic_string_char
*this, const basic_string_char
*find
, MSVCP_size_t off
)
1846 return MSVCP_basic_string_char_find_last_not_of_cstr_substr(this,
1847 basic_string_char_const_ptr(find
), off
, find
->size
);
1850 /* ?find_last_not_of@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEIPBDI@Z */
1851 /* ?find_last_not_of@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA_KPEBD_K@Z */
1852 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_find_last_not_of_cstr
, 12)
1853 MSVCP_size_t __thiscall
MSVCP_basic_string_char_find_last_not_of_cstr(
1854 const basic_string_char
*this, const char *find
, MSVCP_size_t off
)
1856 return MSVCP_basic_string_char_find_last_not_of_cstr_substr(
1857 this, find
, off
, MSVCP_char_traits_char_length(find
));
1860 /* ?find_last_not_of@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEIDI@Z */
1861 /* ?find_last_not_of@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA_KD_K@Z */
1862 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_find_last_not_of_ch
, 12)
1863 MSVCP_size_t __thiscall
MSVCP_basic_string_char_find_last_not_of_ch(
1864 const basic_string_char
*this, char ch
, MSVCP_size_t off
)
1866 return MSVCP_basic_string_char_find_last_not_of_cstr_substr(this, &ch
, off
, 1);
1869 /* ??A?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAADI@Z */
1870 /* ??A?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAAEAD_K@Z */
1871 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_operator_at
, 8)
1872 char* __thiscall
MSVCP_basic_string_char_operator_at(
1873 basic_string_char
*this, MSVCP_size_t pos
)
1875 TRACE("%p %lu\n", this, pos
);
1877 assert(this->size
>= pos
);
1878 return basic_string_char_ptr(this)+pos
;
1881 /* ??A?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEABDI@Z */
1882 /* ??A?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBAAEBD_K@Z */
1883 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_const_operator_at
, 8)
1884 const char* __thiscall
MSVCP_basic_string_char_const_operator_at(
1885 const basic_string_char
*this, MSVCP_size_t pos
)
1887 TRACE("%p %lu\n", this, pos
);
1889 assert(this->size
>= pos
);
1890 return basic_string_char_const_ptr(this)+pos
;
1893 /* ??A?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAADU_Size_type_nosscl@01@@Z */
1894 /* ??A?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAAEADU_Size_type_nosscl@01@@Z */
1895 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_operator_at_noverify
, 8)
1896 char* __thiscall
MSVCP_basic_string_char_operator_at_noverify(
1897 basic_string_char
*this, size_t_noverify pos
)
1899 TRACE("%p %lu\n", this, pos
.val
);
1900 return basic_string_char_ptr(this)+pos
.val
;
1903 /* ??A?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEABDU_Size_type_nosscl@01@@Z */
1904 /* ??A?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBAAEBDU_Size_type_nosscl@01@@Z */
1905 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_operator_const_at_noverify
, 8)
1906 const char* __thiscall
MSVCP_basic_string_char_operator_const_at_noverify(
1907 const basic_string_char
*this, size_t_noverify pos
)
1909 TRACE("%p %lu\n", this, pos
.val
);
1910 return basic_string_char_const_ptr(this)+pos
.val
;
1913 /* ?at@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAADI@Z */
1914 /* ?at@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAAEAD_K@Z */
1915 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_at
, 8)
1916 char* __thiscall
MSVCP_basic_string_char_at(
1917 basic_string_char
*this, MSVCP_size_t pos
)
1919 TRACE("%p %lu\n", this, pos
);
1921 if(this->size
<= pos
)
1922 MSVCP__String_base_Xran();
1924 return basic_string_char_ptr(this)+pos
;
1927 /* ?at@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEABDI@Z */
1928 /* ?at@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBAAEBD_K@Z */
1929 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_const_at
, 8)
1930 const char* __thiscall
MSVCP_basic_string_char_const_at(
1931 const basic_string_char
*this, MSVCP_size_t pos
)
1933 TRACE("%p %lu\n", this, pos
);
1935 if(this->size
<= pos
)
1936 MSVCP__String_base_Xran();
1938 return basic_string_char_const_ptr(this)+pos
;
1941 /* ?replace@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@IIPBDI@Z */
1942 /* ?replace@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAAEAV12@_K0PEBD0@Z */
1943 DEFINE_THISCALL_WRAPPER(basic_string_char_replace_cstr_len
, 20)
1944 basic_string_char
* __thiscall
basic_string_char_replace_cstr_len(basic_string_char
*this,
1945 MSVCP_size_t off
, MSVCP_size_t len
, const char *str
, MSVCP_size_t str_len
)
1947 MSVCP_size_t inside_pos
= -1;
1948 char *ptr
= basic_string_char_ptr(this);
1950 TRACE("%p %ld %ld %p %ld\n", this, off
, len
, str
, str_len
);
1952 if(this->size
< off
)
1953 MSVCP__String_base_Xran();
1955 if(len
> this->size
-off
)
1956 len
= this->size
-off
;
1958 if(MSVCP_basic_string_char_npos
-str_len
<= this->size
-len
)
1959 MSVCP__String_base_Xlen();
1961 if(basic_string_char_inside(this, str
))
1962 inside_pos
= str
-ptr
;
1965 basic_string_char_grow(this, this->size
-len
+str_len
, FALSE
);
1966 ptr
= basic_string_char_ptr(this);
1969 if(inside_pos
== -1) {
1970 memmove(ptr
+off
+str_len
, ptr
+off
+len
, (this->size
-off
-len
)*sizeof(char));
1971 memcpy(ptr
+off
, str
, str_len
*sizeof(char));
1972 } else if(len
>= str_len
) {
1973 memmove(ptr
+off
, ptr
+inside_pos
, str_len
*sizeof(char));
1974 memmove(ptr
+off
+str_len
, ptr
+off
+len
, (this->size
-off
-len
)*sizeof(char));
1978 memmove(ptr
+off
+str_len
, ptr
+off
+len
, (this->size
-off
-len
)*sizeof(char));
1980 if(inside_pos
< off
+len
) {
1981 size
= off
+len
-inside_pos
;
1984 memmove(ptr
+off
, ptr
+inside_pos
, size
*sizeof(char));
1990 memmove(ptr
+off
+size
, ptr
+off
+str_len
, (str_len
-size
)*sizeof(char));
1993 basic_string_char_eos(this, this->size
-len
+str_len
);
1997 /* ?replace@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@IIPBD@Z */
1998 /* ?replace@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAAEAV12@_K0PEBD@Z */
1999 DEFINE_THISCALL_WRAPPER(basic_string_char_replace_cstr
, 16)
2000 basic_string_char
* __thiscall
basic_string_char_replace_cstr(basic_string_char
*this,
2001 MSVCP_size_t off
, MSVCP_size_t len
, const char *str
)
2003 return basic_string_char_replace_cstr_len(this, off
, len
, str
,
2004 MSVCP_char_traits_char_length(str
));
2007 /* ?replace@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@IIABV12@II@Z */
2008 /* ?replace@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAAEAV12@_K0AEBV12@00@Z */
2009 DEFINE_THISCALL_WRAPPER(basic_string_char_replace_substr
, 24)
2010 basic_string_char
* __thiscall
basic_string_char_replace_substr(basic_string_char
*this, MSVCP_size_t off
,
2011 MSVCP_size_t len
, const basic_string_char
*str
, MSVCP_size_t str_off
, MSVCP_size_t str_len
)
2013 if(str
->size
< str_off
)
2014 MSVCP__String_base_Xran();
2016 if(str_len
> str
->size
-str_off
)
2017 str_len
= str
->size
-str_off
;
2019 return basic_string_char_replace_cstr_len(this, off
, len
,
2020 basic_string_char_const_ptr(str
)+str_off
, str_len
);
2023 /* ?replace@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@IIABV12@@Z */
2024 /* ?replace@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAAEAV12@_K0AEBV12@@Z */
2025 DEFINE_THISCALL_WRAPPER(basic_string_char_replace
, 16)
2026 basic_string_char
* __thiscall
basic_string_char_replace(basic_string_char
*this,
2027 MSVCP_size_t off
, MSVCP_size_t len
, const basic_string_char
*str
)
2029 return basic_string_char_replace_cstr_len(this, off
, len
,
2030 basic_string_char_const_ptr(str
), str
->size
);
2033 /* ?replace@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@IIID@Z */
2034 /* ?replace@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAAEAV12@_K00D@Z */
2035 DEFINE_THISCALL_WRAPPER(basic_string_char_replace_ch
, 20)
2036 basic_string_char
* __thiscall
basic_string_char_replace_ch(basic_string_char
*this,
2037 MSVCP_size_t off
, MSVCP_size_t len
, MSVCP_size_t count
, char ch
)
2039 char *ptr
= basic_string_char_ptr(this);
2041 TRACE("%p %ld %ld %ld %c\n", this, off
, len
, count
, ch
);
2043 if(this->size
< off
)
2044 MSVCP__String_base_Xran();
2046 if(len
> this->size
-off
)
2047 len
= this->size
-off
;
2049 if(MSVCP_basic_string_char_npos
-count
<= this->size
-len
)
2050 MSVCP__String_base_Xlen();
2053 basic_string_char_grow(this, this->size
-len
+count
, FALSE
);
2054 ptr
= basic_string_char_ptr(this);
2057 memmove(ptr
+off
+count
, ptr
+off
+len
, (this->size
-off
-len
)*sizeof(char));
2058 MSVCP_char_traits_char_assignn(ptr
+off
, count
, ch
);
2059 basic_string_char_eos(this, this->size
-len
+count
);
2064 /* ?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 */
2065 /* ?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 */
2066 DEFINE_THISCALL_WRAPPER(basic_string_char_replace_iter_iter
, 36)
2067 basic_string_char
* __thiscall
basic_string_char_replace_iter_iter(basic_string_char
*this,
2068 String_iterator_char beg
, String_iterator_char end
,
2069 String_iterator_char res_beg
, String_iterator_char res_end
)
2071 String_iterator_char begin
= { this, basic_string_char_ptr(this) };
2072 return basic_string_char_replace_cstr_len(this,
2073 MSVCP_basic_string_char_Pdif(beg
, begin
), MSVCP_basic_string_char_Pdif(end
, beg
),
2074 res_beg
.pos
, MSVCP_basic_string_char_Pdif(res_end
, res_beg
));
2077 /* ?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 */
2078 /* ?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 */
2079 DEFINE_THISCALL_WRAPPER(basic_string_char_replace_iter_bstr
, 24)
2080 basic_string_char
* __thiscall
basic_string_char_replace_iter_bstr(basic_string_char
*this,
2081 String_iterator_char beg
, String_iterator_char end
, const basic_string_char
*str
)
2083 String_iterator_char begin
= { this, basic_string_char_ptr(this) };
2084 return basic_string_char_replace(this, MSVCP_basic_string_char_Pdif(beg
, begin
),
2085 MSVCP_basic_string_char_Pdif(end
, beg
), str
);
2088 /* ?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 */
2089 /* ?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 */
2090 DEFINE_THISCALL_WRAPPER(basic_string_char_replace_iter_ch
, 28)
2091 basic_string_char
* __thiscall
basic_string_char_replace_iter_ch(basic_string_char
*this,
2092 String_iterator_char beg
, String_iterator_char end
, MSVCP_size_t count
, char ch
)
2094 String_iterator_char begin
= { this, basic_string_char_ptr(this) };
2095 return basic_string_char_replace_ch(this, MSVCP_basic_string_char_Pdif(beg
, begin
),
2096 MSVCP_basic_string_char_Pdif(end
, beg
), count
, ch
);
2099 /* ?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 */
2100 /* ?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 */
2101 DEFINE_THISCALL_WRAPPER(basic_string_char_replace_iter_ptr_ptr
, 28)
2102 basic_string_char
* __thiscall
basic_string_char_replace_iter_ptr_ptr(basic_string_char
*this,
2103 String_iterator_char beg
, String_iterator_char end
,
2104 const char *res_beg
, const char *res_end
)
2106 String_iterator_char begin
= { this, basic_string_char_ptr(this) };
2107 return basic_string_char_replace_cstr_len(this, MSVCP_basic_string_char_Pdif(beg
, begin
),
2108 MSVCP_basic_string_char_Pdif(end
, beg
), res_beg
, res_end
-res_beg
);
2111 /* ?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 */
2112 /* ?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 */
2113 DEFINE_THISCALL_WRAPPER(basic_string_char_replace_iter_cstr
, 24)
2114 basic_string_char
* __thiscall
basic_string_char_replace_iter_cstr(basic_string_char
*this,
2115 String_iterator_char beg
, String_iterator_char end
, const char *str
)
2117 String_iterator_char begin
= { this, basic_string_char_ptr(this) };
2118 return basic_string_char_replace_cstr(this, MSVCP_basic_string_char_Pdif(beg
, begin
),
2119 MSVCP_basic_string_char_Pdif(end
, beg
), str
);
2122 /* ?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 */
2123 /* ?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 */
2124 DEFINE_THISCALL_WRAPPER(basic_string_char_replace_iter_cstr_len
, 28)
2125 basic_string_char
* __thiscall
basic_string_char_replace_iter_cstr_len(basic_string_char
*this,
2126 String_iterator_char beg
, String_iterator_char end
, const char *str
, MSVCP_size_t len
)
2128 String_iterator_char begin
= { this, basic_string_char_ptr(this) };
2129 return basic_string_char_replace_cstr_len(this, MSVCP_basic_string_char_Pdif(beg
, begin
),
2130 MSVCP_basic_string_char_Pdif(end
, beg
), str
, len
);
2133 /* ?insert@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@IABV12@@Z */
2134 /* ?insert@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAAEAV12@_KAEBV12@@Z */
2135 DEFINE_THISCALL_WRAPPER(basic_string_char_insert
, 12)
2136 basic_string_char
* __thiscall
basic_string_char_insert(basic_string_char
*this,
2137 MSVCP_size_t off
, const basic_string_char
*str
)
2139 return basic_string_char_replace(this, off
, 0, str
);
2142 /* ?insert@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@IABV12@II@Z */
2143 /* ?insert@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAAEAV12@_KAEBV12@00@Z */
2144 DEFINE_THISCALL_WRAPPER(basic_string_char_insert_substr
, 20)
2145 basic_string_char
* __thiscall
basic_string_char_insert_substr(
2146 basic_string_char
*this, MSVCP_size_t off
, const basic_string_char
*str
,
2147 MSVCP_size_t str_off
, MSVCP_size_t str_count
)
2149 return basic_string_char_replace_substr(this, off
, 0, str
, str_off
, str_count
);
2152 /* ?insert@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@IPBD@Z */
2153 /* ?insert@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAAEAV12@_KPEBD@Z */
2154 DEFINE_THISCALL_WRAPPER(basic_string_char_insert_cstr
, 12)
2155 basic_string_char
* __thiscall
basic_string_char_insert_cstr(
2156 basic_string_char
*this, MSVCP_size_t off
, const char *str
)
2158 return basic_string_char_replace_cstr(this, off
, 0, str
);
2161 /* ?insert@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@IPBDI@Z */
2162 /* ?insert@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAAEAV12@_KPEBD0@Z */
2163 DEFINE_THISCALL_WRAPPER(basic_string_char_insert_cstr_len
, 16)
2164 basic_string_char
* __thiscall
basic_string_char_insert_cstr_len(basic_string_char
*this,
2165 MSVCP_size_t off
, const char *str
, MSVCP_size_t str_len
)
2167 return basic_string_char_replace_cstr_len(this, off
, 0, str
, str_len
);
2170 /* ?insert@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@IID@Z */
2171 /* ?insert@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAAEAV12@_K0D@Z */
2172 DEFINE_THISCALL_WRAPPER(basic_string_char_insert_chn
, 16)
2173 basic_string_char
* __thiscall
basic_string_char_insert_chn(basic_string_char
*this,
2174 MSVCP_size_t off
, MSVCP_size_t count
, char ch
)
2176 return basic_string_char_replace_ch(this, off
, 0, count
, ch
);
2179 /* ?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 */
2180 /* ?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 */
2181 DEFINE_THISCALL_WRAPPER(basic_string_char_insert_iter_chn
, 20)
2182 void __thiscall
basic_string_char_insert_iter_chn(basic_string_char
*this,
2183 String_iterator_char where
, MSVCP_size_t count
, char ch
)
2185 String_iterator_char iter
= { this, basic_string_char_ptr(this) };
2186 MSVCP_size_t off
= MSVCP_basic_string_char_Pdif(where
, iter
);
2188 basic_string_char_insert_chn(this, off
, count
, ch
);
2191 /* ?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 */
2192 /* ?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 */
2193 DEFINE_THISCALL_WRAPPER(basic_string_char_insert_iter_ch
, 20)
2194 String_iterator_char
* __thiscall
basic_string_char_insert_iter_ch(basic_string_char
*this,
2195 String_iterator_char
*ret
, String_iterator_char where
, char ch
)
2200 ret
->pos
= basic_string_char_ptr(this);
2201 off
= MSVCP_basic_string_char_Pdif(where
, *ret
);
2203 basic_string_char_insert_chn(this, off
, 1, ch
);
2204 ret
->pos
= basic_string_char_ptr(this)+off
;
2208 /* ?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 */
2209 /* ?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 */
2210 DEFINE_THISCALL_WRAPPER(basic_string_char_insert_iter_null
, 16)
2211 String_iterator_char
* __thiscall
basic_string_char_insert_iter_null(basic_string_char
*this,
2212 String_iterator_char
*ret
, String_iterator_char where
)
2214 return basic_string_char_insert_iter_ch(this, ret
, where
, 0);
2217 /* ?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 */
2218 /* ?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 */
2219 DEFINE_THISCALL_WRAPPER(basic_string_char_insert_iter_beg_end
, 28)
2220 void __thiscall
basic_string_char_insert_iter_beg_end(basic_string_char
*this,
2221 String_iterator_char where
, String_iterator_char beg
, String_iterator_char end
)
2223 basic_string_char_replace_iter_iter(this, where
, where
, beg
, end
);
2226 /* ?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 */
2227 /* ?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 */
2228 DEFINE_THISCALL_WRAPPER(basic_string_char_insert_iter_ptr_ptr
, 20)
2229 void __thiscall
basic_string_char_insert_iter_ptr_ptr(basic_string_char
*this,
2230 String_iterator_char where
, const char *beg
, const char *end
)
2232 basic_string_char_replace_iter_ptr_ptr(this, where
, where
, beg
, end
);
2235 /* ?resize@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEXID@Z */
2236 /* ?resize@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAX_KD@Z */
2237 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_resize_ch
, 12)
2238 void __thiscall
MSVCP_basic_string_char_resize_ch(
2239 basic_string_char
*this, MSVCP_size_t size
, char ch
)
2241 TRACE("%p %lu %c\n", this, size
, ch
);
2243 if(size
<= this->size
)
2244 MSVCP_basic_string_char_erase(this, size
, this->size
);
2246 MSVCP_basic_string_char_append_len_ch(this, size
-this->size
, ch
);
2249 /* ?resize@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEXI@Z */
2250 /* ?resize@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAX_K@Z */
2251 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_resize
, 8)
2252 void __thiscall
MSVCP_basic_string_char_resize(
2253 basic_string_char
*this, MSVCP_size_t size
)
2255 MSVCP_basic_string_char_resize_ch(this, size
, '\0');
2258 /* ?clear@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEXXZ */
2259 /* ?clear@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAXXZ */
2260 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_clear
, 4)
2261 void __thiscall
MSVCP_basic_string_char_clear(basic_string_char
*this)
2263 basic_string_char_eos(this, 0);
2266 /* ?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 */
2267 /* ?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 */
2268 /* ?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 */
2269 /* ?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 */
2270 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_begin
, 8)
2271 String_iterator_char
* __thiscall
MSVCP_basic_string_char_begin(
2272 basic_string_char
*this, String_iterator_char
*ret
)
2274 TRACE("%p\n", this);
2277 ret
->pos
= basic_string_char_const_ptr(this);
2281 /* ?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 */
2282 /* ?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 */
2283 /* ?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 */
2284 /* ?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 */
2285 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_end
, 8)
2286 String_iterator_char
* __thiscall
MSVCP_basic_string_char_end(
2287 basic_string_char
*this, String_iterator_char
*ret
)
2289 TRACE("%p\n", this);
2292 ret
->pos
= basic_string_char_const_ptr(this)+this->size
;
2296 /* ?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 */
2297 /* ?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 */
2298 /* ?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 */
2299 /* ?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 */
2300 DEFINE_THISCALL_WRAPPER(basic_string_char_rbegin
, 8)
2301 basic_string_char_reverse_iter
* __thiscall
basic_string_char_rbegin(const basic_string_char
*this, basic_string_char_reverse_iter
*ret
)
2305 ret
->pos
= basic_string_char_const_ptr(this)+this->size
;
2309 /* ?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 */
2310 /* ?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 */
2311 /* ?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 */
2312 /* ?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 */
2313 DEFINE_THISCALL_WRAPPER(basic_string_char_rend
, 8)
2314 basic_string_char_reverse_iter
* __thiscall
basic_string_char_rend(const basic_string_char
*this, basic_string_char_reverse_iter
*ret
)
2318 ret
->pos
= basic_string_char_const_ptr(this);
2322 /* basic_string<wchar_t, char_traits<wchar_t>, allocator<wchar_t>> */
2323 /* basic_string<unsigned short, char_traits<unsigned short>, allocator<unsigned short>> */
2324 /* ?npos@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@2IB */
2325 /* ?npos@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@2_KB */
2326 /* ?npos@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@2IB */
2327 /* ?npos@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@2_KB */
2328 const MSVCP_size_t MSVCP_basic_string_wchar_npos
= -1;
2330 /* ?_Myptr@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@IAEPA_WXZ */
2331 /* ?_Myptr@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@IEAAPEA_WXZ */
2332 /* ?_Myptr@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@IAEPAGXZ */
2333 /* ?_Myptr@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@IEAAPEAGXZ */
2334 DEFINE_THISCALL_WRAPPER(basic_string_wchar_ptr
, 4)
2335 wchar_t* __thiscall
basic_string_wchar_ptr(basic_string_wchar
*this)
2337 if(this->res
< BUF_SIZE_WCHAR
)
2338 return this->data
.buf
;
2339 return this->data
.ptr
;
2342 /* ?_Myptr@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@IBEPB_WXZ */
2343 /* ?_Myptr@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@IEBAPEB_WXZ */
2344 /* ?_Myptr@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@IBEPBGXZ */
2345 /* ?_Myptr@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@IEBAPEBGXZ */
2346 DEFINE_THISCALL_WRAPPER(basic_string_wchar_const_ptr
, 4)
2347 const wchar_t* __thiscall
basic_string_wchar_const_ptr(const basic_string_wchar
*this)
2349 if(this->res
< BUF_SIZE_WCHAR
)
2350 return this->data
.buf
;
2351 return this->data
.ptr
;
2354 /* ?_Eos@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@IAEXI@Z */
2355 /* ?_Eos@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@IEAAX_K@Z */
2356 /* ?_Eos@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@IAEXI@Z */
2357 /* ?_Eos@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@IEAAX_K@Z */
2358 DEFINE_THISCALL_WRAPPER(basic_string_wchar_eos
, 8)
2359 void __thiscall
basic_string_wchar_eos(basic_string_wchar
*this, MSVCP_size_t len
)
2361 static const wchar_t nullbyte_w
= '\0';
2364 MSVCP_char_traits_wchar_assign(basic_string_wchar_ptr(this)+len
, &nullbyte_w
);
2367 /* ?_Inside@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@IAE_NPB_W@Z */
2368 /* ?_Inside@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@IEAA_NPEB_W@Z */
2369 /* ?_Inside@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@IAE_NPBG@Z */
2370 /* ?_Inside@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@IEAA_NPEBG@Z */
2371 DEFINE_THISCALL_WRAPPER(basic_string_wchar_inside
, 8)
2372 MSVCP_bool __thiscall
basic_string_wchar_inside(
2373 basic_string_wchar
*this, const wchar_t *ptr
)
2375 wchar_t *cstr
= basic_string_wchar_ptr(this);
2377 return ptr
>=cstr
&& ptr
<cstr
+this->size
;
2380 /* ?_Tidy@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@IAEX_NI@Z */
2381 /* ?_Tidy@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@IEAAX_N_K@Z */
2382 /* ?_Tidy@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@IAEX_NI@Z */
2383 /* ?_Tidy@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@IEAAX_N_K@Z */
2384 DEFINE_THISCALL_WRAPPER(basic_string_wchar_tidy
, 12)
2385 void __thiscall
basic_string_wchar_tidy(basic_string_wchar
*this,
2386 MSVCP_bool built
, MSVCP_size_t new_size
)
2388 if(built
&& BUF_SIZE_WCHAR
<=this->res
) {
2389 wchar_t *ptr
= this->data
.ptr
;
2392 MSVCP_char_traits_wchar__Copy_s(this->data
.buf
, BUF_SIZE_WCHAR
, ptr
, new_size
);
2393 MSVCP_allocator_wchar_deallocate(this->allocator
, ptr
, this->res
+1);
2396 this->res
= BUF_SIZE_WCHAR
-1;
2397 basic_string_wchar_eos(this, new_size
);
2400 /* ?_Grow@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@IAE_NI_N@Z */
2401 /* ?_Grow@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@IEAA_N_K_N@Z */
2402 /* ?_Grow@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@IAE_NI_N@Z */
2403 /* ?_Grow@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@IEAA_N_K_N@Z */
2404 DEFINE_THISCALL_WRAPPER(basic_string_wchar_grow
, 12)
2405 MSVCP_bool __thiscall
basic_string_wchar_grow(
2406 basic_string_wchar
*this, MSVCP_size_t new_size
, MSVCP_bool trim
)
2408 if(this->res
< new_size
) {
2409 MSVCP_size_t new_res
= new_size
, len
= this->size
;
2414 if(new_res
/3 < this->res
/2)
2415 new_res
= this->res
+ this->res
/2;
2417 ptr
= MSVCP_allocator_wchar_allocate(this->allocator
, new_res
+1);
2419 ptr
= MSVCP_allocator_wchar_allocate(this->allocator
, new_size
+1);
2423 ERR("Out of memory\n");
2424 basic_string_wchar_tidy(this, TRUE
, 0);
2428 MSVCP_char_traits_wchar__Copy_s(ptr
, new_size
,
2429 basic_string_wchar_ptr(this), this->size
);
2430 basic_string_wchar_tidy(this, TRUE
, 0);
2431 this->data
.ptr
= ptr
;
2432 this->res
= new_size
;
2433 basic_string_wchar_eos(this, len
);
2434 } else if(trim
&& new_size
< BUF_SIZE_WCHAR
)
2435 basic_string_wchar_tidy(this, TRUE
,
2436 new_size
<this->size
? new_size
: this->size
);
2437 else if(new_size
== 0)
2438 basic_string_wchar_eos(this, 0);
2440 return (new_size
>0);
2443 /* ?_Copy@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@IAEXII@Z */
2444 /* ?_Copy@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@IEAAX_K0@Z */
2445 /* ?_Copy@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@IAEXII@Z */
2446 /* ?_Copy@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@IEAAX_K0@Z */
2447 DEFINE_THISCALL_WRAPPER(basic_string_wchar__Copy
, 12)
2448 void __thiscall
basic_string_wchar__Copy(basic_string_wchar
*this,
2449 MSVCP_size_t new_size
, MSVCP_size_t copy_len
)
2451 TRACE("%p %lu %lu\n", this, new_size
, copy_len
);
2453 if(!basic_string_wchar_grow(this, new_size
, FALSE
))
2455 basic_string_wchar_eos(this, copy_len
);
2458 /* ?_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 */
2459 /* ?_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 */
2460 /* ?_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 */
2461 /* ?_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 */
2462 MSVCP_size_t __cdecl
MSVCP_basic_string_wchar_Pdif(String_iterator_wchar i1
, String_iterator_wchar i2
)
2464 TRACE("(%p %p) (%p %p)\n", i1
.bstr
, i1
.pos
, i2
.bstr
, i2
.pos
);
2466 if((!i1
.bstr
&& i1
.pos
) || i1
.bstr
!=i2
.bstr
) {
2467 _invalid_parameter(NULL
, NULL
, NULL
, 0, 0);
2471 return !i1
.pos
? 0 : i1
.pos
-i2
.pos
;
2474 /* ?get_allocator@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBE?AV?$allocator@_W@2@XZ */
2475 /* ?get_allocator@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBA?AV?$allocator@_W@2@XZ */
2476 /* ?get_allocator@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBE?AV?$allocator@G@2@XZ */
2477 /* ?get_allocator@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBA?AV?$allocator@G@2@XZ */
2478 DEFINE_THISCALL_WRAPPER(basic_string_wchar_get_allocator
, 8)
2479 allocator
* __thiscall
basic_string_wchar_get_allocator(const basic_string_wchar
*this, allocator
*ret
)
2481 TRACE("%p\n", this);
2485 /* ?erase@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV12@II@Z */
2486 /* ?erase@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAAEAV12@_K0@Z */
2487 /* ?erase@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV12@II@Z */
2488 /* ?erase@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAAEAV12@_K0@Z */
2489 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_erase
, 12)
2490 basic_string_wchar
* __thiscall
MSVCP_basic_string_wchar_erase(
2491 basic_string_wchar
*this, MSVCP_size_t pos
, MSVCP_size_t len
)
2493 TRACE("%p %lu %lu\n", this, pos
, len
);
2495 if(pos
> this->size
)
2496 MSVCP__String_base_Xran();
2498 if(len
> this->size
-pos
)
2499 len
= this->size
-pos
;
2502 MSVCP_char_traits_wchar__Move_s(basic_string_wchar_ptr(this)+pos
,
2503 this->res
-pos
, basic_string_wchar_ptr(this)+pos
+len
,
2504 this->size
-pos
-len
);
2505 basic_string_wchar_eos(this, this->size
-len
);
2511 /* ?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 */
2512 /* ?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 */
2513 /* ?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 */
2514 /* ?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 */
2515 DEFINE_THISCALL_WRAPPER(basic_string_wchar_erase_iter_range
, 24)
2516 String_iterator_wchar
* __thiscall
basic_string_wchar_erase_iter_range(basic_string_wchar
*this,
2517 String_iterator_wchar
*ret
, String_iterator_wchar beg
, String_iterator_wchar end
)
2522 ret
->pos
= basic_string_wchar_ptr(this);
2523 off
= MSVCP_basic_string_wchar_Pdif(beg
, *ret
);
2525 MSVCP_basic_string_wchar_erase(this, off
, MSVCP_basic_string_wchar_Pdif(end
, beg
));
2528 ret
->pos
= basic_string_wchar_ptr(this)+off
;
2532 /* ?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 */
2533 /* ?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 */
2534 /* ?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 */
2535 /* ?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 */
2536 DEFINE_THISCALL_WRAPPER(basic_string_wchar_erase_iter
, 16)
2537 String_iterator_wchar
* __thiscall
basic_string_wchar_erase_iter(basic_string_wchar
*this,
2538 String_iterator_wchar
*ret
, String_iterator_wchar pos
)
2543 ret
->pos
= basic_string_wchar_ptr(this);
2544 off
= MSVCP_basic_string_wchar_Pdif(pos
, *ret
);
2546 MSVCP_basic_string_wchar_erase(this, off
, 1);
2549 ret
->pos
= basic_string_wchar_ptr(this)+off
;
2553 /* ?assign@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV12@ABV12@II@Z */
2554 /* ?assign@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAAEAV12@AEBV12@_K1@Z */
2555 /* ?assign@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV12@ABV12@II@Z */
2556 /* ?assign@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAAEAV12@AEBV12@_K1@Z */
2557 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_assign_substr
, 16)
2558 basic_string_wchar
* __thiscall
MSVCP_basic_string_wchar_assign_substr(
2559 basic_string_wchar
*this, const basic_string_wchar
*assign
,
2560 MSVCP_size_t pos
, MSVCP_size_t len
)
2562 TRACE("%p %p %lu %lu\n", this, assign
, pos
, len
);
2564 if(assign
->size
< pos
)
2565 MSVCP__String_base_Xran();
2567 if(len
> assign
->size
-pos
)
2568 len
= assign
->size
-pos
;
2570 if(this == assign
) {
2571 MSVCP_basic_string_wchar_erase(this, pos
+len
, MSVCP_basic_string_wchar_npos
);
2572 MSVCP_basic_string_wchar_erase(this, 0, pos
);
2573 } else if(basic_string_wchar_grow(this, len
, FALSE
)) {
2574 MSVCP_char_traits_wchar__Copy_s(basic_string_wchar_ptr(this),
2575 this->res
, basic_string_wchar_const_ptr(assign
)+pos
, len
);
2576 basic_string_wchar_eos(this, len
);
2582 /* ?assign@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV12@ABV12@@Z */
2583 /* ?assign@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAAEAV12@AEBV12@@Z */
2584 /* ??4?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV01@ABV01@@Z */
2585 /* ??4?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAAEAV01@AEBV01@@Z */
2586 /* ?assign@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV12@ABV12@@Z */
2587 /* ?assign@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAAEAV12@AEBV12@@Z */
2588 /* ??4?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV01@ABV01@@Z */
2589 /* ??4?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAAEAV01@AEBV01@@Z */
2590 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_assign
, 8)
2591 basic_string_wchar
* __thiscall
MSVCP_basic_string_wchar_assign(
2592 basic_string_wchar
*this, const basic_string_wchar
*assign
)
2594 return MSVCP_basic_string_wchar_assign_substr(this, assign
,
2595 0, MSVCP_basic_string_wchar_npos
);
2598 /* ?assign@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV12@PB_WI@Z */
2599 /* ?assign@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAAEAV12@PEB_W_K@Z */
2600 /* ?assign@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV12@PBGI@Z */
2601 /* ?assign@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAAEAV12@PEBG_K@Z */
2602 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_assign_cstr_len
, 12)
2603 basic_string_wchar
* __thiscall
MSVCP_basic_string_wchar_assign_cstr_len(
2604 basic_string_wchar
*this, const wchar_t *str
, MSVCP_size_t len
)
2606 TRACE("%p %s %lu\n", this, debugstr_wn(str
, len
), len
);
2608 if(basic_string_wchar_inside(this, str
))
2609 return MSVCP_basic_string_wchar_assign_substr(this, this,
2610 str
-basic_string_wchar_ptr(this), len
);
2611 else if(basic_string_wchar_grow(this, len
, FALSE
)) {
2612 MSVCP_char_traits_wchar__Copy_s(basic_string_wchar_ptr(this),
2613 this->res
, str
, len
);
2614 basic_string_wchar_eos(this, len
);
2620 /* ??4?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV01@_W@Z */
2621 /* ??4?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAAEAV01@_W@Z */
2622 /* ??4?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV01@G@Z */
2623 /* ??4?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAAEAV01@G@Z */
2624 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_assign_ch
, 8)
2625 basic_string_wchar
* __thiscall
MSVCP_basic_string_wchar_assign_ch(
2626 basic_string_wchar
*this, wchar_t ch
)
2628 return MSVCP_basic_string_wchar_assign_cstr_len(this, &ch
, 1);
2631 /* ?assign@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV12@PB_W@Z */
2632 /* ?assign@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAAEAV12@PEB_W@Z */
2633 /* ??4?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV01@PB_W@Z */
2634 /* ??4?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAAEAV01@PEB_W@Z */
2635 /* ?assign@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV12@PBG@Z */
2636 /* ?assign@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAAEAV12@PEBG@Z */
2637 /* ??4?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV01@PBG@Z */
2638 /* ??4?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAAEAV01@PEBG@Z */
2639 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_assign_cstr
, 8)
2640 basic_string_wchar
* __thiscall
MSVCP_basic_string_wchar_assign_cstr(
2641 basic_string_wchar
*this, const wchar_t *str
)
2643 return MSVCP_basic_string_wchar_assign_cstr_len(this, str
,
2644 MSVCP_char_traits_wchar_length(str
));
2647 /* ?assign@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV12@I_W@Z */
2648 /* ?assign@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAAEAV12@_K_W@Z */
2649 /* ?assign@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV12@IG@Z */
2650 /* ?assign@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAAEAV12@_KG@Z */
2651 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_assignn
, 12)
2652 basic_string_wchar
* __thiscall
MSVCP_basic_string_wchar_assignn(
2653 basic_string_wchar
*this, MSVCP_size_t count
, wchar_t ch
)
2655 TRACE("%p %ld %c\n", this, count
, ch
);
2657 basic_string_wchar_grow(this, count
, FALSE
);
2658 MSVCP_char_traits_wchar_assignn(basic_string_wchar_ptr(this), count
, ch
);
2659 basic_string_wchar_eos(this, count
);
2663 /* ?assign@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV12@PB_W0@Z */
2664 /* ?assign@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAAEAV12@PEB_W0@Z */
2665 /* ?assign@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV12@PBG0@Z */
2666 /* ?assign@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAAEAV12@PEBG0@Z */
2667 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_assign_ptr_ptr
, 12)
2668 basic_string_wchar
* __thiscall
MSVCP_basic_string_wchar_assign_ptr_ptr(
2669 basic_string_wchar
*this, const wchar_t *first
, const wchar_t *last
)
2671 return MSVCP_basic_string_wchar_assign_cstr_len(this, first
, last
-first
);
2674 /* ?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 */
2675 /* ?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 */
2676 /* ?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 */
2677 /* ?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 */
2678 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_assign_iter
, 20)
2679 basic_string_wchar
* __thiscall
MSVCP_basic_string_wchar_assign_iter(basic_string_wchar
*this,
2680 String_iterator_wchar beg
, String_iterator_wchar end
)
2682 return MSVCP_basic_string_wchar_assign_ptr_ptr(this, beg
.pos
, end
.pos
);
2685 /* ?_Chassign@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@IAEXII_W@Z */
2686 /* ?_Chassign@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@IEAAX_K0_W@Z */
2687 /* ?_Chassign@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@IAEXIIG@Z */
2688 /* ?_Chassign@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@IEAAX_K0G@Z */
2689 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_Chassign
, 16)
2690 void __thiscall
MSVCP_basic_string_wchar_Chassign(basic_string_wchar
*this,
2691 MSVCP_size_t off
, MSVCP_size_t count
, wchar_t ch
)
2693 TRACE("%p %lu %lu %c\n", this, off
, count
, ch
);
2694 MSVCP_char_traits_wchar_assignn(basic_string_wchar_ptr(this)+off
, count
, ch
);
2697 /* ?_Copy_s@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEIPA_WIII@Z */
2698 /* ?_Copy_s@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBA_KPEA_W_K11@Z */
2699 /* ?_Copy_s@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEIPAGIII@Z */
2700 /* ?_Copy_s@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBA_KPEAG_K11@Z */
2701 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_Copy_s
, 20)
2702 MSVCP_size_t __thiscall
MSVCP_basic_string_wchar_Copy_s(const basic_string_wchar
*this,
2703 wchar_t *dest
, MSVCP_size_t size
, MSVCP_size_t count
, MSVCP_size_t off
)
2705 TRACE("%p %p %lu %lu %lu\n", this, dest
, size
, count
, off
);
2707 if(this->size
< off
)
2708 MSVCP__String_base_Xran();
2710 if(count
> this->size
-off
)
2711 count
= this->size
-off
;
2713 MSVCP_char_traits_wchar__Copy_s(dest
, size
,
2714 basic_string_wchar_const_ptr(this)+off
, count
);
2718 /* ?copy@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEIPA_WII@Z */
2719 /* ?copy@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBA_KPEA_W_K1@Z */
2720 /* ?copy@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEIPAGII@Z */
2721 /* ?copy@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBA_KPEAG_K1@Z */
2722 DEFINE_THISCALL_WRAPPER(basic_string_wchar_copy
, 16)
2723 MSVCP_size_t __thiscall
basic_string_wchar_copy(const basic_string_wchar
*this,
2724 wchar_t *dest
, MSVCP_size_t count
, MSVCP_size_t off
)
2726 return MSVCP_basic_string_wchar_Copy_s(this, dest
, count
, count
, off
);
2729 /* ?c_str@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEPB_WXZ */
2730 /* ?c_str@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBAPEB_WXZ */
2731 /* ?data@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEPB_WXZ */
2732 /* ?data@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBAPEB_WXZ */
2733 /* ?c_str@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEPBGXZ */
2734 /* ?c_str@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBAPEBGXZ */
2735 /* ?data@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEPBGXZ */
2736 /* ?data@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBAPEBGXZ */
2737 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_c_str
, 4)
2738 const wchar_t* __thiscall
MSVCP_basic_string_wchar_c_str(const basic_string_wchar
*this)
2740 TRACE("%p\n", this);
2741 return basic_string_wchar_const_ptr(this);
2744 /* ?capacity@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEIXZ */
2745 /* ?capacity@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBA_KXZ */
2746 /* ?capacity@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEIXZ */
2747 /* ?capacity@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBA_KXZ */
2748 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_capacity
, 4)
2749 MSVCP_size_t __thiscall
MSVCP_basic_string_wchar_capacity(basic_string_wchar
*this)
2751 TRACE("%p\n", this);
2755 /* ?reserve@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEXI@Z */
2756 /* ?reserve@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAX_K@Z */
2757 /* ?reserve@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEXI@Z */
2758 /* ?reserve@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAX_K@Z */
2759 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_reserve
, 8)
2760 void __thiscall
MSVCP_basic_string_wchar_reserve(basic_string_wchar
*this, MSVCP_size_t size
)
2764 TRACE("%p %ld\n", this, size
);
2770 if(basic_string_wchar_grow(this, size
, TRUE
))
2771 basic_string_wchar_eos(this, len
);
2774 /* ??0?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE@XZ */
2775 /* ??0?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAA@XZ */
2776 /* ??0?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAE@XZ */
2777 /* ??0?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAA@XZ */
2778 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_ctor
, 4)
2779 basic_string_wchar
* __thiscall
MSVCP_basic_string_wchar_ctor(basic_string_wchar
*this)
2781 TRACE("%p\n", this);
2783 basic_string_wchar_tidy(this, FALSE
, 0);
2787 /* ??0?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE@ABV01@@Z */
2788 /* ??0?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAA@AEBV01@@Z */
2789 /* ??0?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAE@ABV01@@Z */
2790 /* ??0?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAA@AEBV01@@Z */
2791 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_copy_ctor
, 8)
2792 basic_string_wchar
* __thiscall
MSVCP_basic_string_wchar_copy_ctor(
2793 basic_string_wchar
*this, const basic_string_wchar
*copy
)
2795 TRACE("%p %p\n", this, copy
);
2797 basic_string_wchar_tidy(this, FALSE
, 0);
2798 MSVCP_basic_string_wchar_assign(this, copy
);
2802 /* ??0?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE@PB_W@Z */
2803 /* ??0?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAA@PEB_W@Z */
2804 /* ??0?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAE@PBG@Z */
2805 /* ??0?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAA@PEBG@Z */
2806 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_ctor_cstr
, 8)
2807 basic_string_wchar
* __thiscall
MSVCP_basic_string_wchar_ctor_cstr(
2808 basic_string_wchar
*this, const wchar_t *str
)
2810 TRACE("%p %s\n", this, debugstr_w(str
));
2812 basic_string_wchar_tidy(this, FALSE
, 0);
2813 MSVCP_basic_string_wchar_assign_cstr(this, str
);
2817 /* ??0?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE@PB_WABV?$allocator@_W@1@@Z */
2818 /* ??0?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAA@PEB_WAEBV?$allocator@_W@1@@Z */
2819 /* ??0?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAE@PBGABV?$allocator@G@1@@Z */
2820 /* ??0?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAA@PEBGAEBV?$allocator@G@1@@Z */
2821 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_ctor_cstr_alloc
, 12)
2822 basic_string_wchar
* __thiscall
MSVCP_basic_string_wchar_ctor_cstr_alloc(
2823 basic_string_wchar
*this, const wchar_t *str
, const void *alloc
)
2825 return MSVCP_basic_string_wchar_ctor_cstr(this, str
);
2828 /* ??0?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE@PB_WI@Z */
2829 /* ??0?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAA@PEB_W_K@Z */
2830 /* ??0?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAE@PBGI@Z */
2831 /* ??0?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAA@PEBG_K@Z */
2832 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_ctor_cstr_len
, 12)
2833 basic_string_wchar
* __thiscall
MSVCP_basic_string_wchar_ctor_cstr_len(
2834 basic_string_wchar
*this, const wchar_t *str
, MSVCP_size_t len
)
2836 TRACE("%p %s %ld\n", this, debugstr_wn(str
, len
), len
);
2838 basic_string_wchar_tidy(this, FALSE
, 0);
2839 MSVCP_basic_string_wchar_assign_cstr_len(this, str
, len
);
2843 /* ??0?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE@PB_WIABV?$allocator@_W@1@@Z */
2844 /* ??0?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAA@PEB_W_KAEBV?$allocator@_W@1@@Z */
2845 /* ??0?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAE@PBGIABV?$allocator@G@1@@Z */
2846 /* ??0?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAA@PEBG_KAEBV?$allocator@G@1@@Z */
2847 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_ctor_cstr_len_alloc
, 16)
2848 basic_string_wchar
* __thiscall
MSVCP_basic_string_wchar_ctor_cstr_len_alloc(
2849 basic_string_wchar
*this, const wchar_t *str
, MSVCP_size_t len
, const void *alloc
)
2851 return MSVCP_basic_string_wchar_ctor_cstr_len(this, str
, len
);
2854 /* ??0?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE@ABV01@II@Z */
2855 /* ??0?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAA@AEBV01@_K1@Z */
2856 /* ??0?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAE@ABV01@II@Z */
2857 /* ??0?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAA@AEBV01@_K1@Z */
2858 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_ctor_substr
, 16)
2859 basic_string_wchar
* __thiscall
MSVCP_basic_string_wchar_ctor_substr(
2860 basic_string_wchar
*this, const basic_string_wchar
*assign
,
2861 MSVCP_size_t pos
, MSVCP_size_t len
)
2863 TRACE("%p %p %lu %lu\n", this, assign
, pos
, len
);
2865 basic_string_wchar_tidy(this, FALSE
, 0);
2866 MSVCP_basic_string_wchar_assign_substr(this, assign
, pos
, len
);
2870 /* ??0?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE@ABV01@IIABV?$allocator@_W@1@@Z */
2871 /* ??0?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAA@AEBV01@_K1AEBV?$allocator@_W@1@@Z */
2872 /* ??0?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAE@ABV01@IIABV?$allocator@G@1@@Z */
2873 /* ??0?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAA@AEBV01@_K1AEBV?$allocator@G@1@@Z */
2874 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_ctor_substr_alloc
, 20)
2875 basic_string_wchar
* __thiscall
MSVCP_basic_string_wchar_ctor_substr_alloc(
2876 basic_string_wchar
*this, const basic_string_wchar
*assign
,
2877 MSVCP_size_t pos
, MSVCP_size_t len
, const void *alloc
)
2879 return MSVCP_basic_string_wchar_ctor_substr(this, assign
, pos
, len
);
2882 /* ??0?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE@ABV?$allocator@_W@1@@Z */
2883 /* ??0?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAA@AEBV?$allocator@_W@1@@Z */
2884 /* ??0?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAE@ABV?$allocator@G@1@@Z */
2885 /* ??0?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAA@AEBV?$allocator@G@1@@Z */
2886 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_ctor_alloc
, 8)
2887 basic_string_wchar
* __thiscall
MSVCP_basic_string_wchar_ctor_alloc(
2888 basic_string_wchar
*this, const void *alloc
)
2890 TRACE("%p %p\n", this, alloc
);
2892 basic_string_wchar_tidy(this, FALSE
, 0);
2896 /* ??0?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE@I_W@Z */
2897 /* ??0?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAA@_K_W@Z */
2898 /* ??0?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAE@IG@Z */
2899 /* ??0?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAA@_KG@Z */
2900 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_ctor_ch
, 12)
2901 basic_string_wchar
* __thiscall
MSVCP_basic_string_wchar_ctor_ch(basic_string_wchar
*this,
2902 MSVCP_size_t count
, wchar_t ch
)
2904 TRACE("%p %ld %c\n", this, count
, ch
);
2906 basic_string_wchar_tidy(this, FALSE
, 0);
2907 MSVCP_basic_string_wchar_assignn(this, count
, ch
);
2911 /* ??0?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE@I_WABV?$allocator@_W@1@@Z */
2912 /* ??0?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAA@_K_WAEBV?$allocator@_W@1@@Z */
2913 /* ??0?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAE@IGABV?$allocator@G@1@@Z */
2914 /* ??0?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAA@_KGAEBV?$allocator@G@1@@Z */
2915 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_ctor_ch_alloc
, 16)
2916 basic_string_wchar
* __thiscall
MSVCP_basic_string_wchar_ctor_ch_alloc(basic_string_wchar
*this,
2917 MSVCP_size_t count
, wchar_t ch
, const void *alloc
)
2919 return MSVCP_basic_string_wchar_ctor_ch(this, count
, ch
);
2922 /* ??0?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE@PB_W0@Z */
2923 /* ??0?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAA@PEB_W0@Z */
2924 /* ??0?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAE@PBG0@Z */
2925 /* ??0?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAA@PEBG0@Z */
2926 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_ctor_ptr_ptr
, 12)
2927 basic_string_wchar
* __thiscall
MSVCP_basic_string_wchar_ctor_ptr_ptr(basic_string_wchar
*this,
2928 const wchar_t *first
, const wchar_t *last
)
2930 return MSVCP_basic_string_wchar_ctor_cstr_len(this, first
, last
-first
);
2933 /* ??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 */
2934 /* ??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 */
2935 /* ??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 */
2936 /* ??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 */
2937 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_ctor_iter
, 20)
2938 basic_string_wchar
* __thiscall
MSVCP_basic_string_wchar_ctor_iter(basic_string_wchar
*this,
2939 String_iterator_wchar beg
, String_iterator_wchar end
)
2941 return MSVCP_basic_string_wchar_ctor_cstr_len(this, beg
.pos
, end
.pos
-beg
.pos
);
2944 /* ??1?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE@XZ */
2945 /* ??1?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAA@XZ */
2946 /* ??1?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAE@XZ */
2947 /* ??1?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAA@XZ */
2948 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_dtor
, 4)
2949 void __thiscall
MSVCP_basic_string_wchar_dtor(basic_string_wchar
*this)
2951 TRACE("%p\n", this);
2952 basic_string_wchar_tidy(this, TRUE
, 0);
2955 /* ?size@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEIXZ */
2956 /* ?size@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBA_KXZ */
2957 /* ?length@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEIXZ */
2958 /* ?length@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBA_KXZ */
2959 /* ?size@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEIXZ */
2960 /* ?size@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBA_KXZ */
2961 /* ?length@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEIXZ */
2962 /* ?length@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBA_KXZ */
2963 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_length
, 4)
2964 MSVCP_size_t __thiscall
MSVCP_basic_string_wchar_length(const basic_string_wchar
*this)
2966 TRACE("%p\n", this);
2970 /* ?max_size@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEIXZ */
2971 /* ?max_size@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBA_KXZ */
2972 /* ?max_size@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEIXZ */
2973 /* ?max_size@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBA_KXZ */
2974 DEFINE_THISCALL_WRAPPER(basic_string_wchar_max_size
, 4)
2975 MSVCP_size_t __thiscall
basic_string_wchar_max_size(const basic_string_wchar
*this)
2977 TRACE("%p\n", this);
2978 return MSVCP_allocator_wchar_max_size(this->allocator
)-1;
2981 /* ?empty@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBE_NXZ */
2982 /* ?empty@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBA_NXZ */
2983 /* ?empty@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBE_NXZ */
2984 /* ?empty@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBA_NXZ */
2985 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_empty
, 4)
2986 MSVCP_bool __thiscall
MSVCP_basic_string_wchar_empty(basic_string_wchar
*this)
2988 TRACE("%p\n", this);
2989 return this->size
== 0;
2992 /* ?swap@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEXAAV12@@Z */
2993 /* ?swap@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAXAEAV12@@Z */
2994 /* ?swap@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEXAAV12@@Z */
2995 /* ?swap@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAXAEAV12@@Z */
2996 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_swap
, 8)
2997 void __thiscall
MSVCP_basic_string_wchar_swap(basic_string_wchar
*this, basic_string_wchar
*str
)
3000 char tmp
[sizeof(this->data
)];
3001 const MSVCP_size_t size
= this->size
;
3002 const MSVCP_size_t res
= this->res
;
3004 memcpy(tmp
, this->data
.buf
, sizeof(this->data
));
3005 memcpy(this->data
.buf
, str
->data
.buf
, sizeof(this->data
));
3006 memcpy(str
->data
.buf
, tmp
, sizeof(this->data
));
3008 this->size
= str
->size
;
3009 this->res
= str
->res
;
3016 /* ?substr@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBE?AV12@II@Z */
3017 /* ?substr@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBA?AV12@_K0@Z */
3018 /* ?substr@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBE?AV12@II@Z */
3019 /* ?substr@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBA?AV12@_K0@Z */
3020 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_substr
, 16)
3021 basic_string_wchar
* __thiscall
MSVCP_basic_string_wchar_substr(basic_string_wchar
*this,
3022 basic_string_wchar
*ret
, MSVCP_size_t off
, MSVCP_size_t len
)
3024 TRACE("%p %lu %lu\n", this, off
, len
);
3026 MSVCP_basic_string_wchar_ctor_substr(ret
, this, off
, len
);
3030 /* ?append@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV12@ABV12@II@Z */
3031 /* ?append@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAAEAV12@AEBV12@_K1@Z */
3032 /* ?append@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV12@ABV12@II@Z */
3033 /* ?append@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAAEAV12@AEBV12@_K1@Z */
3034 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_append_substr
, 16)
3035 basic_string_wchar
* __thiscall
MSVCP_basic_string_wchar_append_substr(basic_string_wchar
*this,
3036 const basic_string_wchar
*append
, MSVCP_size_t offset
, MSVCP_size_t count
)
3038 TRACE("%p %p %lu %lu\n", this, append
, offset
, count
);
3040 if(append
->size
< offset
)
3041 MSVCP__String_base_Xran();
3043 if(count
> append
->size
-offset
)
3044 count
= append
->size
-offset
;
3046 if(MSVCP_basic_string_wchar_npos
-this->size
<=count
|| this->size
+count
<this->size
)
3047 MSVCP__String_base_Xlen();
3049 if(basic_string_wchar_grow(this, this->size
+count
, FALSE
)) {
3050 MSVCP_char_traits_wchar__Copy_s(basic_string_wchar_ptr(this)+this->size
,
3051 this->res
-this->size
, basic_string_wchar_const_ptr(append
)+offset
, count
);
3052 basic_string_wchar_eos(this, this->size
+count
);
3058 /* ?append@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV12@ABV12@@Z */
3059 /* ?append@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAAEAV12@AEBV12@@Z */
3060 /* ??Y?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV01@ABV01@@Z */
3061 /* ??Y?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAAEAV01@AEBV01@@Z */
3062 /* ?append@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV12@ABV12@@Z */
3063 /* ?append@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAAEAV12@AEBV12@@Z */
3064 /* ??Y?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV01@ABV01@@Z */
3065 /* ??Y?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAAEAV01@AEBV01@@Z */
3066 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_append
, 8)
3067 basic_string_wchar
* __thiscall
MSVCP_basic_string_wchar_append(
3068 basic_string_wchar
*this, const basic_string_wchar
*append
)
3070 return MSVCP_basic_string_wchar_append_substr(this, append
,
3071 0, MSVCP_basic_string_wchar_npos
);
3074 /* ?append@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV12@PB_WI@Z */
3075 /* ?append@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAAEAV12@PEB_W_K@Z */
3076 /* ?append@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV12@PBGI@Z */
3077 /* ?append@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAAEAV12@PEBG_K@Z */
3078 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_append_cstr_len
, 12)
3079 basic_string_wchar
* __thiscall
MSVCP_basic_string_wchar_append_cstr_len(
3080 basic_string_wchar
*this, const wchar_t *append
, MSVCP_size_t count
)
3082 TRACE("%p %s %lu\n", this, debugstr_wn(append
, count
), count
);
3084 if(basic_string_wchar_inside(this, append
))
3085 return MSVCP_basic_string_wchar_append_substr(this, this,
3086 append
-basic_string_wchar_ptr(this), count
);
3088 if(MSVCP_basic_string_wchar_npos
-this->size
<=count
|| this->size
+count
<this->size
)
3089 MSVCP__String_base_Xlen();
3091 if(basic_string_wchar_grow(this, this->size
+count
, FALSE
)) {
3092 MSVCP_char_traits_wchar__Copy_s(basic_string_wchar_ptr(this)+this->size
,
3093 this->res
-this->size
, append
, count
);
3094 basic_string_wchar_eos(this, this->size
+count
);
3100 /* ?append@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV12@PB_W@Z */
3101 /* ?append@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAAEAV12@PEB_W@Z */
3102 /* ??Y?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV01@PB_W@Z */
3103 /* ??Y?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAAEAV01@PEB_W@Z */
3104 /* ?append@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV12@PBG@Z */
3105 /* ?append@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAAEAV12@PEBG@Z */
3106 /* ??Y?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV01@PBG@Z */
3107 /* ??Y?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAAEAV01@PEBG@Z */
3108 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_append_cstr
, 8)
3109 basic_string_wchar
* __thiscall
MSVCP_basic_string_wchar_append_cstr(
3110 basic_string_wchar
*this, const wchar_t *append
)
3112 return MSVCP_basic_string_wchar_append_cstr_len(this, append
,
3113 MSVCP_char_traits_wchar_length(append
));
3116 /* ?append@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV12@PB_W0@Z */
3117 /* ?append@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAAEAV12@PEB_W0@Z */
3118 /* ?append@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV12@PBG0@Z */
3119 /* ?append@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAAEAV12@PEBG0@Z */
3120 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_append_beg_end
, 12)
3121 basic_string_wchar
* __thiscall
MSVCP_basic_string_wchar_append_beg_end(
3122 basic_string_wchar
*this, const wchar_t *beg
, const wchar_t *end
)
3124 return MSVCP_basic_string_wchar_append_cstr_len(this, beg
, end
-beg
);
3127 /* ?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 */
3128 /* ?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 */
3129 /* ?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 */
3130 /* ?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 */
3131 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_append_iter
, 20)
3132 basic_string_wchar
* __thiscall
MSVCP_basic_string_wchar_append_iter(
3133 basic_string_wchar
*this, String_iterator_wchar beg
, String_iterator_wchar end
)
3135 return MSVCP_basic_string_wchar_append_cstr_len(this, beg
.pos
, end
.pos
-beg
.pos
);
3138 /* ?append@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV12@I_W@Z */
3139 /* ?append@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAAEAV12@_K_W@Z */
3140 /* ?append@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV12@IG@Z */
3141 /* ?append@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAAEAV12@_KG@Z */
3142 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_append_len_ch
, 12)
3143 basic_string_wchar
* __thiscall
MSVCP_basic_string_wchar_append_len_ch(
3144 basic_string_wchar
*this, MSVCP_size_t count
, wchar_t ch
)
3146 TRACE("%p %lu %c\n", this, count
, ch
);
3148 if(MSVCP_basic_string_wchar_npos
-this->size
<= count
)
3149 MSVCP__String_base_Xlen();
3151 if(basic_string_wchar_grow(this, this->size
+count
, FALSE
)) {
3152 MSVCP_char_traits_wchar_assignn(basic_string_wchar_ptr(this)+this->size
, count
, ch
);
3153 basic_string_wchar_eos(this, this->size
+count
);
3159 /* ??Y?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV01@_W@Z */
3160 /* ??Y?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAAEAV01@_W@Z */
3161 /* ?push_back@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEX_W@Z */
3162 /* ?push_back@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAX_W@Z */
3163 /* ??Y?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV01@G@Z */
3164 /* ??Y?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAAEAV01@G@Z */
3165 /* ?push_back@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEXG@Z */
3166 /* ?push_back@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAXG@Z */
3167 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_append_ch
, 8)
3168 basic_string_wchar
* __thiscall
MSVCP_basic_string_wchar_append_ch(
3169 basic_string_wchar
*this, wchar_t ch
)
3171 return MSVCP_basic_string_wchar_append_len_ch(this, 1, ch
);
3174 /* ??$?H_WU?$char_traits@_W@std@@V?$allocator@_W@1@@std@@YA?AV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@0@ABV10@PB_W@Z */
3175 /* ??$?H_WU?$char_traits@_W@std@@V?$allocator@_W@1@@std@@YA?AV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@0@AEBV10@PEB_W@Z */
3176 /* ??$?HGU?$char_traits@G@std@@V?$allocator@G@1@@std@@YA?AV?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@0@ABV10@PBG@Z */
3177 /* ??$?HGU?$char_traits@G@std@@V?$allocator@G@1@@std@@YA?AV?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@0@AEBV10@PEBG@Z */
3178 basic_string_wchar
* __cdecl
MSVCP_basic_string_wchar_concatenate_bstr_cstr(basic_string_wchar
*ret
,
3179 const basic_string_wchar
*left
, const wchar_t *right
)
3181 TRACE("%p %s\n", left
, debugstr_w(right
));
3183 MSVCP_basic_string_wchar_copy_ctor(ret
, left
);
3184 MSVCP_basic_string_wchar_append_cstr(ret
, right
);
3188 /* ??$?H_WU?$char_traits@_W@std@@V?$allocator@_W@1@@std@@YA?AV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@0@PB_WABV10@@Z */
3189 /* ??$?H_WU?$char_traits@_W@std@@V?$allocator@_W@1@@std@@YA?AV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@0@PEB_WAEBV10@@Z */
3190 /* ??$?HGU?$char_traits@G@std@@V?$allocator@G@1@@std@@YA?AV?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@0@PBGABV10@@Z */
3191 /* ??$?HGU?$char_traits@G@std@@V?$allocator@G@1@@std@@YA?AV?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@0@PEBGAEBV10@@Z */
3192 basic_string_wchar
* __cdecl
MSVCP_basic_string_wchar_concatenate_cstr_bstr(basic_string_wchar
*ret
,
3193 const wchar_t *left
, const basic_string_wchar
*right
)
3195 TRACE("%s %p\n", debugstr_w(left
), right
);
3197 MSVCP_basic_string_wchar_ctor_cstr(ret
, left
);
3198 MSVCP_basic_string_wchar_append(ret
, right
);
3202 /* ??$?H_WU?$char_traits@_W@std@@V?$allocator@_W@1@@std@@YA?AV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@0@ABV10@0@Z */
3203 /* ??$?H_WU?$char_traits@_W@std@@V?$allocator@_W@1@@std@@YA?AV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@0@AEBV10@0@Z */
3204 /* ??$?HGU?$char_traits@G@std@@V?$allocator@G@1@@std@@YA?AV?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@0@ABV10@0@Z */
3205 /* ??$?HGU?$char_traits@G@std@@V?$allocator@G@1@@std@@YA?AV?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@0@AEBV10@0@Z */
3206 basic_string_wchar
* __cdecl
MSVCP_basic_string_wchar_concatenate(basic_string_wchar
*ret
,
3207 const basic_string_wchar
*left
, const basic_string_wchar
*right
)
3209 TRACE("%p %p\n", left
, right
);
3211 MSVCP_basic_string_wchar_copy_ctor(ret
, left
);
3212 MSVCP_basic_string_wchar_append(ret
, right
);
3216 /* ??$?H_WU?$char_traits@_W@std@@V?$allocator@_W@1@@std@@YA?AV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@0@ABV10@_W@Z */
3217 /* ??$?H_WU?$char_traits@_W@std@@V?$allocator@_W@1@@std@@YA?AV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@0@AEBV10@_W@Z */
3218 /* ??$?HGU?$char_traits@G@std@@V?$allocator@G@1@@std@@YA?AV?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@0@ABV10@G@Z */
3219 /* ??$?HGU?$char_traits@G@std@@V?$allocator@G@1@@std@@YA?AV?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@0@AEBV10@G@Z */
3220 basic_string_wchar
* __cdecl
MSVCP_basic_string_wchar_concatenate_bstr_ch(
3221 basic_string_wchar
*ret
, const basic_string_wchar
*left
, wchar_t right
)
3223 TRACE("%p %c\n", left
, right
);
3225 MSVCP_basic_string_wchar_copy_ctor(ret
, left
);
3226 MSVCP_basic_string_wchar_append_ch(ret
, right
);
3230 /* ??$?H_WU?$char_traits@_W@std@@V?$allocator@_W@1@@std@@YA?AV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@0@_WABV10@@Z */
3231 /* ??$?H_WU?$char_traits@_W@std@@V?$allocator@_W@1@@std@@YA?AV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@0@_WAEBV10@@Z */
3232 /* ??$?HGU?$char_traits@G@std@@V?$allocator@G@1@@std@@YA?AV?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@0@GABV10@@Z */
3233 /* ??$?HGU?$char_traits@G@std@@V?$allocator@G@1@@std@@YA?AV?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@0@GAEBV10@@Z */
3234 basic_string_wchar
* __cdecl
MSVCP_basic_string_wchar_concatenate_ch_bstr(
3235 basic_string_wchar
* ret
, wchar_t left
, const basic_string_wchar
*right
)
3237 TRACE("%c %p\n", left
, right
);
3239 MSVCP_basic_string_wchar_ctor_cstr_len(ret
, &left
, 1);
3240 MSVCP_basic_string_wchar_append(ret
, right
);
3244 /* ?compare@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEHIIPB_WI@Z */
3245 /* ?compare@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBAH_K0PEB_W0@Z */
3246 /* ?compare@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEHIIPBGI@Z */
3247 /* ?compare@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBAH_K0PEBG0@Z */
3248 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_compare_substr_cstr_len
, 20)
3249 int __thiscall
MSVCP_basic_string_wchar_compare_substr_cstr_len(
3250 const basic_string_wchar
*this, MSVCP_size_t pos
, MSVCP_size_t num
,
3251 const wchar_t *str
, MSVCP_size_t count
)
3255 TRACE("%p %lu %lu %s %lu\n", this, pos
, num
, debugstr_wn(str
, count
), count
);
3257 if(this->size
< pos
)
3258 MSVCP__String_base_Xran();
3260 if(num
> this->size
-pos
)
3261 num
= this->size
-pos
;
3263 ans
= MSVCP_char_traits_wchar_compare(basic_string_wchar_const_ptr(this)+pos
,
3264 str
, num
>count
? count
: num
);
3270 else if(num
< count
)
3275 /* ?compare@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEHIIPB_W@Z */
3276 /* ?compare@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBAH_K0PEB_W@Z */
3277 /* ?compare@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEHIIPBG@Z */
3278 /* ?compare@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBAH_K0PEBG@Z */
3279 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_compare_substr_cstr
, 16)
3280 int __thiscall
MSVCP_basic_string_wchar_compare_substr_cstr(const basic_string_wchar
*this,
3281 MSVCP_size_t pos
, MSVCP_size_t num
, const wchar_t *str
)
3283 return MSVCP_basic_string_wchar_compare_substr_cstr_len(this, pos
, num
,
3284 str
, MSVCP_char_traits_wchar_length(str
));
3287 /* ?compare@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEHPB_W@Z */
3288 /* ?compare@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBAHPEB_W@Z */
3289 /* ?compare@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEHPBG@Z */
3290 /* ?compare@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBAHPEBG@Z */
3291 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_compare_cstr
, 8)
3292 int __thiscall
MSVCP_basic_string_wchar_compare_cstr(
3293 const basic_string_wchar
*this, const wchar_t *str
)
3295 return MSVCP_basic_string_wchar_compare_substr_cstr_len(this, 0, this->size
,
3296 str
, MSVCP_char_traits_wchar_length(str
));
3299 /* ?compare@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEHIIABV12@II@Z */
3300 /* ?compare@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBAH_K0AEBV12@00@Z */
3301 /* ?compare@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEHIIABV12@II@Z */
3302 /* ?compare@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBAH_K0AEBV12@00@Z */
3303 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_compare_substr_substr
, 24)
3304 int __thiscall
MSVCP_basic_string_wchar_compare_substr_substr(
3305 const basic_string_wchar
*this, MSVCP_size_t pos
, MSVCP_size_t num
,
3306 const basic_string_wchar
*compare
, MSVCP_size_t off
, MSVCP_size_t count
)
3308 TRACE("%p %lu %lu %p %lu %lu\n", this, pos
, num
, compare
, off
, count
);
3310 if(compare
->size
< off
)
3311 MSVCP__String_base_Xran();
3313 if(count
> compare
->size
-off
)
3314 count
= compare
->size
-off
;
3316 return MSVCP_basic_string_wchar_compare_substr_cstr_len(this, pos
, num
,
3317 basic_string_wchar_const_ptr(compare
)+off
, count
);
3320 /* ?compare@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEHIIABV12@@Z */
3321 /* ?compare@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBAH_K0AEBV12@@Z */
3322 /* ?compare@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEHIIABV12@@Z */
3323 /* ?compare@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBAH_K0AEBV12@@Z */
3324 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_compare_substr
, 16)
3325 int __thiscall
MSVCP_basic_string_wchar_compare_substr(
3326 const basic_string_wchar
*this, MSVCP_size_t pos
, MSVCP_size_t num
,
3327 const basic_string_wchar
*compare
)
3329 return MSVCP_basic_string_wchar_compare_substr_cstr_len(this, pos
, num
,
3330 basic_string_wchar_const_ptr(compare
), compare
->size
);
3333 /* ?compare@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEHABV12@@Z */
3334 /* ?compare@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBAHAEBV12@@Z */
3335 /* ?compare@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEHABV12@@Z */
3336 /* ?compare@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBAHAEBV12@@Z */
3337 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_compare
, 8)
3338 int __thiscall
MSVCP_basic_string_wchar_compare(
3339 const basic_string_wchar
*this, const basic_string_wchar
*compare
)
3341 return MSVCP_basic_string_wchar_compare_substr_cstr_len(this, 0, this->size
,
3342 basic_string_wchar_const_ptr(compare
), compare
->size
);
3345 /* ??$?8_WU?$char_traits@_W@std@@V?$allocator@_W@1@@std@@YA_NABV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@0@0@Z */
3346 /* ??$?8_WU?$char_traits@_W@std@@V?$allocator@_W@1@@std@@YA_NAEBV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@0@0@Z */
3347 /* ??$?8GU?$char_traits@G@std@@V?$allocator@G@1@@std@@YA_NABV?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@0@0@Z */
3348 /* ??$?8GU?$char_traits@G@std@@V?$allocator@G@1@@std@@YA_NAEBV?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@0@0@Z */
3349 MSVCP_bool __cdecl
MSVCP_basic_string_wchar_equal(
3350 const basic_string_wchar
*left
, const basic_string_wchar
*right
)
3352 return MSVCP_basic_string_wchar_compare(left
, right
) == 0;
3355 /* ??$?8_WU?$char_traits@_W@std@@V?$allocator@_W@1@@std@@YA_NABV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@0@PB_W@Z */
3356 /* ??$?8_WU?$char_traits@_W@std@@V?$allocator@_W@1@@std@@YA_NAEBV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@0@PEB_W@Z */
3357 /* ??$?8GU?$char_traits@G@std@@V?$allocator@G@1@@std@@YA_NABV?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@0@PBG@Z */
3358 /* ??$?8GU?$char_traits@G@std@@V?$allocator@G@1@@std@@YA_NAEBV?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@0@PEBG@Z */
3359 MSVCP_bool __cdecl
MSVCP_basic_string_wchar_equal_str_cstr(
3360 const basic_string_wchar
*left
, const wchar_t *right
)
3362 return MSVCP_basic_string_wchar_compare_cstr(left
, right
) == 0;
3365 /* ??$?8_WU?$char_traits@_W@std@@V?$allocator@_W@1@@std@@YA_NPB_WABV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@0@@Z */
3366 /* ??$?8_WU?$char_traits@_W@std@@V?$allocator@_W@1@@std@@YA_NPEB_WAEBV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@0@@Z */
3367 /* ??$?8GU?$char_traits@G@std@@V?$allocator@G@1@@std@@YA_NPBGABV?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@0@@Z */
3368 /* ??$?8GU?$char_traits@G@std@@V?$allocator@G@1@@std@@YA_NPEBGAEBV?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@0@@Z */
3369 MSVCP_bool __cdecl
MSVCP_basic_string_wchar_equal_cstr_str(
3370 const wchar_t *left
, const basic_string_wchar
*right
)
3372 return MSVCP_basic_string_wchar_compare_cstr(right
, left
) == 0;
3375 /* ??$?9_WU?$char_traits@_W@std@@V?$allocator@_W@1@@std@@YA_NABV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@0@0@Z */
3376 /* ??$?9_WU?$char_traits@_W@std@@V?$allocator@_W@1@@std@@YA_NAEBV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@0@0@Z */
3377 /* ??$?9GU?$char_traits@G@std@@V?$allocator@G@1@@std@@YA_NABV?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@0@0@Z */
3378 /* ??$?9GU?$char_traits@G@std@@V?$allocator@G@1@@std@@YA_NAEBV?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@0@0@Z */
3379 MSVCP_bool __cdecl
MSVCP_basic_string_wchar_not_equal(
3380 const basic_string_wchar
*left
, const basic_string_wchar
*right
)
3382 return MSVCP_basic_string_wchar_compare(left
, right
) != 0;
3385 /* ??$?9_WU?$char_traits@_W@std@@V?$allocator@_W@1@@std@@YA_NABV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@0@PB_W@Z */
3386 /* ??$?9_WU?$char_traits@_W@std@@V?$allocator@_W@1@@std@@YA_NAEBV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@0@PEB_W@Z */
3387 /* ??$?9GU?$char_traits@G@std@@V?$allocator@G@1@@std@@YA_NABV?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@0@PBG@Z */
3388 /* ??$?9GU?$char_traits@G@std@@V?$allocator@G@1@@std@@YA_NAEBV?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@0@PEBG@Z */
3389 MSVCP_bool __cdecl
MSVCP_basic_string_wchar_not_equal_str_cstr(
3390 const basic_string_wchar
*left
, const wchar_t *right
)
3392 return MSVCP_basic_string_wchar_compare_cstr(left
, right
) != 0;
3395 /* ??$?9_WU?$char_traits@_W@std@@V?$allocator@_W@1@@std@@YA_NPB_WABV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@0@@Z */
3396 /* ??$?9_WU?$char_traits@_W@std@@V?$allocator@_W@1@@std@@YA_NPEB_WAEBV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@0@@Z */
3397 /* ??$?9GU?$char_traits@G@std@@V?$allocator@G@1@@std@@YA_NPBGABV?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@0@@Z */
3398 /* ??$?9GU?$char_traits@G@std@@V?$allocator@G@1@@std@@YA_NPEBGAEBV?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@0@@Z */
3399 MSVCP_bool __cdecl
MSVCP_basic_string_wchar_not_equal_cstr_str(
3400 const wchar_t *left
, const basic_string_wchar
*right
)
3402 return MSVCP_basic_string_wchar_compare_cstr(right
, left
) != 0;
3405 /* ??$?M_WU?$char_traits@_W@std@@V?$allocator@_W@1@@std@@YA_NABV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@0@0@Z */
3406 /* ??$?M_WU?$char_traits@_W@std@@V?$allocator@_W@1@@std@@YA_NAEBV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@0@0@Z */
3407 /* ??$?MGU?$char_traits@G@std@@V?$allocator@G@1@@std@@YA_NABV?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@0@0@Z */
3408 /* ??$?MGU?$char_traits@G@std@@V?$allocator@G@1@@std@@YA_NAEBV?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@0@0@Z */
3409 MSVCP_bool __cdecl
MSVCP_basic_string_wchar_lower(
3410 const basic_string_wchar
*left
, const basic_string_wchar
*right
)
3412 return MSVCP_basic_string_wchar_compare(left
, right
) < 0;
3415 /* ??$?M_WU?$char_traits@_W@std@@V?$allocator@_W@1@@std@@YA_NABV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@0@PB_W@Z */
3416 /* ??$?M_WU?$char_traits@_W@std@@V?$allocator@_W@1@@std@@YA_NAEBV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@0@PEB_W@Z */
3417 /* ??$?MGU?$char_traits@G@std@@V?$allocator@G@1@@std@@YA_NABV?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@0@PBG@Z */
3418 /* ??$?MGU?$char_traits@G@std@@V?$allocator@G@1@@std@@YA_NAEBV?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@0@PEBG@Z */
3419 MSVCP_bool __cdecl
MSVCP_basic_string_wchar_lower_bstr_cstr(
3420 const basic_string_wchar
*left
, const wchar_t *right
)
3422 return MSVCP_basic_string_wchar_compare_cstr(left
, right
) < 0;
3425 /* ??$?M_WU?$char_traits@_W@std@@V?$allocator@_W@1@@std@@YA_NPB_WABV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@0@@Z */
3426 /* ??$?M_WU?$char_traits@_W@std@@V?$allocator@_W@1@@std@@YA_NPEB_WAEBV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@0@@Z */
3427 /* ??$?MGU?$char_traits@G@std@@V?$allocator@G@1@@std@@YA_NPBGABV?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@0@@Z */
3428 /* ??$?MGU?$char_traits@G@std@@V?$allocator@G@1@@std@@YA_NPEBGAEBV?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@0@@Z */
3429 MSVCP_bool __cdecl
MSVCP_basic_string_wchar_lower_cstr_bstr(
3430 const wchar_t *left
, const basic_string_wchar
*right
)
3432 return MSVCP_basic_string_wchar_compare_cstr(right
, left
) > 0;
3435 /* ??$?N_WU?$char_traits@_W@std@@V?$allocator@_W@1@@std@@YA_NABV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@0@0@Z */
3436 /* ??$?N_WU?$char_traits@_W@std@@V?$allocator@_W@1@@std@@YA_NAEBV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@0@0@Z */
3437 /* ??$?NGU?$char_traits@G@std@@V?$allocator@G@1@@std@@YA_NABV?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@0@0@Z */
3438 /* ??$?NGU?$char_traits@G@std@@V?$allocator@G@1@@std@@YA_NAEBV?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@0@0@Z */
3439 MSVCP_bool __cdecl
MSVCP_basic_string_wchar_leq(
3440 const basic_string_wchar
*left
, const basic_string_wchar
*right
)
3442 return MSVCP_basic_string_wchar_compare(left
, right
) <= 0;
3445 /* ??$?N_WU?$char_traits@_W@std@@V?$allocator@_W@1@@std@@YA_NABV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@0@PB_W@Z */
3446 /* ??$?N_WU?$char_traits@_W@std@@V?$allocator@_W@1@@std@@YA_NAEBV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@0@PEB_W@Z */
3447 /* ??$?NGU?$char_traits@G@std@@V?$allocator@G@1@@std@@YA_NABV?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@0@PBG@Z */
3448 /* ??$?NGU?$char_traits@G@std@@V?$allocator@G@1@@std@@YA_NAEBV?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@0@PEBG@Z */
3449 MSVCP_bool __cdecl
MSVCP_basic_string_wchar_leq_bstr_cstr(
3450 const basic_string_wchar
*left
, const wchar_t *right
)
3452 return MSVCP_basic_string_wchar_compare_cstr(left
, right
) <= 0;
3455 /* ??$?N_WU?$char_traits@_W@std@@V?$allocator@_W@1@@std@@YA_NPB_WABV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@0@@Z */
3456 /* ??$?N_WU?$char_traits@_W@std@@V?$allocator@_W@1@@std@@YA_NPEB_WAEBV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@0@@Z */
3457 /* ??$?NGU?$char_traits@G@std@@V?$allocator@G@1@@std@@YA_NPBGABV?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@0@@Z */
3458 /* ??$?NGU?$char_traits@G@std@@V?$allocator@G@1@@std@@YA_NPEBGAEBV?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@0@@Z */
3459 MSVCP_bool __cdecl
MSVCP_basic_string_wchar_leq_cstr_bstr(
3460 const wchar_t *left
, const basic_string_wchar
*right
)
3462 return MSVCP_basic_string_wchar_compare_cstr(right
, left
) >= 0;
3465 /* ??$?O_WU?$char_traits@_W@std@@V?$allocator@_W@1@@std@@YA_NABV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@0@0@Z */
3466 /* ??$?O_WU?$char_traits@_W@std@@V?$allocator@_W@1@@std@@YA_NAEBV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@0@0@Z */
3467 /* ??$?OGU?$char_traits@G@std@@V?$allocator@G@1@@std@@YA_NABV?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@0@0@Z */
3468 /* ??$?OGU?$char_traits@G@std@@V?$allocator@G@1@@std@@YA_NAEBV?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@0@0@Z */
3469 MSVCP_bool __cdecl
MSVCP_basic_string_wchar_greater(
3470 const basic_string_wchar
*left
, const basic_string_wchar
*right
)
3472 return MSVCP_basic_string_wchar_compare(left
, right
) > 0;
3475 /* ??$?O_WU?$char_traits@_W@std@@V?$allocator@_W@1@@std@@YA_NABV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@0@PB_W@Z */
3476 /* ??$?O_WU?$char_traits@_W@std@@V?$allocator@_W@1@@std@@YA_NAEBV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@0@PEB_W@Z */
3477 /* ??$?OGU?$char_traits@G@std@@V?$allocator@G@1@@std@@YA_NABV?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@0@PBG@Z */
3478 /* ??$?OGU?$char_traits@G@std@@V?$allocator@G@1@@std@@YA_NAEBV?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@0@PEBG@Z */
3479 MSVCP_bool __cdecl
MSVCP_basic_string_wchar_greater_bstr_cstr(
3480 const basic_string_wchar
*left
, const wchar_t *right
)
3482 return MSVCP_basic_string_wchar_compare_cstr(left
, right
) > 0;
3485 /* ??$?O_WU?$char_traits@_W@std@@V?$allocator@_W@1@@std@@YA_NPB_WABV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@0@@Z */
3486 /* ??$?O_WU?$char_traits@_W@std@@V?$allocator@_W@1@@std@@YA_NPEB_WAEBV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@0@@Z */
3487 /* ??$?OGU?$char_traits@G@std@@V?$allocator@G@1@@std@@YA_NPBGABV?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@0@@Z */
3488 /* ??$?OGU?$char_traits@G@std@@V?$allocator@G@1@@std@@YA_NPEBGAEBV?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@0@@Z */
3489 MSVCP_bool __cdecl
MSVCP_basic_string_wchar_greater_cstr_bstr(
3490 const wchar_t *left
, const basic_string_wchar
*right
)
3492 return MSVCP_basic_string_wchar_compare_cstr(right
, left
) < 0;
3495 /* ??$?P_WU?$char_traits@_W@std@@V?$allocator@_W@1@@std@@YA_NABV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@0@0@Z */
3496 /* ??$?P_WU?$char_traits@_W@std@@V?$allocator@_W@1@@std@@YA_NAEBV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@0@0@Z */
3497 /* ??$?PGU?$char_traits@G@std@@V?$allocator@G@1@@std@@YA_NABV?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@0@0@Z */
3498 /* ??$?PGU?$char_traits@G@std@@V?$allocator@G@1@@std@@YA_NAEBV?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@0@0@Z */
3499 MSVCP_bool __cdecl
MSVCP_basic_string_wchar_geq(
3500 const basic_string_wchar
*left
, const basic_string_wchar
*right
)
3502 return MSVCP_basic_string_wchar_compare(left
, right
) >= 0;
3505 /* ??$?P_WU?$char_traits@_W@std@@V?$allocator@_W@1@@std@@YA_NABV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@0@PB_W@Z */
3506 /* ??$?P_WU?$char_traits@_W@std@@V?$allocator@_W@1@@std@@YA_NAEBV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@0@PEB_W@Z */
3507 /* ??$?PGU?$char_traits@G@std@@V?$allocator@G@1@@std@@YA_NABV?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@0@PBG@Z */
3508 /* ??$?PGU?$char_traits@G@std@@V?$allocator@G@1@@std@@YA_NAEBV?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@0@PEBG@Z */
3509 MSVCP_bool __cdecl
MSVCP_basic_string_wchar_geq_bstr_cstr(
3510 const basic_string_wchar
*left
, const wchar_t *right
)
3512 return MSVCP_basic_string_wchar_compare_cstr(left
, right
) >= 0;
3515 /* ??$?P_WU?$char_traits@_W@std@@V?$allocator@_W@1@@std@@YA_NPB_WABV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@0@@Z */
3516 /* ??$?P_WU?$char_traits@_W@std@@V?$allocator@_W@1@@std@@YA_NPEB_WAEBV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@0@@Z */
3517 /* ??$?PGU?$char_traits@G@std@@V?$allocator@G@1@@std@@YA_NPBGABV?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@0@@Z */
3518 /* ??$?PGU?$char_traits@G@std@@V?$allocator@G@1@@std@@YA_NPEBGAEBV?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@0@@Z */
3519 MSVCP_bool __cdecl
MSVCP_basic_string_wchar_geq_cstr_bstr(
3520 const wchar_t *left
, const basic_string_wchar
*right
)
3522 return MSVCP_basic_string_wchar_compare_cstr(right
, left
) <= 0;
3525 /* ?find@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEIPB_WII@Z */
3526 /* ?find@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBA_KPEB_W_K1@Z */
3527 /* ?find@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEIPBGII@Z */
3528 /* ?find@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBA_KPEBG_K1@Z */
3529 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_find_cstr_substr
, 16)
3530 MSVCP_size_t __thiscall
MSVCP_basic_string_wchar_find_cstr_substr(
3531 const basic_string_wchar
*this, const wchar_t *find
, MSVCP_size_t pos
, MSVCP_size_t len
)
3533 const wchar_t *p
, *end
;
3535 TRACE("%p %s %lu %lu\n", this, debugstr_wn(find
, len
), pos
, len
);
3537 if(len
==0 && pos
<=this->size
)
3539 if(pos
>=this->size
|| len
>this->size
)
3540 return MSVCP_basic_string_wchar_npos
;
3542 end
= basic_string_wchar_const_ptr(this)+this->size
-len
+1;
3543 for(p
=basic_string_wchar_const_ptr(this)+pos
; p
<end
; p
++) {
3544 p
= MSVCP_char_traits_wchar_find(p
, end
-p
, find
);
3548 if(!MSVCP_char_traits_wchar_compare(p
, find
, len
))
3549 return p
-basic_string_wchar_const_ptr(this);
3552 return MSVCP_basic_string_wchar_npos
;
3555 /* ?find@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEIPB_WI@Z */
3556 /* ?find@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBA_KPEB_W_K@Z */
3557 /* ?find@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEIPBGI@Z */
3558 /* ?find@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBA_KPEBG_K@Z */
3559 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_find_cstr_off
, 12)
3560 MSVCP_size_t __thiscall
MSVCP_basic_string_wchar_find_cstr_off(
3561 const basic_string_wchar
*this, const wchar_t *find
, MSVCP_size_t pos
)
3563 return MSVCP_basic_string_wchar_find_cstr_substr(this, find
, pos
,
3564 MSVCP_char_traits_wchar_length(find
));
3567 /* ?find@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEIABV12@I@Z */
3568 /* ?find@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBA_KAEBV12@_K@Z */
3569 /* ?find@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEIABV12@I@Z */
3570 /* ?find@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBA_KAEBV12@_K@Z */
3571 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_find_off
, 12)
3572 MSVCP_size_t __thiscall
MSVCP_basic_string_wchar_find_off(
3573 const basic_string_wchar
*this, const basic_string_wchar
*find
, MSVCP_size_t off
)
3575 return MSVCP_basic_string_wchar_find_cstr_substr(this,
3576 basic_string_wchar_const_ptr(find
), off
, find
->size
);
3579 /* ?find@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEI_WI@Z */
3580 /* ?find@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBA_K_W_K@Z */
3581 /* ?find@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEIGI@Z */
3582 /* ?find@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBA_KG_K@Z */
3583 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_find_ch
, 12)
3584 MSVCP_size_t __thiscall
MSVCP_basic_string_wchar_find_ch(
3585 const basic_string_wchar
*this, wchar_t ch
, MSVCP_size_t pos
)
3587 return MSVCP_basic_string_wchar_find_cstr_substr(this, &ch
, pos
, 1);
3590 /* ?rfind@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEIPB_WII@Z */
3591 /* ?rfind@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBA_KPEB_W_K1@Z */
3592 /* ?rfind@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEIPBGII@Z */
3593 /* ?rfind@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBA_KPEBG_K1@Z */
3594 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_rfind_cstr_substr
, 16)
3595 MSVCP_size_t __thiscall
MSVCP_basic_string_wchar_rfind_cstr_substr(
3596 const basic_string_wchar
*this, const wchar_t *find
, MSVCP_size_t pos
, MSVCP_size_t len
)
3598 const wchar_t *p
, *end
;
3600 TRACE("%p %s %lu %lu\n", this, debugstr_wn(find
, len
), pos
, len
);
3603 return pos
<this->size
? pos
: this->size
;
3605 if(len
> this->size
)
3606 return MSVCP_basic_string_wchar_npos
;
3608 if(pos
> this->size
-len
+1)
3609 pos
= this->size
-len
+1;
3610 end
= basic_string_wchar_const_ptr(this);
3611 for(p
=end
+pos
; p
>=end
; p
--) {
3612 if(*p
==*find
&& !MSVCP_char_traits_wchar_compare(p
, find
, len
))
3613 return p
-basic_string_wchar_const_ptr(this);
3616 return MSVCP_basic_string_wchar_npos
;
3619 /* ?rfind@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEIPB_WI@Z */
3620 /* ?rfind@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBA_KPEB_W_K@Z */
3621 /* ?rfind@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEIPBGI@Z */
3622 /* ?rfind@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBA_KPEBG_K@Z */
3623 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_rfind_cstr_off
, 12)
3624 MSVCP_size_t __thiscall
MSVCP_basic_string_wchar_rfind_cstr_off(
3625 const basic_string_wchar
*this, const wchar_t *find
, MSVCP_size_t pos
)
3627 return MSVCP_basic_string_wchar_rfind_cstr_substr(this, find
, pos
,
3628 MSVCP_char_traits_wchar_length(find
));
3631 /* ?rfind@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEIABV12@I@Z */
3632 /* ?rfind@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBA_KAEBV12@_K@Z */
3633 /* ?rfind@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEIABV12@I@Z */
3634 /* ?rfind@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBA_KAEBV12@_K@Z */
3635 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_rfind_off
, 12)
3636 MSVCP_size_t __thiscall
MSVCP_basic_string_wchar_rfind_off(
3637 const basic_string_wchar
*this, const basic_string_wchar
*find
, MSVCP_size_t off
)
3639 return MSVCP_basic_string_wchar_rfind_cstr_substr(this,
3640 basic_string_wchar_const_ptr(find
), off
, find
->size
);
3643 /* ?rfind@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEI_WI@Z */
3644 /* ?rfind@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBA_K_W_K@Z */
3645 /* ?rfind@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEIGI@Z */
3646 /* ?rfind@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBA_KG_K@Z */
3647 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_rfind_ch
, 12)
3648 MSVCP_size_t __thiscall
MSVCP_basic_string_wchar_rfind_ch(
3649 const basic_string_wchar
*this, wchar_t ch
, MSVCP_size_t pos
)
3651 return MSVCP_basic_string_wchar_rfind_cstr_substr(this, &ch
, pos
, 1);
3654 /* ?find_first_of@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEIPB_WII@Z */
3655 /* ?find_first_of@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBA_KPEB_W_K1@Z */
3656 /* ?find_first_of@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEIPBGII@Z */
3657 /* ?find_first_of@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBA_KPEBG_K1@Z */
3658 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_find_first_of_cstr_substr
, 16)
3659 MSVCP_size_t __thiscall
MSVCP_basic_string_wchar_find_first_of_cstr_substr(
3660 const basic_string_wchar
*this, const wchar_t *find
, MSVCP_size_t off
, MSVCP_size_t len
)
3662 const wchar_t *p
, *end
;
3664 TRACE("%p %p %lu %lu\n", this, find
, off
, len
);
3666 if(len
>0 && off
<this->size
) {
3667 end
= basic_string_wchar_const_ptr(this)+this->size
;
3668 for(p
=basic_string_wchar_const_ptr(this)+off
; p
<end
; p
++)
3669 if(MSVCP_char_traits_wchar_find(find
, len
, p
))
3670 return p
-basic_string_wchar_const_ptr(this);
3673 return MSVCP_basic_string_wchar_npos
;
3676 /* ?find_first_of@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEIABV12@I@Z */
3677 /* ?find_first_of@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBA_KAEBV12@_K@Z */
3678 /* ?find_first_of@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEIABV12@I@Z */
3679 /* ?find_first_of@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBA_KAEBV12@_K@Z */
3680 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_find_first_of
, 12)
3681 MSVCP_size_t __thiscall
MSVCP_basic_string_wchar_find_first_of(
3682 const basic_string_wchar
*this, const basic_string_wchar
*find
, MSVCP_size_t off
)
3684 return MSVCP_basic_string_wchar_find_first_of_cstr_substr(this,
3685 basic_string_wchar_const_ptr(find
), off
, find
->size
);
3688 /* ?find_first_of@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEIPB_WI@Z */
3689 /* ?find_first_of@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBA_KPEB_W_K@Z */
3690 /* ?find_first_of@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEIPBGI@Z */
3691 /* ?find_first_of@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBA_KPEBG_K@Z */
3692 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_find_first_of_cstr
, 12)
3693 MSVCP_size_t __thiscall
MSVCP_basic_string_wchar_find_first_of_cstr(
3694 const basic_string_wchar
*this, const wchar_t *find
, MSVCP_size_t off
)
3696 return MSVCP_basic_string_wchar_find_first_of_cstr_substr(
3697 this, find
, off
, MSVCP_char_traits_wchar_length(find
));
3700 /* ?find_first_of@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEI_WI@Z */
3701 /* ?find_first_of@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBA_K_W_K@Z */
3702 /* ?find_first_of@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEIGI@Z */
3703 /* ?find_first_of@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBA_KG_K@Z */
3704 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_find_first_of_ch
, 12)
3705 MSVCP_size_t __thiscall
MSVCP_basic_string_wchar_find_first_of_ch(
3706 const basic_string_wchar
*this, wchar_t ch
, MSVCP_size_t off
)
3708 return MSVCP_basic_string_wchar_find_first_of_cstr_substr(this, &ch
, off
, 1);
3711 /* ?find_first_not_of@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEIPB_WII@Z */
3712 /* ?find_first_not_of@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBA_KPEB_W_K1@Z */
3713 /* ?find_first_not_of@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEIPBGII@Z */
3714 /* ?find_first_not_of@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBA_KPEBG_K1@Z */
3715 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_find_first_not_of_cstr_substr
, 16)
3716 MSVCP_size_t __thiscall
MSVCP_basic_string_wchar_find_first_not_of_cstr_substr(
3717 const basic_string_wchar
*this, const wchar_t *find
, MSVCP_size_t off
, MSVCP_size_t len
)
3719 const wchar_t *p
, *end
;
3721 TRACE("%p %p %lu %lu\n", this, find
, off
, len
);
3723 if(off
<this->size
) {
3724 end
= basic_string_wchar_const_ptr(this)+this->size
;
3725 for(p
=basic_string_wchar_const_ptr(this)+off
; p
<end
; p
++)
3726 if(!MSVCP_char_traits_wchar_find(find
, len
, p
))
3727 return p
-basic_string_wchar_const_ptr(this);
3730 return MSVCP_basic_string_wchar_npos
;
3733 /* ?find_first_not_of@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEIABV12@I@Z */
3734 /* ?find_first_not_of@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBA_KAEBV12@_K@Z */
3735 /* ?find_first_not_of@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEIABV12@I@Z */
3736 /* ?find_first_not_of@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBA_KAEBV12@_K@Z */
3737 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_find_first_not_of
, 12)
3738 MSVCP_size_t __thiscall
MSVCP_basic_string_wchar_find_first_not_of(
3739 const basic_string_wchar
*this, const basic_string_wchar
*find
, MSVCP_size_t off
)
3741 return MSVCP_basic_string_wchar_find_first_not_of_cstr_substr(this,
3742 basic_string_wchar_const_ptr(find
), off
, find
->size
);
3745 /* ?find_first_not_of@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEIPB_WI@Z */
3746 /* ?find_first_not_of@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBA_KPEB_W_K@Z */
3747 /* ?find_first_not_of@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEIPBGI@Z */
3748 /* ?find_first_not_of@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBA_KPEBG_K@Z */
3749 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_find_first_not_of_cstr
, 12)
3750 MSVCP_size_t __thiscall
MSVCP_basic_string_wchar_find_first_not_of_cstr(
3751 const basic_string_wchar
*this, const wchar_t *find
, MSVCP_size_t off
)
3753 return MSVCP_basic_string_wchar_find_first_not_of_cstr_substr(
3754 this, find
, off
, MSVCP_char_traits_wchar_length(find
));
3757 /* ?find_first_not_of@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEI_WI@Z */
3758 /* ?find_first_not_of@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBA_K_W_K@Z */
3759 /* ?find_first_not_of@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEIGI@Z */
3760 /* ?find_first_not_of@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBA_KG_K@Z */
3761 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_find_first_not_of_ch
, 12)
3762 MSVCP_size_t __thiscall
MSVCP_basic_string_wchar_find_first_not_of_ch(
3763 const basic_string_wchar
*this, wchar_t ch
, MSVCP_size_t off
)
3765 return MSVCP_basic_string_wchar_find_first_not_of_cstr_substr(this, &ch
, off
, 1);
3768 /* ?find_last_of@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEIPB_WII@Z */
3769 /* ?find_last_of@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBA_KPEB_W_K1@Z */
3770 /* ?find_last_of@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEIPBGII@Z */
3771 /* ?find_last_of@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBA_KPEBG_K1@Z */
3772 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_find_last_of_cstr_substr
, 16)
3773 MSVCP_size_t __thiscall
MSVCP_basic_string_wchar_find_last_of_cstr_substr(
3774 const basic_string_wchar
*this, const wchar_t *find
, MSVCP_size_t off
, MSVCP_size_t len
)
3776 const wchar_t *p
, *beg
;
3778 TRACE("%p %p %lu %lu\n", this, find
, off
, len
);
3781 if(len
>0 && this->size
>0) {
3782 if(off
>= this->size
)
3785 beg
= basic_string_wchar_const_ptr(this);
3786 for(p
=beg
+off
; p
>=beg
; p
--)
3787 if(MSVCP_char_traits_wchar_find(find
, len
, p
))
3791 return MSVCP_basic_string_wchar_npos
;
3794 /* ?find_last_of@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEIABV12@I@Z */
3795 /* ?find_last_of@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBA_KAEBV12@_K@Z */
3796 /* ?find_last_of@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEIABV12@I@Z */
3797 /* ?find_last_of@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBA_KAEBV12@_K@Z */
3798 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_find_last_of
, 12)
3799 MSVCP_size_t __thiscall
MSVCP_basic_string_wchar_find_last_of(
3800 const basic_string_wchar
*this, const basic_string_wchar
*find
, MSVCP_size_t off
)
3802 return MSVCP_basic_string_wchar_find_last_of_cstr_substr(this,
3803 basic_string_wchar_const_ptr(find
), off
, find
->size
);
3806 /* ?find_last_of@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEIPB_WI@Z */
3807 /* ?find_last_of@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBA_KPEB_W_K@Z */
3808 /* ?find_last_of@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEIPBGI@Z */
3809 /* ?find_last_of@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBA_KPEBG_K@Z */
3810 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_find_last_of_cstr
, 12)
3811 MSVCP_size_t __thiscall
MSVCP_basic_string_wchar_find_last_of_cstr(
3812 const basic_string_wchar
*this, const wchar_t *find
, MSVCP_size_t off
)
3814 return MSVCP_basic_string_wchar_find_last_of_cstr_substr(
3815 this, find
, off
, MSVCP_char_traits_wchar_length(find
));
3818 /* ?find_last_of@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEI_WI@Z */
3819 /* ?find_last_of@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBA_K_W_K@Z */
3820 /* ?find_last_of@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEIGI@Z */
3821 /* ?find_last_of@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBA_KG_K@Z */
3822 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_find_last_of_ch
, 12)
3823 MSVCP_size_t __thiscall
MSVCP_basic_string_wchar_find_last_of_ch(
3824 const basic_string_wchar
*this, wchar_t ch
, MSVCP_size_t off
)
3826 return MSVCP_basic_string_wchar_find_last_of_cstr_substr(this, &ch
, off
, 1);
3829 /* ?find_last_not_of@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEIPB_WII@Z */
3830 /* ?find_last_not_of@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBA_KPEB_W_K1@Z */
3831 /* ?find_last_not_of@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEIPBGII@Z */
3832 /* ?find_last_not_of@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBA_KPEBG_K1@Z */
3833 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_find_last_not_of_cstr_substr
, 16)
3834 MSVCP_size_t __thiscall
MSVCP_basic_string_wchar_find_last_not_of_cstr_substr(
3835 const basic_string_wchar
*this, const wchar_t *find
, MSVCP_size_t off
, MSVCP_size_t len
)
3837 const wchar_t *p
, *beg
;
3839 TRACE("%p %p %lu %lu\n", this, find
, off
, len
);
3841 if(len
>0 && this->size
>0) {
3842 if(off
>= this->size
)
3845 beg
= basic_string_wchar_const_ptr(this);
3846 for(p
=beg
+off
; p
>=beg
; p
--)
3847 if(!MSVCP_char_traits_wchar_find(find
, len
, p
))
3851 return MSVCP_basic_string_wchar_npos
;
3854 /* ?find_last_not_of@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEIABV12@I@Z */
3855 /* ?find_last_not_of@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBA_KAEBV12@_K@Z */
3856 /* ?find_last_not_of@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEIABV12@I@Z */
3857 /* ?find_last_not_of@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBA_KAEBV12@_K@Z */
3858 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_find_last_not_of
, 12)
3859 MSVCP_size_t __thiscall
MSVCP_basic_string_wchar_find_last_not_of(
3860 const basic_string_wchar
*this, const basic_string_wchar
*find
, MSVCP_size_t off
)
3862 return MSVCP_basic_string_wchar_find_last_not_of_cstr_substr(this,
3863 basic_string_wchar_const_ptr(find
), off
, find
->size
);
3866 /* ?find_last_not_of@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEIPB_WI@Z */
3867 /* ?find_last_not_of@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBA_KPEB_W_K@Z */
3868 /* ?find_last_not_of@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEIPBGI@Z */
3869 /* ?find_last_not_of@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBA_KPEBG_K@Z */
3870 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_find_last_not_of_cstr
, 12)
3871 MSVCP_size_t __thiscall
MSVCP_basic_string_wchar_find_last_not_of_cstr(
3872 const basic_string_wchar
*this, const wchar_t *find
, MSVCP_size_t off
)
3874 return MSVCP_basic_string_wchar_find_last_not_of_cstr_substr(
3875 this, find
, off
, MSVCP_char_traits_wchar_length(find
));
3878 /* ?find_last_not_of@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEI_WI@Z */
3879 /* ?find_last_not_of@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBA_K_W_K@Z */
3880 /* ?find_last_not_of@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEIGI@Z */
3881 /* ?find_last_not_of@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBA_KG_K@Z */
3882 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_find_last_not_of_ch
, 12)
3883 MSVCP_size_t __thiscall
MSVCP_basic_string_wchar_find_last_not_of_ch(
3884 const basic_string_wchar
*this, wchar_t ch
, MSVCP_size_t off
)
3886 return MSVCP_basic_string_wchar_find_last_not_of_cstr_substr(this, &ch
, off
, 1);
3889 /* ?replace@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV12@IIPB_WI@Z */
3890 /* ?replace@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAAEAV12@_K0PEB_W0@Z */
3891 /* ?replace@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV12@IIPBGI@Z */
3892 /* ?replace@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAAEAV12@_K0PEBG0@Z */
3893 DEFINE_THISCALL_WRAPPER(basic_string_wchar_replace_cstr_len
, 20)
3894 basic_string_wchar
* __thiscall
basic_string_wchar_replace_cstr_len(basic_string_wchar
*this,
3895 MSVCP_size_t off
, MSVCP_size_t len
, const wchar_t *str
, MSVCP_size_t str_len
)
3897 MSVCP_size_t inside_pos
= -1;
3898 wchar_t *ptr
= basic_string_wchar_ptr(this);
3900 TRACE("%p %ld %ld %p %ld\n", this, off
, len
, str
, str_len
);
3902 if(this->size
< off
)
3903 MSVCP__String_base_Xran();
3905 if(len
> this->size
-off
)
3906 len
= this->size
-off
;
3908 if(MSVCP_basic_string_wchar_npos
-str_len
<= this->size
-len
)
3909 MSVCP__String_base_Xlen();
3911 if(basic_string_wchar_inside(this, str
))
3912 inside_pos
= str
-ptr
;
3915 basic_string_wchar_grow(this, this->size
-len
+str_len
, FALSE
);
3916 ptr
= basic_string_wchar_ptr(this);
3919 if(inside_pos
== -1) {
3920 memmove(ptr
+off
+str_len
, ptr
+off
+len
, (this->size
-off
-len
)*sizeof(wchar_t));
3921 memcpy(ptr
+off
, str
, str_len
*sizeof(wchar_t));
3922 } else if(len
>= str_len
) {
3923 memmove(ptr
+off
, ptr
+inside_pos
, str_len
*sizeof(wchar_t));
3924 memmove(ptr
+off
+str_len
, ptr
+off
+len
, (this->size
-off
-len
)*sizeof(wchar_t));
3928 memmove(ptr
+off
+str_len
, ptr
+off
+len
, (this->size
-off
-len
)*sizeof(wchar_t));
3930 if(inside_pos
< off
+len
) {
3931 size
= off
+len
-inside_pos
;
3934 memmove(ptr
+off
, ptr
+inside_pos
, size
*sizeof(wchar_t));
3940 memmove(ptr
+off
+size
, ptr
+off
+str_len
, (str_len
-size
)*sizeof(wchar_t));
3943 basic_string_wchar_eos(this, this->size
-len
+str_len
);
3947 /* ?replace@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV12@IIPB_W@Z */
3948 /* ?replace@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAAEAV12@_K0PEB_W@Z */
3949 /* ?replace@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV12@IIPBG@Z */
3950 /* ?replace@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAAEAV12@_K0PEBG@Z */
3951 DEFINE_THISCALL_WRAPPER(basic_string_wchar_replace_cstr
, 16)
3952 basic_string_wchar
* __thiscall
basic_string_wchar_replace_cstr(basic_string_wchar
*this,
3953 MSVCP_size_t off
, MSVCP_size_t len
, const wchar_t *str
)
3955 return basic_string_wchar_replace_cstr_len(this, off
, len
, str
,
3956 MSVCP_char_traits_wchar_length(str
));
3959 /* ?replace@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV12@IIABV12@II@Z */
3960 /* ?replace@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAAEAV12@_K0AEBV12@00@Z */
3961 /* ?replace@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV12@IIABV12@II@Z */
3962 /* ?replace@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAAEAV12@_K0AEBV12@00@Z */
3963 DEFINE_THISCALL_WRAPPER(basic_string_wchar_replace_substr
, 24)
3964 basic_string_wchar
* __thiscall
basic_string_wchar_replace_substr(basic_string_wchar
*this, MSVCP_size_t off
,
3965 MSVCP_size_t len
, const basic_string_wchar
*str
, MSVCP_size_t str_off
, MSVCP_size_t str_len
)
3967 if(str
->size
< str_off
)
3968 MSVCP__String_base_Xran();
3970 if(str_len
> str
->size
-str_off
)
3971 str_len
= str
->size
-str_off
;
3973 return basic_string_wchar_replace_cstr_len(this, off
, len
,
3974 basic_string_wchar_const_ptr(str
)+str_off
, str_len
);
3977 /* ?replace@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV12@IIABV12@@Z */
3978 /* ?replace@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAAEAV12@_K0AEBV12@@Z */
3979 /* ?replace@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV12@IIABV12@@Z */
3980 /* ?replace@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAAEAV12@_K0AEBV12@@Z */
3981 DEFINE_THISCALL_WRAPPER(basic_string_wchar_replace
, 16)
3982 basic_string_wchar
* __thiscall
basic_string_wchar_replace(basic_string_wchar
*this,
3983 MSVCP_size_t off
, MSVCP_size_t len
, const basic_string_wchar
*str
)
3985 return basic_string_wchar_replace_cstr_len(this, off
, len
,
3986 basic_string_wchar_const_ptr(str
), str
->size
);
3989 /* ?replace@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV12@III_W@Z */
3990 /* ?replace@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAAEAV12@_K00_W@Z */
3991 /* ?replace@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV12@IIIG@Z */
3992 /* ?replace@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAAEAV12@_K00G@Z */
3993 DEFINE_THISCALL_WRAPPER(basic_string_wchar_replace_ch
, 20)
3994 basic_string_wchar
* __thiscall
basic_string_wchar_replace_ch(basic_string_wchar
*this,
3995 MSVCP_size_t off
, MSVCP_size_t len
, MSVCP_size_t count
, wchar_t ch
)
3997 wchar_t *ptr
= basic_string_wchar_ptr(this);
3999 TRACE("%p %ld %ld %ld %c\n", this, off
, len
, count
, ch
);
4001 if(this->size
< off
)
4002 MSVCP__String_base_Xran();
4004 if(len
> this->size
-off
)
4005 len
= this->size
-off
;
4007 if(MSVCP_basic_string_wchar_npos
-count
<= this->size
-len
)
4008 MSVCP__String_base_Xlen();
4011 basic_string_wchar_grow(this, this->size
-len
+count
, FALSE
);
4012 ptr
= basic_string_wchar_ptr(this);
4015 memmove(ptr
+off
+count
, ptr
+off
+len
, (this->size
-off
-len
)*sizeof(wchar_t));
4016 MSVCP_char_traits_wchar_assignn(ptr
+off
, count
, ch
);
4017 basic_string_wchar_eos(this, this->size
-len
+count
);
4022 /* ?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 */
4023 /* ?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 */
4024 /* ?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 */
4025 /* ?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 */
4026 DEFINE_THISCALL_WRAPPER(basic_string_wchar_replace_iter_iter
, 36)
4027 basic_string_wchar
* __thiscall
basic_string_wchar_replace_iter_iter(basic_string_wchar
*this,
4028 String_iterator_wchar beg
, String_iterator_wchar end
,
4029 String_iterator_wchar res_beg
, String_iterator_wchar res_end
)
4031 String_iterator_wchar begin
= { this, basic_string_wchar_ptr(this) };
4032 return basic_string_wchar_replace_cstr_len(this,
4033 MSVCP_basic_string_wchar_Pdif(beg
, begin
), MSVCP_basic_string_wchar_Pdif(end
, beg
),
4034 res_beg
.pos
, MSVCP_basic_string_wchar_Pdif(res_end
, res_beg
));
4037 /* ?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 */
4038 /* ?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 */
4039 /* ?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 */
4040 /* ?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 */
4041 DEFINE_THISCALL_WRAPPER(basic_string_wchar_replace_iter_bstr
, 24)
4042 basic_string_wchar
* __thiscall
basic_string_wchar_replace_iter_bstr(basic_string_wchar
*this,
4043 String_iterator_wchar beg
, String_iterator_wchar end
, const basic_string_wchar
*str
)
4045 String_iterator_wchar begin
= { this, basic_string_wchar_ptr(this) };
4046 return basic_string_wchar_replace(this, MSVCP_basic_string_wchar_Pdif(beg
, begin
),
4047 MSVCP_basic_string_wchar_Pdif(end
, beg
), str
);
4050 /* ?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 */
4051 /* ?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 */
4052 /* ?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 */
4053 /* ?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 */
4054 DEFINE_THISCALL_WRAPPER(basic_string_wchar_replace_iter_ch
, 28)
4055 basic_string_wchar
* __thiscall
basic_string_wchar_replace_iter_ch(basic_string_wchar
*this,
4056 String_iterator_wchar beg
, String_iterator_wchar end
, MSVCP_size_t count
, wchar_t ch
)
4058 String_iterator_wchar begin
= { this, basic_string_wchar_ptr(this) };
4059 return basic_string_wchar_replace_ch(this, MSVCP_basic_string_wchar_Pdif(beg
, begin
),
4060 MSVCP_basic_string_wchar_Pdif(end
, beg
), count
, ch
);
4063 /* ?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 */
4064 /* ?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 */
4065 /* ?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 */
4066 /* ?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 */
4067 DEFINE_THISCALL_WRAPPER(basic_string_wchar_replace_iter_ptr_ptr
, 28)
4068 basic_string_wchar
* __thiscall
basic_string_wchar_replace_iter_ptr_ptr(basic_string_wchar
*this,
4069 String_iterator_wchar beg
, String_iterator_wchar end
,
4070 const wchar_t *res_beg
, const wchar_t *res_end
)
4072 String_iterator_wchar begin
= { this, basic_string_wchar_ptr(this) };
4073 return basic_string_wchar_replace_cstr_len(this, MSVCP_basic_string_wchar_Pdif(beg
, begin
),
4074 MSVCP_basic_string_wchar_Pdif(end
, beg
), res_beg
, res_end
-res_beg
);
4077 /* ?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 */
4078 /* ?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 */
4079 /* ?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 */
4080 /* ?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 */
4081 DEFINE_THISCALL_WRAPPER(basic_string_wchar_replace_iter_cstr
, 24)
4082 basic_string_wchar
* __thiscall
basic_string_wchar_replace_iter_cstr(basic_string_wchar
*this,
4083 String_iterator_wchar beg
, String_iterator_wchar end
, const wchar_t *str
)
4085 String_iterator_wchar begin
= { this, basic_string_wchar_ptr(this) };
4086 return basic_string_wchar_replace_cstr(this, MSVCP_basic_string_wchar_Pdif(beg
, begin
),
4087 MSVCP_basic_string_wchar_Pdif(end
, beg
), str
);
4090 /* ?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 */
4091 /* ?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 */
4092 /* ?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 */
4093 /* ?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 */
4094 DEFINE_THISCALL_WRAPPER(basic_string_wchar_replace_iter_cstr_len
, 28)
4095 basic_string_wchar
* __thiscall
basic_string_wchar_replace_iter_cstr_len(basic_string_wchar
*this,
4096 String_iterator_wchar beg
, String_iterator_wchar end
, const wchar_t *str
, MSVCP_size_t len
)
4098 String_iterator_wchar begin
= { this, basic_string_wchar_ptr(this) };
4099 return basic_string_wchar_replace_cstr_len(this, MSVCP_basic_string_wchar_Pdif(beg
, begin
),
4100 MSVCP_basic_string_wchar_Pdif(end
, beg
), str
, len
);
4103 /* ?insert@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV12@IABV12@@Z */
4104 /* ?insert@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAAEAV12@_KAEBV12@@Z */
4105 /* ?insert@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV12@IABV12@@Z */
4106 /* ?insert@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAAEAV12@_KAEBV12@@Z */
4107 DEFINE_THISCALL_WRAPPER(basic_string_wchar_insert
, 12)
4108 basic_string_wchar
* __thiscall
basic_string_wchar_insert(basic_string_wchar
*this,
4109 MSVCP_size_t off
, const basic_string_wchar
*str
)
4111 return basic_string_wchar_replace(this, off
, 0, str
);
4114 /* ?insert@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV12@IABV12@II@Z */
4115 /* ?insert@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAAEAV12@_KAEBV12@00@Z */
4116 /* ?insert@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV12@IABV12@II@Z */
4117 /* ?insert@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAAEAV12@_KAEBV12@00@Z */
4118 DEFINE_THISCALL_WRAPPER(basic_string_wchar_insert_substr
, 20)
4119 basic_string_wchar
* __thiscall
basic_string_wchar_insert_substr(
4120 basic_string_wchar
*this, MSVCP_size_t off
, const basic_string_wchar
*str
,
4121 MSVCP_size_t str_off
, MSVCP_size_t str_count
)
4123 return basic_string_wchar_replace_substr(this, off
, 0, str
, str_off
, str_count
);
4126 /* ?insert@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV12@IPB_W@Z */
4127 /* ?insert@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAAEAV12@_KPEB_W@Z */
4128 /* ?insert@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV12@IPBG@Z */
4129 /* ?insert@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAAEAV12@_KPEBG@Z */
4130 DEFINE_THISCALL_WRAPPER(basic_string_wchar_insert_cstr
, 12)
4131 basic_string_wchar
* __thiscall
basic_string_wchar_insert_cstr(
4132 basic_string_wchar
*this, MSVCP_size_t off
, const wchar_t *str
)
4134 return basic_string_wchar_replace_cstr(this, off
, 0, str
);
4137 /* ?insert@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV12@IPB_WI@Z */
4138 /* ?insert@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAAEAV12@_KPEB_W0@Z */
4139 /* ?insert@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV12@IPBGI@Z */
4140 /* ?insert@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAAEAV12@_KPEBG0@Z */
4141 DEFINE_THISCALL_WRAPPER(basic_string_wchar_insert_cstr_len
, 16)
4142 basic_string_wchar
* __thiscall
basic_string_wchar_insert_cstr_len(basic_string_wchar
*this,
4143 MSVCP_size_t off
, const wchar_t *str
, MSVCP_size_t str_len
)
4145 return basic_string_wchar_replace_cstr_len(this, off
, 0, str
, str_len
);
4148 /* ?insert@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV12@II_W@Z */
4149 /* ?insert@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAAEAV12@_K0_W@Z */
4150 /* ?insert@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV12@IIG@Z */
4151 /* ?insert@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAAEAV12@_K0G@Z */
4152 DEFINE_THISCALL_WRAPPER(basic_string_wchar_insert_chn
, 16)
4153 basic_string_wchar
* __thiscall
basic_string_wchar_insert_chn(basic_string_wchar
*this,
4154 MSVCP_size_t off
, MSVCP_size_t count
, wchar_t ch
)
4156 return basic_string_wchar_replace_ch(this, off
, 0, count
, ch
);
4159 /* ?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 */
4160 /* ?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 */
4161 /* ?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 */
4162 /* ?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 */
4163 DEFINE_THISCALL_WRAPPER(basic_string_wchar_insert_iter_chn
, 20)
4164 void __thiscall
basic_string_wchar_insert_iter_chn(basic_string_wchar
*this,
4165 String_iterator_wchar where
, MSVCP_size_t count
, wchar_t ch
)
4167 String_iterator_wchar iter
= { this, basic_string_wchar_ptr(this) };
4168 MSVCP_size_t off
= MSVCP_basic_string_wchar_Pdif(where
, iter
);
4170 basic_string_wchar_insert_chn(this, off
, count
, ch
);
4173 /* ?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 */
4174 /* ?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 */
4175 /* ?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 */
4176 /* ?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 */
4177 DEFINE_THISCALL_WRAPPER(basic_string_wchar_insert_iter_ch
, 20)
4178 String_iterator_wchar
* __thiscall
basic_string_wchar_insert_iter_ch(basic_string_wchar
*this,
4179 String_iterator_wchar
*ret
, String_iterator_wchar where
, wchar_t ch
)
4184 ret
->pos
= basic_string_wchar_ptr(this);
4185 off
= MSVCP_basic_string_wchar_Pdif(where
, *ret
);
4187 basic_string_wchar_insert_chn(this, off
, 1, ch
);
4188 ret
->pos
= basic_string_wchar_ptr(this)+off
;
4192 /* ?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 */
4193 /* ?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 */
4194 /* ?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 */
4195 /* ?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 */
4196 DEFINE_THISCALL_WRAPPER(basic_string_wchar_insert_iter_null
, 16)
4197 String_iterator_wchar
* __thiscall
basic_string_wchar_insert_iter_null(basic_string_wchar
*this,
4198 String_iterator_wchar
*ret
, String_iterator_wchar where
)
4200 return basic_string_wchar_insert_iter_ch(this, ret
, where
, 0);
4203 /* ?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 */
4204 /* ?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 */
4205 /* ?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 */
4206 /* ?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 */
4207 DEFINE_THISCALL_WRAPPER(basic_string_wchar_insert_iter_beg_end
, 28)
4208 void __thiscall
basic_string_wchar_insert_iter_beg_end(basic_string_wchar
*this,
4209 String_iterator_wchar where
, String_iterator_wchar beg
, String_iterator_wchar end
)
4211 basic_string_wchar_replace_iter_iter(this, where
, where
, beg
, end
);
4214 /* ?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 */
4215 /* ?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 */
4216 /* ?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 */
4217 /* ?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 */
4218 DEFINE_THISCALL_WRAPPER(basic_string_wchar_insert_iter_ptr_ptr
, 20)
4219 void __thiscall
basic_string_wchar_insert_iter_ptr_ptr(basic_string_wchar
*this,
4220 String_iterator_wchar where
, const wchar_t *beg
, const wchar_t *end
)
4222 basic_string_wchar_replace_iter_ptr_ptr(this, where
, where
, beg
, end
);
4225 /* ??A?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAA_WI@Z */
4226 /* ??A?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAAEA_W_K@Z */
4227 /* ??A?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAGI@Z */
4228 /* ??A?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAAEAG_K@Z */
4229 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_operator_at
, 8)
4230 wchar_t* __thiscall
MSVCP_basic_string_wchar_operator_at(
4231 basic_string_wchar
*this, MSVCP_size_t pos
)
4233 TRACE("%p %lu\n", this, pos
);
4235 assert(this->size
>= pos
);
4236 return basic_string_wchar_ptr(this)+pos
;
4239 /* ??A?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEAB_WI@Z */
4240 /* ??A?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBAAEB_W_K@Z */
4241 /* ??A?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEABGI@Z */
4242 /* ??A?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBAAEBG_K@Z */
4243 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_const_operator_at
, 8)
4244 const wchar_t* __thiscall
MSVCP_basic_string_wchar_const_operator_at(
4245 const basic_string_wchar
*this, MSVCP_size_t pos
)
4247 TRACE("%p %lu\n", this, pos
);
4249 assert(this->size
>= pos
);
4250 return basic_string_wchar_const_ptr(this)+pos
;
4253 /* ??A?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAA_WU_Size_type_nosscl@01@@Z */
4254 /* ??A?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAAEA_WU_Size_type_nosscl@01@@Z */
4255 /* ??A?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAGU_Size_type_nosscl@01@@Z */
4256 /* ??A?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAAEAGU_Size_type_nosscl@01@@Z */
4257 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_operator_at_noverify
, 8)
4258 wchar_t* __thiscall
MSVCP_basic_string_wchar_operator_at_noverify(
4259 basic_string_wchar
*this, size_t_noverify pos
)
4261 TRACE("%p %lu\n", this, pos
.val
);
4262 return basic_string_wchar_ptr(this)+pos
.val
;
4265 /* ??A?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEAB_WU_Size_type_nosscl@01@@Z */
4266 /* ??A?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBAAEB_WU_Size_type_nosscl@01@@Z */
4267 /* ??A?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEABGU_Size_type_nosscl@01@@Z */
4268 /* ??A?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBAAEBGU_Size_type_nosscl@01@@Z */
4269 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_operator_const_at_noverify
, 8)
4270 const wchar_t* __thiscall
MSVCP_basic_string_wchar_operator_const_at_noverify(
4271 const basic_string_wchar
*this, size_t_noverify pos
)
4273 TRACE("%p %lu\n", this, pos
.val
);
4274 return basic_string_wchar_const_ptr(this)+pos
.val
;
4277 /* ?at@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAA_WI@Z */
4278 /* ?at@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAAEA_W_K@Z */
4279 /* ?at@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAGI@Z */
4280 /* ?at@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAAEAG_K@Z */
4281 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_at
, 8)
4282 wchar_t* __thiscall
MSVCP_basic_string_wchar_at(
4283 basic_string_wchar
*this, MSVCP_size_t pos
)
4285 TRACE("%p %lu\n", this, pos
);
4287 if(this->size
<= pos
)
4288 MSVCP__String_base_Xran();
4290 return basic_string_wchar_ptr(this)+pos
;
4293 /* ?at@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEAB_WI@Z */
4294 /* ?at@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBAAEB_W_K@Z */
4295 /* ?at@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEABGI@Z */
4296 /* ?at@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBAAEBG_K@Z */
4297 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_const_at
, 8)
4298 const wchar_t* __thiscall
MSVCP_basic_string_wchar_const_at(
4299 const basic_string_wchar
*this, MSVCP_size_t pos
)
4301 TRACE("%p %lu\n", this, pos
);
4303 if(this->size
<= pos
)
4304 MSVCP__String_base_Xran();
4306 return basic_string_wchar_const_ptr(this)+pos
;
4309 /* ?resize@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEXI_W@Z */
4310 /* ?resize@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAX_K_W@Z */
4311 /* ?resize@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEXIG@Z */
4312 /* ?resize@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAX_KG@Z */
4313 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_resize_ch
, 12)
4314 void __thiscall
MSVCP_basic_string_wchar_resize_ch(
4315 basic_string_wchar
*this, MSVCP_size_t size
, wchar_t ch
)
4317 TRACE("%p %lu %c\n", this, size
, ch
);
4319 if(size
<= this->size
)
4320 MSVCP_basic_string_wchar_erase(this, size
, this->size
);
4322 MSVCP_basic_string_wchar_append_len_ch(this, size
-this->size
, ch
);
4325 /* ?resize@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEXI@Z */
4326 /* ?resize@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAX_K@Z */
4327 /* ?resize@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEXI@Z */
4328 /* ?resize@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAX_K@Z */
4329 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_resize
, 8)
4330 void __thiscall
MSVCP_basic_string_wchar_resize(
4331 basic_string_wchar
*this, MSVCP_size_t size
)
4333 MSVCP_basic_string_wchar_resize_ch(this, size
, '\0');
4336 /* ?clear@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEXXZ */
4337 /* ?clear@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAXXZ */
4338 /* ?clear@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEXXZ */
4339 /* ?clear@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAXXZ */
4340 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_clear
, 4)
4341 void __thiscall
MSVCP_basic_string_wchar_clear(basic_string_wchar
*this)
4343 basic_string_wchar_eos(this, 0);
4346 /* ?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 */
4347 /* ?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 */
4348 /* ?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 */
4349 /* ?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 */
4350 /* ?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 */
4351 /* ?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 */
4352 /* ?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 */
4353 /* ?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 */
4354 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_begin
, 8)
4355 String_iterator_wchar
* __thiscall
MSVCP_basic_string_wchar_begin(
4356 basic_string_wchar
*this, String_iterator_wchar
*ret
)
4358 TRACE("%p\n", this);
4361 ret
->pos
= basic_string_wchar_const_ptr(this);
4365 /* ?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 */
4366 /* ?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 */
4367 /* ?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 */
4368 /* ?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 */
4369 /* ?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 */
4370 /* ?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 */
4371 /* ?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 */
4372 /* ?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 */
4373 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_end
, 8)
4374 String_iterator_wchar
* __thiscall
MSVCP_basic_string_wchar_end(
4375 basic_string_wchar
*this, String_iterator_wchar
*ret
)
4377 TRACE("%p\n", this);
4380 ret
->pos
= basic_string_wchar_const_ptr(this)+this->size
;
4384 /* ?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 */
4385 /* ?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 */
4386 /* ?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 */
4387 /* ?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 */
4388 /* ?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 */
4389 /* ?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 */
4390 /* ?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 */
4391 /* ?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 */
4392 DEFINE_THISCALL_WRAPPER(basic_string_wchar_rbegin
, 8)
4393 basic_string_wchar_reverse_iter
* __thiscall
basic_string_wchar_rbegin(const basic_string_wchar
*this, basic_string_wchar_reverse_iter
*ret
)
4397 ret
->pos
= basic_string_wchar_const_ptr(this)+this->size
;
4401 /* ?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 */
4402 /* ?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 */
4403 /* ?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 */
4404 /* ?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 */
4405 /* ?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 */
4406 /* ?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 */
4407 /* ?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 */
4408 /* ?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 */
4409 DEFINE_THISCALL_WRAPPER(basic_string_wchar_rend
, 8)
4410 basic_string_wchar_reverse_iter
* __thiscall
basic_string_wchar_rend(const basic_string_wchar
*this, basic_string_wchar_reverse_iter
*ret
)
4414 ret
->pos
= basic_string_wchar_const_ptr(this);
4418 /* _String_val class */
4419 /* ??_F?$_String_val@DV?$allocator@D@std@@@std@@QAEXXZ */
4420 /* ??_F?$_String_val@DV?$allocator@D@std@@@std@@QEAAXXZ */
4421 /* ??_F?$_String_val@GV?$allocator@G@std@@@std@@QAEXXZ */
4422 /* ??_F?$_String_val@GV?$allocator@G@std@@@std@@QEAAXXZ */
4423 /* ??_F?$_String_val@_WV?$allocator@_W@std@@@std@@QAEXXZ */
4424 /* ??_F?$_String_val@_WV?$allocator@_W@std@@@std@@QEAAXXZ */
4425 DEFINE_THISCALL_WRAPPER(_String_val_ctor
, 4)
4426 void* __thiscall
_String_val_ctor(void *this)
4428 TRACE("%p\n", this);
4432 /* ??0?$_String_val@DV?$allocator@D@std@@@std@@IAE@V?$allocator@D@1@@Z */
4433 /* ??0?$_String_val@DV?$allocator@D@std@@@std@@IEAA@V?$allocator@D@1@@Z */
4434 /* ??0?$_String_val@GV?$allocator@G@std@@@std@@IAE@V?$allocator@G@1@@Z */
4435 /* ??0?$_String_val@GV?$allocator@G@std@@@std@@IEAA@V?$allocator@G@1@@Z */
4436 /* ??0?$_String_val@_WV?$allocator@_W@std@@@std@@IAE@V?$allocator@_W@1@@Z */
4437 /* ??0?$_String_val@_WV?$allocator@_W@std@@@std@@IEAA@V?$allocator@_W@1@@Z */
4438 /* ??0?$_String_val@DV?$allocator@D@std@@@std@@QAE@ABV01@@Z */
4439 /* ??0?$_String_val@DV?$allocator@D@std@@@std@@QEAA@AEBV01@@Z */
4440 /* ??0?$_String_val@GV?$allocator@G@std@@@std@@QAE@ABV01@@Z */
4441 /* ??0?$_String_val@GV?$allocator@G@std@@@std@@QEAA@AEBV01@@Z */
4442 /* ??0?$_String_val@_WV?$allocator@_W@std@@@std@@QAE@ABV01@@Z */
4443 /* ??0?$_String_val@_WV?$allocator@_W@std@@@std@@QEAA@AEBV01@@Z */
4444 /* ??4?$_String_val@DV?$allocator@D@std@@@std@@QAEAAV01@ABV01@@Z */
4445 /* ??4?$_String_val@DV?$allocator@D@std@@@std@@QEAAAEAV01@AEBV01@@Z */
4446 /* ??4?$_String_val@GV?$allocator@G@std@@@std@@QAEAAV01@ABV01@@Z */
4447 /* ??4?$_String_val@GV?$allocator@G@std@@@std@@QEAAAEAV01@AEBV01@@Z */
4448 /* ??4?$_String_val@_WV?$allocator@_W@std@@@std@@QAEAAV01@ABV01@@Z */
4449 /* ??4?$_String_val@_WV?$allocator@_W@std@@@std@@QEAAAEAV01@AEBV01@@Z */
4450 /* ??4?$_String_val@DV?$allocator@D@std@@@std@@QAEAAV01@ABV01@@Z */
4451 DEFINE_THISCALL_WRAPPER(_String_val_null_ctor
, 8)
4452 void* __thiscall
_String_val_null_ctor(void *this, const void *misc
)
4454 TRACE("%p %p\n", this, misc
);