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
;
42 const basic_string_char
*bstr
;
44 } String_reverse_iterator_char
;
47 basic_string_wchar
*bstr
;
49 } String_iterator_wchar
;
55 const basic_string_wchar
*bstr
;
57 } String_reverse_iterator_wchar
;
59 /* size_t_noverify structure */
69 /* char_traits<char> */
70 /* ?assign@?$char_traits@D@std@@SAXAADABD@Z */
71 /* ?assign@?$char_traits@D@std@@SAXAEADAEBD@Z */
72 void CDECL
MSVCP_char_traits_char_assign(char *ch
, const char *assign
)
77 /* ?eq@?$char_traits@D@std@@SA_NABD0@Z */
78 /* ?eq@?$char_traits@D@std@@SA_NAEBD0@Z */
79 MSVCP_bool CDECL
MSVCP_char_traits_char_eq(const char *ch1
, const char *ch2
)
84 /* ?lt@?$char_traits@D@std@@SA_NABD0@Z */
85 /* ?lt@?$char_traits@D@std@@SA_NAEBD0@Z */
86 MSVCP_bool CDECL
MSVCP_char_traits_lt(const char *ch1
, const char *ch2
)
91 /* ?compare@?$char_traits@D@std@@SAHPBD0I@Z */
92 /* ?compare@?$char_traits@D@std@@SAHPEBD0_K@Z */
93 int CDECL
MSVCP_char_traits_char_compare(
94 const char *s1
, const char *s2
, MSVCP_size_t count
)
96 int ret
= memcmp(s1
, s2
, count
);
97 return (ret
>0 ? 1 : (ret
<0 ? -1 : 0));
100 /* ?length@?$char_traits@D@std@@SAIPBD@Z */
101 /* ?length@?$char_traits@D@std@@SA_KPEBD@Z */
102 MSVCP_size_t CDECL
MSVCP_char_traits_char_length(const char *str
)
107 /* ?_Copy_s@?$char_traits@D@std@@SAPADPADIPBDI@Z */
108 /* ?_Copy_s@?$char_traits@D@std@@SAPEADPEAD_KPEBD1@Z */
109 char* CDECL
MSVCP_char_traits_char__Copy_s(char *dest
,
110 MSVCP_size_t size
, const char *src
, MSVCP_size_t count
)
112 if(!dest
|| !src
|| size
<count
) {
115 _invalid_parameter(NULL
, NULL
, NULL
, 0, 0);
119 return memcpy(dest
, src
, count
);
122 /* ?copy@?$char_traits@D@std@@SAPADPADPBDI@Z */
123 /* ?copy@?$char_traits@D@std@@SAPEADPEADPEBD_K@Z */
124 char* CDECL
MSVCP_char_traits_char_copy(
125 char *dest
, const char *src
, MSVCP_size_t count
)
127 return MSVCP_char_traits_char__Copy_s(dest
, count
, src
, count
);
130 /* ?find@?$char_traits@D@std@@SAPBDPBDIABD@Z */
131 /* ?find@?$char_traits@D@std@@SAPEBDPEBD_KAEBD@Z */
132 const char * CDECL
MSVCP_char_traits_char_find(
133 const char *str
, MSVCP_size_t range
, const char *c
)
135 return memchr(str
, *c
, range
);
138 /* ?_Move_s@?$char_traits@D@std@@SAPADPADIPBDI@Z */
139 /* ?_Move_s@?$char_traits@D@std@@SAPEADPEAD_KPEBD1@Z */
140 char* CDECL
MSVCP_char_traits_char__Move_s(char *dest
,
141 MSVCP_size_t size
, const char *src
, MSVCP_size_t count
)
143 if(!dest
|| !src
|| size
<count
) {
146 _invalid_parameter(NULL
, NULL
, NULL
, 0, 0);
150 return memmove(dest
, src
, count
);
153 /* ?move@?$char_traits@D@std@@SAPADPADPBDI@Z */
154 /* ?move@?$char_traits@D@std@@SAPEADPEADPEBD_K@Z */
155 char* CDECL
MSVCP_char_traits_char_move(
156 char *dest
, const char *src
, MSVCP_size_t count
)
158 return MSVCP_char_traits_char__Move_s(dest
, count
, src
, count
);
161 /* ?assign@?$char_traits@D@std@@SAPADPADID@Z */
162 /* ?assign@?$char_traits@D@std@@SAPEADPEAD_KD@Z */
163 char* CDECL
MSVCP_char_traits_char_assignn(char *str
, MSVCP_size_t num
, char c
)
165 return memset(str
, c
, num
);
168 /* ?to_char_type@?$char_traits@D@std@@SADABH@Z */
169 /* ?to_char_type@?$char_traits@D@std@@SADAEBH@Z */
170 char CDECL
MSVCP_char_traits_char_to_char_type(const int *i
)
175 /* ?to_int_type@?$char_traits@D@std@@SAHABD@Z */
176 /* ?to_int_type@?$char_traits@D@std@@SAHAEBD@Z */
177 int CDECL
MSVCP_char_traits_char_to_int_type(const char *ch
)
179 return (unsigned char)*ch
;
182 /* ?eq_int_type@?$char_traits@D@std@@SA_NABH0@Z */
183 /* ?eq_int_type@?$char_traits@D@std@@SA_NAEBH0@Z */
184 MSVCP_bool CDECL
MSVCP_char_traits_char_eq_int_type(const int *i1
, const int *i2
)
189 /* ?eof@?$char_traits@D@std@@SAHXZ */
190 int CDECL
MSVCP_char_traits_char_eof(void)
195 /* ?not_eof@?$char_traits@D@std@@SAHABH@Z */
196 /* ?not_eof@?$char_traits@D@std@@SAHAEBH@Z */
197 int CDECL
MSVCP_char_traits_char_not_eof(int *in
)
199 return (*in
==EOF
? !EOF
: *in
);
203 /* char_traits<wchar_t> */
204 /* ?assign@?$char_traits@_W@std@@SAXAA_WAB_W@Z */
205 /* ?assign@?$char_traits@_W@std@@SAXAEA_WAEB_W@Z */
206 void CDECL
MSVCP_char_traits_wchar_assign(wchar_t *ch
,
207 const wchar_t *assign
)
212 /* ?eq@?$char_traits@_W@std@@SA_NAB_W0@Z */
213 /* ?eq@?$char_traits@_W@std@@SA_NAEB_W0@Z */
214 MSVCP_bool CDECL
MSVCP_char_traits_wchar_eq(wchar_t *ch1
, wchar_t *ch2
)
219 /* ?lt@?$char_traits@_W@std@@SA_NAB_W0@Z */
220 /* ?lt@?$char_traits@_W@std@@SA_NAEB_W0@Z */
221 MSVCP_bool CDECL
MSVCP_char_traits_wchar_lt(const wchar_t *ch1
,
227 /* ?compare@?$char_traits@_W@std@@SAHPB_W0I@Z */
228 /* ?compare@?$char_traits@_W@std@@SAHPEB_W0_K@Z */
229 int CDECL
MSVCP_char_traits_wchar_compare(const wchar_t *s1
,
230 const wchar_t *s2
, MSVCP_size_t count
)
232 int ret
= memcmp(s1
, s2
, count
* sizeof(wchar_t));
233 return (ret
>0 ? 1 : (ret
<0 ? -1 : 0));
236 /* ?length@?$char_traits@_W@std@@SAIPB_W@Z */
237 /* ?length@?$char_traits@_W@std@@SA_KPEB_W@Z */
238 MSVCP_size_t CDECL
MSVCP_char_traits_wchar_length(const wchar_t *str
)
240 return wcslen((WCHAR
*)str
);
243 /* ?_Copy_s@?$char_traits@_W@std@@SAPA_WPA_WIPB_WI@Z */
244 /* ?_Copy_s@?$char_traits@_W@std@@SAPEA_WPEA_W_KPEB_W1@Z */
245 wchar_t* CDECL
MSVCP_char_traits_wchar__Copy_s(wchar_t *dest
,
246 MSVCP_size_t size
, const wchar_t *src
, MSVCP_size_t count
)
248 if(!dest
|| !src
|| size
<count
) {
251 _invalid_parameter(NULL
, NULL
, NULL
, 0, 0);
255 return memcpy(dest
, src
, count
* sizeof(wchar_t));
258 /* ?copy@?$char_traits@_W@std@@SAPA_WPA_WPB_WI@Z */
259 /* ?copy@?$char_traits@_W@std@@SAPEA_WPEA_WPEB_W_K@Z */
260 wchar_t* CDECL
MSVCP_char_traits_wchar_copy(wchar_t *dest
,
261 const wchar_t *src
, MSVCP_size_t count
)
263 return MSVCP_char_traits_wchar__Copy_s(dest
, count
, src
, count
);
266 /* ?find@?$char_traits@_W@std@@SAPB_WPB_WIAB_W@Z */
267 /* ?find@?$char_traits@_W@std@@SAPEB_WPEB_W_KAEB_W@Z */
268 const wchar_t* CDECL
MSVCP_char_traits_wchar_find(
269 const wchar_t *str
, MSVCP_size_t range
, const wchar_t *c
)
273 for(i
=0; i
<range
; i
++)
280 /* ?_Move_s@?$char_traits@_W@std@@SAPA_WPA_WIPB_WI@Z */
281 /* ?_Move_s@?$char_traits@_W@std@@SAPEA_WPEA_W_KPEB_W1@Z */
282 wchar_t* CDECL
MSVCP_char_traits_wchar__Move_s(wchar_t *dest
,
283 MSVCP_size_t size
, const wchar_t *src
, MSVCP_size_t count
)
285 if(!dest
|| !src
|| size
<count
) {
288 _invalid_parameter(NULL
, NULL
, NULL
, 0, 0);
292 return memmove(dest
, src
, count
* sizeof(WCHAR
));
295 /* ?move@?$char_traits@_W@std@@SAPA_WPA_WPB_WI@Z */
296 /* ?move@?$char_traits@_W@std@@SAPEA_WPEA_WPEB_W_K@Z */
297 wchar_t* CDECL
MSVCP_char_traits_wchar_move(wchar_t *dest
,
298 const wchar_t *src
, MSVCP_size_t count
)
300 return MSVCP_char_traits_wchar__Move_s(dest
, count
, src
, count
);
303 /* ?assign@?$char_traits@_W@std@@SAPA_WPA_WI_W@Z */
304 /* ?assign@?$char_traits@_W@std@@SAPEA_WPEA_W_K_W@Z */
305 wchar_t* CDECL
MSVCP_char_traits_wchar_assignn(wchar_t *str
,
306 MSVCP_size_t num
, wchar_t c
)
316 /* ?to_char_type@?$char_traits@_W@std@@SA_WABG@Z */
317 /* ?to_char_type@?$char_traits@_W@std@@SA_WAEBG@Z */
318 wchar_t CDECL
MSVCP_char_traits_wchar_to_char_type(const unsigned short *i
)
323 /* ?to_int_type@?$char_traits@_W@std@@SAGAB_W@Z */
324 /* ?to_int_type@?$char_traits@_W@std@@SAGAEB_W@Z */
325 unsigned short CDECL
MSVCP_char_traits_wchar_to_int_type(const wchar_t *ch
)
330 /* ?eq_int_type@?$char_traits@_W@std@@SA_NABG0@Z */
331 /* ?eq_int_type@?$char_traits@_W@std@@SA_NAEBG0@Z */
332 MSVCP_bool CDECL
MSVCP_char_traits_wchar_eq_int_tpe(const unsigned short *i1
,
333 const unsigned short *i2
)
338 /* ?eof@?$char_traits@_W@std@@SAGXZ */
339 unsigned short CDECL
MSVCP_char_traits_wchar_eof(void)
344 /* ?not_eof@?$char_traits@_W@std@@SAGABG@Z */
345 /* ?not_eof@?$char_traits@_W@std@@SAGAEBG@Z */
346 unsigned short CDECL
MSVCP_char_traits_wchar_not_eof(const unsigned short *in
)
348 return (*in
==WEOF
? !WEOF
: *in
);
352 /* char_traits<unsigned short> */
353 /* ?assign@?$char_traits@G@std@@SAXAAGABG@Z */
354 /* ?assign@?$char_traits@G@std@@SAXAEAGAEBG@Z */
355 void CDECL
MSVCP_char_traits_short_assign(unsigned short *ch
,
356 const unsigned short *assign
)
361 /* ?eq@?$char_traits@G@std@@SA_NABG0@Z */
362 /* ?eq@?$char_traits@G@std@@SA_NAEBG0@Z */
363 MSVCP_bool CDECL
MSVCP_char_traits_short_eq(const unsigned short *ch1
,
364 const unsigned short *ch2
)
369 /* ?lt@?$char_traits@G@std@@SA_NABG0@Z */
370 /* ?lt@?$char_traits@G@std@@SA_NAEBG0@Z */
371 MSVCP_bool CDECL
MSVCP_char_traits_short_lt(const unsigned short *ch1
,
372 const unsigned short *ch2
)
377 /* ?compare@?$char_traits@G@std@@SAHPBG0I@Z */
378 /* ?compare@?$char_traits@G@std@@SAHPEBG0_K@Z */
379 int CDECL
MSVCP_char_traits_short_compare(const unsigned short *s1
,
380 const unsigned short *s2
, MSVCP_size_t count
)
384 for(i
=0; i
<count
; i
++)
386 return (s1
[i
] < s2
[i
] ? -1 : 1);
391 /* ?length@?$char_traits@G@std@@SAIPBG@Z */
392 /* ?length@?$char_traits@G@std@@SA_KPEBG@Z */
393 MSVCP_size_t CDECL
MSVCP_char_traits_short_length(const unsigned short *str
)
397 for(len
=0; str
[len
]; len
++);
402 /* ?_Copy_s@?$char_traits@G@std@@SAPAGPAGIPBGI@Z */
403 /* ?_Copy_s@?$char_traits@G@std@@SAPEAGPEAG_KPEBG1@Z */
404 unsigned short * CDECL
MSVCP_char_traits_short__Copy_s(unsigned short *dest
,
405 MSVCP_size_t size
, const unsigned short *src
, MSVCP_size_t count
)
408 _invalid_parameter(NULL
, NULL
, NULL
, 0, 0);
412 return memcpy(dest
, src
, count
* sizeof(unsigned short));
415 /* ?copy@?$char_traits@G@std@@SAPAGPAGPBGI@Z */
416 /* ?copy@?$char_traits@G@std@@SAPEAGPEAGPEBG_K@Z */
417 unsigned short* CDECL
MSVCP_char_traits_short_copy(unsigned short *dest
,
418 const unsigned short *src
, MSVCP_size_t count
)
420 return MSVCP_char_traits_short__Copy_s(dest
, count
, src
, count
);
423 /* ?find@?$char_traits@G@std@@SAPBGPBGIABG@Z */
424 /* ?find@?$char_traits@G@std@@SAPEBGPEBG_KAEBG@Z */
425 const unsigned short* CDECL
MSVCP_char_traits_short_find(
426 const unsigned short *str
, MSVCP_size_t range
, const unsigned short *c
)
430 for(i
=0; i
<range
; i
++)
437 /* ?_Move_s@?$char_traits@G@std@@SAPAGPAGIPBGI@Z */
438 /* ?_Move_s@?$char_traits@G@std@@SAPEAGPEAG_KPEBG1@Z */
439 unsigned short* CDECL
MSVCP_char_traits_short__Move_s(unsigned short *dest
,
440 MSVCP_size_t size
, const unsigned short *src
, MSVCP_size_t count
)
443 _invalid_parameter(NULL
, NULL
, NULL
, 0, 0);
447 return memmove(dest
, src
, count
* sizeof(unsigned short));
450 /* ?move@?$char_traits@G@std@@SAPAGPAGPBGI@Z */
451 /* ?move@?$char_traits@G@std@@SAPEAGPEAGPEBG_K@Z */
452 unsigned short* CDECL
MSVCP_char_traits_short_move(unsigned short *dest
,
453 const unsigned short *src
, MSVCP_size_t count
)
455 return MSVCP_char_traits_short__Move_s(dest
, count
, src
, count
);
458 /* ?assign@?$char_traits@G@std@@SAPAGPAGIG@Z */
459 /* ?assign@?$char_traits@G@std@@SAPEAGPEAG_KG@Z */
460 unsigned short* CDECL
MSVCP_char_traits_short_assignn(unsigned short *str
,
461 MSVCP_size_t num
, unsigned short c
)
471 /* ?to_char_type@?$char_traits@G@std@@SAGABG@Z */
472 /* ?to_char_type@?$char_traits@G@std@@SAGAEBG@Z */
473 unsigned short CDECL
MSVCP_char_traits_short_to_char_type(const unsigned short *i
)
478 /* ?to_int_type@?$char_traits@G@std@@SAGABG@Z */
479 /* ?to_int_type@?$char_traits@G@std@@SAGAEBG@Z */
480 unsigned short CDECL
MSVCP_char_traits_short_to_int_type(const unsigned short *ch
)
485 /* ?eq_int_type@?$char_traits@G@std@@SA_NABG0@Z */
486 /* ?eq_int_type@?$char_traits@G@std@@SA_NAEBG0@Z */
487 MSVCP_bool CDECL
MSVCP_char_traits_short_eq_int_type(unsigned short *i1
,
493 /* ?eof@?$char_traits@G@std@@SAGXZ */
494 unsigned short CDECL
MSVCP_char_traits_short_eof(void)
499 /* ?not_eof@?$char_traits@G@std@@SAGABG@Z */
500 /* ?not_eof@?$char_traits@G@std@@SAGAEBG@Z */
501 unsigned short CDECL
MSVCP_char_traits_short_not_eof(const unsigned short *in
)
503 return (*in
==(unsigned short)-1 ? 0 : *in
);
508 /* ?_Xlen@_String_base@std@@SAXXZ */
509 void CDECL
MSVCP__String_base_Xlen(void)
511 static const char msg
[] = "string too long";
514 throw_exception(EXCEPTION_LENGTH_ERROR
, msg
);
517 /* ?_Xran@_String_base@std@@SAXXZ */
518 void CDECL
MSVCP__String_base_Xran(void)
520 static const char msg
[] = "invalid string position";
523 throw_exception(EXCEPTION_OUT_OF_RANGE
, msg
);
526 /* ?_Xinvarg@_String_base@std@@SAXXZ */
527 void CDECL
MSVCP__String_base_Xinvarg(void)
529 static const char msg
[] = "invalid string argument";
532 throw_exception(EXCEPTION_INVALID_ARGUMENT
, msg
);
536 /* basic_string<char, char_traits<char>, allocator<char>> */
537 /* ?npos@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@2IB */
538 /* ?npos@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@2_KB */
539 const MSVCP_size_t MSVCP_basic_string_char_npos
= -1;
541 /* ?_Myptr@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IAEPADXZ */
542 /* ?_Myptr@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IEAAPEADXZ */
543 DEFINE_THISCALL_WRAPPER(basic_string_char_ptr
, 4)
544 char* __thiscall
basic_string_char_ptr(basic_string_char
*this)
546 if(this->res
< BUF_SIZE_CHAR
)
547 return this->data
.buf
;
548 return this->data
.ptr
;
551 /* ?_Myptr@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IBEPBDXZ */
552 /* ?_Myptr@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IEBAPEBDXZ */
553 DEFINE_THISCALL_WRAPPER(basic_string_char_const_ptr
, 4)
554 const char* __thiscall
basic_string_char_const_ptr(const basic_string_char
*this)
556 if(this->res
< BUF_SIZE_CHAR
)
557 return this->data
.buf
;
558 return this->data
.ptr
;
561 /* ?_Eos@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IAEXI@Z */
562 /* ?_Eos@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IEAAX_K@Z */
563 DEFINE_THISCALL_WRAPPER(basic_string_char_eos
, 8)
564 void __thiscall
basic_string_char_eos(basic_string_char
*this, MSVCP_size_t len
)
566 static const char nullbyte
= '\0';
569 MSVCP_char_traits_char_assign(basic_string_char_ptr(this)+len
, &nullbyte
);
572 /* ?_Inside@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IAE_NPBD@Z */
573 /* ?_Inside@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IEAA_NPEBD@Z */
574 DEFINE_THISCALL_WRAPPER(basic_string_char_inside
, 8)
575 MSVCP_bool __thiscall
basic_string_char_inside(
576 basic_string_char
*this, const char *ptr
)
578 char *cstr
= basic_string_char_ptr(this);
580 return ptr
>=cstr
&& ptr
<cstr
+this->size
;
583 /* ?_Tidy@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IAEX_NI@Z */
584 /* ?_Tidy@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IEAAX_N_K@Z */
585 DEFINE_THISCALL_WRAPPER(basic_string_char_tidy
, 12)
586 void __thiscall
basic_string_char_tidy(basic_string_char
*this,
587 MSVCP_bool built
, MSVCP_size_t new_size
)
589 if(built
&& BUF_SIZE_CHAR
<=this->res
) {
590 char *ptr
= this->data
.ptr
;
593 MSVCP_char_traits_char__Copy_s(this->data
.buf
, BUF_SIZE_CHAR
, ptr
, new_size
);
594 MSVCP_allocator_char_deallocate(this->allocator
, ptr
, this->res
+1);
597 this->res
= BUF_SIZE_CHAR
-1;
598 basic_string_char_eos(this, new_size
);
601 /* Exported only from msvcp60/70 */
602 /* ?_Tidy@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@AAEX_N@Z */
603 /* ?_Tidy@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@AEAAX_N@Z */
604 DEFINE_THISCALL_WRAPPER(basic_string_char_tidy_built
, 8)
605 void __thiscall
basic_string_char_tidy_built(basic_string_char
*this, MSVCP_bool built
)
607 basic_string_char_tidy(this, built
, 0);
610 /* ?_Grow@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IAE_NI_N@Z */
611 /* ?_Grow@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IEAA_N_K_N@Z */
612 DEFINE_THISCALL_WRAPPER(basic_string_char_grow
, 12)
613 MSVCP_bool __thiscall
basic_string_char_grow(
614 basic_string_char
*this, MSVCP_size_t new_size
, MSVCP_bool trim
)
616 if(this->res
< new_size
) {
617 MSVCP_size_t new_res
= new_size
, len
= this->size
;
622 if(new_res
/3 < this->res
/2)
623 new_res
= this->res
+ this->res
/2;
625 ptr
= MSVCP_allocator_char_allocate(this->allocator
, new_res
+1);
627 ptr
= MSVCP_allocator_char_allocate(this->allocator
, new_size
+1);
631 ERR("Out of memory\n");
632 basic_string_char_tidy(this, TRUE
, 0);
636 MSVCP_char_traits_char__Copy_s(ptr
, new_size
,
637 basic_string_char_ptr(this), this->size
);
638 basic_string_char_tidy(this, TRUE
, 0);
639 this->data
.ptr
= ptr
;
640 this->res
= new_size
;
641 basic_string_char_eos(this, len
);
642 } else if(trim
&& new_size
< BUF_SIZE_CHAR
)
643 basic_string_char_tidy(this, TRUE
,
644 new_size
<this->size
? new_size
: this->size
);
645 else if(new_size
== 0)
646 basic_string_char_eos(this, 0);
651 /* ?_Copy@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IAEXII@Z */
652 /* ?_Copy@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IEAAX_K0@Z */
653 DEFINE_THISCALL_WRAPPER(basic_string_char__Copy
, 12)
654 void __thiscall
basic_string_char__Copy(basic_string_char
*this,
655 MSVCP_size_t new_size
, MSVCP_size_t copy_len
)
657 TRACE("%p %lu %lu\n", this, new_size
, copy_len
);
659 if(!basic_string_char_grow(this, new_size
, FALSE
))
661 basic_string_char_eos(this, copy_len
);
664 /* ?_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 */
665 /* ?_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 */
666 MSVCP_size_t __cdecl
MSVCP_basic_string_char_Pdif(String_iterator_char i1
, String_iterator_char i2
)
668 TRACE("(%p %p) (%p %p)\n", i1
.bstr
, i1
.pos
, i2
.bstr
, i2
.pos
);
670 if((!i1
.bstr
&& i1
.pos
) || i1
.bstr
!=i2
.bstr
) {
671 _invalid_parameter(NULL
, NULL
, NULL
, 0, 0);
675 return !i1
.pos
? 0 : i1
.pos
-i2
.pos
;
678 /* ?get_allocator@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBE?AV?$allocator@D@2@XZ */
679 /* ?get_allocator@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA?AV?$allocator@D@2@XZ */
680 DEFINE_THISCALL_WRAPPER(basic_string_char_get_allocator
, 8)
681 allocator
* __thiscall
basic_string_char_get_allocator(const basic_string_char
*this, allocator
*ret
)
687 /* ?erase@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@II@Z */
688 /* ?erase@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAAEAV12@_K0@Z */
689 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_erase
, 12)
690 basic_string_char
* __thiscall
MSVCP_basic_string_char_erase(
691 basic_string_char
*this, MSVCP_size_t pos
, MSVCP_size_t len
)
693 TRACE("%p %lu %lu\n", this, pos
, len
);
696 MSVCP__String_base_Xran();
698 if(len
> this->size
-pos
)
699 len
= this->size
-pos
;
702 MSVCP_char_traits_char__Move_s(basic_string_char_ptr(this)+pos
,
703 this->res
-pos
, basic_string_char_ptr(this)+pos
+len
,
705 basic_string_char_eos(this, this->size
-len
);
711 /* ?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 */
712 /* ?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 */
713 DEFINE_THISCALL_WRAPPER(basic_string_char_erase_iter_range
, 24)
714 String_iterator_char
* __thiscall
basic_string_char_erase_iter_range(basic_string_char
*this,
715 String_iterator_char
*ret
, String_iterator_char beg
, String_iterator_char end
)
720 ret
->pos
= basic_string_char_ptr(this);
721 off
= MSVCP_basic_string_char_Pdif(beg
, *ret
);
723 MSVCP_basic_string_char_erase(this, off
, MSVCP_basic_string_char_Pdif(end
, beg
));
726 ret
->pos
= basic_string_char_ptr(this)+off
;
730 /* ?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 */
731 /* ?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 */
732 DEFINE_THISCALL_WRAPPER(basic_string_char_erase_iter
, 16)
733 String_iterator_char
* __thiscall
basic_string_char_erase_iter(basic_string_char
*this,
734 String_iterator_char
*ret
, String_iterator_char pos
)
739 ret
->pos
= basic_string_char_ptr(this);
740 off
= MSVCP_basic_string_char_Pdif(pos
, *ret
);
742 MSVCP_basic_string_char_erase(this, off
, 1);
745 ret
->pos
= basic_string_char_ptr(this)+off
;
749 /* ?assign@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@ABV12@II@Z */
750 /* ?assign@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAAEAV12@AEBV12@_K1@Z */
751 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_assign_substr
, 16)
752 basic_string_char
* __thiscall
MSVCP_basic_string_char_assign_substr(
753 basic_string_char
*this, const basic_string_char
*assign
,
754 MSVCP_size_t pos
, MSVCP_size_t len
)
756 TRACE("%p %p %lu %lu\n", this, assign
, pos
, len
);
758 if(assign
->size
< pos
)
759 MSVCP__String_base_Xran();
761 if(len
> assign
->size
-pos
)
762 len
= assign
->size
-pos
;
765 MSVCP_basic_string_char_erase(this, pos
+len
, MSVCP_basic_string_char_npos
);
766 MSVCP_basic_string_char_erase(this, 0, pos
);
767 } else if(basic_string_char_grow(this, len
, FALSE
)) {
768 MSVCP_char_traits_char__Copy_s(basic_string_char_ptr(this),
769 this->res
, basic_string_char_const_ptr(assign
)+pos
, len
);
770 basic_string_char_eos(this, len
);
776 /* ?assign@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@ABV12@@Z */
777 /* ?assign@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAAEAV12@AEBV12@@Z */
778 /* ??4?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV01@ABV01@@Z */
779 /* ??4?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAAEAV01@AEBV01@@Z */
780 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_assign
, 8)
781 basic_string_char
* __thiscall
MSVCP_basic_string_char_assign(
782 basic_string_char
*this, const basic_string_char
*assign
)
784 return MSVCP_basic_string_char_assign_substr(this, assign
,
785 0, MSVCP_basic_string_char_npos
);
788 /* ?assign@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@PBDI@Z */
789 /* ?assign@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAAEAV12@PEBD_K@Z */
790 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_assign_cstr_len
, 12)
791 basic_string_char
* __thiscall
MSVCP_basic_string_char_assign_cstr_len(
792 basic_string_char
*this, const char *str
, MSVCP_size_t len
)
794 TRACE("%p %s %lu\n", this, debugstr_an(str
, len
), len
);
796 if(basic_string_char_inside(this, str
))
797 return MSVCP_basic_string_char_assign_substr(this, this,
798 str
-basic_string_char_ptr(this), len
);
799 else if(basic_string_char_grow(this, len
, FALSE
)) {
800 MSVCP_char_traits_char__Copy_s(basic_string_char_ptr(this),
801 this->res
, str
, len
);
802 basic_string_char_eos(this, len
);
808 /* ??4?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV01@D@Z */
809 /* ??4?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAAEAV01@D@Z */
810 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_assign_ch
, 8)
811 basic_string_char
* __thiscall
MSVCP_basic_string_char_assign_ch(
812 basic_string_char
*this, char ch
)
814 return MSVCP_basic_string_char_assign_cstr_len(this, &ch
, 1);
817 /* ?assign@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@PBD@Z */
818 /* ?assign@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAAEAV12@PEBD@Z */
819 /* ??4?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV01@PBD@Z */
820 /* ??4?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAAEAV01@PEBD@Z */
821 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_assign_cstr
, 8)
822 basic_string_char
* __thiscall
MSVCP_basic_string_char_assign_cstr(
823 basic_string_char
*this, const char *str
)
825 return MSVCP_basic_string_char_assign_cstr_len(this, str
,
826 MSVCP_char_traits_char_length(str
));
829 /* ?assign@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@ID@Z */
830 /* ?assign@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAAEAV12@_KD@Z */
831 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_assignn
, 12)
832 basic_string_char
* __thiscall
MSVCP_basic_string_char_assignn(
833 basic_string_char
*this, MSVCP_size_t count
, char ch
)
835 TRACE("%p %ld %c\n", this, count
, ch
);
837 basic_string_char_grow(this, count
, FALSE
);
838 MSVCP_char_traits_char_assignn(basic_string_char_ptr(this), count
, ch
);
839 basic_string_char_eos(this, count
);
843 /* ?assign@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@PBD0@Z */
844 /* ?assign@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAAEAV12@PEBD0@Z */
845 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_assign_ptr_ptr
, 12)
846 basic_string_char
* __thiscall
MSVCP_basic_string_char_assign_ptr_ptr(
847 basic_string_char
*this, const char *first
, const char *last
)
849 return MSVCP_basic_string_char_assign_cstr_len(this, first
, last
-first
);
852 /* ?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 */
853 /* ?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 */
854 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_assign_iter
, 20)
855 basic_string_char
* __thiscall
MSVCP_basic_string_char_assign_iter(basic_string_char
*this,
856 String_iterator_char beg
, String_iterator_char end
)
858 return MSVCP_basic_string_char_assign_ptr_ptr(this, beg
.pos
, end
.pos
);
861 /* ?_Chassign@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IAEXIID@Z */
862 /* ?_Chassign@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IEAAX_K0D@Z */
863 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_Chassign
, 16)
864 void __thiscall
MSVCP_basic_string_char_Chassign(basic_string_char
*this,
865 MSVCP_size_t off
, MSVCP_size_t count
, char ch
)
867 TRACE("%p %lu %lu %c\n", this, off
, count
, ch
);
868 MSVCP_char_traits_char_assignn(basic_string_char_ptr(this)+off
, count
, ch
);
871 /* ?_Copy_s@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEIPADIII@Z */
872 /* ?_Copy_s@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA_KPEAD_K11@Z */
873 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_Copy_s
, 20)
874 MSVCP_size_t __thiscall
MSVCP_basic_string_char_Copy_s(const basic_string_char
*this,
875 char *dest
, MSVCP_size_t size
, MSVCP_size_t count
, MSVCP_size_t off
)
877 TRACE("%p %p %lu %lu %lu\n", this, dest
, size
, count
, off
);
880 MSVCP__String_base_Xran();
882 if(count
> this->size
-off
)
883 count
= this->size
-off
;
885 MSVCP_char_traits_char__Copy_s(dest
, size
,
886 basic_string_char_const_ptr(this)+off
, count
);
890 /* ?copy@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEIPADII@Z */
891 /* ?copy@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA_KPEAD_K1@Z */
892 DEFINE_THISCALL_WRAPPER(basic_string_char_copy
, 16)
893 MSVCP_size_t __thiscall
basic_string_char_copy(const basic_string_char
*this,
894 char *dest
, MSVCP_size_t count
, MSVCP_size_t off
)
896 return MSVCP_basic_string_char_Copy_s(this, dest
, count
, count
, off
);
899 /* ?c_str@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEPBDXZ */
900 /* ?c_str@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBAPEBDXZ */
901 /* ?data@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEPBDXZ */
902 /* ?data@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBAPEBDXZ */
903 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_c_str
, 4)
904 const char* __thiscall
MSVCP_basic_string_char_c_str(const basic_string_char
*this)
907 return basic_string_char_const_ptr(this);
910 /* ?capacity@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEIXZ */
911 /* ?capacity@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA_KXZ */
912 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_capacity
, 4)
913 MSVCP_size_t __thiscall
MSVCP_basic_string_char_capacity(basic_string_char
*this)
919 /* ?reserve@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEXI@Z */
920 /* ?reserve@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAX_K@Z */
921 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_reserve
, 8)
922 void __thiscall
MSVCP_basic_string_char_reserve(basic_string_char
*this, MSVCP_size_t size
)
926 TRACE("%p %ld\n", this, size
);
932 if(basic_string_char_grow(this, size
, TRUE
))
933 basic_string_char_eos(this, len
);
936 /* ??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@XZ */
937 /* ??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAA@XZ */
938 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_ctor
, 4)
939 basic_string_char
* __thiscall
MSVCP_basic_string_char_ctor(basic_string_char
*this)
943 basic_string_char_tidy(this, FALSE
, 0);
947 /* ??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@ABV01@@Z */
948 /* ??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAA@AEBV01@@Z */
949 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_copy_ctor
, 8)
950 basic_string_char
* __thiscall
MSVCP_basic_string_char_copy_ctor(
951 basic_string_char
*this, const basic_string_char
*copy
)
953 TRACE("%p %p\n", this, copy
);
955 basic_string_char_tidy(this, FALSE
, 0);
956 MSVCP_basic_string_char_assign(this, copy
);
960 /* ??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@PBD@Z */
961 /* ??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAA@PEBD@Z */
962 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_ctor_cstr
, 8)
963 basic_string_char
* __thiscall
MSVCP_basic_string_char_ctor_cstr(
964 basic_string_char
*this, const char *str
)
966 TRACE("%p %s\n", this, debugstr_a(str
));
968 basic_string_char_tidy(this, FALSE
, 0);
969 MSVCP_basic_string_char_assign_cstr(this, str
);
973 /* ??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@PBDABV?$allocator@D@1@@Z */
974 /* ??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAA@PEBDAEBV?$allocator@D@1@@Z */
975 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_ctor_cstr_alloc
, 12)
976 basic_string_char
* __thiscall
MSVCP_basic_string_char_ctor_cstr_alloc(
977 basic_string_char
*this, const char *str
, const void *alloc
)
979 return MSVCP_basic_string_char_ctor_cstr(this, str
);
982 /* ??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@PBDI@Z */
983 /* ??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAA@PEBD_K@Z */
984 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_ctor_cstr_len
, 12)
985 basic_string_char
* __thiscall
MSVCP_basic_string_char_ctor_cstr_len(
986 basic_string_char
*this, const char *str
, MSVCP_size_t len
)
988 TRACE("%p %s %ld\n", this, debugstr_an(str
, len
), len
);
990 basic_string_char_tidy(this, FALSE
, 0);
991 MSVCP_basic_string_char_assign_cstr_len(this, str
, len
);
995 /* ??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@PBDIABV?$allocator@D@1@@Z */
996 /* ??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAA@PEBD_KAEBV?$allocator@D@1@@Z */
997 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_ctor_cstr_len_alloc
, 16)
998 basic_string_char
* __thiscall
MSVCP_basic_string_char_ctor_cstr_len_alloc(
999 basic_string_char
*this, const char *str
, MSVCP_size_t len
, const void *alloc
)
1001 return MSVCP_basic_string_char_ctor_cstr_len(this, str
, len
);
1004 /* ??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@ABV01@II@Z */
1005 /* ??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAA@AEBV01@_K1@Z */
1006 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_ctor_substr
, 16)
1007 basic_string_char
* __thiscall
MSVCP_basic_string_char_ctor_substr(
1008 basic_string_char
*this, const basic_string_char
*assign
,
1009 MSVCP_size_t pos
, MSVCP_size_t len
)
1011 TRACE("%p %p %lu %lu\n", this, assign
, pos
, len
);
1013 basic_string_char_tidy(this, FALSE
, 0);
1014 MSVCP_basic_string_char_assign_substr(this, assign
, pos
, len
);
1018 /* ??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@ABV01@IIABV?$allocator@D@1@@Z */
1019 /* ??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAA@AEBV01@_K1AEBV?$allocator@D@1@@Z */
1020 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_ctor_substr_alloc
, 20)
1021 basic_string_char
* __thiscall
MSVCP_basic_string_char_ctor_substr_alloc(
1022 basic_string_char
*this, const basic_string_char
*assign
,
1023 MSVCP_size_t pos
, MSVCP_size_t len
, const void *alloc
)
1025 return MSVCP_basic_string_char_ctor_substr(this, assign
, pos
, len
);
1028 /* ??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@ABV?$allocator@D@1@@Z */
1029 /* ??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAA@AEBV?$allocator@D@1@@Z */
1030 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_ctor_alloc
, 8)
1031 basic_string_char
* __thiscall
MSVCP_basic_string_char_ctor_alloc(
1032 basic_string_char
*this, const void *alloc
)
1034 TRACE("%p %p\n", this, alloc
);
1036 basic_string_char_tidy(this, FALSE
, 0);
1040 /* ??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@ID@Z */
1041 /* ??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAA@_KD@Z */
1042 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_ctor_ch
, 12)
1043 basic_string_char
* __thiscall
MSVCP_basic_string_char_ctor_ch(basic_string_char
*this,
1044 MSVCP_size_t count
, char ch
)
1046 TRACE("%p %ld %c\n", this, count
, ch
);
1048 basic_string_char_tidy(this, FALSE
, 0);
1049 MSVCP_basic_string_char_assignn(this, count
, ch
);
1053 /* ??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@IDABV?$allocator@D@1@@Z */
1054 /* ??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAA@_KDAEBV?$allocator@D@1@@Z */
1055 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_ctor_ch_alloc
, 16)
1056 basic_string_char
* __thiscall
MSVCP_basic_string_char_ctor_ch_alloc(basic_string_char
*this,
1057 MSVCP_size_t count
, char ch
, const void *alloc
)
1059 return MSVCP_basic_string_char_ctor_ch(this, count
, ch
);
1062 /* ??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@PBD0@Z */
1063 /* ??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAA@PEBD0@Z */
1064 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_ctor_ptr_ptr
, 12)
1065 basic_string_char
* __thiscall
MSVCP_basic_string_char_ctor_ptr_ptr(basic_string_char
*this,
1066 const char *first
, const char *last
)
1068 return MSVCP_basic_string_char_ctor_cstr_len(this, first
, last
-first
);
1071 /* ??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 */
1072 /* ??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 */
1073 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_ctor_iter
, 20)
1074 basic_string_char
* __thiscall
MSVCP_basic_string_char_ctor_iter(basic_string_char
*this,
1075 String_iterator_char beg
, String_iterator_char end
)
1077 return MSVCP_basic_string_char_ctor_cstr_len(this, beg
.pos
, end
.pos
-beg
.pos
);
1080 /* ??1?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@XZ */
1081 /* ??1?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAA@XZ */
1082 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_dtor
, 4)
1083 void __thiscall
MSVCP_basic_string_char_dtor(basic_string_char
*this)
1085 TRACE("%p\n", this);
1086 basic_string_char_tidy(this, TRUE
, 0);
1089 /* ?size@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEIXZ */
1090 /* ?size@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA_KXZ */
1091 /* ?length@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEIXZ */
1092 /* ?length@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA_KXZ */
1093 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_length
, 4)
1094 MSVCP_size_t __thiscall
MSVCP_basic_string_char_length(const basic_string_char
*this)
1096 TRACE("%p\n", this);
1100 /* ?max_size@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEIXZ */
1101 /* ?max_size@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA_KXZ */
1102 DEFINE_THISCALL_WRAPPER(basic_string_char_max_size
, 4)
1103 MSVCP_size_t __thiscall
basic_string_char_max_size(const basic_string_char
*this)
1105 TRACE("%p\n", this);
1106 return MSVCP_allocator_char_max_size(this->allocator
)-1;
1109 /* ?empty@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBE_NXZ */
1110 /* ?empty@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA_NXZ */
1111 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_empty
, 4)
1112 MSVCP_bool __thiscall
MSVCP_basic_string_char_empty(basic_string_char
*this)
1114 TRACE("%p\n", this);
1115 return this->size
== 0;
1118 /* ?swap@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEXAAV12@@Z */
1119 /* ?swap@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAXAEAV12@@Z */
1120 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_swap
, 8)
1121 void __thiscall
MSVCP_basic_string_char_swap(basic_string_char
*this, basic_string_char
*str
)
1124 char tmp
[sizeof(this->data
)];
1125 const MSVCP_size_t size
= this->size
;
1126 const MSVCP_size_t res
= this->res
;
1128 memcpy(tmp
, this->data
.buf
, sizeof(this->data
));
1129 memcpy(this->data
.buf
, str
->data
.buf
, sizeof(this->data
));
1130 memcpy(str
->data
.buf
, tmp
, sizeof(this->data
));
1132 this->size
= str
->size
;
1133 this->res
= str
->res
;
1140 /* ?substr@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBE?AV12@II@Z */
1141 /* ?substr@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA?AV12@_K0@Z */
1142 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_substr
, 16)
1143 basic_string_char
* __thiscall
MSVCP_basic_string_char_substr(basic_string_char
*this,
1144 basic_string_char
*ret
, MSVCP_size_t off
, MSVCP_size_t len
)
1146 TRACE("%p %lu %lu\n", this, off
, len
);
1148 MSVCP_basic_string_char_ctor_substr(ret
, this, off
, len
);
1152 /* ?append@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@ABV12@II@Z */
1153 /* ?append@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAAEAV12@AEBV12@_K1@Z */
1154 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_append_substr
, 16)
1155 basic_string_char
* __thiscall
MSVCP_basic_string_char_append_substr(basic_string_char
*this,
1156 const basic_string_char
*append
, MSVCP_size_t offset
, MSVCP_size_t count
)
1158 TRACE("%p %p %lu %lu\n", this, append
, offset
, count
);
1160 if(append
->size
< offset
)
1161 MSVCP__String_base_Xran();
1163 if(count
> append
->size
-offset
)
1164 count
= append
->size
-offset
;
1166 if(MSVCP_basic_string_char_npos
-this->size
<=count
|| this->size
+count
<this->size
)
1167 MSVCP__String_base_Xlen();
1169 if(basic_string_char_grow(this, this->size
+count
, FALSE
)) {
1170 MSVCP_char_traits_char__Copy_s(basic_string_char_ptr(this)+this->size
,
1171 this->res
-this->size
, basic_string_char_const_ptr(append
)+offset
, count
);
1172 basic_string_char_eos(this, this->size
+count
);
1178 /* ?append@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@ABV12@@Z */
1179 /* ?append@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAAEAV12@AEBV12@@Z */
1180 /* ??Y?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV01@ABV01@@Z */
1181 /* ??Y?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAAEAV01@AEBV01@@Z */
1182 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_append
, 8)
1183 basic_string_char
* __thiscall
MSVCP_basic_string_char_append(
1184 basic_string_char
*this, const basic_string_char
*append
)
1186 return MSVCP_basic_string_char_append_substr(this, append
,
1187 0, MSVCP_basic_string_char_npos
);
1190 /* ?append@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@PBDI@Z */
1191 /* ?append@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAAEAV12@PEBD_K@Z */
1192 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_append_cstr_len
, 12)
1193 basic_string_char
* __thiscall
MSVCP_basic_string_char_append_cstr_len(
1194 basic_string_char
*this, const char *append
, MSVCP_size_t count
)
1196 TRACE("%p %s %lu\n", this, debugstr_an(append
, count
), count
);
1198 if(basic_string_char_inside(this, append
))
1199 return MSVCP_basic_string_char_append_substr(this, this,
1200 append
-basic_string_char_ptr(this), count
);
1202 if(MSVCP_basic_string_char_npos
-this->size
<=count
|| this->size
+count
<this->size
)
1203 MSVCP__String_base_Xlen();
1205 if(basic_string_char_grow(this, this->size
+count
, FALSE
)) {
1206 MSVCP_char_traits_char__Copy_s(basic_string_char_ptr(this)+this->size
,
1207 this->res
-this->size
, append
, count
);
1208 basic_string_char_eos(this, this->size
+count
);
1214 /* ?append@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@PBD@Z */
1215 /* ?append@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAAEAV12@PEBD@Z */
1216 /* ??Y?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV01@PBD@Z */
1217 /* ??Y?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAAEAV01@PEBD@Z */
1218 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_append_cstr
, 8)
1219 basic_string_char
* __thiscall
MSVCP_basic_string_char_append_cstr(
1220 basic_string_char
*this, const char *append
)
1222 return MSVCP_basic_string_char_append_cstr_len(this, append
,
1223 MSVCP_char_traits_char_length(append
));
1226 /* ?append@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@PBD0@Z */
1227 /* ?append@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAAEAV12@PEBD0@Z */
1228 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_append_beg_end
, 12)
1229 basic_string_char
* __thiscall
MSVCP_basic_string_char_append_beg_end(
1230 basic_string_char
*this, const char *beg
, const char *end
)
1232 return MSVCP_basic_string_char_append_cstr_len(this, beg
, end
-beg
);
1235 /* ?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 */
1236 /* ?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 */
1237 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_append_iter
, 20)
1238 basic_string_char
* __thiscall
MSVCP_basic_string_char_append_iter(
1239 basic_string_char
*this, String_iterator_char beg
, String_iterator_char end
)
1241 return MSVCP_basic_string_char_append_cstr_len(this, beg
.pos
, end
.pos
-beg
.pos
);
1244 /* ?append@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@ID@Z */
1245 /* ?append@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAAEAV12@_KD@Z */
1246 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_append_len_ch
, 12)
1247 basic_string_char
* __thiscall
MSVCP_basic_string_char_append_len_ch(
1248 basic_string_char
*this, MSVCP_size_t count
, char ch
)
1250 TRACE("%p %lu %c\n", this, count
, ch
);
1252 if(MSVCP_basic_string_char_npos
-this->size
<= count
)
1253 MSVCP__String_base_Xlen();
1255 if(basic_string_char_grow(this, this->size
+count
, FALSE
)) {
1256 MSVCP_char_traits_char_assignn(basic_string_char_ptr(this)+this->size
, count
, ch
);
1257 basic_string_char_eos(this, this->size
+count
);
1263 /* ??Y?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV01@D@Z */
1264 /* ??Y?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAAEAV01@D@Z */
1265 /* ?push_back@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEXD@Z */
1266 /* ?push_back@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAXD@Z */
1267 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_append_ch
, 8)
1268 basic_string_char
* __thiscall
MSVCP_basic_string_char_append_ch(
1269 basic_string_char
*this, char ch
)
1271 return MSVCP_basic_string_char_append_len_ch(this, 1, ch
);
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@ABV10@PBD@Z */
1275 /* ??$?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 */
1276 basic_string_char
* __cdecl
MSVCP_basic_string_char_concatenate_bstr_cstr(basic_string_char
*ret
,
1277 const basic_string_char
*left
, const char *right
)
1279 TRACE("%p %s\n", left
, debugstr_a(right
));
1281 MSVCP_basic_string_char_copy_ctor(ret
, left
);
1282 MSVCP_basic_string_char_append_cstr(ret
, right
);
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@PBDABV10@@Z */
1287 /* ??$?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 */
1288 basic_string_char
* __cdecl
MSVCP_basic_string_char_concatenate_cstr_bstr(basic_string_char
*ret
,
1289 const char *left
, const basic_string_char
*right
)
1291 TRACE("%s %p\n", debugstr_a(left
), right
);
1293 MSVCP_basic_string_char_ctor_cstr(ret
, left
);
1294 MSVCP_basic_string_char_append(ret
, right
);
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@ABV10@0@Z */
1299 /* ??$?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 */
1300 basic_string_char
* __cdecl
MSVCP_basic_string_char_concatenate(basic_string_char
*ret
,
1301 const basic_string_char
*left
, const basic_string_char
*right
)
1303 TRACE("%p %p\n", left
, right
);
1305 MSVCP_basic_string_char_copy_ctor(ret
, left
);
1306 MSVCP_basic_string_char_append(ret
, right
);
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@ABV10@D@Z */
1311 /* ??$?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 */
1312 basic_string_char
* __cdecl
MSVCP_basic_string_char_concatenate_bstr_ch(basic_string_char
*ret
,
1313 const basic_string_char
*left
, char right
)
1315 TRACE("%p %c\n", left
, right
);
1317 MSVCP_basic_string_char_copy_ctor(ret
, left
);
1318 MSVCP_basic_string_char_append_ch(ret
, right
);
1322 /* ??$?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 */
1323 /* ??$?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 */
1324 basic_string_char
* __cdecl
MSVCP_basic_string_char_concatenate_ch_bstr(basic_string_char
*ret
,
1325 char left
, const basic_string_char
*right
)
1327 TRACE("%c %p\n", left
, right
);
1329 MSVCP_basic_string_char_ctor_cstr_len(ret
, &left
, 1);
1330 MSVCP_basic_string_char_append(ret
, right
);
1334 /* ?compare@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEHIIPBDI@Z */
1335 /* ?compare@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBAH_K0PEBD0@Z */
1336 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_compare_substr_cstr_len
, 20)
1337 int __thiscall
MSVCP_basic_string_char_compare_substr_cstr_len(
1338 const basic_string_char
*this, MSVCP_size_t pos
, MSVCP_size_t num
,
1339 const char *str
, MSVCP_size_t count
)
1343 TRACE("%p %lu %lu %s %lu\n", this, pos
, num
, debugstr_an(str
, count
), count
);
1345 if(this->size
< pos
)
1346 MSVCP__String_base_Xran();
1348 if(num
> this->size
-pos
)
1349 num
= this->size
-pos
;
1351 ans
= MSVCP_char_traits_char_compare(basic_string_char_const_ptr(this)+pos
,
1352 str
, num
>count
? count
: num
);
1358 else if(num
< count
)
1363 /* ?compare@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEHIIPBD@Z */
1364 /* ?compare@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBAH_K0PEBD@Z */
1365 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_compare_substr_cstr
, 16)
1366 int __thiscall
MSVCP_basic_string_char_compare_substr_cstr(const basic_string_char
*this,
1367 MSVCP_size_t pos
, MSVCP_size_t num
, const char *str
)
1369 return MSVCP_basic_string_char_compare_substr_cstr_len(this, pos
, num
,
1370 str
, MSVCP_char_traits_char_length(str
));
1373 /* ?compare@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEHPBD@Z */
1374 /* ?compare@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBAHPEBD@Z */
1375 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_compare_cstr
, 8)
1376 int __thiscall
MSVCP_basic_string_char_compare_cstr(
1377 const basic_string_char
*this, const char *str
)
1379 return MSVCP_basic_string_char_compare_substr_cstr_len(this, 0, this->size
,
1380 str
, MSVCP_char_traits_char_length(str
));
1383 /* ?compare@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEHIIABV12@II@Z */
1384 /* ?compare@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBAH_K0AEBV12@00@Z */
1385 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_compare_substr_substr
, 24)
1386 int __thiscall
MSVCP_basic_string_char_compare_substr_substr(
1387 const basic_string_char
*this, MSVCP_size_t pos
, MSVCP_size_t num
,
1388 const basic_string_char
*compare
, MSVCP_size_t off
, MSVCP_size_t count
)
1390 TRACE("%p %lu %lu %p %lu %lu\n", this, pos
, num
, compare
, off
, count
);
1392 if(compare
->size
< off
)
1393 MSVCP__String_base_Xran();
1395 if(count
> compare
->size
-off
)
1396 count
= compare
->size
-off
;
1398 return MSVCP_basic_string_char_compare_substr_cstr_len(this, pos
, num
,
1399 basic_string_char_const_ptr(compare
)+off
, count
);
1402 /* ?compare@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEHIIABV12@@Z */
1403 /* ?compare@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBAH_K0AEBV12@@Z */
1404 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_compare_substr
, 16)
1405 int __thiscall
MSVCP_basic_string_char_compare_substr(
1406 const basic_string_char
*this, MSVCP_size_t pos
, MSVCP_size_t num
,
1407 const basic_string_char
*compare
)
1409 return MSVCP_basic_string_char_compare_substr_cstr_len(this, pos
, num
,
1410 basic_string_char_const_ptr(compare
), compare
->size
);
1413 /* ?compare@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEHABV12@@Z */
1414 /* ?compare@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBAHAEBV12@@Z */
1415 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_compare
, 8)
1416 int __thiscall
MSVCP_basic_string_char_compare(
1417 const basic_string_char
*this, const basic_string_char
*compare
)
1419 return MSVCP_basic_string_char_compare_substr_cstr_len(this, 0, this->size
,
1420 basic_string_char_const_ptr(compare
), compare
->size
);
1423 /* ??$?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 */
1424 /* ??$?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 */
1425 MSVCP_bool __cdecl
MSVCP_basic_string_char_equal(
1426 const basic_string_char
*left
, const basic_string_char
*right
)
1428 return MSVCP_basic_string_char_compare(left
, right
) == 0;
1431 /* ??$?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 */
1432 /* ??$?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 */
1433 MSVCP_bool __cdecl
MSVCP_basic_string_char_equal_str_cstr(
1434 const basic_string_char
*left
, const char *right
)
1436 return MSVCP_basic_string_char_compare_cstr(left
, right
) == 0;
1439 /* ??$?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 */
1440 /* ??$?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 */
1441 MSVCP_bool __cdecl
MSVCP_basic_string_char_equal_cstr_str(
1442 const char *left
, const basic_string_char
*right
)
1444 return MSVCP_basic_string_char_compare_cstr(right
, left
) == 0;
1447 /* ??$?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 */
1448 /* ??$?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 */
1449 MSVCP_bool __cdecl
MSVCP_basic_string_char_not_equal(
1450 const basic_string_char
*left
, const basic_string_char
*right
)
1452 return MSVCP_basic_string_char_compare(left
, right
) != 0;
1455 /* ??$?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 */
1456 /* ??$?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 */
1457 MSVCP_bool __cdecl
MSVCP_basic_string_char_not_equal_str_cstr(
1458 const basic_string_char
*left
, const char *right
)
1460 return MSVCP_basic_string_char_compare_cstr(left
, right
) != 0;
1463 /* ??$?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 */
1464 /* ??$?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 */
1465 MSVCP_bool __cdecl
MSVCP_basic_string_char_not_equal_cstr_str(
1466 const char *left
, const basic_string_char
*right
)
1468 return MSVCP_basic_string_char_compare_cstr(right
, left
) != 0;
1471 /* ??$?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 */
1472 /* ??$?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 */
1473 MSVCP_bool __cdecl
MSVCP_basic_string_char_lower(
1474 const basic_string_char
*left
, const basic_string_char
*right
)
1476 return MSVCP_basic_string_char_compare(left
, right
) < 0;
1479 /* ??$?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 */
1480 /* ??$?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 */
1481 MSVCP_bool __cdecl
MSVCP_basic_string_char_lower_bstr_cstr(
1482 const basic_string_char
*left
, const char *right
)
1484 return MSVCP_basic_string_char_compare_cstr(left
, right
) < 0;
1487 /* ??$?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 */
1488 /* ??$?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 */
1489 MSVCP_bool __cdecl
MSVCP_basic_string_char_lower_cstr_bstr(
1490 const char *left
, const basic_string_char
*right
)
1492 return MSVCP_basic_string_char_compare_cstr(right
, left
) > 0;
1495 /* ??$?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 */
1496 /* ??$?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 */
1497 MSVCP_bool __cdecl
MSVCP_basic_string_char_leq(
1498 const basic_string_char
*left
, const basic_string_char
*right
)
1500 return MSVCP_basic_string_char_compare(left
, right
) <= 0;
1503 /* ??$?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 */
1504 /* ??$?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 */
1505 MSVCP_bool __cdecl
MSVCP_basic_string_char_leq_bstr_cstr(
1506 const basic_string_char
*left
, const char *right
)
1508 return MSVCP_basic_string_char_compare_cstr(left
, right
) <= 0;
1511 /* ??$?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 */
1512 /* ??$?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 */
1513 MSVCP_bool __cdecl
MSVCP_basic_string_char_leq_cstr_bstr(
1514 const char *left
, const basic_string_char
*right
)
1516 return MSVCP_basic_string_char_compare_cstr(right
, left
) >= 0;
1519 /* ??$?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 */
1520 /* ??$?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 */
1521 MSVCP_bool __cdecl
MSVCP_basic_string_char_greater(
1522 const basic_string_char
*left
, const basic_string_char
*right
)
1524 return MSVCP_basic_string_char_compare(left
, right
) > 0;
1527 /* ??$?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 */
1528 /* ??$?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 */
1529 MSVCP_bool __cdecl
MSVCP_basic_string_char_greater_bstr_cstr(
1530 const basic_string_char
*left
, const char *right
)
1532 return MSVCP_basic_string_char_compare_cstr(left
, right
) > 0;
1535 /* ??$?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 */
1536 /* ??$?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 */
1537 MSVCP_bool __cdecl
MSVCP_basic_string_char_greater_cstr_bstr(
1538 const char *left
, const basic_string_char
*right
)
1540 return MSVCP_basic_string_char_compare_cstr(right
, left
) < 0;
1543 /* ??$?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 */
1544 /* ??$?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 */
1545 MSVCP_bool __cdecl
MSVCP_basic_string_char_geq(
1546 const basic_string_char
*left
, const basic_string_char
*right
)
1548 return MSVCP_basic_string_char_compare(left
, right
) >= 0;
1551 /* ??$?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 */
1552 /* ??$?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 */
1553 MSVCP_bool __cdecl
MSVCP_basic_string_char_geq_bstr_cstr(
1554 const basic_string_char
*left
, const char *right
)
1556 return MSVCP_basic_string_char_compare_cstr(left
, right
) >= 0;
1559 /* ??$?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 */
1560 /* ??$?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 */
1561 MSVCP_bool __cdecl
MSVCP_basic_string_char_geq_cstr_bstr(
1562 const char *left
, const basic_string_char
*right
)
1564 return MSVCP_basic_string_char_compare_cstr(right
, left
) <= 0;
1567 /* ?find@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEIPBDII@Z */
1568 /* ?find@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA_KPEBD_K1@Z */
1569 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_find_cstr_substr
, 16)
1570 MSVCP_size_t __thiscall
MSVCP_basic_string_char_find_cstr_substr(
1571 const basic_string_char
*this, const char *find
, MSVCP_size_t pos
, MSVCP_size_t len
)
1573 const char *p
, *end
;
1575 TRACE("%p %s %lu %lu\n", this, debugstr_an(find
, len
), pos
, len
);
1577 if(len
==0 && pos
<=this->size
)
1579 if(pos
>=this->size
|| len
>this->size
)
1580 return MSVCP_basic_string_char_npos
;
1582 end
= basic_string_char_const_ptr(this)+this->size
-len
+1;
1583 for(p
=basic_string_char_const_ptr(this)+pos
; p
<end
; p
++) {
1584 p
= MSVCP_char_traits_char_find(p
, end
-p
, find
);
1588 if(!MSVCP_char_traits_char_compare(p
, find
, len
))
1589 return p
-basic_string_char_const_ptr(this);
1592 return MSVCP_basic_string_char_npos
;
1595 /* ?find@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEIPBDI@Z */
1596 /* ?find@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA_KPEBD_K@Z */
1597 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_find_cstr_off
, 12)
1598 MSVCP_size_t __thiscall
MSVCP_basic_string_char_find_cstr_off(
1599 const basic_string_char
*this, const char *find
, MSVCP_size_t pos
)
1601 return MSVCP_basic_string_char_find_cstr_substr(this, find
, pos
,
1602 MSVCP_char_traits_char_length(find
));
1605 /* ?find@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEIABV12@I@Z */
1606 /* ?find@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA_KAEBV12@_K@Z */
1607 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_find_off
, 12)
1608 MSVCP_size_t __thiscall
MSVCP_basic_string_char_find_off(
1609 const basic_string_char
*this, const basic_string_char
*find
, MSVCP_size_t off
)
1611 return MSVCP_basic_string_char_find_cstr_substr(this,
1612 basic_string_char_const_ptr(find
), off
, find
->size
);
1615 /* ?find@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEIDI@Z */
1616 /* ?find@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA_KD_K@Z */
1617 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_find_ch
, 12)
1618 MSVCP_size_t __thiscall
MSVCP_basic_string_char_find_ch(
1619 const basic_string_char
*this, char ch
, MSVCP_size_t pos
)
1621 return MSVCP_basic_string_char_find_cstr_substr(this, &ch
, pos
, 1);
1624 /* ?rfind@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEIPBDII@Z */
1625 /* ?rfind@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA_KPEBD_K1@Z */
1626 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_rfind_cstr_substr
, 16)
1627 MSVCP_size_t __thiscall
MSVCP_basic_string_char_rfind_cstr_substr(
1628 const basic_string_char
*this, const char *find
, MSVCP_size_t pos
, MSVCP_size_t len
)
1630 const char *p
, *end
;
1632 TRACE("%p %s %lu %lu\n", this, debugstr_an(find
, len
), pos
, len
);
1635 return pos
<this->size
? pos
: this->size
;
1637 if(len
> this->size
)
1638 return MSVCP_basic_string_char_npos
;
1640 if(pos
> this->size
-len
+1)
1641 pos
= this->size
-len
+1;
1642 end
= basic_string_char_const_ptr(this);
1643 for(p
=end
+pos
; p
>=end
; p
--) {
1644 if(*p
==*find
&& !MSVCP_char_traits_char_compare(p
, find
, len
))
1645 return p
-basic_string_char_const_ptr(this);
1648 return MSVCP_basic_string_char_npos
;
1651 /* ?rfind@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEIPBDI@Z */
1652 /* ?rfind@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA_KPEBD_K@Z */
1653 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_rfind_cstr_off
, 12)
1654 MSVCP_size_t __thiscall
MSVCP_basic_string_char_rfind_cstr_off(
1655 const basic_string_char
*this, const char *find
, MSVCP_size_t pos
)
1657 return MSVCP_basic_string_char_rfind_cstr_substr(this, find
, pos
,
1658 MSVCP_char_traits_char_length(find
));
1661 /* ?rfind@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEIABV12@I@Z */
1662 /* ?rfind@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA_KAEBV12@_K@Z */
1663 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_rfind_off
, 12)
1664 MSVCP_size_t __thiscall
MSVCP_basic_string_char_rfind_off(
1665 const basic_string_char
*this, const basic_string_char
*find
, MSVCP_size_t off
)
1667 return MSVCP_basic_string_char_rfind_cstr_substr(this,
1668 basic_string_char_const_ptr(find
), off
, find
->size
);
1671 /* ?rfind@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEIDI@Z */
1672 /* ?rfind@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA_KD_K@Z */
1673 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_rfind_ch
, 12)
1674 MSVCP_size_t __thiscall
MSVCP_basic_string_char_rfind_ch(
1675 const basic_string_char
*this, char ch
, MSVCP_size_t pos
)
1677 return MSVCP_basic_string_char_rfind_cstr_substr(this, &ch
, pos
, 1);
1680 /* ?find_first_of@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEIPBDII@Z */
1681 /* ?find_first_of@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA_KPEBD_K1@Z */
1682 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_find_first_of_cstr_substr
, 16)
1683 MSVCP_size_t __thiscall
MSVCP_basic_string_char_find_first_of_cstr_substr(
1684 const basic_string_char
*this, const char *find
, MSVCP_size_t off
, MSVCP_size_t len
)
1686 const char *p
, *end
;
1688 TRACE("%p %p %lu %lu\n", this, find
, off
, len
);
1690 if(len
>0 && off
<this->size
) {
1691 end
= basic_string_char_const_ptr(this)+this->size
;
1692 for(p
=basic_string_char_const_ptr(this)+off
; p
<end
; p
++)
1693 if(MSVCP_char_traits_char_find(find
, len
, p
))
1694 return p
-basic_string_char_const_ptr(this);
1697 return MSVCP_basic_string_char_npos
;
1700 /* ?find_first_of@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEIABV12@I@Z */
1701 /* ?find_first_of@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA_KAEBV12@_K@Z */
1702 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_find_first_of
, 12)
1703 MSVCP_size_t __thiscall
MSVCP_basic_string_char_find_first_of(
1704 const basic_string_char
*this, const basic_string_char
*find
, MSVCP_size_t off
)
1706 return MSVCP_basic_string_char_find_first_of_cstr_substr(this,
1707 basic_string_char_const_ptr(find
), off
, find
->size
);
1710 /* ?find_first_of@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEIPBDI@Z */
1711 /* ?find_first_of@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA_KPEBD_K@Z */
1712 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_find_first_of_cstr
, 12)
1713 MSVCP_size_t __thiscall
MSVCP_basic_string_char_find_first_of_cstr(
1714 const basic_string_char
*this, const char *find
, MSVCP_size_t off
)
1716 return MSVCP_basic_string_char_find_first_of_cstr_substr(
1717 this, find
, off
, MSVCP_char_traits_char_length(find
));
1720 /* ?find_first_of@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEIDI@Z */
1721 /* ?find_first_of@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA_KD_K@Z */
1722 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_find_first_of_ch
, 12)
1723 MSVCP_size_t __thiscall
MSVCP_basic_string_char_find_first_of_ch(
1724 const basic_string_char
*this, char ch
, MSVCP_size_t off
)
1726 return MSVCP_basic_string_char_find_first_of_cstr_substr(this, &ch
, off
, 1);
1729 /* ?find_first_not_of@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEIPBDII@Z */
1730 /* ?find_first_not_of@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA_KPEBD_K1@Z */
1731 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_find_first_not_of_cstr_substr
, 16)
1732 MSVCP_size_t __thiscall
MSVCP_basic_string_char_find_first_not_of_cstr_substr(
1733 const basic_string_char
*this, const char *find
, MSVCP_size_t off
, MSVCP_size_t len
)
1735 const char *p
, *end
;
1737 TRACE("%p %p %lu %lu\n", this, find
, off
, len
);
1739 if(off
<this->size
) {
1740 end
= basic_string_char_const_ptr(this)+this->size
;
1741 for(p
=basic_string_char_const_ptr(this)+off
; p
<end
; p
++)
1742 if(!MSVCP_char_traits_char_find(find
, len
, p
))
1743 return p
-basic_string_char_const_ptr(this);
1746 return MSVCP_basic_string_char_npos
;
1749 /* ?find_first_not_of@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEIABV12@I@Z */
1750 /* ?find_first_not_of@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA_KAEBV12@_K@Z */
1751 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_find_first_not_of
, 12)
1752 MSVCP_size_t __thiscall
MSVCP_basic_string_char_find_first_not_of(
1753 const basic_string_char
*this, const basic_string_char
*find
, MSVCP_size_t off
)
1755 return MSVCP_basic_string_char_find_first_not_of_cstr_substr(this,
1756 basic_string_char_const_ptr(find
), off
, find
->size
);
1759 /* ?find_first_not_of@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEIPBDI@Z */
1760 /* ?find_first_not_of@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA_KPEBD_K@Z */
1761 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_find_first_not_of_cstr
, 12)
1762 MSVCP_size_t __thiscall
MSVCP_basic_string_char_find_first_not_of_cstr(
1763 const basic_string_char
*this, const char *find
, MSVCP_size_t off
)
1765 return MSVCP_basic_string_char_find_first_not_of_cstr_substr(
1766 this, find
, off
, MSVCP_char_traits_char_length(find
));
1769 /* ?find_first_not_of@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEIDI@Z */
1770 /* ?find_first_not_of@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA_KD_K@Z */
1771 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_find_first_not_of_ch
, 12)
1772 MSVCP_size_t __thiscall
MSVCP_basic_string_char_find_first_not_of_ch(
1773 const basic_string_char
*this, char ch
, MSVCP_size_t off
)
1775 return MSVCP_basic_string_char_find_first_not_of_cstr_substr(this, &ch
, off
, 1);
1778 /* ?find_last_of@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEIPBDII@Z */
1779 /* ?find_last_of@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA_KPEBD_K1@Z */
1780 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_find_last_of_cstr_substr
, 16)
1781 MSVCP_size_t __thiscall
MSVCP_basic_string_char_find_last_of_cstr_substr(
1782 const basic_string_char
*this, const char *find
, MSVCP_size_t off
, MSVCP_size_t len
)
1784 const char *p
, *beg
;
1786 TRACE("%p %p %lu %lu\n", this, find
, off
, len
);
1788 if(len
>0 && this->size
>0) {
1789 if(off
>= this->size
)
1792 beg
= basic_string_char_const_ptr(this);
1793 for(p
=beg
+off
; p
>=beg
; p
--)
1794 if(MSVCP_char_traits_char_find(find
, len
, p
))
1798 return MSVCP_basic_string_char_npos
;
1801 /* ?find_last_of@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEIABV12@I@Z */
1802 /* ?find_last_of@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA_KAEBV12@_K@Z */
1803 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_find_last_of
, 12)
1804 MSVCP_size_t __thiscall
MSVCP_basic_string_char_find_last_of(
1805 const basic_string_char
*this, const basic_string_char
*find
, MSVCP_size_t off
)
1807 return MSVCP_basic_string_char_find_last_of_cstr_substr(this,
1808 basic_string_char_const_ptr(find
), off
, find
->size
);
1811 /* ?find_last_of@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEIPBDI@Z */
1812 /* ?find_last_of@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA_KPEBD_K@Z */
1813 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_find_last_of_cstr
, 12)
1814 MSVCP_size_t __thiscall
MSVCP_basic_string_char_find_last_of_cstr(
1815 const basic_string_char
*this, const char *find
, MSVCP_size_t off
)
1817 return MSVCP_basic_string_char_find_last_of_cstr_substr(
1818 this, find
, off
, MSVCP_char_traits_char_length(find
));
1821 /* ?find_last_of@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEIDI@Z */
1822 /* ?find_last_of@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA_KD_K@Z */
1823 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_find_last_of_ch
, 12)
1824 MSVCP_size_t __thiscall
MSVCP_basic_string_char_find_last_of_ch(
1825 const basic_string_char
*this, char ch
, MSVCP_size_t off
)
1827 return MSVCP_basic_string_char_find_last_of_cstr_substr(this, &ch
, off
, 1);
1830 /* ?find_last_not_of@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEIPBDII@Z */
1831 /* ?find_last_not_of@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA_KPEBD_K1@Z */
1832 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_find_last_not_of_cstr_substr
, 16)
1833 MSVCP_size_t __thiscall
MSVCP_basic_string_char_find_last_not_of_cstr_substr(
1834 const basic_string_char
*this, const char *find
, MSVCP_size_t off
, MSVCP_size_t len
)
1836 const char *p
, *beg
;
1838 TRACE("%p %p %lu %lu\n", this, find
, off
, len
);
1841 if(off
>= this->size
)
1844 beg
= basic_string_char_const_ptr(this);
1845 for(p
=beg
+off
; p
>=beg
; p
--)
1846 if(!MSVCP_char_traits_char_find(find
, len
, p
))
1850 return MSVCP_basic_string_char_npos
;
1853 /* ?find_last_not_of@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEIABV12@I@Z */
1854 /* ?find_last_not_of@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA_KAEBV12@_K@Z */
1855 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_find_last_not_of
, 12)
1856 MSVCP_size_t __thiscall
MSVCP_basic_string_char_find_last_not_of(
1857 const basic_string_char
*this, const basic_string_char
*find
, MSVCP_size_t off
)
1859 return MSVCP_basic_string_char_find_last_not_of_cstr_substr(this,
1860 basic_string_char_const_ptr(find
), off
, find
->size
);
1863 /* ?find_last_not_of@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEIPBDI@Z */
1864 /* ?find_last_not_of@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA_KPEBD_K@Z */
1865 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_find_last_not_of_cstr
, 12)
1866 MSVCP_size_t __thiscall
MSVCP_basic_string_char_find_last_not_of_cstr(
1867 const basic_string_char
*this, const char *find
, MSVCP_size_t off
)
1869 return MSVCP_basic_string_char_find_last_not_of_cstr_substr(
1870 this, find
, off
, MSVCP_char_traits_char_length(find
));
1873 /* ?find_last_not_of@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEIDI@Z */
1874 /* ?find_last_not_of@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA_KD_K@Z */
1875 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_find_last_not_of_ch
, 12)
1876 MSVCP_size_t __thiscall
MSVCP_basic_string_char_find_last_not_of_ch(
1877 const basic_string_char
*this, char ch
, MSVCP_size_t off
)
1879 return MSVCP_basic_string_char_find_last_not_of_cstr_substr(this, &ch
, off
, 1);
1882 /* ??A?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAADI@Z */
1883 /* ??A?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAAEAD_K@Z */
1884 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_operator_at
, 8)
1885 char* __thiscall
MSVCP_basic_string_char_operator_at(
1886 basic_string_char
*this, MSVCP_size_t pos
)
1888 TRACE("%p %lu\n", this, pos
);
1890 assert(this->size
>= pos
);
1891 return basic_string_char_ptr(this)+pos
;
1894 /* ??A?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEABDI@Z */
1895 /* ??A?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBAAEBD_K@Z */
1896 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_const_operator_at
, 8)
1897 const char* __thiscall
MSVCP_basic_string_char_const_operator_at(
1898 const basic_string_char
*this, MSVCP_size_t pos
)
1900 TRACE("%p %lu\n", this, pos
);
1902 assert(this->size
>= pos
);
1903 return basic_string_char_const_ptr(this)+pos
;
1906 /* ??A?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAADU_Size_type_nosscl@01@@Z */
1907 /* ??A?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAAEADU_Size_type_nosscl@01@@Z */
1908 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_operator_at_noverify
, 8)
1909 char* __thiscall
MSVCP_basic_string_char_operator_at_noverify(
1910 basic_string_char
*this, size_t_noverify pos
)
1912 TRACE("%p %lu\n", this, pos
.val
);
1913 return basic_string_char_ptr(this)+pos
.val
;
1916 /* ??A?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEABDU_Size_type_nosscl@01@@Z */
1917 /* ??A?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBAAEBDU_Size_type_nosscl@01@@Z */
1918 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_operator_const_at_noverify
, 8)
1919 const char* __thiscall
MSVCP_basic_string_char_operator_const_at_noverify(
1920 const basic_string_char
*this, size_t_noverify pos
)
1922 TRACE("%p %lu\n", this, pos
.val
);
1923 return basic_string_char_const_ptr(this)+pos
.val
;
1926 /* ?at@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAADI@Z */
1927 /* ?at@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAAEAD_K@Z */
1928 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_at
, 8)
1929 char* __thiscall
MSVCP_basic_string_char_at(
1930 basic_string_char
*this, MSVCP_size_t pos
)
1932 TRACE("%p %lu\n", this, pos
);
1934 if(this->size
<= pos
)
1935 MSVCP__String_base_Xran();
1937 return basic_string_char_ptr(this)+pos
;
1940 /* ?at@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEABDI@Z */
1941 /* ?at@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBAAEBD_K@Z */
1942 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_const_at
, 8)
1943 const char* __thiscall
MSVCP_basic_string_char_const_at(
1944 const basic_string_char
*this, MSVCP_size_t pos
)
1946 TRACE("%p %lu\n", this, pos
);
1948 if(this->size
<= pos
)
1949 MSVCP__String_base_Xran();
1951 return basic_string_char_const_ptr(this)+pos
;
1954 /* ?replace@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@IIPBDI@Z */
1955 /* ?replace@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAAEAV12@_K0PEBD0@Z */
1956 DEFINE_THISCALL_WRAPPER(basic_string_char_replace_cstr_len
, 20)
1957 basic_string_char
* __thiscall
basic_string_char_replace_cstr_len(basic_string_char
*this,
1958 MSVCP_size_t off
, MSVCP_size_t len
, const char *str
, MSVCP_size_t str_len
)
1960 MSVCP_size_t inside_pos
= -1;
1961 char *ptr
= basic_string_char_ptr(this);
1963 TRACE("%p %ld %ld %p %ld\n", this, off
, len
, str
, str_len
);
1965 if(this->size
< off
)
1966 MSVCP__String_base_Xran();
1968 if(len
> this->size
-off
)
1969 len
= this->size
-off
;
1971 if(MSVCP_basic_string_char_npos
-str_len
<= this->size
-len
)
1972 MSVCP__String_base_Xlen();
1974 if(basic_string_char_inside(this, str
))
1975 inside_pos
= str
-ptr
;
1978 basic_string_char_grow(this, this->size
-len
+str_len
, FALSE
);
1979 ptr
= basic_string_char_ptr(this);
1982 if(inside_pos
== -1) {
1983 memmove(ptr
+off
+str_len
, ptr
+off
+len
, (this->size
-off
-len
)*sizeof(char));
1984 memcpy(ptr
+off
, str
, str_len
*sizeof(char));
1985 } else if(len
>= str_len
) {
1986 memmove(ptr
+off
, ptr
+inside_pos
, str_len
*sizeof(char));
1987 memmove(ptr
+off
+str_len
, ptr
+off
+len
, (this->size
-off
-len
)*sizeof(char));
1991 memmove(ptr
+off
+str_len
, ptr
+off
+len
, (this->size
-off
-len
)*sizeof(char));
1993 if(inside_pos
< off
+len
) {
1994 size
= off
+len
-inside_pos
;
1997 memmove(ptr
+off
, ptr
+inside_pos
, size
*sizeof(char));
2003 memmove(ptr
+off
+size
, ptr
+off
+str_len
, (str_len
-size
)*sizeof(char));
2006 basic_string_char_eos(this, this->size
-len
+str_len
);
2010 /* ?replace@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@IIPBD@Z */
2011 /* ?replace@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAAEAV12@_K0PEBD@Z */
2012 DEFINE_THISCALL_WRAPPER(basic_string_char_replace_cstr
, 16)
2013 basic_string_char
* __thiscall
basic_string_char_replace_cstr(basic_string_char
*this,
2014 MSVCP_size_t off
, MSVCP_size_t len
, const char *str
)
2016 return basic_string_char_replace_cstr_len(this, off
, len
, str
,
2017 MSVCP_char_traits_char_length(str
));
2020 /* ?replace@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@IIABV12@II@Z */
2021 /* ?replace@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAAEAV12@_K0AEBV12@00@Z */
2022 DEFINE_THISCALL_WRAPPER(basic_string_char_replace_substr
, 24)
2023 basic_string_char
* __thiscall
basic_string_char_replace_substr(basic_string_char
*this, MSVCP_size_t off
,
2024 MSVCP_size_t len
, const basic_string_char
*str
, MSVCP_size_t str_off
, MSVCP_size_t str_len
)
2026 if(str
->size
< str_off
)
2027 MSVCP__String_base_Xran();
2029 if(str_len
> str
->size
-str_off
)
2030 str_len
= str
->size
-str_off
;
2032 return basic_string_char_replace_cstr_len(this, off
, len
,
2033 basic_string_char_const_ptr(str
)+str_off
, str_len
);
2036 /* ?replace@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@IIABV12@@Z */
2037 /* ?replace@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAAEAV12@_K0AEBV12@@Z */
2038 DEFINE_THISCALL_WRAPPER(basic_string_char_replace
, 16)
2039 basic_string_char
* __thiscall
basic_string_char_replace(basic_string_char
*this,
2040 MSVCP_size_t off
, MSVCP_size_t len
, const basic_string_char
*str
)
2042 return basic_string_char_replace_cstr_len(this, off
, len
,
2043 basic_string_char_const_ptr(str
), str
->size
);
2046 /* ?replace@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@IIID@Z */
2047 /* ?replace@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAAEAV12@_K00D@Z */
2048 DEFINE_THISCALL_WRAPPER(basic_string_char_replace_ch
, 20)
2049 basic_string_char
* __thiscall
basic_string_char_replace_ch(basic_string_char
*this,
2050 MSVCP_size_t off
, MSVCP_size_t len
, MSVCP_size_t count
, char ch
)
2052 char *ptr
= basic_string_char_ptr(this);
2054 TRACE("%p %ld %ld %ld %c\n", this, off
, len
, count
, ch
);
2056 if(this->size
< off
)
2057 MSVCP__String_base_Xran();
2059 if(len
> this->size
-off
)
2060 len
= this->size
-off
;
2062 if(MSVCP_basic_string_char_npos
-count
<= this->size
-len
)
2063 MSVCP__String_base_Xlen();
2066 basic_string_char_grow(this, this->size
-len
+count
, FALSE
);
2067 ptr
= basic_string_char_ptr(this);
2070 memmove(ptr
+off
+count
, ptr
+off
+len
, (this->size
-off
-len
)*sizeof(char));
2071 MSVCP_char_traits_char_assignn(ptr
+off
, count
, ch
);
2072 basic_string_char_eos(this, this->size
-len
+count
);
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@000@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@000@Z */
2079 DEFINE_THISCALL_WRAPPER(basic_string_char_replace_iter_iter
, 36)
2080 basic_string_char
* __thiscall
basic_string_char_replace_iter_iter(basic_string_char
*this,
2081 String_iterator_char beg
, String_iterator_char end
,
2082 String_iterator_char res_beg
, String_iterator_char res_end
)
2084 String_iterator_char begin
= { this, basic_string_char_ptr(this) };
2085 return basic_string_char_replace_cstr_len(this,
2086 MSVCP_basic_string_char_Pdif(beg
, begin
), MSVCP_basic_string_char_Pdif(end
, beg
),
2087 res_beg
.pos
, MSVCP_basic_string_char_Pdif(res_end
, res_beg
));
2090 /* ?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 */
2091 /* ?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 */
2092 DEFINE_THISCALL_WRAPPER(basic_string_char_replace_iter_bstr
, 24)
2093 basic_string_char
* __thiscall
basic_string_char_replace_iter_bstr(basic_string_char
*this,
2094 String_iterator_char beg
, String_iterator_char end
, const basic_string_char
*str
)
2096 String_iterator_char begin
= { this, basic_string_char_ptr(this) };
2097 return basic_string_char_replace(this, MSVCP_basic_string_char_Pdif(beg
, begin
),
2098 MSVCP_basic_string_char_Pdif(end
, beg
), str
);
2101 /* ?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 */
2102 /* ?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 */
2103 DEFINE_THISCALL_WRAPPER(basic_string_char_replace_iter_ch
, 28)
2104 basic_string_char
* __thiscall
basic_string_char_replace_iter_ch(basic_string_char
*this,
2105 String_iterator_char beg
, String_iterator_char end
, MSVCP_size_t count
, char ch
)
2107 String_iterator_char begin
= { this, basic_string_char_ptr(this) };
2108 return basic_string_char_replace_ch(this, MSVCP_basic_string_char_Pdif(beg
, begin
),
2109 MSVCP_basic_string_char_Pdif(end
, beg
), count
, ch
);
2112 /* ?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 */
2113 /* ?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 */
2114 DEFINE_THISCALL_WRAPPER(basic_string_char_replace_iter_ptr_ptr
, 28)
2115 basic_string_char
* __thiscall
basic_string_char_replace_iter_ptr_ptr(basic_string_char
*this,
2116 String_iterator_char beg
, String_iterator_char end
,
2117 const char *res_beg
, const char *res_end
)
2119 String_iterator_char begin
= { this, basic_string_char_ptr(this) };
2120 return basic_string_char_replace_cstr_len(this, MSVCP_basic_string_char_Pdif(beg
, begin
),
2121 MSVCP_basic_string_char_Pdif(end
, beg
), res_beg
, res_end
-res_beg
);
2124 /* ?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 */
2125 /* ?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 */
2126 DEFINE_THISCALL_WRAPPER(basic_string_char_replace_iter_cstr
, 24)
2127 basic_string_char
* __thiscall
basic_string_char_replace_iter_cstr(basic_string_char
*this,
2128 String_iterator_char beg
, String_iterator_char end
, const char *str
)
2130 String_iterator_char begin
= { this, basic_string_char_ptr(this) };
2131 return basic_string_char_replace_cstr(this, MSVCP_basic_string_char_Pdif(beg
, begin
),
2132 MSVCP_basic_string_char_Pdif(end
, beg
), str
);
2135 /* ?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 */
2136 /* ?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 */
2137 DEFINE_THISCALL_WRAPPER(basic_string_char_replace_iter_cstr_len
, 28)
2138 basic_string_char
* __thiscall
basic_string_char_replace_iter_cstr_len(basic_string_char
*this,
2139 String_iterator_char beg
, String_iterator_char end
, const char *str
, MSVCP_size_t len
)
2141 String_iterator_char begin
= { this, basic_string_char_ptr(this) };
2142 return basic_string_char_replace_cstr_len(this, MSVCP_basic_string_char_Pdif(beg
, begin
),
2143 MSVCP_basic_string_char_Pdif(end
, beg
), str
, len
);
2146 /* ?insert@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@IABV12@@Z */
2147 /* ?insert@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAAEAV12@_KAEBV12@@Z */
2148 DEFINE_THISCALL_WRAPPER(basic_string_char_insert
, 12)
2149 basic_string_char
* __thiscall
basic_string_char_insert(basic_string_char
*this,
2150 MSVCP_size_t off
, const basic_string_char
*str
)
2152 return basic_string_char_replace(this, off
, 0, str
);
2155 /* ?insert@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@IABV12@II@Z */
2156 /* ?insert@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAAEAV12@_KAEBV12@00@Z */
2157 DEFINE_THISCALL_WRAPPER(basic_string_char_insert_substr
, 20)
2158 basic_string_char
* __thiscall
basic_string_char_insert_substr(
2159 basic_string_char
*this, MSVCP_size_t off
, const basic_string_char
*str
,
2160 MSVCP_size_t str_off
, MSVCP_size_t str_count
)
2162 return basic_string_char_replace_substr(this, off
, 0, str
, str_off
, str_count
);
2165 /* ?insert@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@IPBD@Z */
2166 /* ?insert@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAAEAV12@_KPEBD@Z */
2167 DEFINE_THISCALL_WRAPPER(basic_string_char_insert_cstr
, 12)
2168 basic_string_char
* __thiscall
basic_string_char_insert_cstr(
2169 basic_string_char
*this, MSVCP_size_t off
, const char *str
)
2171 return basic_string_char_replace_cstr(this, off
, 0, str
);
2174 /* ?insert@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@IPBDI@Z */
2175 /* ?insert@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAAEAV12@_KPEBD0@Z */
2176 DEFINE_THISCALL_WRAPPER(basic_string_char_insert_cstr_len
, 16)
2177 basic_string_char
* __thiscall
basic_string_char_insert_cstr_len(basic_string_char
*this,
2178 MSVCP_size_t off
, const char *str
, MSVCP_size_t str_len
)
2180 return basic_string_char_replace_cstr_len(this, off
, 0, str
, str_len
);
2183 /* ?insert@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@IID@Z */
2184 /* ?insert@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAAEAV12@_K0D@Z */
2185 DEFINE_THISCALL_WRAPPER(basic_string_char_insert_chn
, 16)
2186 basic_string_char
* __thiscall
basic_string_char_insert_chn(basic_string_char
*this,
2187 MSVCP_size_t off
, MSVCP_size_t count
, char ch
)
2189 return basic_string_char_replace_ch(this, off
, 0, count
, ch
);
2192 /* ?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 */
2193 /* ?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 */
2194 DEFINE_THISCALL_WRAPPER(basic_string_char_insert_iter_chn
, 20)
2195 void __thiscall
basic_string_char_insert_iter_chn(basic_string_char
*this,
2196 String_iterator_char where
, MSVCP_size_t count
, char ch
)
2198 String_iterator_char iter
= { this, basic_string_char_ptr(this) };
2199 MSVCP_size_t off
= MSVCP_basic_string_char_Pdif(where
, iter
);
2201 basic_string_char_insert_chn(this, off
, count
, ch
);
2204 /* ?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 */
2205 /* ?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 */
2206 DEFINE_THISCALL_WRAPPER(basic_string_char_insert_iter_ch
, 20)
2207 String_iterator_char
* __thiscall
basic_string_char_insert_iter_ch(basic_string_char
*this,
2208 String_iterator_char
*ret
, String_iterator_char where
, char ch
)
2213 ret
->pos
= basic_string_char_ptr(this);
2214 off
= MSVCP_basic_string_char_Pdif(where
, *ret
);
2216 basic_string_char_insert_chn(this, off
, 1, ch
);
2217 ret
->pos
= basic_string_char_ptr(this)+off
;
2221 /* ?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 */
2222 /* ?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 */
2223 DEFINE_THISCALL_WRAPPER(basic_string_char_insert_iter_null
, 16)
2224 String_iterator_char
* __thiscall
basic_string_char_insert_iter_null(basic_string_char
*this,
2225 String_iterator_char
*ret
, String_iterator_char where
)
2227 return basic_string_char_insert_iter_ch(this, ret
, where
, 0);
2230 /* ?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 */
2231 /* ?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 */
2232 DEFINE_THISCALL_WRAPPER(basic_string_char_insert_iter_beg_end
, 28)
2233 void __thiscall
basic_string_char_insert_iter_beg_end(basic_string_char
*this,
2234 String_iterator_char where
, String_iterator_char beg
, String_iterator_char end
)
2236 basic_string_char_replace_iter_iter(this, where
, where
, beg
, end
);
2239 /* ?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 */
2240 /* ?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 */
2241 DEFINE_THISCALL_WRAPPER(basic_string_char_insert_iter_ptr_ptr
, 20)
2242 void __thiscall
basic_string_char_insert_iter_ptr_ptr(basic_string_char
*this,
2243 String_iterator_char where
, const char *beg
, const char *end
)
2245 basic_string_char_replace_iter_ptr_ptr(this, where
, where
, beg
, end
);
2248 /* ?resize@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEXID@Z */
2249 /* ?resize@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAX_KD@Z */
2250 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_resize_ch
, 12)
2251 void __thiscall
MSVCP_basic_string_char_resize_ch(
2252 basic_string_char
*this, MSVCP_size_t size
, char ch
)
2254 TRACE("%p %lu %c\n", this, size
, ch
);
2256 if(size
<= this->size
)
2257 MSVCP_basic_string_char_erase(this, size
, this->size
);
2259 MSVCP_basic_string_char_append_len_ch(this, size
-this->size
, ch
);
2262 /* ?resize@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEXI@Z */
2263 /* ?resize@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAX_K@Z */
2264 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_resize
, 8)
2265 void __thiscall
MSVCP_basic_string_char_resize(
2266 basic_string_char
*this, MSVCP_size_t size
)
2268 MSVCP_basic_string_char_resize_ch(this, size
, '\0');
2271 /* ?clear@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEXXZ */
2272 /* ?clear@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAXXZ */
2273 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_clear
, 4)
2274 void __thiscall
MSVCP_basic_string_char_clear(basic_string_char
*this)
2276 basic_string_char_eos(this, 0);
2279 /* ?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 */
2280 /* ?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 */
2281 /* ?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 */
2282 /* ?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 */
2283 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_begin
, 8)
2284 String_iterator_char
* __thiscall
MSVCP_basic_string_char_begin(
2285 basic_string_char
*this, String_iterator_char
*ret
)
2287 TRACE("%p\n", this);
2290 ret
->pos
= basic_string_char_const_ptr(this);
2294 /* ?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 */
2295 /* ?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 */
2296 /* ?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 */
2297 /* ?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 */
2298 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_end
, 8)
2299 String_iterator_char
* __thiscall
MSVCP_basic_string_char_end(
2300 basic_string_char
*this, String_iterator_char
*ret
)
2302 TRACE("%p\n", this);
2305 ret
->pos
= basic_string_char_const_ptr(this)+this->size
;
2309 /* ?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 */
2310 /* ?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 */
2311 /* ?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 */
2312 /* ?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 */
2313 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_rbegin
, 8)
2314 String_reverse_iterator_char
* __thiscall
MSVCP_basic_string_char_rbegin(
2315 basic_string_char
*this, String_reverse_iterator_char
*ret
)
2317 TRACE("%p\n", this);
2319 #if _MSVCP_VER == 80
2323 ret
->pos
= basic_string_char_const_ptr(this)+this->size
;
2327 /* ?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 */
2328 /* ?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 */
2329 /* ?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 */
2330 /* ?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 */
2331 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_rend
, 8)
2332 String_reverse_iterator_char
* __thiscall
MSVCP_basic_string_char_rend(
2333 basic_string_char
*this, String_reverse_iterator_char
*ret
)
2335 TRACE("%p\n", this);
2337 #if _MSVCP_VER == 80
2341 ret
->pos
= basic_string_char_const_ptr(this);
2345 /* basic_string<wchar_t, char_traits<wchar_t>, allocator<wchar_t>> */
2346 /* basic_string<unsigned short, char_traits<unsigned short>, allocator<unsigned short>> */
2347 /* ?npos@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@2IB */
2348 /* ?npos@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@2_KB */
2349 /* ?npos@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@2IB */
2350 /* ?npos@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@2_KB */
2351 const MSVCP_size_t MSVCP_basic_string_wchar_npos
= -1;
2353 /* ?_Myptr@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@IAEPA_WXZ */
2354 /* ?_Myptr@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@IEAAPEA_WXZ */
2355 /* ?_Myptr@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@IAEPAGXZ */
2356 /* ?_Myptr@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@IEAAPEAGXZ */
2357 DEFINE_THISCALL_WRAPPER(basic_string_wchar_ptr
, 4)
2358 wchar_t* __thiscall
basic_string_wchar_ptr(basic_string_wchar
*this)
2360 if(this->res
< BUF_SIZE_WCHAR
)
2361 return this->data
.buf
;
2362 return this->data
.ptr
;
2365 /* ?_Myptr@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@IBEPB_WXZ */
2366 /* ?_Myptr@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@IEBAPEB_WXZ */
2367 /* ?_Myptr@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@IBEPBGXZ */
2368 /* ?_Myptr@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@IEBAPEBGXZ */
2369 DEFINE_THISCALL_WRAPPER(basic_string_wchar_const_ptr
, 4)
2370 const wchar_t* __thiscall
basic_string_wchar_const_ptr(const basic_string_wchar
*this)
2372 if(this->res
< BUF_SIZE_WCHAR
)
2373 return this->data
.buf
;
2374 return this->data
.ptr
;
2377 /* ?_Eos@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@IAEXI@Z */
2378 /* ?_Eos@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@IEAAX_K@Z */
2379 /* ?_Eos@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@IAEXI@Z */
2380 /* ?_Eos@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@IEAAX_K@Z */
2381 DEFINE_THISCALL_WRAPPER(basic_string_wchar_eos
, 8)
2382 void __thiscall
basic_string_wchar_eos(basic_string_wchar
*this, MSVCP_size_t len
)
2384 static const wchar_t nullbyte_w
= '\0';
2387 MSVCP_char_traits_wchar_assign(basic_string_wchar_ptr(this)+len
, &nullbyte_w
);
2390 /* ?_Inside@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@IAE_NPB_W@Z */
2391 /* ?_Inside@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@IEAA_NPEB_W@Z */
2392 /* ?_Inside@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@IAE_NPBG@Z */
2393 /* ?_Inside@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@IEAA_NPEBG@Z */
2394 DEFINE_THISCALL_WRAPPER(basic_string_wchar_inside
, 8)
2395 MSVCP_bool __thiscall
basic_string_wchar_inside(
2396 basic_string_wchar
*this, const wchar_t *ptr
)
2398 wchar_t *cstr
= basic_string_wchar_ptr(this);
2400 return ptr
>=cstr
&& ptr
<cstr
+this->size
;
2403 /* ?_Tidy@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@IAEX_NI@Z */
2404 /* ?_Tidy@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@IEAAX_N_K@Z */
2405 /* ?_Tidy@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@IAEX_NI@Z */
2406 /* ?_Tidy@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@IEAAX_N_K@Z */
2407 DEFINE_THISCALL_WRAPPER(basic_string_wchar_tidy
, 12)
2408 void __thiscall
basic_string_wchar_tidy(basic_string_wchar
*this,
2409 MSVCP_bool built
, MSVCP_size_t new_size
)
2411 if(built
&& BUF_SIZE_WCHAR
<=this->res
) {
2412 wchar_t *ptr
= this->data
.ptr
;
2415 MSVCP_char_traits_wchar__Copy_s(this->data
.buf
, BUF_SIZE_WCHAR
, ptr
, new_size
);
2416 MSVCP_allocator_wchar_deallocate(this->allocator
, ptr
, this->res
+1);
2419 this->res
= BUF_SIZE_WCHAR
-1;
2420 basic_string_wchar_eos(this, new_size
);
2423 /* ?_Grow@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@IAE_NI_N@Z */
2424 /* ?_Grow@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@IEAA_N_K_N@Z */
2425 /* ?_Grow@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@IAE_NI_N@Z */
2426 /* ?_Grow@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@IEAA_N_K_N@Z */
2427 DEFINE_THISCALL_WRAPPER(basic_string_wchar_grow
, 12)
2428 MSVCP_bool __thiscall
basic_string_wchar_grow(
2429 basic_string_wchar
*this, MSVCP_size_t new_size
, MSVCP_bool trim
)
2431 if(this->res
< new_size
) {
2432 MSVCP_size_t new_res
= new_size
, len
= this->size
;
2437 if(new_res
/3 < this->res
/2)
2438 new_res
= this->res
+ this->res
/2;
2440 ptr
= MSVCP_allocator_wchar_allocate(this->allocator
, new_res
+1);
2442 ptr
= MSVCP_allocator_wchar_allocate(this->allocator
, new_size
+1);
2446 ERR("Out of memory\n");
2447 basic_string_wchar_tidy(this, TRUE
, 0);
2451 MSVCP_char_traits_wchar__Copy_s(ptr
, new_size
,
2452 basic_string_wchar_ptr(this), this->size
);
2453 basic_string_wchar_tidy(this, TRUE
, 0);
2454 this->data
.ptr
= ptr
;
2455 this->res
= new_size
;
2456 basic_string_wchar_eos(this, len
);
2457 } else if(trim
&& new_size
< BUF_SIZE_WCHAR
)
2458 basic_string_wchar_tidy(this, TRUE
,
2459 new_size
<this->size
? new_size
: this->size
);
2460 else if(new_size
== 0)
2461 basic_string_wchar_eos(this, 0);
2463 return (new_size
>0);
2466 /* ?_Copy@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@IAEXII@Z */
2467 /* ?_Copy@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@IEAAX_K0@Z */
2468 /* ?_Copy@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@IAEXII@Z */
2469 /* ?_Copy@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@IEAAX_K0@Z */
2470 DEFINE_THISCALL_WRAPPER(basic_string_wchar__Copy
, 12)
2471 void __thiscall
basic_string_wchar__Copy(basic_string_wchar
*this,
2472 MSVCP_size_t new_size
, MSVCP_size_t copy_len
)
2474 TRACE("%p %lu %lu\n", this, new_size
, copy_len
);
2476 if(!basic_string_wchar_grow(this, new_size
, FALSE
))
2478 basic_string_wchar_eos(this, copy_len
);
2481 /* ?_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 */
2482 /* ?_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 */
2483 /* ?_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 */
2484 /* ?_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 */
2485 MSVCP_size_t __cdecl
MSVCP_basic_string_wchar_Pdif(String_iterator_wchar i1
, String_iterator_wchar i2
)
2487 TRACE("(%p %p) (%p %p)\n", i1
.bstr
, i1
.pos
, i2
.bstr
, i2
.pos
);
2489 if((!i1
.bstr
&& i1
.pos
) || i1
.bstr
!=i2
.bstr
) {
2490 _invalid_parameter(NULL
, NULL
, NULL
, 0, 0);
2494 return !i1
.pos
? 0 : i1
.pos
-i2
.pos
;
2497 /* ?get_allocator@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBE?AV?$allocator@_W@2@XZ */
2498 /* ?get_allocator@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBA?AV?$allocator@_W@2@XZ */
2499 /* ?get_allocator@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBE?AV?$allocator@G@2@XZ */
2500 /* ?get_allocator@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBA?AV?$allocator@G@2@XZ */
2501 DEFINE_THISCALL_WRAPPER(basic_string_wchar_get_allocator
, 8)
2502 allocator
* __thiscall
basic_string_wchar_get_allocator(const basic_string_wchar
*this, allocator
*ret
)
2504 TRACE("%p\n", this);
2508 /* ?erase@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV12@II@Z */
2509 /* ?erase@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAAEAV12@_K0@Z */
2510 /* ?erase@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV12@II@Z */
2511 /* ?erase@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAAEAV12@_K0@Z */
2512 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_erase
, 12)
2513 basic_string_wchar
* __thiscall
MSVCP_basic_string_wchar_erase(
2514 basic_string_wchar
*this, MSVCP_size_t pos
, MSVCP_size_t len
)
2516 TRACE("%p %lu %lu\n", this, pos
, len
);
2518 if(pos
> this->size
)
2519 MSVCP__String_base_Xran();
2521 if(len
> this->size
-pos
)
2522 len
= this->size
-pos
;
2525 MSVCP_char_traits_wchar__Move_s(basic_string_wchar_ptr(this)+pos
,
2526 this->res
-pos
, basic_string_wchar_ptr(this)+pos
+len
,
2527 this->size
-pos
-len
);
2528 basic_string_wchar_eos(this, this->size
-len
);
2534 /* ?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 */
2535 /* ?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 */
2536 /* ?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 */
2537 /* ?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 */
2538 DEFINE_THISCALL_WRAPPER(basic_string_wchar_erase_iter_range
, 24)
2539 String_iterator_wchar
* __thiscall
basic_string_wchar_erase_iter_range(basic_string_wchar
*this,
2540 String_iterator_wchar
*ret
, String_iterator_wchar beg
, String_iterator_wchar end
)
2545 ret
->pos
= basic_string_wchar_ptr(this);
2546 off
= MSVCP_basic_string_wchar_Pdif(beg
, *ret
);
2548 MSVCP_basic_string_wchar_erase(this, off
, MSVCP_basic_string_wchar_Pdif(end
, beg
));
2551 ret
->pos
= basic_string_wchar_ptr(this)+off
;
2555 /* ?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 */
2556 /* ?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 */
2557 /* ?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 */
2558 /* ?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 */
2559 DEFINE_THISCALL_WRAPPER(basic_string_wchar_erase_iter
, 16)
2560 String_iterator_wchar
* __thiscall
basic_string_wchar_erase_iter(basic_string_wchar
*this,
2561 String_iterator_wchar
*ret
, String_iterator_wchar pos
)
2566 ret
->pos
= basic_string_wchar_ptr(this);
2567 off
= MSVCP_basic_string_wchar_Pdif(pos
, *ret
);
2569 MSVCP_basic_string_wchar_erase(this, off
, 1);
2572 ret
->pos
= basic_string_wchar_ptr(this)+off
;
2576 /* ?assign@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV12@ABV12@II@Z */
2577 /* ?assign@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAAEAV12@AEBV12@_K1@Z */
2578 /* ?assign@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV12@ABV12@II@Z */
2579 /* ?assign@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAAEAV12@AEBV12@_K1@Z */
2580 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_assign_substr
, 16)
2581 basic_string_wchar
* __thiscall
MSVCP_basic_string_wchar_assign_substr(
2582 basic_string_wchar
*this, const basic_string_wchar
*assign
,
2583 MSVCP_size_t pos
, MSVCP_size_t len
)
2585 TRACE("%p %p %lu %lu\n", this, assign
, pos
, len
);
2587 if(assign
->size
< pos
)
2588 MSVCP__String_base_Xran();
2590 if(len
> assign
->size
-pos
)
2591 len
= assign
->size
-pos
;
2593 if(this == assign
) {
2594 MSVCP_basic_string_wchar_erase(this, pos
+len
, MSVCP_basic_string_wchar_npos
);
2595 MSVCP_basic_string_wchar_erase(this, 0, pos
);
2596 } else if(basic_string_wchar_grow(this, len
, FALSE
)) {
2597 MSVCP_char_traits_wchar__Copy_s(basic_string_wchar_ptr(this),
2598 this->res
, basic_string_wchar_const_ptr(assign
)+pos
, len
);
2599 basic_string_wchar_eos(this, len
);
2605 /* ?assign@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV12@ABV12@@Z */
2606 /* ?assign@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAAEAV12@AEBV12@@Z */
2607 /* ??4?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV01@ABV01@@Z */
2608 /* ??4?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAAEAV01@AEBV01@@Z */
2609 /* ?assign@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV12@ABV12@@Z */
2610 /* ?assign@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAAEAV12@AEBV12@@Z */
2611 /* ??4?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV01@ABV01@@Z */
2612 /* ??4?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAAEAV01@AEBV01@@Z */
2613 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_assign
, 8)
2614 basic_string_wchar
* __thiscall
MSVCP_basic_string_wchar_assign(
2615 basic_string_wchar
*this, const basic_string_wchar
*assign
)
2617 return MSVCP_basic_string_wchar_assign_substr(this, assign
,
2618 0, MSVCP_basic_string_wchar_npos
);
2621 /* ?assign@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV12@PB_WI@Z */
2622 /* ?assign@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAAEAV12@PEB_W_K@Z */
2623 /* ?assign@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV12@PBGI@Z */
2624 /* ?assign@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAAEAV12@PEBG_K@Z */
2625 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_assign_cstr_len
, 12)
2626 basic_string_wchar
* __thiscall
MSVCP_basic_string_wchar_assign_cstr_len(
2627 basic_string_wchar
*this, const wchar_t *str
, MSVCP_size_t len
)
2629 TRACE("%p %s %lu\n", this, debugstr_wn(str
, len
), len
);
2631 if(basic_string_wchar_inside(this, str
))
2632 return MSVCP_basic_string_wchar_assign_substr(this, this,
2633 str
-basic_string_wchar_ptr(this), len
);
2634 else if(basic_string_wchar_grow(this, len
, FALSE
)) {
2635 MSVCP_char_traits_wchar__Copy_s(basic_string_wchar_ptr(this),
2636 this->res
, str
, len
);
2637 basic_string_wchar_eos(this, len
);
2643 /* ??4?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV01@_W@Z */
2644 /* ??4?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAAEAV01@_W@Z */
2645 /* ??4?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV01@G@Z */
2646 /* ??4?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAAEAV01@G@Z */
2647 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_assign_ch
, 8)
2648 basic_string_wchar
* __thiscall
MSVCP_basic_string_wchar_assign_ch(
2649 basic_string_wchar
*this, wchar_t ch
)
2651 return MSVCP_basic_string_wchar_assign_cstr_len(this, &ch
, 1);
2654 /* ?assign@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV12@PB_W@Z */
2655 /* ?assign@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAAEAV12@PEB_W@Z */
2656 /* ??4?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV01@PB_W@Z */
2657 /* ??4?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAAEAV01@PEB_W@Z */
2658 /* ?assign@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV12@PBG@Z */
2659 /* ?assign@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAAEAV12@PEBG@Z */
2660 /* ??4?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV01@PBG@Z */
2661 /* ??4?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAAEAV01@PEBG@Z */
2662 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_assign_cstr
, 8)
2663 basic_string_wchar
* __thiscall
MSVCP_basic_string_wchar_assign_cstr(
2664 basic_string_wchar
*this, const wchar_t *str
)
2666 return MSVCP_basic_string_wchar_assign_cstr_len(this, str
,
2667 MSVCP_char_traits_wchar_length(str
));
2670 /* ?assign@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV12@I_W@Z */
2671 /* ?assign@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAAEAV12@_K_W@Z */
2672 /* ?assign@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV12@IG@Z */
2673 /* ?assign@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAAEAV12@_KG@Z */
2674 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_assignn
, 12)
2675 basic_string_wchar
* __thiscall
MSVCP_basic_string_wchar_assignn(
2676 basic_string_wchar
*this, MSVCP_size_t count
, wchar_t ch
)
2678 TRACE("%p %ld %c\n", this, count
, ch
);
2680 basic_string_wchar_grow(this, count
, FALSE
);
2681 MSVCP_char_traits_wchar_assignn(basic_string_wchar_ptr(this), count
, ch
);
2682 basic_string_wchar_eos(this, count
);
2686 /* ?assign@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV12@PB_W0@Z */
2687 /* ?assign@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAAEAV12@PEB_W0@Z */
2688 /* ?assign@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV12@PBG0@Z */
2689 /* ?assign@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAAEAV12@PEBG0@Z */
2690 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_assign_ptr_ptr
, 12)
2691 basic_string_wchar
* __thiscall
MSVCP_basic_string_wchar_assign_ptr_ptr(
2692 basic_string_wchar
*this, const wchar_t *first
, const wchar_t *last
)
2694 return MSVCP_basic_string_wchar_assign_cstr_len(this, first
, last
-first
);
2697 /* ?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 */
2698 /* ?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 */
2699 /* ?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 */
2700 /* ?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 */
2701 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_assign_iter
, 20)
2702 basic_string_wchar
* __thiscall
MSVCP_basic_string_wchar_assign_iter(basic_string_wchar
*this,
2703 String_iterator_wchar beg
, String_iterator_wchar end
)
2705 return MSVCP_basic_string_wchar_assign_ptr_ptr(this, beg
.pos
, end
.pos
);
2708 /* ?_Chassign@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@IAEXII_W@Z */
2709 /* ?_Chassign@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@IEAAX_K0_W@Z */
2710 /* ?_Chassign@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@IAEXIIG@Z */
2711 /* ?_Chassign@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@IEAAX_K0G@Z */
2712 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_Chassign
, 16)
2713 void __thiscall
MSVCP_basic_string_wchar_Chassign(basic_string_wchar
*this,
2714 MSVCP_size_t off
, MSVCP_size_t count
, wchar_t ch
)
2716 TRACE("%p %lu %lu %c\n", this, off
, count
, ch
);
2717 MSVCP_char_traits_wchar_assignn(basic_string_wchar_ptr(this)+off
, count
, ch
);
2720 /* ?_Copy_s@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEIPA_WIII@Z */
2721 /* ?_Copy_s@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBA_KPEA_W_K11@Z */
2722 /* ?_Copy_s@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEIPAGIII@Z */
2723 /* ?_Copy_s@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBA_KPEAG_K11@Z */
2724 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_Copy_s
, 20)
2725 MSVCP_size_t __thiscall
MSVCP_basic_string_wchar_Copy_s(const basic_string_wchar
*this,
2726 wchar_t *dest
, MSVCP_size_t size
, MSVCP_size_t count
, MSVCP_size_t off
)
2728 TRACE("%p %p %lu %lu %lu\n", this, dest
, size
, count
, off
);
2730 if(this->size
< off
)
2731 MSVCP__String_base_Xran();
2733 if(count
> this->size
-off
)
2734 count
= this->size
-off
;
2736 MSVCP_char_traits_wchar__Copy_s(dest
, size
,
2737 basic_string_wchar_const_ptr(this)+off
, count
);
2741 /* ?copy@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEIPA_WII@Z */
2742 /* ?copy@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBA_KPEA_W_K1@Z */
2743 /* ?copy@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEIPAGII@Z */
2744 /* ?copy@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBA_KPEAG_K1@Z */
2745 DEFINE_THISCALL_WRAPPER(basic_string_wchar_copy
, 16)
2746 MSVCP_size_t __thiscall
basic_string_wchar_copy(const basic_string_wchar
*this,
2747 wchar_t *dest
, MSVCP_size_t count
, MSVCP_size_t off
)
2749 return MSVCP_basic_string_wchar_Copy_s(this, dest
, count
, count
, off
);
2752 /* ?c_str@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEPB_WXZ */
2753 /* ?c_str@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBAPEB_WXZ */
2754 /* ?data@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEPB_WXZ */
2755 /* ?data@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBAPEB_WXZ */
2756 /* ?c_str@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEPBGXZ */
2757 /* ?c_str@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBAPEBGXZ */
2758 /* ?data@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEPBGXZ */
2759 /* ?data@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBAPEBGXZ */
2760 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_c_str
, 4)
2761 const wchar_t* __thiscall
MSVCP_basic_string_wchar_c_str(const basic_string_wchar
*this)
2763 TRACE("%p\n", this);
2764 return basic_string_wchar_const_ptr(this);
2767 /* ?capacity@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEIXZ */
2768 /* ?capacity@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBA_KXZ */
2769 /* ?capacity@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEIXZ */
2770 /* ?capacity@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBA_KXZ */
2771 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_capacity
, 4)
2772 MSVCP_size_t __thiscall
MSVCP_basic_string_wchar_capacity(basic_string_wchar
*this)
2774 TRACE("%p\n", this);
2778 /* ?reserve@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEXI@Z */
2779 /* ?reserve@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAX_K@Z */
2780 /* ?reserve@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEXI@Z */
2781 /* ?reserve@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAX_K@Z */
2782 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_reserve
, 8)
2783 void __thiscall
MSVCP_basic_string_wchar_reserve(basic_string_wchar
*this, MSVCP_size_t size
)
2787 TRACE("%p %ld\n", this, size
);
2793 if(basic_string_wchar_grow(this, size
, TRUE
))
2794 basic_string_wchar_eos(this, len
);
2797 /* ??0?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE@XZ */
2798 /* ??0?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAA@XZ */
2799 /* ??0?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAE@XZ */
2800 /* ??0?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAA@XZ */
2801 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_ctor
, 4)
2802 basic_string_wchar
* __thiscall
MSVCP_basic_string_wchar_ctor(basic_string_wchar
*this)
2804 TRACE("%p\n", this);
2806 basic_string_wchar_tidy(this, FALSE
, 0);
2810 /* ??0?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE@ABV01@@Z */
2811 /* ??0?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAA@AEBV01@@Z */
2812 /* ??0?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAE@ABV01@@Z */
2813 /* ??0?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAA@AEBV01@@Z */
2814 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_copy_ctor
, 8)
2815 basic_string_wchar
* __thiscall
MSVCP_basic_string_wchar_copy_ctor(
2816 basic_string_wchar
*this, const basic_string_wchar
*copy
)
2818 TRACE("%p %p\n", this, copy
);
2820 basic_string_wchar_tidy(this, FALSE
, 0);
2821 MSVCP_basic_string_wchar_assign(this, copy
);
2825 /* ??0?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE@PB_W@Z */
2826 /* ??0?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAA@PEB_W@Z */
2827 /* ??0?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAE@PBG@Z */
2828 /* ??0?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAA@PEBG@Z */
2829 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_ctor_cstr
, 8)
2830 basic_string_wchar
* __thiscall
MSVCP_basic_string_wchar_ctor_cstr(
2831 basic_string_wchar
*this, const wchar_t *str
)
2833 TRACE("%p %s\n", this, debugstr_w(str
));
2835 basic_string_wchar_tidy(this, FALSE
, 0);
2836 MSVCP_basic_string_wchar_assign_cstr(this, str
);
2840 /* ??0?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE@PB_WABV?$allocator@_W@1@@Z */
2841 /* ??0?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAA@PEB_WAEBV?$allocator@_W@1@@Z */
2842 /* ??0?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAE@PBGABV?$allocator@G@1@@Z */
2843 /* ??0?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAA@PEBGAEBV?$allocator@G@1@@Z */
2844 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_ctor_cstr_alloc
, 12)
2845 basic_string_wchar
* __thiscall
MSVCP_basic_string_wchar_ctor_cstr_alloc(
2846 basic_string_wchar
*this, const wchar_t *str
, const void *alloc
)
2848 return MSVCP_basic_string_wchar_ctor_cstr(this, str
);
2851 /* ??0?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE@PB_WI@Z */
2852 /* ??0?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAA@PEB_W_K@Z */
2853 /* ??0?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAE@PBGI@Z */
2854 /* ??0?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAA@PEBG_K@Z */
2855 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_ctor_cstr_len
, 12)
2856 basic_string_wchar
* __thiscall
MSVCP_basic_string_wchar_ctor_cstr_len(
2857 basic_string_wchar
*this, const wchar_t *str
, MSVCP_size_t len
)
2859 TRACE("%p %s %ld\n", this, debugstr_wn(str
, len
), len
);
2861 basic_string_wchar_tidy(this, FALSE
, 0);
2862 MSVCP_basic_string_wchar_assign_cstr_len(this, str
, len
);
2866 /* ??0?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE@PB_WIABV?$allocator@_W@1@@Z */
2867 /* ??0?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAA@PEB_W_KAEBV?$allocator@_W@1@@Z */
2868 /* ??0?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAE@PBGIABV?$allocator@G@1@@Z */
2869 /* ??0?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAA@PEBG_KAEBV?$allocator@G@1@@Z */
2870 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_ctor_cstr_len_alloc
, 16)
2871 basic_string_wchar
* __thiscall
MSVCP_basic_string_wchar_ctor_cstr_len_alloc(
2872 basic_string_wchar
*this, const wchar_t *str
, MSVCP_size_t len
, const void *alloc
)
2874 return MSVCP_basic_string_wchar_ctor_cstr_len(this, str
, len
);
2877 /* ??0?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE@ABV01@II@Z */
2878 /* ??0?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAA@AEBV01@_K1@Z */
2879 /* ??0?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAE@ABV01@II@Z */
2880 /* ??0?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAA@AEBV01@_K1@Z */
2881 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_ctor_substr
, 16)
2882 basic_string_wchar
* __thiscall
MSVCP_basic_string_wchar_ctor_substr(
2883 basic_string_wchar
*this, const basic_string_wchar
*assign
,
2884 MSVCP_size_t pos
, MSVCP_size_t len
)
2886 TRACE("%p %p %lu %lu\n", this, assign
, pos
, len
);
2888 basic_string_wchar_tidy(this, FALSE
, 0);
2889 MSVCP_basic_string_wchar_assign_substr(this, assign
, pos
, len
);
2893 /* ??0?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE@ABV01@IIABV?$allocator@_W@1@@Z */
2894 /* ??0?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAA@AEBV01@_K1AEBV?$allocator@_W@1@@Z */
2895 /* ??0?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAE@ABV01@IIABV?$allocator@G@1@@Z */
2896 /* ??0?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAA@AEBV01@_K1AEBV?$allocator@G@1@@Z */
2897 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_ctor_substr_alloc
, 20)
2898 basic_string_wchar
* __thiscall
MSVCP_basic_string_wchar_ctor_substr_alloc(
2899 basic_string_wchar
*this, const basic_string_wchar
*assign
,
2900 MSVCP_size_t pos
, MSVCP_size_t len
, const void *alloc
)
2902 return MSVCP_basic_string_wchar_ctor_substr(this, assign
, pos
, len
);
2905 /* ??0?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE@ABV?$allocator@_W@1@@Z */
2906 /* ??0?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAA@AEBV?$allocator@_W@1@@Z */
2907 /* ??0?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAE@ABV?$allocator@G@1@@Z */
2908 /* ??0?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAA@AEBV?$allocator@G@1@@Z */
2909 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_ctor_alloc
, 8)
2910 basic_string_wchar
* __thiscall
MSVCP_basic_string_wchar_ctor_alloc(
2911 basic_string_wchar
*this, const void *alloc
)
2913 TRACE("%p %p\n", this, alloc
);
2915 basic_string_wchar_tidy(this, FALSE
, 0);
2919 /* ??0?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE@I_W@Z */
2920 /* ??0?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAA@_K_W@Z */
2921 /* ??0?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAE@IG@Z */
2922 /* ??0?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAA@_KG@Z */
2923 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_ctor_ch
, 12)
2924 basic_string_wchar
* __thiscall
MSVCP_basic_string_wchar_ctor_ch(basic_string_wchar
*this,
2925 MSVCP_size_t count
, wchar_t ch
)
2927 TRACE("%p %ld %c\n", this, count
, ch
);
2929 basic_string_wchar_tidy(this, FALSE
, 0);
2930 MSVCP_basic_string_wchar_assignn(this, count
, ch
);
2934 /* ??0?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE@I_WABV?$allocator@_W@1@@Z */
2935 /* ??0?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAA@_K_WAEBV?$allocator@_W@1@@Z */
2936 /* ??0?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAE@IGABV?$allocator@G@1@@Z */
2937 /* ??0?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAA@_KGAEBV?$allocator@G@1@@Z */
2938 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_ctor_ch_alloc
, 16)
2939 basic_string_wchar
* __thiscall
MSVCP_basic_string_wchar_ctor_ch_alloc(basic_string_wchar
*this,
2940 MSVCP_size_t count
, wchar_t ch
, const void *alloc
)
2942 return MSVCP_basic_string_wchar_ctor_ch(this, count
, ch
);
2945 /* ??0?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE@PB_W0@Z */
2946 /* ??0?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAA@PEB_W0@Z */
2947 /* ??0?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAE@PBG0@Z */
2948 /* ??0?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAA@PEBG0@Z */
2949 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_ctor_ptr_ptr
, 12)
2950 basic_string_wchar
* __thiscall
MSVCP_basic_string_wchar_ctor_ptr_ptr(basic_string_wchar
*this,
2951 const wchar_t *first
, const wchar_t *last
)
2953 return MSVCP_basic_string_wchar_ctor_cstr_len(this, first
, last
-first
);
2956 /* ??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 */
2957 /* ??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 */
2958 /* ??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 */
2959 /* ??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 */
2960 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_ctor_iter
, 20)
2961 basic_string_wchar
* __thiscall
MSVCP_basic_string_wchar_ctor_iter(basic_string_wchar
*this,
2962 String_iterator_wchar beg
, String_iterator_wchar end
)
2964 return MSVCP_basic_string_wchar_ctor_cstr_len(this, beg
.pos
, end
.pos
-beg
.pos
);
2967 /* ??1?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE@XZ */
2968 /* ??1?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAA@XZ */
2969 /* ??1?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAE@XZ */
2970 /* ??1?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAA@XZ */
2971 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_dtor
, 4)
2972 void __thiscall
MSVCP_basic_string_wchar_dtor(basic_string_wchar
*this)
2974 TRACE("%p\n", this);
2975 basic_string_wchar_tidy(this, TRUE
, 0);
2978 /* ?size@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEIXZ */
2979 /* ?size@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBA_KXZ */
2980 /* ?length@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEIXZ */
2981 /* ?length@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBA_KXZ */
2982 /* ?size@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEIXZ */
2983 /* ?size@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBA_KXZ */
2984 /* ?length@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEIXZ */
2985 /* ?length@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBA_KXZ */
2986 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_length
, 4)
2987 MSVCP_size_t __thiscall
MSVCP_basic_string_wchar_length(const basic_string_wchar
*this)
2989 TRACE("%p\n", this);
2993 /* ?max_size@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEIXZ */
2994 /* ?max_size@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBA_KXZ */
2995 /* ?max_size@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEIXZ */
2996 /* ?max_size@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBA_KXZ */
2997 DEFINE_THISCALL_WRAPPER(basic_string_wchar_max_size
, 4)
2998 MSVCP_size_t __thiscall
basic_string_wchar_max_size(const basic_string_wchar
*this)
3000 TRACE("%p\n", this);
3001 return MSVCP_allocator_wchar_max_size(this->allocator
)-1;
3004 /* ?empty@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBE_NXZ */
3005 /* ?empty@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBA_NXZ */
3006 /* ?empty@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBE_NXZ */
3007 /* ?empty@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBA_NXZ */
3008 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_empty
, 4)
3009 MSVCP_bool __thiscall
MSVCP_basic_string_wchar_empty(basic_string_wchar
*this)
3011 TRACE("%p\n", this);
3012 return this->size
== 0;
3015 /* ?swap@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEXAAV12@@Z */
3016 /* ?swap@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAXAEAV12@@Z */
3017 /* ?swap@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEXAAV12@@Z */
3018 /* ?swap@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAXAEAV12@@Z */
3019 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_swap
, 8)
3020 void __thiscall
MSVCP_basic_string_wchar_swap(basic_string_wchar
*this, basic_string_wchar
*str
)
3023 char tmp
[sizeof(this->data
)];
3024 const MSVCP_size_t size
= this->size
;
3025 const MSVCP_size_t res
= this->res
;
3027 memcpy(tmp
, this->data
.buf
, sizeof(this->data
));
3028 memcpy(this->data
.buf
, str
->data
.buf
, sizeof(this->data
));
3029 memcpy(str
->data
.buf
, tmp
, sizeof(this->data
));
3031 this->size
= str
->size
;
3032 this->res
= str
->res
;
3039 /* ?substr@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBE?AV12@II@Z */
3040 /* ?substr@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBA?AV12@_K0@Z */
3041 /* ?substr@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBE?AV12@II@Z */
3042 /* ?substr@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBA?AV12@_K0@Z */
3043 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_substr
, 16)
3044 basic_string_wchar
* __thiscall
MSVCP_basic_string_wchar_substr(basic_string_wchar
*this,
3045 basic_string_wchar
*ret
, MSVCP_size_t off
, MSVCP_size_t len
)
3047 TRACE("%p %lu %lu\n", this, off
, len
);
3049 MSVCP_basic_string_wchar_ctor_substr(ret
, this, off
, len
);
3053 /* ?append@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV12@ABV12@II@Z */
3054 /* ?append@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAAEAV12@AEBV12@_K1@Z */
3055 /* ?append@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV12@ABV12@II@Z */
3056 /* ?append@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAAEAV12@AEBV12@_K1@Z */
3057 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_append_substr
, 16)
3058 basic_string_wchar
* __thiscall
MSVCP_basic_string_wchar_append_substr(basic_string_wchar
*this,
3059 const basic_string_wchar
*append
, MSVCP_size_t offset
, MSVCP_size_t count
)
3061 TRACE("%p %p %lu %lu\n", this, append
, offset
, count
);
3063 if(append
->size
< offset
)
3064 MSVCP__String_base_Xran();
3066 if(count
> append
->size
-offset
)
3067 count
= append
->size
-offset
;
3069 if(MSVCP_basic_string_wchar_npos
-this->size
<=count
|| this->size
+count
<this->size
)
3070 MSVCP__String_base_Xlen();
3072 if(basic_string_wchar_grow(this, this->size
+count
, FALSE
)) {
3073 MSVCP_char_traits_wchar__Copy_s(basic_string_wchar_ptr(this)+this->size
,
3074 this->res
-this->size
, basic_string_wchar_const_ptr(append
)+offset
, count
);
3075 basic_string_wchar_eos(this, this->size
+count
);
3081 /* ?append@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV12@ABV12@@Z */
3082 /* ?append@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAAEAV12@AEBV12@@Z */
3083 /* ??Y?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV01@ABV01@@Z */
3084 /* ??Y?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAAEAV01@AEBV01@@Z */
3085 /* ?append@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV12@ABV12@@Z */
3086 /* ?append@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAAEAV12@AEBV12@@Z */
3087 /* ??Y?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV01@ABV01@@Z */
3088 /* ??Y?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAAEAV01@AEBV01@@Z */
3089 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_append
, 8)
3090 basic_string_wchar
* __thiscall
MSVCP_basic_string_wchar_append(
3091 basic_string_wchar
*this, const basic_string_wchar
*append
)
3093 return MSVCP_basic_string_wchar_append_substr(this, append
,
3094 0, MSVCP_basic_string_wchar_npos
);
3097 /* ?append@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV12@PB_WI@Z */
3098 /* ?append@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAAEAV12@PEB_W_K@Z */
3099 /* ?append@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV12@PBGI@Z */
3100 /* ?append@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAAEAV12@PEBG_K@Z */
3101 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_append_cstr_len
, 12)
3102 basic_string_wchar
* __thiscall
MSVCP_basic_string_wchar_append_cstr_len(
3103 basic_string_wchar
*this, const wchar_t *append
, MSVCP_size_t count
)
3105 TRACE("%p %s %lu\n", this, debugstr_wn(append
, count
), count
);
3107 if(basic_string_wchar_inside(this, append
))
3108 return MSVCP_basic_string_wchar_append_substr(this, this,
3109 append
-basic_string_wchar_ptr(this), count
);
3111 if(MSVCP_basic_string_wchar_npos
-this->size
<=count
|| this->size
+count
<this->size
)
3112 MSVCP__String_base_Xlen();
3114 if(basic_string_wchar_grow(this, this->size
+count
, FALSE
)) {
3115 MSVCP_char_traits_wchar__Copy_s(basic_string_wchar_ptr(this)+this->size
,
3116 this->res
-this->size
, append
, count
);
3117 basic_string_wchar_eos(this, this->size
+count
);
3123 /* ?append@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV12@PB_W@Z */
3124 /* ?append@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAAEAV12@PEB_W@Z */
3125 /* ??Y?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV01@PB_W@Z */
3126 /* ??Y?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAAEAV01@PEB_W@Z */
3127 /* ?append@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV12@PBG@Z */
3128 /* ?append@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAAEAV12@PEBG@Z */
3129 /* ??Y?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV01@PBG@Z */
3130 /* ??Y?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAAEAV01@PEBG@Z */
3131 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_append_cstr
, 8)
3132 basic_string_wchar
* __thiscall
MSVCP_basic_string_wchar_append_cstr(
3133 basic_string_wchar
*this, const wchar_t *append
)
3135 return MSVCP_basic_string_wchar_append_cstr_len(this, append
,
3136 MSVCP_char_traits_wchar_length(append
));
3139 /* ?append@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV12@PB_W0@Z */
3140 /* ?append@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAAEAV12@PEB_W0@Z */
3141 /* ?append@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV12@PBG0@Z */
3142 /* ?append@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAAEAV12@PEBG0@Z */
3143 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_append_beg_end
, 12)
3144 basic_string_wchar
* __thiscall
MSVCP_basic_string_wchar_append_beg_end(
3145 basic_string_wchar
*this, const wchar_t *beg
, const wchar_t *end
)
3147 return MSVCP_basic_string_wchar_append_cstr_len(this, beg
, end
-beg
);
3150 /* ?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 */
3151 /* ?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 */
3152 /* ?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 */
3153 /* ?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 */
3154 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_append_iter
, 20)
3155 basic_string_wchar
* __thiscall
MSVCP_basic_string_wchar_append_iter(
3156 basic_string_wchar
*this, String_iterator_wchar beg
, String_iterator_wchar end
)
3158 return MSVCP_basic_string_wchar_append_cstr_len(this, beg
.pos
, end
.pos
-beg
.pos
);
3161 /* ?append@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV12@I_W@Z */
3162 /* ?append@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAAEAV12@_K_W@Z */
3163 /* ?append@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV12@IG@Z */
3164 /* ?append@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAAEAV12@_KG@Z */
3165 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_append_len_ch
, 12)
3166 basic_string_wchar
* __thiscall
MSVCP_basic_string_wchar_append_len_ch(
3167 basic_string_wchar
*this, MSVCP_size_t count
, wchar_t ch
)
3169 TRACE("%p %lu %c\n", this, count
, ch
);
3171 if(MSVCP_basic_string_wchar_npos
-this->size
<= count
)
3172 MSVCP__String_base_Xlen();
3174 if(basic_string_wchar_grow(this, this->size
+count
, FALSE
)) {
3175 MSVCP_char_traits_wchar_assignn(basic_string_wchar_ptr(this)+this->size
, count
, ch
);
3176 basic_string_wchar_eos(this, this->size
+count
);
3182 /* ??Y?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV01@_W@Z */
3183 /* ??Y?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAAEAV01@_W@Z */
3184 /* ?push_back@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEX_W@Z */
3185 /* ?push_back@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAX_W@Z */
3186 /* ??Y?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV01@G@Z */
3187 /* ??Y?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAAEAV01@G@Z */
3188 /* ?push_back@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEXG@Z */
3189 /* ?push_back@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAXG@Z */
3190 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_append_ch
, 8)
3191 basic_string_wchar
* __thiscall
MSVCP_basic_string_wchar_append_ch(
3192 basic_string_wchar
*this, wchar_t ch
)
3194 return MSVCP_basic_string_wchar_append_len_ch(this, 1, ch
);
3197 /* ??$?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 */
3198 /* ??$?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 */
3199 /* ??$?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 */
3200 /* ??$?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 */
3201 basic_string_wchar
* __cdecl
MSVCP_basic_string_wchar_concatenate_bstr_cstr(basic_string_wchar
*ret
,
3202 const basic_string_wchar
*left
, const wchar_t *right
)
3204 TRACE("%p %s\n", left
, debugstr_w(right
));
3206 MSVCP_basic_string_wchar_copy_ctor(ret
, left
);
3207 MSVCP_basic_string_wchar_append_cstr(ret
, right
);
3211 /* ??$?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 */
3212 /* ??$?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 */
3213 /* ??$?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 */
3214 /* ??$?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 */
3215 basic_string_wchar
* __cdecl
MSVCP_basic_string_wchar_concatenate_cstr_bstr(basic_string_wchar
*ret
,
3216 const wchar_t *left
, const basic_string_wchar
*right
)
3218 TRACE("%s %p\n", debugstr_w(left
), right
);
3220 MSVCP_basic_string_wchar_ctor_cstr(ret
, left
);
3221 MSVCP_basic_string_wchar_append(ret
, right
);
3225 /* ??$?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 */
3226 /* ??$?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 */
3227 /* ??$?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 */
3228 /* ??$?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 */
3229 basic_string_wchar
* __cdecl
MSVCP_basic_string_wchar_concatenate(basic_string_wchar
*ret
,
3230 const basic_string_wchar
*left
, const basic_string_wchar
*right
)
3232 TRACE("%p %p\n", left
, right
);
3234 MSVCP_basic_string_wchar_copy_ctor(ret
, left
);
3235 MSVCP_basic_string_wchar_append(ret
, right
);
3239 /* ??$?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 */
3240 /* ??$?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 */
3241 /* ??$?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 */
3242 /* ??$?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 */
3243 basic_string_wchar
* __cdecl
MSVCP_basic_string_wchar_concatenate_bstr_ch(
3244 basic_string_wchar
*ret
, const basic_string_wchar
*left
, wchar_t right
)
3246 TRACE("%p %c\n", left
, right
);
3248 MSVCP_basic_string_wchar_copy_ctor(ret
, left
);
3249 MSVCP_basic_string_wchar_append_ch(ret
, right
);
3253 /* ??$?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 */
3254 /* ??$?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 */
3255 /* ??$?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 */
3256 /* ??$?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 */
3257 basic_string_wchar
* __cdecl
MSVCP_basic_string_wchar_concatenate_ch_bstr(
3258 basic_string_wchar
* ret
, wchar_t left
, const basic_string_wchar
*right
)
3260 TRACE("%c %p\n", left
, right
);
3262 MSVCP_basic_string_wchar_ctor_cstr_len(ret
, &left
, 1);
3263 MSVCP_basic_string_wchar_append(ret
, right
);
3267 /* ?compare@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEHIIPB_WI@Z */
3268 /* ?compare@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBAH_K0PEB_W0@Z */
3269 /* ?compare@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEHIIPBGI@Z */
3270 /* ?compare@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBAH_K0PEBG0@Z */
3271 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_compare_substr_cstr_len
, 20)
3272 int __thiscall
MSVCP_basic_string_wchar_compare_substr_cstr_len(
3273 const basic_string_wchar
*this, MSVCP_size_t pos
, MSVCP_size_t num
,
3274 const wchar_t *str
, MSVCP_size_t count
)
3278 TRACE("%p %lu %lu %s %lu\n", this, pos
, num
, debugstr_wn(str
, count
), count
);
3280 if(this->size
< pos
)
3281 MSVCP__String_base_Xran();
3283 if(num
> this->size
-pos
)
3284 num
= this->size
-pos
;
3286 ans
= MSVCP_char_traits_wchar_compare(basic_string_wchar_const_ptr(this)+pos
,
3287 str
, num
>count
? count
: num
);
3293 else if(num
< count
)
3298 /* ?compare@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEHIIPB_W@Z */
3299 /* ?compare@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBAH_K0PEB_W@Z */
3300 /* ?compare@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEHIIPBG@Z */
3301 /* ?compare@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBAH_K0PEBG@Z */
3302 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_compare_substr_cstr
, 16)
3303 int __thiscall
MSVCP_basic_string_wchar_compare_substr_cstr(const basic_string_wchar
*this,
3304 MSVCP_size_t pos
, MSVCP_size_t num
, const wchar_t *str
)
3306 return MSVCP_basic_string_wchar_compare_substr_cstr_len(this, pos
, num
,
3307 str
, MSVCP_char_traits_wchar_length(str
));
3310 /* ?compare@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEHPB_W@Z */
3311 /* ?compare@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBAHPEB_W@Z */
3312 /* ?compare@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEHPBG@Z */
3313 /* ?compare@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBAHPEBG@Z */
3314 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_compare_cstr
, 8)
3315 int __thiscall
MSVCP_basic_string_wchar_compare_cstr(
3316 const basic_string_wchar
*this, const wchar_t *str
)
3318 return MSVCP_basic_string_wchar_compare_substr_cstr_len(this, 0, this->size
,
3319 str
, MSVCP_char_traits_wchar_length(str
));
3322 /* ?compare@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEHIIABV12@II@Z */
3323 /* ?compare@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBAH_K0AEBV12@00@Z */
3324 /* ?compare@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEHIIABV12@II@Z */
3325 /* ?compare@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBAH_K0AEBV12@00@Z */
3326 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_compare_substr_substr
, 24)
3327 int __thiscall
MSVCP_basic_string_wchar_compare_substr_substr(
3328 const basic_string_wchar
*this, MSVCP_size_t pos
, MSVCP_size_t num
,
3329 const basic_string_wchar
*compare
, MSVCP_size_t off
, MSVCP_size_t count
)
3331 TRACE("%p %lu %lu %p %lu %lu\n", this, pos
, num
, compare
, off
, count
);
3333 if(compare
->size
< off
)
3334 MSVCP__String_base_Xran();
3336 if(count
> compare
->size
-off
)
3337 count
= compare
->size
-off
;
3339 return MSVCP_basic_string_wchar_compare_substr_cstr_len(this, pos
, num
,
3340 basic_string_wchar_const_ptr(compare
)+off
, count
);
3343 /* ?compare@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEHIIABV12@@Z */
3344 /* ?compare@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBAH_K0AEBV12@@Z */
3345 /* ?compare@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEHIIABV12@@Z */
3346 /* ?compare@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBAH_K0AEBV12@@Z */
3347 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_compare_substr
, 16)
3348 int __thiscall
MSVCP_basic_string_wchar_compare_substr(
3349 const basic_string_wchar
*this, MSVCP_size_t pos
, MSVCP_size_t num
,
3350 const basic_string_wchar
*compare
)
3352 return MSVCP_basic_string_wchar_compare_substr_cstr_len(this, pos
, num
,
3353 basic_string_wchar_const_ptr(compare
), compare
->size
);
3356 /* ?compare@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEHABV12@@Z */
3357 /* ?compare@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBAHAEBV12@@Z */
3358 /* ?compare@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEHABV12@@Z */
3359 /* ?compare@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBAHAEBV12@@Z */
3360 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_compare
, 8)
3361 int __thiscall
MSVCP_basic_string_wchar_compare(
3362 const basic_string_wchar
*this, const basic_string_wchar
*compare
)
3364 return MSVCP_basic_string_wchar_compare_substr_cstr_len(this, 0, this->size
,
3365 basic_string_wchar_const_ptr(compare
), compare
->size
);
3368 /* ??$?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 */
3369 /* ??$?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 */
3370 /* ??$?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 */
3371 /* ??$?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 */
3372 MSVCP_bool __cdecl
MSVCP_basic_string_wchar_equal(
3373 const basic_string_wchar
*left
, const basic_string_wchar
*right
)
3375 return MSVCP_basic_string_wchar_compare(left
, right
) == 0;
3378 /* ??$?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 */
3379 /* ??$?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 */
3380 /* ??$?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 */
3381 /* ??$?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 */
3382 MSVCP_bool __cdecl
MSVCP_basic_string_wchar_equal_str_cstr(
3383 const basic_string_wchar
*left
, const wchar_t *right
)
3385 return MSVCP_basic_string_wchar_compare_cstr(left
, right
) == 0;
3388 /* ??$?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 */
3389 /* ??$?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 */
3390 /* ??$?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 */
3391 /* ??$?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 */
3392 MSVCP_bool __cdecl
MSVCP_basic_string_wchar_equal_cstr_str(
3393 const wchar_t *left
, const basic_string_wchar
*right
)
3395 return MSVCP_basic_string_wchar_compare_cstr(right
, left
) == 0;
3398 /* ??$?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 */
3399 /* ??$?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 */
3400 /* ??$?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 */
3401 /* ??$?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 */
3402 MSVCP_bool __cdecl
MSVCP_basic_string_wchar_not_equal(
3403 const basic_string_wchar
*left
, const basic_string_wchar
*right
)
3405 return MSVCP_basic_string_wchar_compare(left
, right
) != 0;
3408 /* ??$?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 */
3409 /* ??$?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 */
3410 /* ??$?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 */
3411 /* ??$?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 */
3412 MSVCP_bool __cdecl
MSVCP_basic_string_wchar_not_equal_str_cstr(
3413 const basic_string_wchar
*left
, const wchar_t *right
)
3415 return MSVCP_basic_string_wchar_compare_cstr(left
, right
) != 0;
3418 /* ??$?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 */
3419 /* ??$?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 */
3420 /* ??$?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 */
3421 /* ??$?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 */
3422 MSVCP_bool __cdecl
MSVCP_basic_string_wchar_not_equal_cstr_str(
3423 const wchar_t *left
, const basic_string_wchar
*right
)
3425 return MSVCP_basic_string_wchar_compare_cstr(right
, left
) != 0;
3428 /* ??$?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 */
3429 /* ??$?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 */
3430 /* ??$?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 */
3431 /* ??$?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 */
3432 MSVCP_bool __cdecl
MSVCP_basic_string_wchar_lower(
3433 const basic_string_wchar
*left
, const basic_string_wchar
*right
)
3435 return MSVCP_basic_string_wchar_compare(left
, right
) < 0;
3438 /* ??$?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 */
3439 /* ??$?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 */
3440 /* ??$?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 */
3441 /* ??$?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 */
3442 MSVCP_bool __cdecl
MSVCP_basic_string_wchar_lower_bstr_cstr(
3443 const basic_string_wchar
*left
, const wchar_t *right
)
3445 return MSVCP_basic_string_wchar_compare_cstr(left
, right
) < 0;
3448 /* ??$?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 */
3449 /* ??$?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 */
3450 /* ??$?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 */
3451 /* ??$?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 */
3452 MSVCP_bool __cdecl
MSVCP_basic_string_wchar_lower_cstr_bstr(
3453 const wchar_t *left
, const basic_string_wchar
*right
)
3455 return MSVCP_basic_string_wchar_compare_cstr(right
, left
) > 0;
3458 /* ??$?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 */
3459 /* ??$?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 */
3460 /* ??$?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 */
3461 /* ??$?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 */
3462 MSVCP_bool __cdecl
MSVCP_basic_string_wchar_leq(
3463 const basic_string_wchar
*left
, const basic_string_wchar
*right
)
3465 return MSVCP_basic_string_wchar_compare(left
, right
) <= 0;
3468 /* ??$?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 */
3469 /* ??$?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 */
3470 /* ??$?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 */
3471 /* ??$?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 */
3472 MSVCP_bool __cdecl
MSVCP_basic_string_wchar_leq_bstr_cstr(
3473 const basic_string_wchar
*left
, const wchar_t *right
)
3475 return MSVCP_basic_string_wchar_compare_cstr(left
, right
) <= 0;
3478 /* ??$?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 */
3479 /* ??$?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 */
3480 /* ??$?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 */
3481 /* ??$?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 */
3482 MSVCP_bool __cdecl
MSVCP_basic_string_wchar_leq_cstr_bstr(
3483 const wchar_t *left
, const basic_string_wchar
*right
)
3485 return MSVCP_basic_string_wchar_compare_cstr(right
, left
) >= 0;
3488 /* ??$?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 */
3489 /* ??$?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 */
3490 /* ??$?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 */
3491 /* ??$?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 */
3492 MSVCP_bool __cdecl
MSVCP_basic_string_wchar_greater(
3493 const basic_string_wchar
*left
, const basic_string_wchar
*right
)
3495 return MSVCP_basic_string_wchar_compare(left
, right
) > 0;
3498 /* ??$?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 */
3499 /* ??$?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 */
3500 /* ??$?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 */
3501 /* ??$?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 */
3502 MSVCP_bool __cdecl
MSVCP_basic_string_wchar_greater_bstr_cstr(
3503 const basic_string_wchar
*left
, const wchar_t *right
)
3505 return MSVCP_basic_string_wchar_compare_cstr(left
, right
) > 0;
3508 /* ??$?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 */
3509 /* ??$?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 */
3510 /* ??$?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 */
3511 /* ??$?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 */
3512 MSVCP_bool __cdecl
MSVCP_basic_string_wchar_greater_cstr_bstr(
3513 const wchar_t *left
, const basic_string_wchar
*right
)
3515 return MSVCP_basic_string_wchar_compare_cstr(right
, left
) < 0;
3518 /* ??$?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 */
3519 /* ??$?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 */
3520 /* ??$?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 */
3521 /* ??$?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 */
3522 MSVCP_bool __cdecl
MSVCP_basic_string_wchar_geq(
3523 const basic_string_wchar
*left
, const basic_string_wchar
*right
)
3525 return MSVCP_basic_string_wchar_compare(left
, right
) >= 0;
3528 /* ??$?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 */
3529 /* ??$?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 */
3530 /* ??$?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 */
3531 /* ??$?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 */
3532 MSVCP_bool __cdecl
MSVCP_basic_string_wchar_geq_bstr_cstr(
3533 const basic_string_wchar
*left
, const wchar_t *right
)
3535 return MSVCP_basic_string_wchar_compare_cstr(left
, right
) >= 0;
3538 /* ??$?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 */
3539 /* ??$?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 */
3540 /* ??$?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 */
3541 /* ??$?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 */
3542 MSVCP_bool __cdecl
MSVCP_basic_string_wchar_geq_cstr_bstr(
3543 const wchar_t *left
, const basic_string_wchar
*right
)
3545 return MSVCP_basic_string_wchar_compare_cstr(right
, left
) <= 0;
3548 /* ?find@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEIPB_WII@Z */
3549 /* ?find@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBA_KPEB_W_K1@Z */
3550 /* ?find@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEIPBGII@Z */
3551 /* ?find@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBA_KPEBG_K1@Z */
3552 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_find_cstr_substr
, 16)
3553 MSVCP_size_t __thiscall
MSVCP_basic_string_wchar_find_cstr_substr(
3554 const basic_string_wchar
*this, const wchar_t *find
, MSVCP_size_t pos
, MSVCP_size_t len
)
3556 const wchar_t *p
, *end
;
3558 TRACE("%p %s %lu %lu\n", this, debugstr_wn(find
, len
), pos
, len
);
3560 if(len
==0 && pos
<=this->size
)
3562 if(pos
>=this->size
|| len
>this->size
)
3563 return MSVCP_basic_string_wchar_npos
;
3565 end
= basic_string_wchar_const_ptr(this)+this->size
-len
+1;
3566 for(p
=basic_string_wchar_const_ptr(this)+pos
; p
<end
; p
++) {
3567 p
= MSVCP_char_traits_wchar_find(p
, end
-p
, find
);
3571 if(!MSVCP_char_traits_wchar_compare(p
, find
, len
))
3572 return p
-basic_string_wchar_const_ptr(this);
3575 return MSVCP_basic_string_wchar_npos
;
3578 /* ?find@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEIPB_WI@Z */
3579 /* ?find@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBA_KPEB_W_K@Z */
3580 /* ?find@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEIPBGI@Z */
3581 /* ?find@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBA_KPEBG_K@Z */
3582 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_find_cstr_off
, 12)
3583 MSVCP_size_t __thiscall
MSVCP_basic_string_wchar_find_cstr_off(
3584 const basic_string_wchar
*this, const wchar_t *find
, MSVCP_size_t pos
)
3586 return MSVCP_basic_string_wchar_find_cstr_substr(this, find
, pos
,
3587 MSVCP_char_traits_wchar_length(find
));
3590 /* ?find@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEIABV12@I@Z */
3591 /* ?find@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBA_KAEBV12@_K@Z */
3592 /* ?find@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEIABV12@I@Z */
3593 /* ?find@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBA_KAEBV12@_K@Z */
3594 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_find_off
, 12)
3595 MSVCP_size_t __thiscall
MSVCP_basic_string_wchar_find_off(
3596 const basic_string_wchar
*this, const basic_string_wchar
*find
, MSVCP_size_t off
)
3598 return MSVCP_basic_string_wchar_find_cstr_substr(this,
3599 basic_string_wchar_const_ptr(find
), off
, find
->size
);
3602 /* ?find@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEI_WI@Z */
3603 /* ?find@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBA_K_W_K@Z */
3604 /* ?find@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEIGI@Z */
3605 /* ?find@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBA_KG_K@Z */
3606 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_find_ch
, 12)
3607 MSVCP_size_t __thiscall
MSVCP_basic_string_wchar_find_ch(
3608 const basic_string_wchar
*this, wchar_t ch
, MSVCP_size_t pos
)
3610 return MSVCP_basic_string_wchar_find_cstr_substr(this, &ch
, pos
, 1);
3613 /* ?rfind@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEIPB_WII@Z */
3614 /* ?rfind@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBA_KPEB_W_K1@Z */
3615 /* ?rfind@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEIPBGII@Z */
3616 /* ?rfind@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBA_KPEBG_K1@Z */
3617 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_rfind_cstr_substr
, 16)
3618 MSVCP_size_t __thiscall
MSVCP_basic_string_wchar_rfind_cstr_substr(
3619 const basic_string_wchar
*this, const wchar_t *find
, MSVCP_size_t pos
, MSVCP_size_t len
)
3621 const wchar_t *p
, *end
;
3623 TRACE("%p %s %lu %lu\n", this, debugstr_wn(find
, len
), pos
, len
);
3626 return pos
<this->size
? pos
: this->size
;
3628 if(len
> this->size
)
3629 return MSVCP_basic_string_wchar_npos
;
3631 if(pos
> this->size
-len
+1)
3632 pos
= this->size
-len
+1;
3633 end
= basic_string_wchar_const_ptr(this);
3634 for(p
=end
+pos
; p
>=end
; p
--) {
3635 if(*p
==*find
&& !MSVCP_char_traits_wchar_compare(p
, find
, len
))
3636 return p
-basic_string_wchar_const_ptr(this);
3639 return MSVCP_basic_string_wchar_npos
;
3642 /* ?rfind@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEIPB_WI@Z */
3643 /* ?rfind@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBA_KPEB_W_K@Z */
3644 /* ?rfind@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEIPBGI@Z */
3645 /* ?rfind@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBA_KPEBG_K@Z */
3646 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_rfind_cstr_off
, 12)
3647 MSVCP_size_t __thiscall
MSVCP_basic_string_wchar_rfind_cstr_off(
3648 const basic_string_wchar
*this, const wchar_t *find
, MSVCP_size_t pos
)
3650 return MSVCP_basic_string_wchar_rfind_cstr_substr(this, find
, pos
,
3651 MSVCP_char_traits_wchar_length(find
));
3654 /* ?rfind@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEIABV12@I@Z */
3655 /* ?rfind@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBA_KAEBV12@_K@Z */
3656 /* ?rfind@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEIABV12@I@Z */
3657 /* ?rfind@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBA_KAEBV12@_K@Z */
3658 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_rfind_off
, 12)
3659 MSVCP_size_t __thiscall
MSVCP_basic_string_wchar_rfind_off(
3660 const basic_string_wchar
*this, const basic_string_wchar
*find
, MSVCP_size_t off
)
3662 return MSVCP_basic_string_wchar_rfind_cstr_substr(this,
3663 basic_string_wchar_const_ptr(find
), off
, find
->size
);
3666 /* ?rfind@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEI_WI@Z */
3667 /* ?rfind@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBA_K_W_K@Z */
3668 /* ?rfind@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEIGI@Z */
3669 /* ?rfind@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBA_KG_K@Z */
3670 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_rfind_ch
, 12)
3671 MSVCP_size_t __thiscall
MSVCP_basic_string_wchar_rfind_ch(
3672 const basic_string_wchar
*this, wchar_t ch
, MSVCP_size_t pos
)
3674 return MSVCP_basic_string_wchar_rfind_cstr_substr(this, &ch
, pos
, 1);
3677 /* ?find_first_of@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEIPB_WII@Z */
3678 /* ?find_first_of@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBA_KPEB_W_K1@Z */
3679 /* ?find_first_of@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEIPBGII@Z */
3680 /* ?find_first_of@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBA_KPEBG_K1@Z */
3681 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_find_first_of_cstr_substr
, 16)
3682 MSVCP_size_t __thiscall
MSVCP_basic_string_wchar_find_first_of_cstr_substr(
3683 const basic_string_wchar
*this, const wchar_t *find
, MSVCP_size_t off
, MSVCP_size_t len
)
3685 const wchar_t *p
, *end
;
3687 TRACE("%p %p %lu %lu\n", this, find
, off
, len
);
3689 if(len
>0 && off
<this->size
) {
3690 end
= basic_string_wchar_const_ptr(this)+this->size
;
3691 for(p
=basic_string_wchar_const_ptr(this)+off
; p
<end
; p
++)
3692 if(MSVCP_char_traits_wchar_find(find
, len
, p
))
3693 return p
-basic_string_wchar_const_ptr(this);
3696 return MSVCP_basic_string_wchar_npos
;
3699 /* ?find_first_of@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEIABV12@I@Z */
3700 /* ?find_first_of@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBA_KAEBV12@_K@Z */
3701 /* ?find_first_of@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEIABV12@I@Z */
3702 /* ?find_first_of@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBA_KAEBV12@_K@Z */
3703 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_find_first_of
, 12)
3704 MSVCP_size_t __thiscall
MSVCP_basic_string_wchar_find_first_of(
3705 const basic_string_wchar
*this, const basic_string_wchar
*find
, MSVCP_size_t off
)
3707 return MSVCP_basic_string_wchar_find_first_of_cstr_substr(this,
3708 basic_string_wchar_const_ptr(find
), off
, find
->size
);
3711 /* ?find_first_of@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEIPB_WI@Z */
3712 /* ?find_first_of@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBA_KPEB_W_K@Z */
3713 /* ?find_first_of@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEIPBGI@Z */
3714 /* ?find_first_of@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBA_KPEBG_K@Z */
3715 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_find_first_of_cstr
, 12)
3716 MSVCP_size_t __thiscall
MSVCP_basic_string_wchar_find_first_of_cstr(
3717 const basic_string_wchar
*this, const wchar_t *find
, MSVCP_size_t off
)
3719 return MSVCP_basic_string_wchar_find_first_of_cstr_substr(
3720 this, find
, off
, MSVCP_char_traits_wchar_length(find
));
3723 /* ?find_first_of@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEI_WI@Z */
3724 /* ?find_first_of@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBA_K_W_K@Z */
3725 /* ?find_first_of@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEIGI@Z */
3726 /* ?find_first_of@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBA_KG_K@Z */
3727 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_find_first_of_ch
, 12)
3728 MSVCP_size_t __thiscall
MSVCP_basic_string_wchar_find_first_of_ch(
3729 const basic_string_wchar
*this, wchar_t ch
, MSVCP_size_t off
)
3731 return MSVCP_basic_string_wchar_find_first_of_cstr_substr(this, &ch
, off
, 1);
3734 /* ?find_first_not_of@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEIPB_WII@Z */
3735 /* ?find_first_not_of@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBA_KPEB_W_K1@Z */
3736 /* ?find_first_not_of@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEIPBGII@Z */
3737 /* ?find_first_not_of@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBA_KPEBG_K1@Z */
3738 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_find_first_not_of_cstr_substr
, 16)
3739 MSVCP_size_t __thiscall
MSVCP_basic_string_wchar_find_first_not_of_cstr_substr(
3740 const basic_string_wchar
*this, const wchar_t *find
, MSVCP_size_t off
, MSVCP_size_t len
)
3742 const wchar_t *p
, *end
;
3744 TRACE("%p %p %lu %lu\n", this, find
, off
, len
);
3746 if(off
<this->size
) {
3747 end
= basic_string_wchar_const_ptr(this)+this->size
;
3748 for(p
=basic_string_wchar_const_ptr(this)+off
; p
<end
; p
++)
3749 if(!MSVCP_char_traits_wchar_find(find
, len
, p
))
3750 return p
-basic_string_wchar_const_ptr(this);
3753 return MSVCP_basic_string_wchar_npos
;
3756 /* ?find_first_not_of@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEIABV12@I@Z */
3757 /* ?find_first_not_of@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBA_KAEBV12@_K@Z */
3758 /* ?find_first_not_of@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEIABV12@I@Z */
3759 /* ?find_first_not_of@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBA_KAEBV12@_K@Z */
3760 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_find_first_not_of
, 12)
3761 MSVCP_size_t __thiscall
MSVCP_basic_string_wchar_find_first_not_of(
3762 const basic_string_wchar
*this, const basic_string_wchar
*find
, MSVCP_size_t off
)
3764 return MSVCP_basic_string_wchar_find_first_not_of_cstr_substr(this,
3765 basic_string_wchar_const_ptr(find
), off
, find
->size
);
3768 /* ?find_first_not_of@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEIPB_WI@Z */
3769 /* ?find_first_not_of@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBA_KPEB_W_K@Z */
3770 /* ?find_first_not_of@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEIPBGI@Z */
3771 /* ?find_first_not_of@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBA_KPEBG_K@Z */
3772 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_find_first_not_of_cstr
, 12)
3773 MSVCP_size_t __thiscall
MSVCP_basic_string_wchar_find_first_not_of_cstr(
3774 const basic_string_wchar
*this, const wchar_t *find
, MSVCP_size_t off
)
3776 return MSVCP_basic_string_wchar_find_first_not_of_cstr_substr(
3777 this, find
, off
, MSVCP_char_traits_wchar_length(find
));
3780 /* ?find_first_not_of@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEI_WI@Z */
3781 /* ?find_first_not_of@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBA_K_W_K@Z */
3782 /* ?find_first_not_of@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEIGI@Z */
3783 /* ?find_first_not_of@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBA_KG_K@Z */
3784 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_find_first_not_of_ch
, 12)
3785 MSVCP_size_t __thiscall
MSVCP_basic_string_wchar_find_first_not_of_ch(
3786 const basic_string_wchar
*this, wchar_t ch
, MSVCP_size_t off
)
3788 return MSVCP_basic_string_wchar_find_first_not_of_cstr_substr(this, &ch
, off
, 1);
3791 /* ?find_last_of@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEIPB_WII@Z */
3792 /* ?find_last_of@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBA_KPEB_W_K1@Z */
3793 /* ?find_last_of@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEIPBGII@Z */
3794 /* ?find_last_of@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBA_KPEBG_K1@Z */
3795 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_find_last_of_cstr_substr
, 16)
3796 MSVCP_size_t __thiscall
MSVCP_basic_string_wchar_find_last_of_cstr_substr(
3797 const basic_string_wchar
*this, const wchar_t *find
, MSVCP_size_t off
, MSVCP_size_t len
)
3799 const wchar_t *p
, *beg
;
3801 TRACE("%p %p %lu %lu\n", this, find
, off
, len
);
3804 if(len
>0 && this->size
>0) {
3805 if(off
>= this->size
)
3808 beg
= basic_string_wchar_const_ptr(this);
3809 for(p
=beg
+off
; p
>=beg
; p
--)
3810 if(MSVCP_char_traits_wchar_find(find
, len
, p
))
3814 return MSVCP_basic_string_wchar_npos
;
3817 /* ?find_last_of@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEIABV12@I@Z */
3818 /* ?find_last_of@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBA_KAEBV12@_K@Z */
3819 /* ?find_last_of@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEIABV12@I@Z */
3820 /* ?find_last_of@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBA_KAEBV12@_K@Z */
3821 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_find_last_of
, 12)
3822 MSVCP_size_t __thiscall
MSVCP_basic_string_wchar_find_last_of(
3823 const basic_string_wchar
*this, const basic_string_wchar
*find
, MSVCP_size_t off
)
3825 return MSVCP_basic_string_wchar_find_last_of_cstr_substr(this,
3826 basic_string_wchar_const_ptr(find
), off
, find
->size
);
3829 /* ?find_last_of@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEIPB_WI@Z */
3830 /* ?find_last_of@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBA_KPEB_W_K@Z */
3831 /* ?find_last_of@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEIPBGI@Z */
3832 /* ?find_last_of@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBA_KPEBG_K@Z */
3833 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_find_last_of_cstr
, 12)
3834 MSVCP_size_t __thiscall
MSVCP_basic_string_wchar_find_last_of_cstr(
3835 const basic_string_wchar
*this, const wchar_t *find
, MSVCP_size_t off
)
3837 return MSVCP_basic_string_wchar_find_last_of_cstr_substr(
3838 this, find
, off
, MSVCP_char_traits_wchar_length(find
));
3841 /* ?find_last_of@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEI_WI@Z */
3842 /* ?find_last_of@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBA_K_W_K@Z */
3843 /* ?find_last_of@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEIGI@Z */
3844 /* ?find_last_of@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBA_KG_K@Z */
3845 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_find_last_of_ch
, 12)
3846 MSVCP_size_t __thiscall
MSVCP_basic_string_wchar_find_last_of_ch(
3847 const basic_string_wchar
*this, wchar_t ch
, MSVCP_size_t off
)
3849 return MSVCP_basic_string_wchar_find_last_of_cstr_substr(this, &ch
, off
, 1);
3852 /* ?find_last_not_of@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEIPB_WII@Z */
3853 /* ?find_last_not_of@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBA_KPEB_W_K1@Z */
3854 /* ?find_last_not_of@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEIPBGII@Z */
3855 /* ?find_last_not_of@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBA_KPEBG_K1@Z */
3856 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_find_last_not_of_cstr_substr
, 16)
3857 MSVCP_size_t __thiscall
MSVCP_basic_string_wchar_find_last_not_of_cstr_substr(
3858 const basic_string_wchar
*this, const wchar_t *find
, MSVCP_size_t off
, MSVCP_size_t len
)
3860 const wchar_t *p
, *beg
;
3862 TRACE("%p %p %lu %lu\n", this, find
, off
, len
);
3865 if(off
>= this->size
)
3868 beg
= basic_string_wchar_const_ptr(this);
3869 for(p
=beg
+off
; p
>=beg
; p
--)
3870 if(!MSVCP_char_traits_wchar_find(find
, len
, p
))
3874 return MSVCP_basic_string_wchar_npos
;
3877 /* ?find_last_not_of@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEIABV12@I@Z */
3878 /* ?find_last_not_of@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBA_KAEBV12@_K@Z */
3879 /* ?find_last_not_of@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEIABV12@I@Z */
3880 /* ?find_last_not_of@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBA_KAEBV12@_K@Z */
3881 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_find_last_not_of
, 12)
3882 MSVCP_size_t __thiscall
MSVCP_basic_string_wchar_find_last_not_of(
3883 const basic_string_wchar
*this, const basic_string_wchar
*find
, MSVCP_size_t off
)
3885 return MSVCP_basic_string_wchar_find_last_not_of_cstr_substr(this,
3886 basic_string_wchar_const_ptr(find
), off
, find
->size
);
3889 /* ?find_last_not_of@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEIPB_WI@Z */
3890 /* ?find_last_not_of@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBA_KPEB_W_K@Z */
3891 /* ?find_last_not_of@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEIPBGI@Z */
3892 /* ?find_last_not_of@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBA_KPEBG_K@Z */
3893 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_find_last_not_of_cstr
, 12)
3894 MSVCP_size_t __thiscall
MSVCP_basic_string_wchar_find_last_not_of_cstr(
3895 const basic_string_wchar
*this, const wchar_t *find
, MSVCP_size_t off
)
3897 return MSVCP_basic_string_wchar_find_last_not_of_cstr_substr(
3898 this, find
, off
, MSVCP_char_traits_wchar_length(find
));
3901 /* ?find_last_not_of@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEI_WI@Z */
3902 /* ?find_last_not_of@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBA_K_W_K@Z */
3903 /* ?find_last_not_of@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEIGI@Z */
3904 /* ?find_last_not_of@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBA_KG_K@Z */
3905 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_find_last_not_of_ch
, 12)
3906 MSVCP_size_t __thiscall
MSVCP_basic_string_wchar_find_last_not_of_ch(
3907 const basic_string_wchar
*this, wchar_t ch
, MSVCP_size_t off
)
3909 return MSVCP_basic_string_wchar_find_last_not_of_cstr_substr(this, &ch
, off
, 1);
3912 /* ?replace@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV12@IIPB_WI@Z */
3913 /* ?replace@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAAEAV12@_K0PEB_W0@Z */
3914 /* ?replace@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV12@IIPBGI@Z */
3915 /* ?replace@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAAEAV12@_K0PEBG0@Z */
3916 DEFINE_THISCALL_WRAPPER(basic_string_wchar_replace_cstr_len
, 20)
3917 basic_string_wchar
* __thiscall
basic_string_wchar_replace_cstr_len(basic_string_wchar
*this,
3918 MSVCP_size_t off
, MSVCP_size_t len
, const wchar_t *str
, MSVCP_size_t str_len
)
3920 MSVCP_size_t inside_pos
= -1;
3921 wchar_t *ptr
= basic_string_wchar_ptr(this);
3923 TRACE("%p %ld %ld %p %ld\n", this, off
, len
, str
, str_len
);
3925 if(this->size
< off
)
3926 MSVCP__String_base_Xran();
3928 if(len
> this->size
-off
)
3929 len
= this->size
-off
;
3931 if(MSVCP_basic_string_wchar_npos
-str_len
<= this->size
-len
)
3932 MSVCP__String_base_Xlen();
3934 if(basic_string_wchar_inside(this, str
))
3935 inside_pos
= str
-ptr
;
3938 basic_string_wchar_grow(this, this->size
-len
+str_len
, FALSE
);
3939 ptr
= basic_string_wchar_ptr(this);
3942 if(inside_pos
== -1) {
3943 memmove(ptr
+off
+str_len
, ptr
+off
+len
, (this->size
-off
-len
)*sizeof(wchar_t));
3944 memcpy(ptr
+off
, str
, str_len
*sizeof(wchar_t));
3945 } else if(len
>= str_len
) {
3946 memmove(ptr
+off
, ptr
+inside_pos
, str_len
*sizeof(wchar_t));
3947 memmove(ptr
+off
+str_len
, ptr
+off
+len
, (this->size
-off
-len
)*sizeof(wchar_t));
3951 memmove(ptr
+off
+str_len
, ptr
+off
+len
, (this->size
-off
-len
)*sizeof(wchar_t));
3953 if(inside_pos
< off
+len
) {
3954 size
= off
+len
-inside_pos
;
3957 memmove(ptr
+off
, ptr
+inside_pos
, size
*sizeof(wchar_t));
3963 memmove(ptr
+off
+size
, ptr
+off
+str_len
, (str_len
-size
)*sizeof(wchar_t));
3966 basic_string_wchar_eos(this, this->size
-len
+str_len
);
3970 /* ?replace@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV12@IIPB_W@Z */
3971 /* ?replace@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAAEAV12@_K0PEB_W@Z */
3972 /* ?replace@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV12@IIPBG@Z */
3973 /* ?replace@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAAEAV12@_K0PEBG@Z */
3974 DEFINE_THISCALL_WRAPPER(basic_string_wchar_replace_cstr
, 16)
3975 basic_string_wchar
* __thiscall
basic_string_wchar_replace_cstr(basic_string_wchar
*this,
3976 MSVCP_size_t off
, MSVCP_size_t len
, const wchar_t *str
)
3978 return basic_string_wchar_replace_cstr_len(this, off
, len
, str
,
3979 MSVCP_char_traits_wchar_length(str
));
3982 /* ?replace@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV12@IIABV12@II@Z */
3983 /* ?replace@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAAEAV12@_K0AEBV12@00@Z */
3984 /* ?replace@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV12@IIABV12@II@Z */
3985 /* ?replace@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAAEAV12@_K0AEBV12@00@Z */
3986 DEFINE_THISCALL_WRAPPER(basic_string_wchar_replace_substr
, 24)
3987 basic_string_wchar
* __thiscall
basic_string_wchar_replace_substr(basic_string_wchar
*this, MSVCP_size_t off
,
3988 MSVCP_size_t len
, const basic_string_wchar
*str
, MSVCP_size_t str_off
, MSVCP_size_t str_len
)
3990 if(str
->size
< str_off
)
3991 MSVCP__String_base_Xran();
3993 if(str_len
> str
->size
-str_off
)
3994 str_len
= str
->size
-str_off
;
3996 return basic_string_wchar_replace_cstr_len(this, off
, len
,
3997 basic_string_wchar_const_ptr(str
)+str_off
, str_len
);
4000 /* ?replace@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV12@IIABV12@@Z */
4001 /* ?replace@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAAEAV12@_K0AEBV12@@Z */
4002 /* ?replace@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV12@IIABV12@@Z */
4003 /* ?replace@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAAEAV12@_K0AEBV12@@Z */
4004 DEFINE_THISCALL_WRAPPER(basic_string_wchar_replace
, 16)
4005 basic_string_wchar
* __thiscall
basic_string_wchar_replace(basic_string_wchar
*this,
4006 MSVCP_size_t off
, MSVCP_size_t len
, const basic_string_wchar
*str
)
4008 return basic_string_wchar_replace_cstr_len(this, off
, len
,
4009 basic_string_wchar_const_ptr(str
), str
->size
);
4012 /* ?replace@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV12@III_W@Z */
4013 /* ?replace@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAAEAV12@_K00_W@Z */
4014 /* ?replace@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV12@IIIG@Z */
4015 /* ?replace@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAAEAV12@_K00G@Z */
4016 DEFINE_THISCALL_WRAPPER(basic_string_wchar_replace_ch
, 20)
4017 basic_string_wchar
* __thiscall
basic_string_wchar_replace_ch(basic_string_wchar
*this,
4018 MSVCP_size_t off
, MSVCP_size_t len
, MSVCP_size_t count
, wchar_t ch
)
4020 wchar_t *ptr
= basic_string_wchar_ptr(this);
4022 TRACE("%p %ld %ld %ld %c\n", this, off
, len
, count
, ch
);
4024 if(this->size
< off
)
4025 MSVCP__String_base_Xran();
4027 if(len
> this->size
-off
)
4028 len
= this->size
-off
;
4030 if(MSVCP_basic_string_wchar_npos
-count
<= this->size
-len
)
4031 MSVCP__String_base_Xlen();
4034 basic_string_wchar_grow(this, this->size
-len
+count
, FALSE
);
4035 ptr
= basic_string_wchar_ptr(this);
4038 memmove(ptr
+off
+count
, ptr
+off
+len
, (this->size
-off
-len
)*sizeof(wchar_t));
4039 MSVCP_char_traits_wchar_assignn(ptr
+off
, count
, ch
);
4040 basic_string_wchar_eos(this, this->size
-len
+count
);
4045 /* ?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 */
4046 /* ?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 */
4047 /* ?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 */
4048 /* ?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 */
4049 DEFINE_THISCALL_WRAPPER(basic_string_wchar_replace_iter_iter
, 36)
4050 basic_string_wchar
* __thiscall
basic_string_wchar_replace_iter_iter(basic_string_wchar
*this,
4051 String_iterator_wchar beg
, String_iterator_wchar end
,
4052 String_iterator_wchar res_beg
, String_iterator_wchar res_end
)
4054 String_iterator_wchar begin
= { this, basic_string_wchar_ptr(this) };
4055 return basic_string_wchar_replace_cstr_len(this,
4056 MSVCP_basic_string_wchar_Pdif(beg
, begin
), MSVCP_basic_string_wchar_Pdif(end
, beg
),
4057 res_beg
.pos
, MSVCP_basic_string_wchar_Pdif(res_end
, res_beg
));
4060 /* ?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 */
4061 /* ?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 */
4062 /* ?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 */
4063 /* ?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 */
4064 DEFINE_THISCALL_WRAPPER(basic_string_wchar_replace_iter_bstr
, 24)
4065 basic_string_wchar
* __thiscall
basic_string_wchar_replace_iter_bstr(basic_string_wchar
*this,
4066 String_iterator_wchar beg
, String_iterator_wchar end
, const basic_string_wchar
*str
)
4068 String_iterator_wchar begin
= { this, basic_string_wchar_ptr(this) };
4069 return basic_string_wchar_replace(this, MSVCP_basic_string_wchar_Pdif(beg
, begin
),
4070 MSVCP_basic_string_wchar_Pdif(end
, beg
), str
);
4073 /* ?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 */
4074 /* ?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 */
4075 /* ?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 */
4076 /* ?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 */
4077 DEFINE_THISCALL_WRAPPER(basic_string_wchar_replace_iter_ch
, 28)
4078 basic_string_wchar
* __thiscall
basic_string_wchar_replace_iter_ch(basic_string_wchar
*this,
4079 String_iterator_wchar beg
, String_iterator_wchar end
, MSVCP_size_t count
, wchar_t ch
)
4081 String_iterator_wchar begin
= { this, basic_string_wchar_ptr(this) };
4082 return basic_string_wchar_replace_ch(this, MSVCP_basic_string_wchar_Pdif(beg
, begin
),
4083 MSVCP_basic_string_wchar_Pdif(end
, beg
), count
, ch
);
4086 /* ?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 */
4087 /* ?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 */
4088 /* ?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 */
4089 /* ?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 */
4090 DEFINE_THISCALL_WRAPPER(basic_string_wchar_replace_iter_ptr_ptr
, 28)
4091 basic_string_wchar
* __thiscall
basic_string_wchar_replace_iter_ptr_ptr(basic_string_wchar
*this,
4092 String_iterator_wchar beg
, String_iterator_wchar end
,
4093 const wchar_t *res_beg
, const wchar_t *res_end
)
4095 String_iterator_wchar begin
= { this, basic_string_wchar_ptr(this) };
4096 return basic_string_wchar_replace_cstr_len(this, MSVCP_basic_string_wchar_Pdif(beg
, begin
),
4097 MSVCP_basic_string_wchar_Pdif(end
, beg
), res_beg
, res_end
-res_beg
);
4100 /* ?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 */
4101 /* ?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 */
4102 /* ?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 */
4103 /* ?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 */
4104 DEFINE_THISCALL_WRAPPER(basic_string_wchar_replace_iter_cstr
, 24)
4105 basic_string_wchar
* __thiscall
basic_string_wchar_replace_iter_cstr(basic_string_wchar
*this,
4106 String_iterator_wchar beg
, String_iterator_wchar end
, const wchar_t *str
)
4108 String_iterator_wchar begin
= { this, basic_string_wchar_ptr(this) };
4109 return basic_string_wchar_replace_cstr(this, MSVCP_basic_string_wchar_Pdif(beg
, begin
),
4110 MSVCP_basic_string_wchar_Pdif(end
, beg
), str
);
4113 /* ?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 */
4114 /* ?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 */
4115 /* ?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 */
4116 /* ?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 */
4117 DEFINE_THISCALL_WRAPPER(basic_string_wchar_replace_iter_cstr_len
, 28)
4118 basic_string_wchar
* __thiscall
basic_string_wchar_replace_iter_cstr_len(basic_string_wchar
*this,
4119 String_iterator_wchar beg
, String_iterator_wchar end
, const wchar_t *str
, MSVCP_size_t len
)
4121 String_iterator_wchar begin
= { this, basic_string_wchar_ptr(this) };
4122 return basic_string_wchar_replace_cstr_len(this, MSVCP_basic_string_wchar_Pdif(beg
, begin
),
4123 MSVCP_basic_string_wchar_Pdif(end
, beg
), str
, len
);
4126 /* ?insert@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV12@IABV12@@Z */
4127 /* ?insert@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAAEAV12@_KAEBV12@@Z */
4128 /* ?insert@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV12@IABV12@@Z */
4129 /* ?insert@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAAEAV12@_KAEBV12@@Z */
4130 DEFINE_THISCALL_WRAPPER(basic_string_wchar_insert
, 12)
4131 basic_string_wchar
* __thiscall
basic_string_wchar_insert(basic_string_wchar
*this,
4132 MSVCP_size_t off
, const basic_string_wchar
*str
)
4134 return basic_string_wchar_replace(this, off
, 0, str
);
4137 /* ?insert@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV12@IABV12@II@Z */
4138 /* ?insert@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAAEAV12@_KAEBV12@00@Z */
4139 /* ?insert@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV12@IABV12@II@Z */
4140 /* ?insert@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAAEAV12@_KAEBV12@00@Z */
4141 DEFINE_THISCALL_WRAPPER(basic_string_wchar_insert_substr
, 20)
4142 basic_string_wchar
* __thiscall
basic_string_wchar_insert_substr(
4143 basic_string_wchar
*this, MSVCP_size_t off
, const basic_string_wchar
*str
,
4144 MSVCP_size_t str_off
, MSVCP_size_t str_count
)
4146 return basic_string_wchar_replace_substr(this, off
, 0, str
, str_off
, str_count
);
4149 /* ?insert@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV12@IPB_W@Z */
4150 /* ?insert@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAAEAV12@_KPEB_W@Z */
4151 /* ?insert@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV12@IPBG@Z */
4152 /* ?insert@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAAEAV12@_KPEBG@Z */
4153 DEFINE_THISCALL_WRAPPER(basic_string_wchar_insert_cstr
, 12)
4154 basic_string_wchar
* __thiscall
basic_string_wchar_insert_cstr(
4155 basic_string_wchar
*this, MSVCP_size_t off
, const wchar_t *str
)
4157 return basic_string_wchar_replace_cstr(this, off
, 0, str
);
4160 /* ?insert@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV12@IPB_WI@Z */
4161 /* ?insert@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAAEAV12@_KPEB_W0@Z */
4162 /* ?insert@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV12@IPBGI@Z */
4163 /* ?insert@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAAEAV12@_KPEBG0@Z */
4164 DEFINE_THISCALL_WRAPPER(basic_string_wchar_insert_cstr_len
, 16)
4165 basic_string_wchar
* __thiscall
basic_string_wchar_insert_cstr_len(basic_string_wchar
*this,
4166 MSVCP_size_t off
, const wchar_t *str
, MSVCP_size_t str_len
)
4168 return basic_string_wchar_replace_cstr_len(this, off
, 0, str
, str_len
);
4171 /* ?insert@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV12@II_W@Z */
4172 /* ?insert@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAAEAV12@_K0_W@Z */
4173 /* ?insert@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV12@IIG@Z */
4174 /* ?insert@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAAEAV12@_K0G@Z */
4175 DEFINE_THISCALL_WRAPPER(basic_string_wchar_insert_chn
, 16)
4176 basic_string_wchar
* __thiscall
basic_string_wchar_insert_chn(basic_string_wchar
*this,
4177 MSVCP_size_t off
, MSVCP_size_t count
, wchar_t ch
)
4179 return basic_string_wchar_replace_ch(this, off
, 0, count
, ch
);
4182 /* ?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 */
4183 /* ?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 */
4184 /* ?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 */
4185 /* ?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 */
4186 DEFINE_THISCALL_WRAPPER(basic_string_wchar_insert_iter_chn
, 20)
4187 void __thiscall
basic_string_wchar_insert_iter_chn(basic_string_wchar
*this,
4188 String_iterator_wchar where
, MSVCP_size_t count
, wchar_t ch
)
4190 String_iterator_wchar iter
= { this, basic_string_wchar_ptr(this) };
4191 MSVCP_size_t off
= MSVCP_basic_string_wchar_Pdif(where
, iter
);
4193 basic_string_wchar_insert_chn(this, off
, count
, ch
);
4196 /* ?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 */
4197 /* ?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 */
4198 /* ?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 */
4199 /* ?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 */
4200 DEFINE_THISCALL_WRAPPER(basic_string_wchar_insert_iter_ch
, 20)
4201 String_iterator_wchar
* __thiscall
basic_string_wchar_insert_iter_ch(basic_string_wchar
*this,
4202 String_iterator_wchar
*ret
, String_iterator_wchar where
, wchar_t ch
)
4207 ret
->pos
= basic_string_wchar_ptr(this);
4208 off
= MSVCP_basic_string_wchar_Pdif(where
, *ret
);
4210 basic_string_wchar_insert_chn(this, off
, 1, ch
);
4211 ret
->pos
= basic_string_wchar_ptr(this)+off
;
4215 /* ?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 */
4216 /* ?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 */
4217 /* ?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 */
4218 /* ?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 */
4219 DEFINE_THISCALL_WRAPPER(basic_string_wchar_insert_iter_null
, 16)
4220 String_iterator_wchar
* __thiscall
basic_string_wchar_insert_iter_null(basic_string_wchar
*this,
4221 String_iterator_wchar
*ret
, String_iterator_wchar where
)
4223 return basic_string_wchar_insert_iter_ch(this, ret
, where
, 0);
4226 /* ?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 */
4227 /* ?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 */
4228 /* ?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 */
4229 /* ?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 */
4230 DEFINE_THISCALL_WRAPPER(basic_string_wchar_insert_iter_beg_end
, 28)
4231 void __thiscall
basic_string_wchar_insert_iter_beg_end(basic_string_wchar
*this,
4232 String_iterator_wchar where
, String_iterator_wchar beg
, String_iterator_wchar end
)
4234 basic_string_wchar_replace_iter_iter(this, where
, where
, beg
, end
);
4237 /* ?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 */
4238 /* ?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 */
4239 /* ?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 */
4240 /* ?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 */
4241 DEFINE_THISCALL_WRAPPER(basic_string_wchar_insert_iter_ptr_ptr
, 20)
4242 void __thiscall
basic_string_wchar_insert_iter_ptr_ptr(basic_string_wchar
*this,
4243 String_iterator_wchar where
, const wchar_t *beg
, const wchar_t *end
)
4245 basic_string_wchar_replace_iter_ptr_ptr(this, where
, where
, beg
, end
);
4248 /* ??A?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAA_WI@Z */
4249 /* ??A?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAAEA_W_K@Z */
4250 /* ??A?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAGI@Z */
4251 /* ??A?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAAEAG_K@Z */
4252 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_operator_at
, 8)
4253 wchar_t* __thiscall
MSVCP_basic_string_wchar_operator_at(
4254 basic_string_wchar
*this, MSVCP_size_t pos
)
4256 TRACE("%p %lu\n", this, pos
);
4258 assert(this->size
>= pos
);
4259 return basic_string_wchar_ptr(this)+pos
;
4262 /* ??A?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEAB_WI@Z */
4263 /* ??A?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBAAEB_W_K@Z */
4264 /* ??A?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEABGI@Z */
4265 /* ??A?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBAAEBG_K@Z */
4266 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_const_operator_at
, 8)
4267 const wchar_t* __thiscall
MSVCP_basic_string_wchar_const_operator_at(
4268 const basic_string_wchar
*this, MSVCP_size_t pos
)
4270 TRACE("%p %lu\n", this, pos
);
4272 assert(this->size
>= pos
);
4273 return basic_string_wchar_const_ptr(this)+pos
;
4276 /* ??A?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAA_WU_Size_type_nosscl@01@@Z */
4277 /* ??A?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAAEA_WU_Size_type_nosscl@01@@Z */
4278 /* ??A?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAGU_Size_type_nosscl@01@@Z */
4279 /* ??A?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAAEAGU_Size_type_nosscl@01@@Z */
4280 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_operator_at_noverify
, 8)
4281 wchar_t* __thiscall
MSVCP_basic_string_wchar_operator_at_noverify(
4282 basic_string_wchar
*this, size_t_noverify pos
)
4284 TRACE("%p %lu\n", this, pos
.val
);
4285 return basic_string_wchar_ptr(this)+pos
.val
;
4288 /* ??A?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEAB_WU_Size_type_nosscl@01@@Z */
4289 /* ??A?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBAAEB_WU_Size_type_nosscl@01@@Z */
4290 /* ??A?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEABGU_Size_type_nosscl@01@@Z */
4291 /* ??A?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBAAEBGU_Size_type_nosscl@01@@Z */
4292 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_operator_const_at_noverify
, 8)
4293 const wchar_t* __thiscall
MSVCP_basic_string_wchar_operator_const_at_noverify(
4294 const basic_string_wchar
*this, size_t_noverify pos
)
4296 TRACE("%p %lu\n", this, pos
.val
);
4297 return basic_string_wchar_const_ptr(this)+pos
.val
;
4300 /* ?at@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAA_WI@Z */
4301 /* ?at@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAAEA_W_K@Z */
4302 /* ?at@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAGI@Z */
4303 /* ?at@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAAEAG_K@Z */
4304 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_at
, 8)
4305 wchar_t* __thiscall
MSVCP_basic_string_wchar_at(
4306 basic_string_wchar
*this, MSVCP_size_t pos
)
4308 TRACE("%p %lu\n", this, pos
);
4310 if(this->size
<= pos
)
4311 MSVCP__String_base_Xran();
4313 return basic_string_wchar_ptr(this)+pos
;
4316 /* ?at@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEAB_WI@Z */
4317 /* ?at@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBAAEB_W_K@Z */
4318 /* ?at@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEABGI@Z */
4319 /* ?at@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBAAEBG_K@Z */
4320 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_const_at
, 8)
4321 const wchar_t* __thiscall
MSVCP_basic_string_wchar_const_at(
4322 const basic_string_wchar
*this, MSVCP_size_t pos
)
4324 TRACE("%p %lu\n", this, pos
);
4326 if(this->size
<= pos
)
4327 MSVCP__String_base_Xran();
4329 return basic_string_wchar_const_ptr(this)+pos
;
4332 /* ?resize@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEXI_W@Z */
4333 /* ?resize@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAX_K_W@Z */
4334 /* ?resize@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEXIG@Z */
4335 /* ?resize@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAX_KG@Z */
4336 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_resize_ch
, 12)
4337 void __thiscall
MSVCP_basic_string_wchar_resize_ch(
4338 basic_string_wchar
*this, MSVCP_size_t size
, wchar_t ch
)
4340 TRACE("%p %lu %c\n", this, size
, ch
);
4342 if(size
<= this->size
)
4343 MSVCP_basic_string_wchar_erase(this, size
, this->size
);
4345 MSVCP_basic_string_wchar_append_len_ch(this, size
-this->size
, ch
);
4348 /* ?resize@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEXI@Z */
4349 /* ?resize@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAX_K@Z */
4350 /* ?resize@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEXI@Z */
4351 /* ?resize@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAX_K@Z */
4352 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_resize
, 8)
4353 void __thiscall
MSVCP_basic_string_wchar_resize(
4354 basic_string_wchar
*this, MSVCP_size_t size
)
4356 MSVCP_basic_string_wchar_resize_ch(this, size
, '\0');
4359 /* ?clear@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEXXZ */
4360 /* ?clear@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAXXZ */
4361 /* ?clear@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEXXZ */
4362 /* ?clear@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAXXZ */
4363 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_clear
, 4)
4364 void __thiscall
MSVCP_basic_string_wchar_clear(basic_string_wchar
*this)
4366 basic_string_wchar_eos(this, 0);
4369 /* ?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 */
4370 /* ?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 */
4371 /* ?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 */
4372 /* ?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 */
4373 /* ?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 */
4374 /* ?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 */
4375 /* ?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 */
4376 /* ?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 */
4377 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_begin
, 8)
4378 String_iterator_wchar
* __thiscall
MSVCP_basic_string_wchar_begin(
4379 basic_string_wchar
*this, String_iterator_wchar
*ret
)
4381 TRACE("%p\n", this);
4384 ret
->pos
= basic_string_wchar_const_ptr(this);
4388 /* ?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 */
4389 /* ?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 */
4390 /* ?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 */
4391 /* ?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 */
4392 /* ?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 */
4393 /* ?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 */
4394 /* ?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 */
4395 /* ?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 */
4396 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_end
, 8)
4397 String_iterator_wchar
* __thiscall
MSVCP_basic_string_wchar_end(
4398 basic_string_wchar
*this, String_iterator_wchar
*ret
)
4400 TRACE("%p\n", this);
4403 ret
->pos
= basic_string_wchar_const_ptr(this)+this->size
;
4407 /* ?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 */
4408 /* ?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 */
4409 /* ?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 */
4410 /* ?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 */
4411 /* ?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 */
4412 /* ?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 */
4413 /* ?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 */
4414 /* ?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 */
4415 /* ?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 */
4416 /* ?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 */
4417 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_rbegin
, 8)
4418 String_reverse_iterator_wchar
* __thiscall
MSVCP_basic_string_wchar_rbegin(
4419 basic_string_wchar
*this, String_reverse_iterator_wchar
*ret
)
4421 TRACE("%p\n", this);
4423 #if _MSVCP_VER == 80
4427 ret
->pos
= basic_string_wchar_const_ptr(this)+this->size
;
4431 /* ?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 */
4432 /* ?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 */
4433 /* ?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 */
4434 /* ?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 */
4435 /* ?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 */
4436 /* ?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 */
4437 /* ?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 */
4438 /* ?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 */
4439 /* ?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 */
4440 /* ?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 */
4441 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_rend
, 8)
4442 String_reverse_iterator_wchar
* __thiscall
MSVCP_basic_string_wchar_rend(
4443 basic_string_wchar
*this, String_reverse_iterator_wchar
*ret
)
4445 TRACE("%p\n", this);
4447 #if _MSVCP_VER == 80
4451 ret
->pos
= basic_string_wchar_const_ptr(this);
4455 /* _String_val class */
4456 /* ??_F?$_String_val@DV?$allocator@D@std@@@std@@QAEXXZ */
4457 /* ??_F?$_String_val@DV?$allocator@D@std@@@std@@QEAAXXZ */
4458 /* ??_F?$_String_val@GV?$allocator@G@std@@@std@@QAEXXZ */
4459 /* ??_F?$_String_val@GV?$allocator@G@std@@@std@@QEAAXXZ */
4460 /* ??_F?$_String_val@_WV?$allocator@_W@std@@@std@@QAEXXZ */
4461 /* ??_F?$_String_val@_WV?$allocator@_W@std@@@std@@QEAAXXZ */
4462 DEFINE_THISCALL_WRAPPER(_String_val_ctor
, 4)
4463 void* __thiscall
_String_val_ctor(void *this)
4465 TRACE("%p\n", this);
4469 /* ??0?$_String_val@DV?$allocator@D@std@@@std@@IAE@V?$allocator@D@1@@Z */
4470 /* ??0?$_String_val@DV?$allocator@D@std@@@std@@IEAA@V?$allocator@D@1@@Z */
4471 /* ??0?$_String_val@GV?$allocator@G@std@@@std@@IAE@V?$allocator@G@1@@Z */
4472 /* ??0?$_String_val@GV?$allocator@G@std@@@std@@IEAA@V?$allocator@G@1@@Z */
4473 /* ??0?$_String_val@_WV?$allocator@_W@std@@@std@@IAE@V?$allocator@_W@1@@Z */
4474 /* ??0?$_String_val@_WV?$allocator@_W@std@@@std@@IEAA@V?$allocator@_W@1@@Z */
4475 /* ??0?$_String_val@DV?$allocator@D@std@@@std@@QAE@ABV01@@Z */
4476 /* ??0?$_String_val@DV?$allocator@D@std@@@std@@QEAA@AEBV01@@Z */
4477 /* ??0?$_String_val@GV?$allocator@G@std@@@std@@QAE@ABV01@@Z */
4478 /* ??0?$_String_val@GV?$allocator@G@std@@@std@@QEAA@AEBV01@@Z */
4479 /* ??0?$_String_val@_WV?$allocator@_W@std@@@std@@QAE@ABV01@@Z */
4480 /* ??0?$_String_val@_WV?$allocator@_W@std@@@std@@QEAA@AEBV01@@Z */
4481 /* ??4?$_String_val@DV?$allocator@D@std@@@std@@QAEAAV01@ABV01@@Z */
4482 /* ??4?$_String_val@DV?$allocator@D@std@@@std@@QEAAAEAV01@AEBV01@@Z */
4483 /* ??4?$_String_val@GV?$allocator@G@std@@@std@@QAEAAV01@ABV01@@Z */
4484 /* ??4?$_String_val@GV?$allocator@G@std@@@std@@QEAAAEAV01@AEBV01@@Z */
4485 /* ??4?$_String_val@_WV?$allocator@_W@std@@@std@@QAEAAV01@ABV01@@Z */
4486 /* ??4?$_String_val@_WV?$allocator@_W@std@@@std@@QEAAAEAV01@AEBV01@@Z */
4487 /* ??4?$_String_val@DV?$allocator@D@std@@@std@@QAEAAV01@ABV01@@Z */
4488 DEFINE_THISCALL_WRAPPER(_String_val_null_ctor
, 8)
4489 void* __thiscall
_String_val_null_ctor(void *this, const void *misc
)
4491 TRACE("%p %p\n", this, misc
);