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
);
33 #define STRING_ALLOCATOR(this) ((this)->allocator)
34 #elif _MSVCP_VER == 100
35 #define STRING_ALLOCATOR(this) (&(this)->allocator)
37 #define STRING_ALLOCATOR(this) NULL
40 /* size_t_noverify structure */
50 /* char_traits<char> */
51 /* ?assign@?$char_traits@D@std@@SAXAADABD@Z */
52 /* ?assign@?$char_traits@D@std@@SAXAEADAEBD@Z */
53 void CDECL
MSVCP_char_traits_char_assign(char *ch
, const char *assign
)
58 /* ?eq@?$char_traits@D@std@@SA_NABD0@Z */
59 /* ?eq@?$char_traits@D@std@@SA_NAEBD0@Z */
60 MSVCP_bool CDECL
MSVCP_char_traits_char_eq(const char *ch1
, const char *ch2
)
65 /* ?lt@?$char_traits@D@std@@SA_NABD0@Z */
66 /* ?lt@?$char_traits@D@std@@SA_NAEBD0@Z */
67 MSVCP_bool CDECL
MSVCP_char_traits_lt(const char *ch1
, const char *ch2
)
72 /* ?compare@?$char_traits@D@std@@SAHPBD0I@Z */
73 /* ?compare@?$char_traits@D@std@@SAHPEBD0_K@Z */
74 int CDECL
MSVCP_char_traits_char_compare(
75 const char *s1
, const char *s2
, MSVCP_size_t count
)
77 int ret
= memcmp(s1
, s2
, count
);
78 return (ret
>0 ? 1 : (ret
<0 ? -1 : 0));
81 /* ?length@?$char_traits@D@std@@SAIPBD@Z */
82 /* ?length@?$char_traits@D@std@@SA_KPEBD@Z */
83 MSVCP_size_t CDECL
MSVCP_char_traits_char_length(const char *str
)
88 /* ?_Copy_s@?$char_traits@D@std@@SAPADPADIPBDI@Z */
89 /* ?_Copy_s@?$char_traits@D@std@@SAPEADPEAD_KPEBD1@Z */
90 char* CDECL
MSVCP_char_traits_char__Copy_s(char *dest
,
91 MSVCP_size_t size
, const char *src
, MSVCP_size_t count
)
93 memcpy_s(dest
, size
, src
, count
);
97 /* ?copy@?$char_traits@D@std@@SAPADPADPBDI@Z */
98 /* ?copy@?$char_traits@D@std@@SAPEADPEADPEBD_K@Z */
99 char* CDECL
MSVCP_char_traits_char_copy(
100 char *dest
, const char *src
, MSVCP_size_t count
)
102 return MSVCP_char_traits_char__Copy_s(dest
, count
, src
, count
);
105 /* ?find@?$char_traits@D@std@@SAPBDPBDIABD@Z */
106 /* ?find@?$char_traits@D@std@@SAPEBDPEBD_KAEBD@Z */
107 const char * CDECL
MSVCP_char_traits_char_find(
108 const char *str
, MSVCP_size_t range
, const char *c
)
110 return memchr(str
, *c
, range
);
113 /* ?_Move_s@?$char_traits@D@std@@SAPADPADIPBDI@Z */
114 /* ?_Move_s@?$char_traits@D@std@@SAPEADPEAD_KPEBD1@Z */
115 char* CDECL
MSVCP_char_traits_char__Move_s(char *dest
,
116 MSVCP_size_t size
, const char *src
, MSVCP_size_t count
)
118 memmove_s(dest
, size
, src
, count
);
122 /* ?move@?$char_traits@D@std@@SAPADPADPBDI@Z */
123 /* ?move@?$char_traits@D@std@@SAPEADPEADPEBD_K@Z */
124 char* CDECL
MSVCP_char_traits_char_move(
125 char *dest
, const char *src
, MSVCP_size_t count
)
127 return MSVCP_char_traits_char__Move_s(dest
, count
, src
, count
);
130 /* ?assign@?$char_traits@D@std@@SAPADPADID@Z */
131 /* ?assign@?$char_traits@D@std@@SAPEADPEAD_KD@Z */
132 char* CDECL
MSVCP_char_traits_char_assignn(char *str
, MSVCP_size_t num
, char c
)
134 return memset(str
, c
, num
);
137 /* ?to_char_type@?$char_traits@D@std@@SADABH@Z */
138 /* ?to_char_type@?$char_traits@D@std@@SADAEBH@Z */
139 char CDECL
MSVCP_char_traits_char_to_char_type(const int *i
)
144 /* ?to_int_type@?$char_traits@D@std@@SAHABD@Z */
145 /* ?to_int_type@?$char_traits@D@std@@SAHAEBD@Z */
146 int CDECL
MSVCP_char_traits_char_to_int_type(const char *ch
)
148 return (unsigned char)*ch
;
151 /* ?eq_int_type@?$char_traits@D@std@@SA_NABH0@Z */
152 /* ?eq_int_type@?$char_traits@D@std@@SA_NAEBH0@Z */
153 MSVCP_bool CDECL
MSVCP_char_traits_char_eq_int_type(const int *i1
, const int *i2
)
158 /* ?eof@?$char_traits@D@std@@SAHXZ */
159 int CDECL
MSVCP_char_traits_char_eof(void)
164 /* ?not_eof@?$char_traits@D@std@@SAHABH@Z */
165 /* ?not_eof@?$char_traits@D@std@@SAHAEBH@Z */
166 int CDECL
MSVCP_char_traits_char_not_eof(int *in
)
168 return (*in
==EOF
? !EOF
: *in
);
172 /* char_traits<wchar_t> */
173 /* ?assign@?$char_traits@_W@std@@SAXAA_WAB_W@Z */
174 /* ?assign@?$char_traits@_W@std@@SAXAEA_WAEB_W@Z */
175 void CDECL
MSVCP_char_traits_wchar_assign(wchar_t *ch
,
176 const wchar_t *assign
)
181 /* ?eq@?$char_traits@_W@std@@SA_NAB_W0@Z */
182 /* ?eq@?$char_traits@_W@std@@SA_NAEB_W0@Z */
183 MSVCP_bool CDECL
MSVCP_char_traits_wchar_eq(wchar_t *ch1
, wchar_t *ch2
)
188 /* ?lt@?$char_traits@_W@std@@SA_NAB_W0@Z */
189 /* ?lt@?$char_traits@_W@std@@SA_NAEB_W0@Z */
190 MSVCP_bool CDECL
MSVCP_char_traits_wchar_lt(const wchar_t *ch1
,
196 /* ?compare@?$char_traits@_W@std@@SAHPB_W0I@Z */
197 /* ?compare@?$char_traits@_W@std@@SAHPEB_W0_K@Z */
198 int CDECL
MSVCP_char_traits_wchar_compare(const wchar_t *s1
,
199 const wchar_t *s2
, MSVCP_size_t count
)
201 int ret
= memcmp(s1
, s2
, count
* sizeof(wchar_t));
202 return (ret
>0 ? 1 : (ret
<0 ? -1 : 0));
205 /* ?length@?$char_traits@_W@std@@SAIPB_W@Z */
206 /* ?length@?$char_traits@_W@std@@SA_KPEB_W@Z */
207 MSVCP_size_t CDECL
MSVCP_char_traits_wchar_length(const wchar_t *str
)
209 return wcslen((WCHAR
*)str
);
212 /* ?_Copy_s@?$char_traits@_W@std@@SAPA_WPA_WIPB_WI@Z */
213 /* ?_Copy_s@?$char_traits@_W@std@@SAPEA_WPEA_W_KPEB_W1@Z */
214 wchar_t* CDECL
MSVCP_char_traits_wchar__Copy_s(wchar_t *dest
,
215 MSVCP_size_t size
, const wchar_t *src
, MSVCP_size_t count
)
217 memcpy_s(dest
, size
* sizeof(wchar_t), src
, count
* sizeof(wchar_t));
221 /* ?copy@?$char_traits@_W@std@@SAPA_WPA_WPB_WI@Z */
222 /* ?copy@?$char_traits@_W@std@@SAPEA_WPEA_WPEB_W_K@Z */
223 wchar_t* CDECL
MSVCP_char_traits_wchar_copy(wchar_t *dest
,
224 const wchar_t *src
, MSVCP_size_t count
)
226 return MSVCP_char_traits_wchar__Copy_s(dest
, count
, src
, count
);
229 /* ?find@?$char_traits@_W@std@@SAPB_WPB_WIAB_W@Z */
230 /* ?find@?$char_traits@_W@std@@SAPEB_WPEB_W_KAEB_W@Z */
231 const wchar_t* CDECL
MSVCP_char_traits_wchar_find(
232 const wchar_t *str
, MSVCP_size_t range
, const wchar_t *c
)
236 for(i
=0; i
<range
; i
++)
243 /* ?_Move_s@?$char_traits@_W@std@@SAPA_WPA_WIPB_WI@Z */
244 /* ?_Move_s@?$char_traits@_W@std@@SAPEA_WPEA_W_KPEB_W1@Z */
245 wchar_t* CDECL
MSVCP_char_traits_wchar__Move_s(wchar_t *dest
,
246 MSVCP_size_t size
, const wchar_t *src
, MSVCP_size_t count
)
248 memmove_s(dest
, size
* sizeof(wchar_t), src
, count
* sizeof(wchar_t));
252 /* ?move@?$char_traits@_W@std@@SAPA_WPA_WPB_WI@Z */
253 /* ?move@?$char_traits@_W@std@@SAPEA_WPEA_WPEB_W_K@Z */
254 wchar_t* CDECL
MSVCP_char_traits_wchar_move(wchar_t *dest
,
255 const wchar_t *src
, MSVCP_size_t count
)
257 return MSVCP_char_traits_wchar__Move_s(dest
, count
, src
, count
);
260 /* ?assign@?$char_traits@_W@std@@SAPA_WPA_WI_W@Z */
261 /* ?assign@?$char_traits@_W@std@@SAPEA_WPEA_W_K_W@Z */
262 wchar_t* CDECL
MSVCP_char_traits_wchar_assignn(wchar_t *str
,
263 MSVCP_size_t num
, wchar_t c
)
273 /* ?to_char_type@?$char_traits@_W@std@@SA_WABG@Z */
274 /* ?to_char_type@?$char_traits@_W@std@@SA_WAEBG@Z */
275 wchar_t CDECL
MSVCP_char_traits_wchar_to_char_type(const unsigned short *i
)
280 /* ?to_int_type@?$char_traits@_W@std@@SAGAB_W@Z */
281 /* ?to_int_type@?$char_traits@_W@std@@SAGAEB_W@Z */
282 unsigned short CDECL
MSVCP_char_traits_wchar_to_int_type(const wchar_t *ch
)
287 /* ?eq_int_type@?$char_traits@_W@std@@SA_NABG0@Z */
288 /* ?eq_int_type@?$char_traits@_W@std@@SA_NAEBG0@Z */
289 MSVCP_bool CDECL
MSVCP_char_traits_wchar_eq_int_tpe(const unsigned short *i1
,
290 const unsigned short *i2
)
295 /* ?eof@?$char_traits@_W@std@@SAGXZ */
296 unsigned short CDECL
MSVCP_char_traits_wchar_eof(void)
301 /* ?not_eof@?$char_traits@_W@std@@SAGABG@Z */
302 /* ?not_eof@?$char_traits@_W@std@@SAGAEBG@Z */
303 unsigned short CDECL
MSVCP_char_traits_wchar_not_eof(const unsigned short *in
)
305 return (*in
==WEOF
? !WEOF
: *in
);
309 /* char_traits<unsigned short> */
310 /* ?assign@?$char_traits@G@std@@SAXAAGABG@Z */
311 /* ?assign@?$char_traits@G@std@@SAXAEAGAEBG@Z */
312 void CDECL
MSVCP_char_traits_short_assign(unsigned short *ch
,
313 const unsigned short *assign
)
318 /* ?eq@?$char_traits@G@std@@SA_NABG0@Z */
319 /* ?eq@?$char_traits@G@std@@SA_NAEBG0@Z */
320 MSVCP_bool CDECL
MSVCP_char_traits_short_eq(const unsigned short *ch1
,
321 const unsigned short *ch2
)
326 /* ?lt@?$char_traits@G@std@@SA_NABG0@Z */
327 /* ?lt@?$char_traits@G@std@@SA_NAEBG0@Z */
328 MSVCP_bool CDECL
MSVCP_char_traits_short_lt(const unsigned short *ch1
,
329 const unsigned short *ch2
)
334 /* ?compare@?$char_traits@G@std@@SAHPBG0I@Z */
335 /* ?compare@?$char_traits@G@std@@SAHPEBG0_K@Z */
336 int CDECL
MSVCP_char_traits_short_compare(const unsigned short *s1
,
337 const unsigned short *s2
, MSVCP_size_t count
)
341 for(i
=0; i
<count
; i
++)
343 return (s1
[i
] < s2
[i
] ? -1 : 1);
348 /* ?length@?$char_traits@G@std@@SAIPBG@Z */
349 /* ?length@?$char_traits@G@std@@SA_KPEBG@Z */
350 MSVCP_size_t CDECL
MSVCP_char_traits_short_length(const unsigned short *str
)
354 for(len
=0; str
[len
]; len
++);
359 /* ?_Copy_s@?$char_traits@G@std@@SAPAGPAGIPBGI@Z */
360 /* ?_Copy_s@?$char_traits@G@std@@SAPEAGPEAG_KPEBG1@Z */
361 unsigned short * CDECL
MSVCP_char_traits_short__Copy_s(unsigned short *dest
,
362 MSVCP_size_t size
, const unsigned short *src
, MSVCP_size_t count
)
364 memcpy_s(dest
, size
* sizeof(unsigned short), src
, count
* sizeof(unsigned short));
368 /* ?copy@?$char_traits@G@std@@SAPAGPAGPBGI@Z */
369 /* ?copy@?$char_traits@G@std@@SAPEAGPEAGPEBG_K@Z */
370 unsigned short* CDECL
MSVCP_char_traits_short_copy(unsigned short *dest
,
371 const unsigned short *src
, MSVCP_size_t count
)
373 return MSVCP_char_traits_short__Copy_s(dest
, count
, src
, count
);
376 /* ?find@?$char_traits@G@std@@SAPBGPBGIABG@Z */
377 /* ?find@?$char_traits@G@std@@SAPEBGPEBG_KAEBG@Z */
378 const unsigned short* CDECL
MSVCP_char_traits_short_find(
379 const unsigned short *str
, MSVCP_size_t range
, const unsigned short *c
)
383 for(i
=0; i
<range
; i
++)
390 /* ?_Move_s@?$char_traits@G@std@@SAPAGPAGIPBGI@Z */
391 /* ?_Move_s@?$char_traits@G@std@@SAPEAGPEAG_KPEBG1@Z */
392 unsigned short* CDECL
MSVCP_char_traits_short__Move_s(unsigned short *dest
,
393 MSVCP_size_t size
, const unsigned short *src
, MSVCP_size_t count
)
395 memmove_s(dest
, size
* sizeof(unsigned short), src
, count
* sizeof(unsigned short));
399 /* ?move@?$char_traits@G@std@@SAPAGPAGPBGI@Z */
400 /* ?move@?$char_traits@G@std@@SAPEAGPEAGPEBG_K@Z */
401 unsigned short* CDECL
MSVCP_char_traits_short_move(unsigned short *dest
,
402 const unsigned short *src
, MSVCP_size_t count
)
404 return MSVCP_char_traits_short__Move_s(dest
, count
, src
, count
);
407 /* ?assign@?$char_traits@G@std@@SAPAGPAGIG@Z */
408 /* ?assign@?$char_traits@G@std@@SAPEAGPEAG_KG@Z */
409 unsigned short* CDECL
MSVCP_char_traits_short_assignn(unsigned short *str
,
410 MSVCP_size_t num
, unsigned short c
)
420 /* ?to_char_type@?$char_traits@G@std@@SAGABG@Z */
421 /* ?to_char_type@?$char_traits@G@std@@SAGAEBG@Z */
422 unsigned short CDECL
MSVCP_char_traits_short_to_char_type(const unsigned short *i
)
427 /* ?to_int_type@?$char_traits@G@std@@SAGABG@Z */
428 /* ?to_int_type@?$char_traits@G@std@@SAGAEBG@Z */
429 unsigned short CDECL
MSVCP_char_traits_short_to_int_type(const unsigned short *ch
)
434 /* ?eq_int_type@?$char_traits@G@std@@SA_NABG0@Z */
435 /* ?eq_int_type@?$char_traits@G@std@@SA_NAEBG0@Z */
436 MSVCP_bool CDECL
MSVCP_char_traits_short_eq_int_type(unsigned short *i1
,
442 /* ?eof@?$char_traits@G@std@@SAGXZ */
443 unsigned short CDECL
MSVCP_char_traits_short_eof(void)
448 /* ?not_eof@?$char_traits@G@std@@SAGABG@Z */
449 /* ?not_eof@?$char_traits@G@std@@SAGAEBG@Z */
450 unsigned short CDECL
MSVCP_char_traits_short_not_eof(const unsigned short *in
)
452 return (*in
==(unsigned short)-1 ? 0 : *in
);
457 /* ?_Xlen@_String_base@std@@SAXXZ */
458 void CDECL
MSVCP__String_base_Xlen(void)
460 static const char msg
[] = "string too long";
463 throw_exception(EXCEPTION_LENGTH_ERROR
, msg
);
466 /* ?_Xlen@_String_base@std@@QBEXXZ */
467 DEFINE_THISCALL_WRAPPER(_String_base__Xlen
, 4)
468 void __thiscall
_String_base__Xlen(const void/*_String_base*/ *this)
470 MSVCP__String_base_Xlen();
473 /* ?_Xran@_String_base@std@@SAXXZ */
474 void CDECL
MSVCP__String_base_Xran(void)
476 static const char msg
[] = "invalid string position";
479 throw_exception(EXCEPTION_OUT_OF_RANGE
, msg
);
482 /* ?_Xran@_String_base@std@@QBEXXZ */
483 DEFINE_THISCALL_WRAPPER(_String_base__Xran
, 4)
484 void __thiscall
_String_base__Xran(const void/*_String_base*/ *this)
486 MSVCP__String_base_Xran();
489 /* ?_Xinvarg@_String_base@std@@SAXXZ */
490 void CDECL
MSVCP__String_base_Xinvarg(void)
492 static const char msg
[] = "invalid string argument";
495 throw_exception(EXCEPTION_INVALID_ARGUMENT
, msg
);
499 /* basic_string<char, char_traits<char>, allocator<char>> */
500 /* ?npos@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@2IB */
501 /* ?npos@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@2_KB */
502 const MSVCP_size_t MSVCP_basic_string_char_npos
= -1;
504 /* ?_Myptr@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IAEPADXZ */
505 /* ?_Myptr@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IEAAPEADXZ */
506 DEFINE_THISCALL_WRAPPER(basic_string_char_ptr
, 4)
507 char* __thiscall
basic_string_char_ptr(basic_string_char
*this)
509 if(this->res
< BUF_SIZE_CHAR
)
510 return this->data
.buf
;
511 return this->data
.ptr
;
514 /* ?_Myptr@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IBEPBDXZ */
515 /* ?_Myptr@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IEBAPEBDXZ */
516 DEFINE_THISCALL_WRAPPER(basic_string_char_const_ptr
, 4)
517 const char* __thiscall
basic_string_char_const_ptr(const basic_string_char
*this)
519 if(this->res
< BUF_SIZE_CHAR
)
520 return this->data
.buf
;
521 return this->data
.ptr
;
524 /* ?_Eos@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IAEXI@Z */
525 /* ?_Eos@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IEAAX_K@Z */
526 DEFINE_THISCALL_WRAPPER(basic_string_char_eos
, 8)
527 void __thiscall
basic_string_char_eos(basic_string_char
*this, MSVCP_size_t len
)
529 static const char nullbyte
= '\0';
532 MSVCP_char_traits_char_assign(basic_string_char_ptr(this)+len
, &nullbyte
);
535 /* ?_Inside@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IAE_NPBD@Z */
536 /* ?_Inside@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IEAA_NPEBD@Z */
537 DEFINE_THISCALL_WRAPPER(basic_string_char_inside
, 8)
538 MSVCP_bool __thiscall
basic_string_char_inside(
539 basic_string_char
*this, const char *ptr
)
541 char *cstr
= basic_string_char_ptr(this);
543 return ptr
>=cstr
&& ptr
<cstr
+this->size
;
546 /* ?_Tidy@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IAEX_NI@Z */
547 /* ?_Tidy@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IEAAX_N_K@Z */
548 DEFINE_THISCALL_WRAPPER(basic_string_char_tidy
, 12)
549 void __thiscall
basic_string_char_tidy(basic_string_char
*this,
550 MSVCP_bool built
, MSVCP_size_t new_size
)
552 if(built
&& BUF_SIZE_CHAR
<=this->res
) {
553 char *ptr
= this->data
.ptr
;
556 MSVCP_char_traits_char__Copy_s(this->data
.buf
, BUF_SIZE_CHAR
, ptr
, new_size
);
557 MSVCP_allocator_char_deallocate(STRING_ALLOCATOR(this), ptr
, this->res
+1);
560 this->res
= BUF_SIZE_CHAR
-1;
561 basic_string_char_eos(this, new_size
);
564 /* Exported only from msvcp60/70 */
565 /* ?_Tidy@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@AAEX_N@Z */
566 /* ?_Tidy@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@AEAAX_N@Z */
567 DEFINE_THISCALL_WRAPPER(basic_string_char_tidy_built
, 8)
568 void __thiscall
basic_string_char_tidy_built(basic_string_char
*this, MSVCP_bool built
)
570 basic_string_char_tidy(this, built
, 0);
573 /* ?_Grow@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IAE_NI_N@Z */
574 /* ?_Grow@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IEAA_N_K_N@Z */
575 DEFINE_THISCALL_WRAPPER(basic_string_char_grow
, 12)
576 MSVCP_bool __thiscall
basic_string_char_grow(
577 basic_string_char
*this, MSVCP_size_t new_size
, MSVCP_bool trim
)
579 if(this->res
< new_size
) {
580 MSVCP_size_t new_res
= new_size
, len
= this->size
;
585 if(new_res
/3 < this->res
/2)
586 new_res
= this->res
+ this->res
/2;
588 ptr
= MSVCP_allocator_char_allocate(STRING_ALLOCATOR(this), new_res
+1);
590 ptr
= MSVCP_allocator_char_allocate(STRING_ALLOCATOR(this), new_size
+1);
594 ERR("Out of memory\n");
595 basic_string_char_tidy(this, TRUE
, 0);
599 MSVCP_char_traits_char__Copy_s(ptr
, new_size
,
600 basic_string_char_ptr(this), this->size
);
601 basic_string_char_tidy(this, TRUE
, 0);
602 this->data
.ptr
= ptr
;
603 this->res
= new_size
;
604 basic_string_char_eos(this, len
);
605 } else if(trim
&& new_size
< BUF_SIZE_CHAR
)
606 basic_string_char_tidy(this, TRUE
,
607 new_size
<this->size
? new_size
: this->size
);
608 else if(new_size
== 0)
609 basic_string_char_eos(this, 0);
614 /* ?_Copy@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IAEXII@Z */
615 /* ?_Copy@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IEAAX_K0@Z */
616 DEFINE_THISCALL_WRAPPER(basic_string_char__Copy
, 12)
617 void __thiscall
basic_string_char__Copy(basic_string_char
*this,
618 MSVCP_size_t new_size
, MSVCP_size_t copy_len
)
620 TRACE("%p %lu %lu\n", this, new_size
, copy_len
);
622 if(!basic_string_char_grow(this, new_size
, FALSE
))
624 basic_string_char_eos(this, copy_len
);
627 /* ?get_allocator@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBE?AV?$allocator@D@2@XZ */
628 /* ?get_allocator@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA?AV?$allocator@D@2@XZ */
629 DEFINE_THISCALL_WRAPPER(basic_string_char_get_allocator
, 8)
630 allocator
* __thiscall
basic_string_char_get_allocator(const basic_string_char
*this, allocator
*ret
)
636 /* ?erase@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@II@Z */
637 /* ?erase@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAAEAV12@_K0@Z */
638 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_erase
, 12)
639 basic_string_char
* __thiscall
MSVCP_basic_string_char_erase(
640 basic_string_char
*this, MSVCP_size_t pos
, MSVCP_size_t len
)
642 TRACE("%p %lu %lu\n", this, pos
, len
);
645 MSVCP__String_base_Xran();
647 if(len
> this->size
-pos
)
648 len
= this->size
-pos
;
651 MSVCP_char_traits_char__Move_s(basic_string_char_ptr(this)+pos
,
652 this->res
-pos
, basic_string_char_ptr(this)+pos
+len
,
654 basic_string_char_eos(this, this->size
-len
);
660 /* ?assign@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@ABV12@II@Z */
661 /* ?assign@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAAEAV12@AEBV12@_K1@Z */
662 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_assign_substr
, 16)
663 basic_string_char
* __thiscall
MSVCP_basic_string_char_assign_substr(
664 basic_string_char
*this, const basic_string_char
*assign
,
665 MSVCP_size_t pos
, MSVCP_size_t len
)
667 TRACE("%p %p %lu %lu\n", this, assign
, pos
, len
);
669 if(assign
->size
< pos
)
670 MSVCP__String_base_Xran();
672 if(len
> assign
->size
-pos
)
673 len
= assign
->size
-pos
;
676 MSVCP_basic_string_char_erase(this, pos
+len
, MSVCP_basic_string_char_npos
);
677 MSVCP_basic_string_char_erase(this, 0, pos
);
678 } else if(basic_string_char_grow(this, len
, FALSE
)) {
679 MSVCP_char_traits_char__Copy_s(basic_string_char_ptr(this),
680 this->res
, basic_string_char_const_ptr(assign
)+pos
, len
);
681 basic_string_char_eos(this, len
);
687 /* ?assign@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@ABV12@@Z */
688 /* ?assign@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAAEAV12@AEBV12@@Z */
689 /* ??4?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV01@ABV01@@Z */
690 /* ??4?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAAEAV01@AEBV01@@Z */
691 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_assign
, 8)
692 basic_string_char
* __thiscall
MSVCP_basic_string_char_assign(
693 basic_string_char
*this, const basic_string_char
*assign
)
695 return MSVCP_basic_string_char_assign_substr(this, assign
,
696 0, MSVCP_basic_string_char_npos
);
699 /* ?assign@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@PBDI@Z */
700 /* ?assign@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAAEAV12@PEBD_K@Z */
701 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_assign_cstr_len
, 12)
702 basic_string_char
* __thiscall
MSVCP_basic_string_char_assign_cstr_len(
703 basic_string_char
*this, const char *str
, MSVCP_size_t len
)
705 TRACE("%p %s %lu\n", this, debugstr_an(str
, len
), len
);
707 if(basic_string_char_inside(this, str
))
708 return MSVCP_basic_string_char_assign_substr(this, this,
709 str
-basic_string_char_ptr(this), len
);
710 else if(basic_string_char_grow(this, len
, FALSE
)) {
711 MSVCP_char_traits_char__Copy_s(basic_string_char_ptr(this),
712 this->res
, str
, len
);
713 basic_string_char_eos(this, len
);
719 /* ??4?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV01@D@Z */
720 /* ??4?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAAEAV01@D@Z */
721 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_assign_ch
, 8)
722 basic_string_char
* __thiscall
MSVCP_basic_string_char_assign_ch(
723 basic_string_char
*this, char ch
)
725 return MSVCP_basic_string_char_assign_cstr_len(this, &ch
, 1);
728 /* ?assign@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@PBD@Z */
729 /* ?assign@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAAEAV12@PEBD@Z */
730 /* ??4?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV01@PBD@Z */
731 /* ??4?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAAEAV01@PEBD@Z */
732 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_assign_cstr
, 8)
733 basic_string_char
* __thiscall
MSVCP_basic_string_char_assign_cstr(
734 basic_string_char
*this, const char *str
)
736 return MSVCP_basic_string_char_assign_cstr_len(this, str
,
737 MSVCP_char_traits_char_length(str
));
740 /* ?assign@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@ID@Z */
741 /* ?assign@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAAEAV12@_KD@Z */
742 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_assignn
, 12)
743 basic_string_char
* __thiscall
MSVCP_basic_string_char_assignn(
744 basic_string_char
*this, MSVCP_size_t count
, char ch
)
746 TRACE("%p %ld %c\n", this, count
, ch
);
748 basic_string_char_grow(this, count
, FALSE
);
749 MSVCP_char_traits_char_assignn(basic_string_char_ptr(this), count
, ch
);
750 basic_string_char_eos(this, count
);
754 /* ?assign@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@PBD0@Z */
755 /* ?assign@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAAEAV12@PEBD0@Z */
756 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_assign_ptr_ptr
, 12)
757 basic_string_char
* __thiscall
MSVCP_basic_string_char_assign_ptr_ptr(
758 basic_string_char
*this, const char *first
, const char *last
)
760 return MSVCP_basic_string_char_assign_cstr_len(this, first
, last
-first
);
763 /* ?_Chassign@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IAEXIID@Z */
764 /* ?_Chassign@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IEAAX_K0D@Z */
765 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_Chassign
, 16)
766 void __thiscall
MSVCP_basic_string_char_Chassign(basic_string_char
*this,
767 MSVCP_size_t off
, MSVCP_size_t count
, char ch
)
769 TRACE("%p %lu %lu %c\n", this, off
, count
, ch
);
770 MSVCP_char_traits_char_assignn(basic_string_char_ptr(this)+off
, count
, ch
);
773 /* ?_Copy_s@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEIPADIII@Z */
774 /* ?_Copy_s@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA_KPEAD_K11@Z */
775 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_Copy_s
, 20)
776 MSVCP_size_t __thiscall
MSVCP_basic_string_char_Copy_s(const basic_string_char
*this,
777 char *dest
, MSVCP_size_t size
, MSVCP_size_t count
, MSVCP_size_t off
)
779 TRACE("%p %p %lu %lu %lu\n", this, dest
, size
, count
, off
);
782 MSVCP__String_base_Xran();
784 if(count
> this->size
-off
)
785 count
= this->size
-off
;
787 MSVCP_char_traits_char__Copy_s(dest
, size
,
788 basic_string_char_const_ptr(this)+off
, count
);
792 /* ?copy@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEIPADII@Z */
793 /* ?copy@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA_KPEAD_K1@Z */
794 DEFINE_THISCALL_WRAPPER(basic_string_char_copy
, 16)
795 MSVCP_size_t __thiscall
basic_string_char_copy(const basic_string_char
*this,
796 char *dest
, MSVCP_size_t count
, MSVCP_size_t off
)
798 return MSVCP_basic_string_char_Copy_s(this, dest
, count
, count
, off
);
801 /* ?c_str@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEPBDXZ */
802 /* ?c_str@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBAPEBDXZ */
803 /* ?data@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEPBDXZ */
804 /* ?data@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBAPEBDXZ */
805 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_c_str
, 4)
806 const char* __thiscall
MSVCP_basic_string_char_c_str(const basic_string_char
*this)
809 return basic_string_char_const_ptr(this);
812 /* ?capacity@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEIXZ */
813 /* ?capacity@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA_KXZ */
814 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_capacity
, 4)
815 MSVCP_size_t __thiscall
MSVCP_basic_string_char_capacity(basic_string_char
*this)
821 /* ?reserve@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEXI@Z */
822 /* ?reserve@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAX_K@Z */
823 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_reserve
, 8)
824 void __thiscall
MSVCP_basic_string_char_reserve(basic_string_char
*this, MSVCP_size_t size
)
828 TRACE("%p %ld\n", this, size
);
834 if(basic_string_char_grow(this, size
, TRUE
))
835 basic_string_char_eos(this, len
);
838 /* ??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@XZ */
839 /* ??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAA@XZ */
840 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_ctor
, 4)
841 basic_string_char
* __thiscall
MSVCP_basic_string_char_ctor(basic_string_char
*this)
845 basic_string_char_tidy(this, FALSE
, 0);
849 /* ??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@ABV01@@Z */
850 /* ??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAA@AEBV01@@Z */
851 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_copy_ctor
, 8)
852 basic_string_char
* __thiscall
MSVCP_basic_string_char_copy_ctor(
853 basic_string_char
*this, const basic_string_char
*copy
)
855 TRACE("%p %p\n", this, copy
);
857 basic_string_char_tidy(this, FALSE
, 0);
858 MSVCP_basic_string_char_assign(this, copy
);
862 /* ??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@PBD@Z */
863 /* ??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAA@PEBD@Z */
864 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_ctor_cstr
, 8)
865 basic_string_char
* __thiscall
MSVCP_basic_string_char_ctor_cstr(
866 basic_string_char
*this, const char *str
)
868 TRACE("%p %s\n", this, debugstr_a(str
));
870 basic_string_char_tidy(this, FALSE
, 0);
871 MSVCP_basic_string_char_assign_cstr(this, str
);
875 /* ??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@PBDABV?$allocator@D@1@@Z */
876 /* ??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAA@PEBDAEBV?$allocator@D@1@@Z */
877 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_ctor_cstr_alloc
, 12)
878 basic_string_char
* __thiscall
MSVCP_basic_string_char_ctor_cstr_alloc(
879 basic_string_char
*this, const char *str
, const void *alloc
)
881 return MSVCP_basic_string_char_ctor_cstr(this, str
);
884 /* ??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@PBDI@Z */
885 /* ??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAA@PEBD_K@Z */
886 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_ctor_cstr_len
, 12)
887 basic_string_char
* __thiscall
MSVCP_basic_string_char_ctor_cstr_len(
888 basic_string_char
*this, const char *str
, MSVCP_size_t len
)
890 TRACE("%p %s %ld\n", this, debugstr_an(str
, len
), len
);
892 basic_string_char_tidy(this, FALSE
, 0);
893 MSVCP_basic_string_char_assign_cstr_len(this, str
, len
);
897 /* ??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@PBDIABV?$allocator@D@1@@Z */
898 /* ??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAA@PEBD_KAEBV?$allocator@D@1@@Z */
899 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_ctor_cstr_len_alloc
, 16)
900 basic_string_char
* __thiscall
MSVCP_basic_string_char_ctor_cstr_len_alloc(
901 basic_string_char
*this, const char *str
, MSVCP_size_t len
, const void *alloc
)
903 return MSVCP_basic_string_char_ctor_cstr_len(this, str
, len
);
906 /* ??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@ABV01@II@Z */
907 /* ??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAA@AEBV01@_K1@Z */
908 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_ctor_substr
, 16)
909 basic_string_char
* __thiscall
MSVCP_basic_string_char_ctor_substr(
910 basic_string_char
*this, const basic_string_char
*assign
,
911 MSVCP_size_t pos
, MSVCP_size_t len
)
913 TRACE("%p %p %lu %lu\n", this, assign
, pos
, len
);
915 basic_string_char_tidy(this, FALSE
, 0);
916 MSVCP_basic_string_char_assign_substr(this, assign
, pos
, len
);
920 /* ??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@ABV01@IIABV?$allocator@D@1@@Z */
921 /* ??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAA@AEBV01@_K1AEBV?$allocator@D@1@@Z */
922 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_ctor_substr_alloc
, 20)
923 basic_string_char
* __thiscall
MSVCP_basic_string_char_ctor_substr_alloc(
924 basic_string_char
*this, const basic_string_char
*assign
,
925 MSVCP_size_t pos
, MSVCP_size_t len
, const void *alloc
)
927 return MSVCP_basic_string_char_ctor_substr(this, assign
, pos
, len
);
930 /* ??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@ABV?$allocator@D@1@@Z */
931 /* ??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAA@AEBV?$allocator@D@1@@Z */
932 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_ctor_alloc
, 8)
933 basic_string_char
* __thiscall
MSVCP_basic_string_char_ctor_alloc(
934 basic_string_char
*this, const void *alloc
)
936 TRACE("%p %p\n", this, alloc
);
938 basic_string_char_tidy(this, FALSE
, 0);
942 /* ??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@ID@Z */
943 /* ??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAA@_KD@Z */
944 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_ctor_ch
, 12)
945 basic_string_char
* __thiscall
MSVCP_basic_string_char_ctor_ch(basic_string_char
*this,
946 MSVCP_size_t count
, char ch
)
948 TRACE("%p %ld %c\n", this, count
, ch
);
950 basic_string_char_tidy(this, FALSE
, 0);
951 MSVCP_basic_string_char_assignn(this, count
, ch
);
955 /* ??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@IDABV?$allocator@D@1@@Z */
956 /* ??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAA@_KDAEBV?$allocator@D@1@@Z */
957 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_ctor_ch_alloc
, 16)
958 basic_string_char
* __thiscall
MSVCP_basic_string_char_ctor_ch_alloc(basic_string_char
*this,
959 MSVCP_size_t count
, char ch
, const void *alloc
)
961 return MSVCP_basic_string_char_ctor_ch(this, count
, ch
);
964 /* ??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@PBD0@Z */
965 /* ??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAA@PEBD0@Z */
966 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_ctor_ptr_ptr
, 12)
967 basic_string_char
* __thiscall
MSVCP_basic_string_char_ctor_ptr_ptr(basic_string_char
*this,
968 const char *first
, const char *last
)
970 return MSVCP_basic_string_char_ctor_cstr_len(this, first
, last
-first
);
973 /* ??1?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@XZ */
974 /* ??1?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAA@XZ */
975 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_dtor
, 4)
976 void* __thiscall
MSVCP_basic_string_char_dtor(basic_string_char
*this)
979 basic_string_char_tidy(this, TRUE
, 0);
980 return NULL
; /* FEAR 1 installer expects EAX set to 0 */
983 /* ?size@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEIXZ */
984 /* ?size@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA_KXZ */
985 /* ?length@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEIXZ */
986 /* ?length@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA_KXZ */
987 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_length
, 4)
988 MSVCP_size_t __thiscall
MSVCP_basic_string_char_length(const basic_string_char
*this)
994 /* ?max_size@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEIXZ */
995 /* ?max_size@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA_KXZ */
996 DEFINE_THISCALL_WRAPPER(basic_string_char_max_size
, 4)
997 MSVCP_size_t __thiscall
basic_string_char_max_size(const basic_string_char
*this)
1000 return MSVCP_allocator_char_max_size(STRING_ALLOCATOR(this))-1;
1003 /* ?empty@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBE_NXZ */
1004 /* ?empty@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA_NXZ */
1005 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_empty
, 4)
1006 MSVCP_bool __thiscall
MSVCP_basic_string_char_empty(basic_string_char
*this)
1008 TRACE("%p\n", this);
1009 return this->size
== 0;
1012 /* ?swap@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEXAAV12@@Z */
1013 /* ?swap@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAXAEAV12@@Z */
1014 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_swap
, 8)
1015 void __thiscall
MSVCP_basic_string_char_swap(basic_string_char
*this, basic_string_char
*str
)
1018 char tmp
[sizeof(this->data
)];
1019 const MSVCP_size_t size
= this->size
;
1020 const MSVCP_size_t res
= this->res
;
1022 memcpy(tmp
, this->data
.buf
, sizeof(this->data
));
1023 memcpy(this->data
.buf
, str
->data
.buf
, sizeof(this->data
));
1024 memcpy(str
->data
.buf
, tmp
, sizeof(this->data
));
1026 this->size
= str
->size
;
1027 this->res
= str
->res
;
1034 /* ?substr@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBE?AV12@II@Z */
1035 /* ?substr@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA?AV12@_K0@Z */
1036 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_substr
, 16)
1037 basic_string_char
* __thiscall
MSVCP_basic_string_char_substr(basic_string_char
*this,
1038 basic_string_char
*ret
, MSVCP_size_t off
, MSVCP_size_t len
)
1040 TRACE("%p %lu %lu\n", this, off
, len
);
1042 MSVCP_basic_string_char_ctor_substr(ret
, this, off
, len
);
1046 /* ?append@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@ABV12@II@Z */
1047 /* ?append@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAAEAV12@AEBV12@_K1@Z */
1048 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_append_substr
, 16)
1049 basic_string_char
* __thiscall
MSVCP_basic_string_char_append_substr(basic_string_char
*this,
1050 const basic_string_char
*append
, MSVCP_size_t offset
, MSVCP_size_t count
)
1052 TRACE("%p %p %lu %lu\n", this, append
, offset
, count
);
1054 if(append
->size
< offset
)
1055 MSVCP__String_base_Xran();
1057 if(count
> append
->size
-offset
)
1058 count
= append
->size
-offset
;
1060 if(MSVCP_basic_string_char_npos
-this->size
<=count
|| this->size
+count
<this->size
)
1061 MSVCP__String_base_Xlen();
1063 if(basic_string_char_grow(this, this->size
+count
, FALSE
)) {
1064 MSVCP_char_traits_char__Copy_s(basic_string_char_ptr(this)+this->size
,
1065 this->res
-this->size
, basic_string_char_const_ptr(append
)+offset
, count
);
1066 basic_string_char_eos(this, this->size
+count
);
1072 /* ?append@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@ABV12@@Z */
1073 /* ?append@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAAEAV12@AEBV12@@Z */
1074 /* ??Y?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV01@ABV01@@Z */
1075 /* ??Y?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAAEAV01@AEBV01@@Z */
1076 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_append
, 8)
1077 basic_string_char
* __thiscall
MSVCP_basic_string_char_append(
1078 basic_string_char
*this, const basic_string_char
*append
)
1080 return MSVCP_basic_string_char_append_substr(this, append
,
1081 0, MSVCP_basic_string_char_npos
);
1084 /* ?append@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@PBDI@Z */
1085 /* ?append@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAAEAV12@PEBD_K@Z */
1086 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_append_cstr_len
, 12)
1087 basic_string_char
* __thiscall
MSVCP_basic_string_char_append_cstr_len(
1088 basic_string_char
*this, const char *append
, MSVCP_size_t count
)
1090 TRACE("%p %s %lu\n", this, debugstr_an(append
, count
), count
);
1092 if(basic_string_char_inside(this, append
))
1093 return MSVCP_basic_string_char_append_substr(this, this,
1094 append
-basic_string_char_ptr(this), count
);
1096 if(MSVCP_basic_string_char_npos
-this->size
<=count
|| this->size
+count
<this->size
)
1097 MSVCP__String_base_Xlen();
1099 if(basic_string_char_grow(this, this->size
+count
, FALSE
)) {
1100 MSVCP_char_traits_char__Copy_s(basic_string_char_ptr(this)+this->size
,
1101 this->res
-this->size
, append
, count
);
1102 basic_string_char_eos(this, this->size
+count
);
1108 /* ?append@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@PBD@Z */
1109 /* ?append@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAAEAV12@PEBD@Z */
1110 /* ??Y?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV01@PBD@Z */
1111 /* ??Y?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAAEAV01@PEBD@Z */
1112 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_append_cstr
, 8)
1113 basic_string_char
* __thiscall
MSVCP_basic_string_char_append_cstr(
1114 basic_string_char
*this, const char *append
)
1116 return MSVCP_basic_string_char_append_cstr_len(this, append
,
1117 MSVCP_char_traits_char_length(append
));
1120 /* ?append@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@PBD0@Z */
1121 /* ?append@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAAEAV12@PEBD0@Z */
1122 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_append_beg_end
, 12)
1123 basic_string_char
* __thiscall
MSVCP_basic_string_char_append_beg_end(
1124 basic_string_char
*this, const char *beg
, const char *end
)
1126 return MSVCP_basic_string_char_append_cstr_len(this, beg
, end
-beg
);
1129 /* ?append@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@ID@Z */
1130 /* ?append@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAAEAV12@_KD@Z */
1131 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_append_len_ch
, 12)
1132 basic_string_char
* __thiscall
MSVCP_basic_string_char_append_len_ch(
1133 basic_string_char
*this, MSVCP_size_t count
, char ch
)
1135 TRACE("%p %lu %c\n", this, count
, ch
);
1137 if(MSVCP_basic_string_char_npos
-this->size
<= count
)
1138 MSVCP__String_base_Xlen();
1140 if(basic_string_char_grow(this, this->size
+count
, FALSE
)) {
1141 MSVCP_char_traits_char_assignn(basic_string_char_ptr(this)+this->size
, count
, ch
);
1142 basic_string_char_eos(this, this->size
+count
);
1148 /* ??Y?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV01@D@Z */
1149 /* ??Y?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAAEAV01@D@Z */
1150 /* ?push_back@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEXD@Z */
1151 /* ?push_back@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAXD@Z */
1152 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_append_ch
, 8)
1153 basic_string_char
* __thiscall
MSVCP_basic_string_char_append_ch(
1154 basic_string_char
*this, char ch
)
1156 return MSVCP_basic_string_char_append_len_ch(this, 1, ch
);
1159 /* ??$?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 */
1160 /* ??$?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 */
1161 /* ??Hstd@@YA?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@ABV10@PBD@Z */
1162 /* ??Hstd@@YA?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@AEBV10@PEBD@Z */
1163 basic_string_char
* __cdecl
MSVCP_basic_string_char_concatenate_bstr_cstr(basic_string_char
*ret
,
1164 const basic_string_char
*left
, const char *right
)
1166 TRACE("%p %s\n", left
, debugstr_a(right
));
1168 MSVCP_basic_string_char_copy_ctor(ret
, left
);
1169 MSVCP_basic_string_char_append_cstr(ret
, right
);
1173 /* ??$?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 */
1174 /* ??$?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 */
1175 /* ??Hstd@@YA?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@PBDABV10@@Z */
1176 /* ??Hstd@@YA?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@PEBDAEBV10@@Z */
1177 basic_string_char
* __cdecl
MSVCP_basic_string_char_concatenate_cstr_bstr(basic_string_char
*ret
,
1178 const char *left
, const basic_string_char
*right
)
1180 TRACE("%s %p\n", debugstr_a(left
), right
);
1182 MSVCP_basic_string_char_ctor_cstr(ret
, left
);
1183 MSVCP_basic_string_char_append(ret
, right
);
1187 /* ??$?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 */
1188 /* ??$?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 */
1189 /* ??Hstd@@YA?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@ABV10@0@Z */
1190 /* ??Hstd@@YA?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@AEBV10@0@Z */
1191 basic_string_char
* __cdecl
MSVCP_basic_string_char_concatenate(basic_string_char
*ret
,
1192 const basic_string_char
*left
, const basic_string_char
*right
)
1194 TRACE("%p %p\n", left
, right
);
1196 MSVCP_basic_string_char_copy_ctor(ret
, left
);
1197 MSVCP_basic_string_char_append(ret
, right
);
1201 /* ??$?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 */
1202 /* ??$?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 */
1203 /* ??Hstd@@YA?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@ABV10@D@Z */
1204 /* ??Hstd@@YA?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@AEBV10@D@Z */
1205 basic_string_char
* __cdecl
MSVCP_basic_string_char_concatenate_bstr_ch(basic_string_char
*ret
,
1206 const basic_string_char
*left
, char right
)
1208 TRACE("%p %c\n", left
, right
);
1210 MSVCP_basic_string_char_copy_ctor(ret
, left
);
1211 MSVCP_basic_string_char_append_ch(ret
, right
);
1215 /* ??$?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 */
1216 /* ??$?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 */
1217 /* ??Hstd@@YA?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@DABV10@@Z */
1218 /* ??Hstd@@YA?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@DAEBV10@@Z */
1219 basic_string_char
* __cdecl
MSVCP_basic_string_char_concatenate_ch_bstr(basic_string_char
*ret
,
1220 char left
, const basic_string_char
*right
)
1222 TRACE("%c %p\n", left
, right
);
1224 MSVCP_basic_string_char_ctor_cstr_len(ret
, &left
, 1);
1225 MSVCP_basic_string_char_append(ret
, right
);
1229 /* ?compare@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEHIIPBDI@Z */
1230 /* ?compare@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBAH_K0PEBD0@Z */
1231 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_compare_substr_cstr_len
, 20)
1232 int __thiscall
MSVCP_basic_string_char_compare_substr_cstr_len(
1233 const basic_string_char
*this, MSVCP_size_t pos
, MSVCP_size_t num
,
1234 const char *str
, MSVCP_size_t count
)
1238 TRACE("%p %lu %lu %s %lu\n", this, pos
, num
, debugstr_an(str
, count
), count
);
1240 if(this->size
< pos
)
1241 MSVCP__String_base_Xran();
1243 if(num
> this->size
-pos
)
1244 num
= this->size
-pos
;
1246 ans
= MSVCP_char_traits_char_compare(basic_string_char_const_ptr(this)+pos
,
1247 str
, num
>count
? count
: num
);
1253 else if(num
< count
)
1258 /* ?compare@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEHIIPBD@Z */
1259 /* ?compare@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBAH_K0PEBD@Z */
1260 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_compare_substr_cstr
, 16)
1261 int __thiscall
MSVCP_basic_string_char_compare_substr_cstr(const basic_string_char
*this,
1262 MSVCP_size_t pos
, MSVCP_size_t num
, const char *str
)
1264 return MSVCP_basic_string_char_compare_substr_cstr_len(this, pos
, num
,
1265 str
, MSVCP_char_traits_char_length(str
));
1268 /* ?compare@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEHPBD@Z */
1269 /* ?compare@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBAHPEBD@Z */
1270 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_compare_cstr
, 8)
1271 int __thiscall
MSVCP_basic_string_char_compare_cstr(
1272 const basic_string_char
*this, const char *str
)
1274 return MSVCP_basic_string_char_compare_substr_cstr_len(this, 0, this->size
,
1275 str
, MSVCP_char_traits_char_length(str
));
1278 /* ?compare@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEHIIABV12@II@Z */
1279 /* ?compare@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBAH_K0AEBV12@00@Z */
1280 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_compare_substr_substr
, 24)
1281 int __thiscall
MSVCP_basic_string_char_compare_substr_substr(
1282 const basic_string_char
*this, MSVCP_size_t pos
, MSVCP_size_t num
,
1283 const basic_string_char
*compare
, MSVCP_size_t off
, MSVCP_size_t count
)
1285 TRACE("%p %lu %lu %p %lu %lu\n", this, pos
, num
, compare
, off
, count
);
1287 if(compare
->size
< off
)
1288 MSVCP__String_base_Xran();
1290 if(count
> compare
->size
-off
)
1291 count
= compare
->size
-off
;
1293 return MSVCP_basic_string_char_compare_substr_cstr_len(this, pos
, num
,
1294 basic_string_char_const_ptr(compare
)+off
, count
);
1297 /* ?compare@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEHIIABV12@@Z */
1298 /* ?compare@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBAH_K0AEBV12@@Z */
1299 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_compare_substr
, 16)
1300 int __thiscall
MSVCP_basic_string_char_compare_substr(
1301 const basic_string_char
*this, MSVCP_size_t pos
, MSVCP_size_t num
,
1302 const basic_string_char
*compare
)
1304 return MSVCP_basic_string_char_compare_substr_cstr_len(this, pos
, num
,
1305 basic_string_char_const_ptr(compare
), compare
->size
);
1308 /* ?compare@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEHABV12@@Z */
1309 /* ?compare@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBAHAEBV12@@Z */
1310 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_compare
, 8)
1311 int __thiscall
MSVCP_basic_string_char_compare(
1312 const basic_string_char
*this, const basic_string_char
*compare
)
1314 return MSVCP_basic_string_char_compare_substr_cstr_len(this, 0, this->size
,
1315 basic_string_char_const_ptr(compare
), compare
->size
);
1318 /* ??$?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 */
1319 /* ??$?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 */
1320 /* ??8std@@YA_NABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@0@Z */
1321 /* ??8std@@YA_NAEBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@0@Z */
1322 MSVCP_bool __cdecl
MSVCP_basic_string_char_equal(
1323 const basic_string_char
*left
, const basic_string_char
*right
)
1325 return MSVCP_basic_string_char_compare(left
, right
) == 0;
1328 /* ??$?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 */
1329 /* ??$?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 */
1330 /* ??8std@@YA_NABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@PBD@Z */
1331 /* ??8std@@YA_NAEBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@PEBD@Z */
1332 MSVCP_bool __cdecl
MSVCP_basic_string_char_equal_str_cstr(
1333 const basic_string_char
*left
, const char *right
)
1335 return MSVCP_basic_string_char_compare_cstr(left
, right
) == 0;
1338 /* ??$?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 */
1339 /* ??$?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 */
1340 /* ??8std@@YA_NPBDABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@@Z */
1341 MSVCP_bool __cdecl
MSVCP_basic_string_char_equal_cstr_str(
1342 const char *left
, const basic_string_char
*right
)
1344 return MSVCP_basic_string_char_compare_cstr(right
, left
) == 0;
1347 /* ??$?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 */
1348 /* ??$?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 */
1349 /* ??9std@@YA_NABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@0@Z */
1350 /* ??9std@@YA_NAEBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@0@Z */
1351 MSVCP_bool __cdecl
MSVCP_basic_string_char_not_equal(
1352 const basic_string_char
*left
, const basic_string_char
*right
)
1354 return MSVCP_basic_string_char_compare(left
, right
) != 0;
1357 /* ??$?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 */
1358 /* ??$?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 */
1359 /* ??9std@@YA_NABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@PBD@Z */
1360 /* ??9std@@YA_NAEBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@PEBD@Z */
1361 MSVCP_bool __cdecl
MSVCP_basic_string_char_not_equal_str_cstr(
1362 const basic_string_char
*left
, const char *right
)
1364 return MSVCP_basic_string_char_compare_cstr(left
, right
) != 0;
1367 /* ??$?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 */
1368 /* ??$?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 */
1369 /* ??9std@@YA_NPBDABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@@Z */
1370 /* ??9std@@YA_NPEBDAEBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@@Z */
1371 MSVCP_bool __cdecl
MSVCP_basic_string_char_not_equal_cstr_str(
1372 const char *left
, const basic_string_char
*right
)
1374 return MSVCP_basic_string_char_compare_cstr(right
, left
) != 0;
1377 /* ??$?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 */
1378 /* ??$?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 */
1379 MSVCP_bool __cdecl
MSVCP_basic_string_char_lower(
1380 const basic_string_char
*left
, const basic_string_char
*right
)
1382 return MSVCP_basic_string_char_compare(left
, right
) < 0;
1385 /* ??$?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 */
1386 /* ??$?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 */
1387 MSVCP_bool __cdecl
MSVCP_basic_string_char_lower_bstr_cstr(
1388 const basic_string_char
*left
, const char *right
)
1390 return MSVCP_basic_string_char_compare_cstr(left
, right
) < 0;
1393 /* ??$?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 */
1394 /* ??$?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 */
1395 MSVCP_bool __cdecl
MSVCP_basic_string_char_lower_cstr_bstr(
1396 const char *left
, const basic_string_char
*right
)
1398 return MSVCP_basic_string_char_compare_cstr(right
, left
) > 0;
1401 /* ??$?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 */
1402 /* ??$?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 */
1403 MSVCP_bool __cdecl
MSVCP_basic_string_char_leq(
1404 const basic_string_char
*left
, const basic_string_char
*right
)
1406 return MSVCP_basic_string_char_compare(left
, right
) <= 0;
1409 /* ??$?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 */
1410 /* ??$?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 */
1411 MSVCP_bool __cdecl
MSVCP_basic_string_char_leq_bstr_cstr(
1412 const basic_string_char
*left
, const char *right
)
1414 return MSVCP_basic_string_char_compare_cstr(left
, right
) <= 0;
1417 /* ??$?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 */
1418 /* ??$?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 */
1419 MSVCP_bool __cdecl
MSVCP_basic_string_char_leq_cstr_bstr(
1420 const char *left
, const basic_string_char
*right
)
1422 return MSVCP_basic_string_char_compare_cstr(right
, left
) >= 0;
1425 /* ??$?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 */
1426 /* ??$?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 */
1427 MSVCP_bool __cdecl
MSVCP_basic_string_char_greater(
1428 const basic_string_char
*left
, const basic_string_char
*right
)
1430 return MSVCP_basic_string_char_compare(left
, right
) > 0;
1433 /* ??$?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 */
1434 /* ??$?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 */
1435 MSVCP_bool __cdecl
MSVCP_basic_string_char_greater_bstr_cstr(
1436 const basic_string_char
*left
, const char *right
)
1438 return MSVCP_basic_string_char_compare_cstr(left
, right
) > 0;
1441 /* ??$?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 */
1442 /* ??$?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 */
1443 MSVCP_bool __cdecl
MSVCP_basic_string_char_greater_cstr_bstr(
1444 const char *left
, const basic_string_char
*right
)
1446 return MSVCP_basic_string_char_compare_cstr(right
, left
) < 0;
1449 /* ??$?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 */
1450 /* ??$?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 */
1451 MSVCP_bool __cdecl
MSVCP_basic_string_char_geq(
1452 const basic_string_char
*left
, const basic_string_char
*right
)
1454 return MSVCP_basic_string_char_compare(left
, right
) >= 0;
1457 /* ??$?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 */
1458 /* ??$?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 */
1459 MSVCP_bool __cdecl
MSVCP_basic_string_char_geq_bstr_cstr(
1460 const basic_string_char
*left
, const char *right
)
1462 return MSVCP_basic_string_char_compare_cstr(left
, right
) >= 0;
1465 /* ??$?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 */
1466 /* ??$?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 */
1467 MSVCP_bool __cdecl
MSVCP_basic_string_char_geq_cstr_bstr(
1468 const char *left
, const basic_string_char
*right
)
1470 return MSVCP_basic_string_char_compare_cstr(right
, left
) <= 0;
1473 /* ?find@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEIPBDII@Z */
1474 /* ?find@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA_KPEBD_K1@Z */
1475 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_find_cstr_substr
, 16)
1476 MSVCP_size_t __thiscall
MSVCP_basic_string_char_find_cstr_substr(
1477 const basic_string_char
*this, const char *find
, MSVCP_size_t pos
, MSVCP_size_t len
)
1479 const char *p
, *end
;
1481 TRACE("%p %s %lu %lu\n", this, debugstr_an(find
, len
), pos
, len
);
1483 if(len
==0 && pos
<=this->size
)
1485 if(pos
>=this->size
|| len
>this->size
)
1486 return MSVCP_basic_string_char_npos
;
1488 end
= basic_string_char_const_ptr(this)+this->size
-len
+1;
1489 for(p
=basic_string_char_const_ptr(this)+pos
; p
<end
; p
++) {
1490 p
= MSVCP_char_traits_char_find(p
, end
-p
, find
);
1494 if(!MSVCP_char_traits_char_compare(p
, find
, len
))
1495 return p
-basic_string_char_const_ptr(this);
1498 return MSVCP_basic_string_char_npos
;
1501 /* ?find@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEIPBDI@Z */
1502 /* ?find@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA_KPEBD_K@Z */
1503 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_find_cstr_off
, 12)
1504 MSVCP_size_t __thiscall
MSVCP_basic_string_char_find_cstr_off(
1505 const basic_string_char
*this, const char *find
, MSVCP_size_t pos
)
1507 return MSVCP_basic_string_char_find_cstr_substr(this, find
, pos
,
1508 MSVCP_char_traits_char_length(find
));
1511 /* ?find@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEIABV12@I@Z */
1512 /* ?find@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA_KAEBV12@_K@Z */
1513 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_find_off
, 12)
1514 MSVCP_size_t __thiscall
MSVCP_basic_string_char_find_off(
1515 const basic_string_char
*this, const basic_string_char
*find
, MSVCP_size_t off
)
1517 return MSVCP_basic_string_char_find_cstr_substr(this,
1518 basic_string_char_const_ptr(find
), off
, find
->size
);
1521 /* ?find@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEIDI@Z */
1522 /* ?find@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA_KD_K@Z */
1523 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_find_ch
, 12)
1524 MSVCP_size_t __thiscall
MSVCP_basic_string_char_find_ch(
1525 const basic_string_char
*this, char ch
, MSVCP_size_t pos
)
1527 return MSVCP_basic_string_char_find_cstr_substr(this, &ch
, pos
, 1);
1530 /* ?rfind@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEIPBDII@Z */
1531 /* ?rfind@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA_KPEBD_K1@Z */
1532 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_rfind_cstr_substr
, 16)
1533 MSVCP_size_t __thiscall
MSVCP_basic_string_char_rfind_cstr_substr(
1534 const basic_string_char
*this, const char *find
, MSVCP_size_t pos
, MSVCP_size_t len
)
1536 const char *p
, *end
;
1538 TRACE("%p %s %lu %lu\n", this, debugstr_an(find
, len
), pos
, len
);
1541 return pos
<this->size
? pos
: this->size
;
1543 if(len
> this->size
)
1544 return MSVCP_basic_string_char_npos
;
1546 if(pos
> this->size
-len
)
1547 pos
= this->size
-len
;
1548 end
= basic_string_char_const_ptr(this);
1549 for(p
=end
+pos
; p
>=end
; p
--) {
1550 if(*p
==*find
&& !MSVCP_char_traits_char_compare(p
, find
, len
))
1551 return p
-basic_string_char_const_ptr(this);
1554 return MSVCP_basic_string_char_npos
;
1557 /* ?rfind@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEIPBDI@Z */
1558 /* ?rfind@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA_KPEBD_K@Z */
1559 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_rfind_cstr_off
, 12)
1560 MSVCP_size_t __thiscall
MSVCP_basic_string_char_rfind_cstr_off(
1561 const basic_string_char
*this, const char *find
, MSVCP_size_t pos
)
1563 return MSVCP_basic_string_char_rfind_cstr_substr(this, find
, pos
,
1564 MSVCP_char_traits_char_length(find
));
1567 /* ?rfind@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEIABV12@I@Z */
1568 /* ?rfind@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA_KAEBV12@_K@Z */
1569 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_rfind_off
, 12)
1570 MSVCP_size_t __thiscall
MSVCP_basic_string_char_rfind_off(
1571 const basic_string_char
*this, const basic_string_char
*find
, MSVCP_size_t off
)
1573 return MSVCP_basic_string_char_rfind_cstr_substr(this,
1574 basic_string_char_const_ptr(find
), off
, find
->size
);
1577 /* ?rfind@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEIDI@Z */
1578 /* ?rfind@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA_KD_K@Z */
1579 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_rfind_ch
, 12)
1580 MSVCP_size_t __thiscall
MSVCP_basic_string_char_rfind_ch(
1581 const basic_string_char
*this, char ch
, MSVCP_size_t pos
)
1583 return MSVCP_basic_string_char_rfind_cstr_substr(this, &ch
, pos
, 1);
1586 /* ?find_first_of@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEIPBDII@Z */
1587 /* ?find_first_of@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA_KPEBD_K1@Z */
1588 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_find_first_of_cstr_substr
, 16)
1589 MSVCP_size_t __thiscall
MSVCP_basic_string_char_find_first_of_cstr_substr(
1590 const basic_string_char
*this, const char *find
, MSVCP_size_t off
, MSVCP_size_t len
)
1592 const char *p
, *end
;
1594 TRACE("%p %p %lu %lu\n", this, find
, off
, len
);
1596 if(len
>0 && off
<this->size
) {
1597 end
= basic_string_char_const_ptr(this)+this->size
;
1598 for(p
=basic_string_char_const_ptr(this)+off
; p
<end
; p
++)
1599 if(MSVCP_char_traits_char_find(find
, len
, p
))
1600 return p
-basic_string_char_const_ptr(this);
1603 return MSVCP_basic_string_char_npos
;
1606 /* ?find_first_of@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEIABV12@I@Z */
1607 /* ?find_first_of@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA_KAEBV12@_K@Z */
1608 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_find_first_of
, 12)
1609 MSVCP_size_t __thiscall
MSVCP_basic_string_char_find_first_of(
1610 const basic_string_char
*this, const basic_string_char
*find
, MSVCP_size_t off
)
1612 return MSVCP_basic_string_char_find_first_of_cstr_substr(this,
1613 basic_string_char_const_ptr(find
), off
, find
->size
);
1616 /* ??0?$_Yarn@D@std@@QAE@XZ */
1617 /* ??0?$_Yarn@D@std@@QEAA@XZ */
1618 DEFINE_THISCALL_WRAPPER(_Yarn_char_ctor
, 4)
1619 _Yarn_char
* __thiscall
_Yarn_char_ctor(_Yarn_char
*this)
1621 TRACE("(%p)\n", this);
1624 this->null_str
= '\0';
1628 /* ?_Tidy@?$_Yarn@D@std@@AAEXXZ */
1629 /* ?_Tidy@?$_Yarn@D@std@@AEAAXXZ */
1630 DEFINE_THISCALL_WRAPPER(_Yarn_char__Tidy
, 4)
1631 void __thiscall
_Yarn_char__Tidy(_Yarn_char
*this)
1633 TRACE("(%p)\n", this);
1636 MSVCRT_operator_delete(this->str
);
1640 /* ??4?$_Yarn@D@std@@QAEAAV01@PBD@Z */
1641 /* ??4?$_Yarn@D@std@@QEAAAEAV01@PEBD@Z */
1642 DEFINE_THISCALL_WRAPPER(_Yarn_char_op_assign_cstr
, 8)
1643 _Yarn_char
* __thiscall
_Yarn_char_op_assign_cstr(_Yarn_char
*this, const char *str
)
1645 TRACE("(%p %p)\n", this, str
);
1647 if(str
!= this->str
) {
1648 _Yarn_char__Tidy(this);
1651 MSVCP_size_t len
= strlen(str
);
1653 this->str
= MSVCRT_operator_new((len
+1)*sizeof(char));
1655 ERR("out of memory\n");
1658 memcpy(this->str
, str
, (len
+1)*sizeof(char));
1664 /* ??0?$_Yarn@D@std@@QAE@PBD@Z */
1665 /* ??0?$_Yarn@D@std@@QEAA@PEBD@Z */
1666 DEFINE_THISCALL_WRAPPER(_Yarn_char_ctor_cstr
, 8)
1667 _Yarn_char
* __thiscall
_Yarn_char_ctor_cstr(_Yarn_char
*this, const char *str
)
1669 TRACE("(%p %p)\n", this, str
);
1671 _Yarn_char_ctor(this);
1672 return _Yarn_char_op_assign_cstr(this, str
);
1675 /* ??4?$_Yarn@D@std@@QAEAAV01@ABV01@@Z */
1676 /* ??4?$_Yarn@D@std@@QEAAAEAV01@AEBV01@@Z */
1677 DEFINE_THISCALL_WRAPPER(_Yarn_char_op_assign
, 8)
1678 _Yarn_char
* __thiscall
_Yarn_char_op_assign(_Yarn_char
*this, const _Yarn_char
*rhs
)
1680 TRACE("(%p %p)\n", this, rhs
);
1682 return _Yarn_char_op_assign_cstr(this, rhs
->str
);
1685 /* ??0?$_Yarn@D@std@@QAE@ABV01@@Z */
1686 /* ??0?$_Yarn@D@std@@QEAA@AEBV01@@Z */
1687 DEFINE_THISCALL_WRAPPER(_Yarn_char_copy_ctor
, 8)
1688 _Yarn_char
* __thiscall
_Yarn_char_copy_ctor(_Yarn_char
*this, const _Yarn_char
*copy
)
1690 TRACE("(%p %p)\n", this, copy
);
1692 _Yarn_char_ctor(this);
1693 return _Yarn_char_op_assign(this, copy
);
1696 /* ??1?$_Yarn@D@std@@QAE@XZ */
1697 /* ??1?$_Yarn@D@std@@QEAA@XZ */
1698 DEFINE_THISCALL_WRAPPER(_Yarn_char_dtor
, 4)
1699 void __thiscall
_Yarn_char_dtor(_Yarn_char
*this)
1701 TRACE("(%p)\n", this);
1702 _Yarn_char__Tidy(this);
1705 /* ?_C_str@?$_Yarn@D@std@@QBEPBDXZ */
1706 /* ?_C_str@?$_Yarn@D@std@@QEBAPEBDXZ */
1707 /* ?c_str@?$_Yarn@D@std@@QBEPBDXZ */
1708 /* ?c_str@?$_Yarn@D@std@@QEBAPEBDXZ */
1709 DEFINE_THISCALL_WRAPPER(_Yarn_char_c_str
, 4)
1710 const char* __thiscall
_Yarn_char_c_str(const _Yarn_char
*this)
1712 TRACE("(%p)\n", this);
1713 return this->str
? this->str
: &this->null_str
;
1716 /* ?_Empty@?$_Yarn@D@std@@QBE_NXZ */
1717 /* ?_Empty@?$_Yarn@D@std@@QEBA_NXZ */
1718 /* ?empty@?$_Yarn@D@std@@QBE_NXZ */
1719 /* ?empty@?$_Yarn@D@std@@QEBA_NXZ */
1720 DEFINE_THISCALL_WRAPPER(_Yarn_char_empty
, 4)
1721 MSVCP_bool __thiscall
_Yarn_char_empty(const _Yarn_char
*this)
1723 TRACE("(%p)\n", this);
1727 /* ??0?$_Yarn@_W@std@@QAE@XZ */
1728 /* ??0?$_Yarn@_W@std@@QEAA@XZ */
1729 DEFINE_THISCALL_WRAPPER(_Yarn_wchar_ctor
, 4)
1730 _Yarn_wchar
* __thiscall
_Yarn_wchar_ctor(_Yarn_wchar
*this)
1732 TRACE("(%p)\n", this);
1735 this->null_str
= '\0';
1739 /* ?_Tidy@?$_Yarn@_W@std@@AAEXXZ */
1740 /* ?_Tidy@?$_Yarn@_W@std@@AEAAXXZ */
1741 DEFINE_THISCALL_WRAPPER(_Yarn_wchar__Tidy
, 4)
1742 void __thiscall
_Yarn_wchar__Tidy(_Yarn_wchar
*this)
1744 TRACE("(%p)\n", this);
1747 MSVCRT_operator_delete(this->str
);
1751 /* ??1?$_Yarn@_W@std@@QAE@XZ */
1752 /* ??1?$_Yarn@_W@std@@QEAA@XZ */
1753 DEFINE_THISCALL_WRAPPER(_Yarn_wchar_dtor
, 4)
1754 void __thiscall
_Yarn_wchar_dtor(_Yarn_wchar
*this)
1756 TRACE("(%p)\n", this);
1757 _Yarn_wchar__Tidy(this);
1760 /* ??4?$_Yarn@_W@std@@QAEAAV01@PB_W@Z */
1761 /* ??4?$_Yarn@_W@std@@QEAAAEAV01@PEB_W@Z */
1762 DEFINE_THISCALL_WRAPPER(_Yarn_wchar_op_assign_cstr
, 8)
1763 _Yarn_wchar
* __thiscall
_Yarn_wchar_op_assign_cstr(_Yarn_wchar
*this, const wchar_t *str
)
1765 TRACE("(%p %p)\n", this, str
);
1767 if(str
!= this->str
) {
1768 _Yarn_wchar__Tidy(this);
1771 MSVCP_size_t len
= wcslen(str
);
1773 this->str
= MSVCRT_operator_new((len
+1)*sizeof(wchar_t));
1775 ERR("out of memory\n");
1778 memcpy(this->str
, str
, (len
+1)*sizeof(wchar_t));
1784 /* ?_C_str@?$_Yarn@_W@std@@QBEPB_WXZ */
1785 /* ?_C_str@?$_Yarn@_W@std@@QEBAPEB_WXZ */
1786 DEFINE_THISCALL_WRAPPER(_Yarn_wchar__C_str
, 4)
1787 const wchar_t* __thiscall
_Yarn_wchar__C_str(const _Yarn_wchar
*this)
1789 TRACE("(%p)\n", this);
1790 return this->str
? this->str
: &this->null_str
;
1793 /* ?_Empty@?$_Yarn@_W@std@@QBE_NXZ */
1794 /* ?_Empty@?$_Yarn@_W@std@@QEBA_NXZ */
1795 DEFINE_THISCALL_WRAPPER(_Yarn_wchar__Empty
, 4)
1796 MSVCP_bool __thiscall
_Yarn_wchar__Empty(const _Yarn_wchar
*this)
1798 TRACE("(%p)\n", this);
1802 /* ?find_first_of@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEIPBDI@Z */
1803 /* ?find_first_of@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA_KPEBD_K@Z */
1804 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_find_first_of_cstr
, 12)
1805 MSVCP_size_t __thiscall
MSVCP_basic_string_char_find_first_of_cstr(
1806 const basic_string_char
*this, const char *find
, MSVCP_size_t off
)
1808 return MSVCP_basic_string_char_find_first_of_cstr_substr(
1809 this, find
, off
, MSVCP_char_traits_char_length(find
));
1812 /* ?find_first_of@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEIDI@Z */
1813 /* ?find_first_of@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA_KD_K@Z */
1814 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_find_first_of_ch
, 12)
1815 MSVCP_size_t __thiscall
MSVCP_basic_string_char_find_first_of_ch(
1816 const basic_string_char
*this, char ch
, MSVCP_size_t off
)
1818 return MSVCP_basic_string_char_find_first_of_cstr_substr(this, &ch
, off
, 1);
1821 /* ?find_first_not_of@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEIPBDII@Z */
1822 /* ?find_first_not_of@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA_KPEBD_K1@Z */
1823 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_find_first_not_of_cstr_substr
, 16)
1824 MSVCP_size_t __thiscall
MSVCP_basic_string_char_find_first_not_of_cstr_substr(
1825 const basic_string_char
*this, const char *find
, MSVCP_size_t off
, MSVCP_size_t len
)
1827 const char *p
, *end
;
1829 TRACE("%p %p %lu %lu\n", this, find
, off
, len
);
1831 if(off
<this->size
) {
1832 end
= basic_string_char_const_ptr(this)+this->size
;
1833 for(p
=basic_string_char_const_ptr(this)+off
; p
<end
; p
++)
1834 if(!MSVCP_char_traits_char_find(find
, len
, p
))
1835 return p
-basic_string_char_const_ptr(this);
1838 return MSVCP_basic_string_char_npos
;
1841 /* ?find_first_not_of@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEIABV12@I@Z */
1842 /* ?find_first_not_of@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA_KAEBV12@_K@Z */
1843 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_find_first_not_of
, 12)
1844 MSVCP_size_t __thiscall
MSVCP_basic_string_char_find_first_not_of(
1845 const basic_string_char
*this, const basic_string_char
*find
, MSVCP_size_t off
)
1847 return MSVCP_basic_string_char_find_first_not_of_cstr_substr(this,
1848 basic_string_char_const_ptr(find
), off
, find
->size
);
1851 /* ?find_first_not_of@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEIPBDI@Z */
1852 /* ?find_first_not_of@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA_KPEBD_K@Z */
1853 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_find_first_not_of_cstr
, 12)
1854 MSVCP_size_t __thiscall
MSVCP_basic_string_char_find_first_not_of_cstr(
1855 const basic_string_char
*this, const char *find
, MSVCP_size_t off
)
1857 return MSVCP_basic_string_char_find_first_not_of_cstr_substr(
1858 this, find
, off
, MSVCP_char_traits_char_length(find
));
1861 /* ?find_first_not_of@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEIDI@Z */
1862 /* ?find_first_not_of@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA_KD_K@Z */
1863 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_find_first_not_of_ch
, 12)
1864 MSVCP_size_t __thiscall
MSVCP_basic_string_char_find_first_not_of_ch(
1865 const basic_string_char
*this, char ch
, MSVCP_size_t off
)
1867 return MSVCP_basic_string_char_find_first_not_of_cstr_substr(this, &ch
, off
, 1);
1870 /* ?find_last_of@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEIPBDII@Z */
1871 /* ?find_last_of@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA_KPEBD_K1@Z */
1872 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_find_last_of_cstr_substr
, 16)
1873 MSVCP_size_t __thiscall
MSVCP_basic_string_char_find_last_of_cstr_substr(
1874 const basic_string_char
*this, const char *find
, MSVCP_size_t off
, MSVCP_size_t len
)
1876 const char *p
, *beg
;
1878 TRACE("%p %p %lu %lu\n", this, find
, off
, len
);
1880 if(len
>0 && this->size
>0) {
1881 if(off
>= this->size
)
1884 beg
= basic_string_char_const_ptr(this);
1885 for(p
=beg
+off
; p
>=beg
; p
--)
1886 if(MSVCP_char_traits_char_find(find
, len
, p
))
1890 return MSVCP_basic_string_char_npos
;
1893 /* ?find_last_of@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEIABV12@I@Z */
1894 /* ?find_last_of@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA_KAEBV12@_K@Z */
1895 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_find_last_of
, 12)
1896 MSVCP_size_t __thiscall
MSVCP_basic_string_char_find_last_of(
1897 const basic_string_char
*this, const basic_string_char
*find
, MSVCP_size_t off
)
1899 return MSVCP_basic_string_char_find_last_of_cstr_substr(this,
1900 basic_string_char_const_ptr(find
), off
, find
->size
);
1903 /* ?find_last_of@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEIPBDI@Z */
1904 /* ?find_last_of@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA_KPEBD_K@Z */
1905 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_find_last_of_cstr
, 12)
1906 MSVCP_size_t __thiscall
MSVCP_basic_string_char_find_last_of_cstr(
1907 const basic_string_char
*this, const char *find
, MSVCP_size_t off
)
1909 return MSVCP_basic_string_char_find_last_of_cstr_substr(
1910 this, find
, off
, MSVCP_char_traits_char_length(find
));
1913 /* ?find_last_of@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEIDI@Z */
1914 /* ?find_last_of@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA_KD_K@Z */
1915 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_find_last_of_ch
, 12)
1916 MSVCP_size_t __thiscall
MSVCP_basic_string_char_find_last_of_ch(
1917 const basic_string_char
*this, char ch
, MSVCP_size_t off
)
1919 return MSVCP_basic_string_char_find_last_of_cstr_substr(this, &ch
, off
, 1);
1922 /* ?find_last_not_of@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEIPBDII@Z */
1923 /* ?find_last_not_of@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA_KPEBD_K1@Z */
1924 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_find_last_not_of_cstr_substr
, 16)
1925 MSVCP_size_t __thiscall
MSVCP_basic_string_char_find_last_not_of_cstr_substr(
1926 const basic_string_char
*this, const char *find
, MSVCP_size_t off
, MSVCP_size_t len
)
1928 const char *p
, *beg
;
1930 TRACE("%p %p %lu %lu\n", this, find
, off
, len
);
1933 if(off
>= this->size
)
1936 beg
= basic_string_char_const_ptr(this);
1937 for(p
=beg
+off
; p
>=beg
; p
--)
1938 if(!MSVCP_char_traits_char_find(find
, len
, p
))
1942 return MSVCP_basic_string_char_npos
;
1945 /* ?find_last_not_of@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEIABV12@I@Z */
1946 /* ?find_last_not_of@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA_KAEBV12@_K@Z */
1947 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_find_last_not_of
, 12)
1948 MSVCP_size_t __thiscall
MSVCP_basic_string_char_find_last_not_of(
1949 const basic_string_char
*this, const basic_string_char
*find
, MSVCP_size_t off
)
1951 return MSVCP_basic_string_char_find_last_not_of_cstr_substr(this,
1952 basic_string_char_const_ptr(find
), off
, find
->size
);
1955 /* ?find_last_not_of@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEIPBDI@Z */
1956 /* ?find_last_not_of@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA_KPEBD_K@Z */
1957 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_find_last_not_of_cstr
, 12)
1958 MSVCP_size_t __thiscall
MSVCP_basic_string_char_find_last_not_of_cstr(
1959 const basic_string_char
*this, const char *find
, MSVCP_size_t off
)
1961 return MSVCP_basic_string_char_find_last_not_of_cstr_substr(
1962 this, find
, off
, MSVCP_char_traits_char_length(find
));
1965 /* ?find_last_not_of@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEIDI@Z */
1966 /* ?find_last_not_of@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA_KD_K@Z */
1967 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_find_last_not_of_ch
, 12)
1968 MSVCP_size_t __thiscall
MSVCP_basic_string_char_find_last_not_of_ch(
1969 const basic_string_char
*this, char ch
, MSVCP_size_t off
)
1971 return MSVCP_basic_string_char_find_last_not_of_cstr_substr(this, &ch
, off
, 1);
1974 /* ??A?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAADI@Z */
1975 /* ??A?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAAEAD_K@Z */
1976 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_operator_at
, 8)
1977 char* __thiscall
MSVCP_basic_string_char_operator_at(
1978 basic_string_char
*this, MSVCP_size_t pos
)
1980 TRACE("%p %lu\n", this, pos
);
1982 assert(this->size
>= pos
);
1983 return basic_string_char_ptr(this)+pos
;
1986 /* ??A?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEABDI@Z */
1987 /* ??A?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBAAEBD_K@Z */
1988 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_const_operator_at
, 8)
1989 const char* __thiscall
MSVCP_basic_string_char_const_operator_at(
1990 const basic_string_char
*this, MSVCP_size_t pos
)
1992 TRACE("%p %lu\n", this, pos
);
1994 assert(this->size
>= pos
);
1995 return basic_string_char_const_ptr(this)+pos
;
1998 /* ??A?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAADU_Size_type_nosscl@01@@Z */
1999 /* ??A?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAAEADU_Size_type_nosscl@01@@Z */
2000 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_operator_at_noverify
, 8)
2001 char* __thiscall
MSVCP_basic_string_char_operator_at_noverify(
2002 basic_string_char
*this, size_t_noverify pos
)
2004 TRACE("%p %lu\n", this, pos
.val
);
2005 return basic_string_char_ptr(this)+pos
.val
;
2008 /* ??A?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEABDU_Size_type_nosscl@01@@Z */
2009 /* ??A?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBAAEBDU_Size_type_nosscl@01@@Z */
2010 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_operator_const_at_noverify
, 8)
2011 const char* __thiscall
MSVCP_basic_string_char_operator_const_at_noverify(
2012 const basic_string_char
*this, size_t_noverify pos
)
2014 TRACE("%p %lu\n", this, pos
.val
);
2015 return basic_string_char_const_ptr(this)+pos
.val
;
2018 /* ?at@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAADI@Z */
2019 /* ?at@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAAEAD_K@Z */
2020 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_at
, 8)
2021 char* __thiscall
MSVCP_basic_string_char_at(
2022 basic_string_char
*this, MSVCP_size_t pos
)
2024 TRACE("%p %lu\n", this, pos
);
2026 if(this->size
<= pos
)
2027 MSVCP__String_base_Xran();
2029 return basic_string_char_ptr(this)+pos
;
2032 /* ?at@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEABDI@Z */
2033 /* ?at@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBAAEBD_K@Z */
2034 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_const_at
, 8)
2035 const char* __thiscall
MSVCP_basic_string_char_const_at(
2036 const basic_string_char
*this, MSVCP_size_t pos
)
2038 TRACE("%p %lu\n", this, pos
);
2040 if(this->size
<= pos
)
2041 MSVCP__String_base_Xran();
2043 return basic_string_char_const_ptr(this)+pos
;
2046 /* ?replace@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@IIPBDI@Z */
2047 /* ?replace@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAAEAV12@_K0PEBD0@Z */
2048 DEFINE_THISCALL_WRAPPER(basic_string_char_replace_cstr_len
, 20)
2049 basic_string_char
* __thiscall
basic_string_char_replace_cstr_len(basic_string_char
*this,
2050 MSVCP_size_t off
, MSVCP_size_t len
, const char *str
, MSVCP_size_t str_len
)
2052 MSVCP_size_t inside_pos
= -1;
2053 char *ptr
= basic_string_char_ptr(this);
2055 TRACE("%p %ld %ld %p %ld\n", this, off
, len
, str
, str_len
);
2057 if(this->size
< off
)
2058 MSVCP__String_base_Xran();
2060 if(len
> this->size
-off
)
2061 len
= this->size
-off
;
2063 if(MSVCP_basic_string_char_npos
-str_len
<= this->size
-len
)
2064 MSVCP__String_base_Xlen();
2066 if(basic_string_char_inside(this, str
))
2067 inside_pos
= str
-ptr
;
2070 basic_string_char_grow(this, this->size
-len
+str_len
, FALSE
);
2071 ptr
= basic_string_char_ptr(this);
2074 if(inside_pos
== -1) {
2075 memmove(ptr
+off
+str_len
, ptr
+off
+len
, (this->size
-off
-len
)*sizeof(char));
2076 memcpy(ptr
+off
, str
, str_len
*sizeof(char));
2077 } else if(len
>= str_len
) {
2078 memmove(ptr
+off
, ptr
+inside_pos
, str_len
*sizeof(char));
2079 memmove(ptr
+off
+str_len
, ptr
+off
+len
, (this->size
-off
-len
)*sizeof(char));
2083 memmove(ptr
+off
+str_len
, ptr
+off
+len
, (this->size
-off
-len
)*sizeof(char));
2085 if(inside_pos
< off
+len
) {
2086 size
= off
+len
-inside_pos
;
2089 memmove(ptr
+off
, ptr
+inside_pos
, size
*sizeof(char));
2095 memmove(ptr
+off
+size
, ptr
+off
+str_len
, (str_len
-size
)*sizeof(char));
2098 basic_string_char_eos(this, this->size
-len
+str_len
);
2102 /* ?replace@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@IIPBD@Z */
2103 /* ?replace@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAAEAV12@_K0PEBD@Z */
2104 DEFINE_THISCALL_WRAPPER(basic_string_char_replace_cstr
, 16)
2105 basic_string_char
* __thiscall
basic_string_char_replace_cstr(basic_string_char
*this,
2106 MSVCP_size_t off
, MSVCP_size_t len
, const char *str
)
2108 return basic_string_char_replace_cstr_len(this, off
, len
, str
,
2109 MSVCP_char_traits_char_length(str
));
2112 /* ?replace@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@IIABV12@II@Z */
2113 /* ?replace@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAAEAV12@_K0AEBV12@00@Z */
2114 DEFINE_THISCALL_WRAPPER(basic_string_char_replace_substr
, 24)
2115 basic_string_char
* __thiscall
basic_string_char_replace_substr(basic_string_char
*this, MSVCP_size_t off
,
2116 MSVCP_size_t len
, const basic_string_char
*str
, MSVCP_size_t str_off
, MSVCP_size_t str_len
)
2118 if(str
->size
< str_off
)
2119 MSVCP__String_base_Xran();
2121 if(str_len
> str
->size
-str_off
)
2122 str_len
= str
->size
-str_off
;
2124 return basic_string_char_replace_cstr_len(this, off
, len
,
2125 basic_string_char_const_ptr(str
)+str_off
, str_len
);
2128 /* ?replace@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@IIABV12@@Z */
2129 /* ?replace@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAAEAV12@_K0AEBV12@@Z */
2130 DEFINE_THISCALL_WRAPPER(basic_string_char_replace
, 16)
2131 basic_string_char
* __thiscall
basic_string_char_replace(basic_string_char
*this,
2132 MSVCP_size_t off
, MSVCP_size_t len
, const basic_string_char
*str
)
2134 return basic_string_char_replace_cstr_len(this, off
, len
,
2135 basic_string_char_const_ptr(str
), str
->size
);
2138 /* ?replace@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@IIID@Z */
2139 /* ?replace@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAAEAV12@_K00D@Z */
2140 DEFINE_THISCALL_WRAPPER(basic_string_char_replace_ch
, 20)
2141 basic_string_char
* __thiscall
basic_string_char_replace_ch(basic_string_char
*this,
2142 MSVCP_size_t off
, MSVCP_size_t len
, MSVCP_size_t count
, char ch
)
2144 char *ptr
= basic_string_char_ptr(this);
2146 TRACE("%p %ld %ld %ld %c\n", this, off
, len
, count
, ch
);
2148 if(this->size
< off
)
2149 MSVCP__String_base_Xran();
2151 if(len
> this->size
-off
)
2152 len
= this->size
-off
;
2154 if(MSVCP_basic_string_char_npos
-count
<= this->size
-len
)
2155 MSVCP__String_base_Xlen();
2158 basic_string_char_grow(this, this->size
-len
+count
, FALSE
);
2159 ptr
= basic_string_char_ptr(this);
2162 memmove(ptr
+off
+count
, ptr
+off
+len
, (this->size
-off
-len
)*sizeof(char));
2163 MSVCP_char_traits_char_assignn(ptr
+off
, count
, ch
);
2164 basic_string_char_eos(this, this->size
-len
+count
);
2169 /* ?insert@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@IABV12@@Z */
2170 /* ?insert@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAAEAV12@_KAEBV12@@Z */
2171 DEFINE_THISCALL_WRAPPER(basic_string_char_insert
, 12)
2172 basic_string_char
* __thiscall
basic_string_char_insert(basic_string_char
*this,
2173 MSVCP_size_t off
, const basic_string_char
*str
)
2175 return basic_string_char_replace(this, off
, 0, str
);
2178 /* ?insert@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@IABV12@II@Z */
2179 /* ?insert@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAAEAV12@_KAEBV12@00@Z */
2180 DEFINE_THISCALL_WRAPPER(basic_string_char_insert_substr
, 20)
2181 basic_string_char
* __thiscall
basic_string_char_insert_substr(
2182 basic_string_char
*this, MSVCP_size_t off
, const basic_string_char
*str
,
2183 MSVCP_size_t str_off
, MSVCP_size_t str_count
)
2185 return basic_string_char_replace_substr(this, off
, 0, str
, str_off
, str_count
);
2188 /* ?insert@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@IPBD@Z */
2189 /* ?insert@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAAEAV12@_KPEBD@Z */
2190 DEFINE_THISCALL_WRAPPER(basic_string_char_insert_cstr
, 12)
2191 basic_string_char
* __thiscall
basic_string_char_insert_cstr(
2192 basic_string_char
*this, MSVCP_size_t off
, const char *str
)
2194 return basic_string_char_replace_cstr(this, off
, 0, str
);
2197 /* ?insert@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@IPBDI@Z */
2198 /* ?insert@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAAEAV12@_KPEBD0@Z */
2199 DEFINE_THISCALL_WRAPPER(basic_string_char_insert_cstr_len
, 16)
2200 basic_string_char
* __thiscall
basic_string_char_insert_cstr_len(basic_string_char
*this,
2201 MSVCP_size_t off
, const char *str
, MSVCP_size_t str_len
)
2203 return basic_string_char_replace_cstr_len(this, off
, 0, str
, str_len
);
2206 /* ?insert@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@IID@Z */
2207 /* ?insert@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAAEAV12@_K0D@Z */
2208 DEFINE_THISCALL_WRAPPER(basic_string_char_insert_chn
, 16)
2209 basic_string_char
* __thiscall
basic_string_char_insert_chn(basic_string_char
*this,
2210 MSVCP_size_t off
, MSVCP_size_t count
, char ch
)
2212 return basic_string_char_replace_ch(this, off
, 0, count
, ch
);
2215 /* ?resize@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEXID@Z */
2216 /* ?resize@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAX_KD@Z */
2217 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_resize_ch
, 12)
2218 void __thiscall
MSVCP_basic_string_char_resize_ch(
2219 basic_string_char
*this, MSVCP_size_t size
, char ch
)
2221 TRACE("%p %lu %c\n", this, size
, ch
);
2223 if(size
<= this->size
)
2224 MSVCP_basic_string_char_erase(this, size
, this->size
);
2226 MSVCP_basic_string_char_append_len_ch(this, size
-this->size
, ch
);
2229 /* ?resize@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEXI@Z */
2230 /* ?resize@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAX_K@Z */
2231 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_resize
, 8)
2232 void __thiscall
MSVCP_basic_string_char_resize(
2233 basic_string_char
*this, MSVCP_size_t size
)
2235 MSVCP_basic_string_char_resize_ch(this, size
, '\0');
2238 /* ?clear@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEXXZ */
2239 /* ?clear@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAXXZ */
2240 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_clear
, 4)
2241 void __thiscall
MSVCP_basic_string_char_clear(basic_string_char
*this)
2243 basic_string_char_eos(this, 0);
2246 /* basic_string<wchar_t, char_traits<wchar_t>, allocator<wchar_t>> */
2247 /* basic_string<unsigned short, char_traits<unsigned short>, allocator<unsigned short>> */
2248 /* ?npos@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@2IB */
2249 /* ?npos@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@2_KB */
2250 /* ?npos@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@2IB */
2251 /* ?npos@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@2_KB */
2252 const MSVCP_size_t MSVCP_basic_string_wchar_npos
= -1;
2254 /* ?_Myptr@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@IAEPA_WXZ */
2255 /* ?_Myptr@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@IEAAPEA_WXZ */
2256 /* ?_Myptr@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@IAEPAGXZ */
2257 /* ?_Myptr@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@IEAAPEAGXZ */
2258 DEFINE_THISCALL_WRAPPER(basic_string_wchar_ptr
, 4)
2259 wchar_t* __thiscall
basic_string_wchar_ptr(basic_string_wchar
*this)
2261 if(this->res
< BUF_SIZE_WCHAR
)
2262 return this->data
.buf
;
2263 return this->data
.ptr
;
2266 /* ?_Myptr@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@IBEPB_WXZ */
2267 /* ?_Myptr@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@IEBAPEB_WXZ */
2268 /* ?_Myptr@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@IBEPBGXZ */
2269 /* ?_Myptr@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@IEBAPEBGXZ */
2270 DEFINE_THISCALL_WRAPPER(basic_string_wchar_const_ptr
, 4)
2271 const wchar_t* __thiscall
basic_string_wchar_const_ptr(const basic_string_wchar
*this)
2273 if(this->res
< BUF_SIZE_WCHAR
)
2274 return this->data
.buf
;
2275 return this->data
.ptr
;
2278 /* ?_Eos@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@IAEXI@Z */
2279 /* ?_Eos@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@IEAAX_K@Z */
2280 /* ?_Eos@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@IAEXI@Z */
2281 /* ?_Eos@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@IEAAX_K@Z */
2282 DEFINE_THISCALL_WRAPPER(basic_string_wchar_eos
, 8)
2283 void __thiscall
basic_string_wchar_eos(basic_string_wchar
*this, MSVCP_size_t len
)
2285 static const wchar_t nullbyte_w
= '\0';
2288 MSVCP_char_traits_wchar_assign(basic_string_wchar_ptr(this)+len
, &nullbyte_w
);
2291 /* ?_Inside@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@IAE_NPB_W@Z */
2292 /* ?_Inside@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@IEAA_NPEB_W@Z */
2293 /* ?_Inside@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@IAE_NPBG@Z */
2294 /* ?_Inside@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@IEAA_NPEBG@Z */
2295 DEFINE_THISCALL_WRAPPER(basic_string_wchar_inside
, 8)
2296 MSVCP_bool __thiscall
basic_string_wchar_inside(
2297 basic_string_wchar
*this, const wchar_t *ptr
)
2299 wchar_t *cstr
= basic_string_wchar_ptr(this);
2301 return ptr
>=cstr
&& ptr
<cstr
+this->size
;
2304 /* ?_Tidy@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@IAEX_NI@Z */
2305 /* ?_Tidy@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@IEAAX_N_K@Z */
2306 /* ?_Tidy@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@IAEX_NI@Z */
2307 /* ?_Tidy@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@IEAAX_N_K@Z */
2308 DEFINE_THISCALL_WRAPPER(basic_string_wchar_tidy
, 12)
2309 void __thiscall
basic_string_wchar_tidy(basic_string_wchar
*this,
2310 MSVCP_bool built
, MSVCP_size_t new_size
)
2312 if(built
&& BUF_SIZE_WCHAR
<=this->res
) {
2313 wchar_t *ptr
= this->data
.ptr
;
2316 MSVCP_char_traits_wchar__Copy_s(this->data
.buf
, BUF_SIZE_WCHAR
, ptr
, new_size
);
2317 MSVCP_allocator_wchar_deallocate(STRING_ALLOCATOR(this), ptr
, this->res
+1);
2320 this->res
= BUF_SIZE_WCHAR
-1;
2321 basic_string_wchar_eos(this, new_size
);
2324 /* ?_Grow@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@IAE_NI_N@Z */
2325 /* ?_Grow@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@IEAA_N_K_N@Z */
2326 /* ?_Grow@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@IAE_NI_N@Z */
2327 /* ?_Grow@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@IEAA_N_K_N@Z */
2328 DEFINE_THISCALL_WRAPPER(basic_string_wchar_grow
, 12)
2329 MSVCP_bool __thiscall
basic_string_wchar_grow(
2330 basic_string_wchar
*this, MSVCP_size_t new_size
, MSVCP_bool trim
)
2332 if(this->res
< new_size
) {
2333 MSVCP_size_t new_res
= new_size
, len
= this->size
;
2338 if(new_res
/3 < this->res
/2)
2339 new_res
= this->res
+ this->res
/2;
2341 ptr
= MSVCP_allocator_wchar_allocate(STRING_ALLOCATOR(this), new_res
+1);
2343 ptr
= MSVCP_allocator_wchar_allocate(STRING_ALLOCATOR(this), new_size
+1);
2347 ERR("Out of memory\n");
2348 basic_string_wchar_tidy(this, TRUE
, 0);
2352 MSVCP_char_traits_wchar__Copy_s(ptr
, new_size
,
2353 basic_string_wchar_ptr(this), this->size
);
2354 basic_string_wchar_tidy(this, TRUE
, 0);
2355 this->data
.ptr
= ptr
;
2356 this->res
= new_size
;
2357 basic_string_wchar_eos(this, len
);
2358 } else if(trim
&& new_size
< BUF_SIZE_WCHAR
)
2359 basic_string_wchar_tidy(this, TRUE
,
2360 new_size
<this->size
? new_size
: this->size
);
2361 else if(new_size
== 0)
2362 basic_string_wchar_eos(this, 0);
2364 return (new_size
>0);
2367 /* ?_Copy@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@IAEXII@Z */
2368 /* ?_Copy@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@IEAAX_K0@Z */
2369 /* ?_Copy@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@IAEXII@Z */
2370 /* ?_Copy@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@IEAAX_K0@Z */
2371 DEFINE_THISCALL_WRAPPER(basic_string_wchar__Copy
, 12)
2372 void __thiscall
basic_string_wchar__Copy(basic_string_wchar
*this,
2373 MSVCP_size_t new_size
, MSVCP_size_t copy_len
)
2375 TRACE("%p %lu %lu\n", this, new_size
, copy_len
);
2377 if(!basic_string_wchar_grow(this, new_size
, FALSE
))
2379 basic_string_wchar_eos(this, copy_len
);
2382 /* ?get_allocator@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBE?AV?$allocator@_W@2@XZ */
2383 /* ?get_allocator@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBA?AV?$allocator@_W@2@XZ */
2384 /* ?get_allocator@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBE?AV?$allocator@G@2@XZ */
2385 /* ?get_allocator@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBA?AV?$allocator@G@2@XZ */
2386 DEFINE_THISCALL_WRAPPER(basic_string_wchar_get_allocator
, 8)
2387 allocator
* __thiscall
basic_string_wchar_get_allocator(const basic_string_wchar
*this, allocator
*ret
)
2389 TRACE("%p\n", this);
2393 /* ?erase@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV12@II@Z */
2394 /* ?erase@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAAEAV12@_K0@Z */
2395 /* ?erase@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV12@II@Z */
2396 /* ?erase@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAAEAV12@_K0@Z */
2397 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_erase
, 12)
2398 basic_string_wchar
* __thiscall
MSVCP_basic_string_wchar_erase(
2399 basic_string_wchar
*this, MSVCP_size_t pos
, MSVCP_size_t len
)
2401 TRACE("%p %lu %lu\n", this, pos
, len
);
2403 if(pos
> this->size
)
2404 MSVCP__String_base_Xran();
2406 if(len
> this->size
-pos
)
2407 len
= this->size
-pos
;
2410 MSVCP_char_traits_wchar__Move_s(basic_string_wchar_ptr(this)+pos
,
2411 this->res
-pos
, basic_string_wchar_ptr(this)+pos
+len
,
2412 this->size
-pos
-len
);
2413 basic_string_wchar_eos(this, this->size
-len
);
2419 /* ?assign@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV12@ABV12@II@Z */
2420 /* ?assign@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAAEAV12@AEBV12@_K1@Z */
2421 /* ?assign@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV12@ABV12@II@Z */
2422 /* ?assign@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAAEAV12@AEBV12@_K1@Z */
2423 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_assign_substr
, 16)
2424 basic_string_wchar
* __thiscall
MSVCP_basic_string_wchar_assign_substr(
2425 basic_string_wchar
*this, const basic_string_wchar
*assign
,
2426 MSVCP_size_t pos
, MSVCP_size_t len
)
2428 TRACE("%p %p %lu %lu\n", this, assign
, pos
, len
);
2430 if(assign
->size
< pos
)
2431 MSVCP__String_base_Xran();
2433 if(len
> assign
->size
-pos
)
2434 len
= assign
->size
-pos
;
2436 if(this == assign
) {
2437 MSVCP_basic_string_wchar_erase(this, pos
+len
, MSVCP_basic_string_wchar_npos
);
2438 MSVCP_basic_string_wchar_erase(this, 0, pos
);
2439 } else if(basic_string_wchar_grow(this, len
, FALSE
)) {
2440 MSVCP_char_traits_wchar__Copy_s(basic_string_wchar_ptr(this),
2441 this->res
, basic_string_wchar_const_ptr(assign
)+pos
, len
);
2442 basic_string_wchar_eos(this, len
);
2448 /* ?assign@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV12@ABV12@@Z */
2449 /* ?assign@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAAEAV12@AEBV12@@Z */
2450 /* ??4?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV01@ABV01@@Z */
2451 /* ??4?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAAEAV01@AEBV01@@Z */
2452 /* ?assign@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV12@ABV12@@Z */
2453 /* ?assign@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAAEAV12@AEBV12@@Z */
2454 /* ??4?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV01@ABV01@@Z */
2455 /* ??4?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAAEAV01@AEBV01@@Z */
2456 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_assign
, 8)
2457 basic_string_wchar
* __thiscall
MSVCP_basic_string_wchar_assign(
2458 basic_string_wchar
*this, const basic_string_wchar
*assign
)
2460 return MSVCP_basic_string_wchar_assign_substr(this, assign
,
2461 0, MSVCP_basic_string_wchar_npos
);
2464 /* ?assign@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV12@PB_WI@Z */
2465 /* ?assign@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAAEAV12@PEB_W_K@Z */
2466 /* ?assign@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV12@PBGI@Z */
2467 /* ?assign@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAAEAV12@PEBG_K@Z */
2468 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_assign_cstr_len
, 12)
2469 basic_string_wchar
* __thiscall
MSVCP_basic_string_wchar_assign_cstr_len(
2470 basic_string_wchar
*this, const wchar_t *str
, MSVCP_size_t len
)
2472 TRACE("%p %s %lu\n", this, debugstr_wn(str
, len
), len
);
2474 if(basic_string_wchar_inside(this, str
))
2475 return MSVCP_basic_string_wchar_assign_substr(this, this,
2476 str
-basic_string_wchar_ptr(this), len
);
2477 else if(basic_string_wchar_grow(this, len
, FALSE
)) {
2478 MSVCP_char_traits_wchar__Copy_s(basic_string_wchar_ptr(this),
2479 this->res
, str
, len
);
2480 basic_string_wchar_eos(this, len
);
2486 /* ??4?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV01@_W@Z */
2487 /* ??4?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAAEAV01@_W@Z */
2488 /* ??4?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV01@G@Z */
2489 /* ??4?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAAEAV01@G@Z */
2490 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_assign_ch
, 8)
2491 basic_string_wchar
* __thiscall
MSVCP_basic_string_wchar_assign_ch(
2492 basic_string_wchar
*this, wchar_t ch
)
2494 return MSVCP_basic_string_wchar_assign_cstr_len(this, &ch
, 1);
2497 /* ?assign@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV12@PB_W@Z */
2498 /* ?assign@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAAEAV12@PEB_W@Z */
2499 /* ??4?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV01@PB_W@Z */
2500 /* ??4?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAAEAV01@PEB_W@Z */
2501 /* ?assign@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV12@PBG@Z */
2502 /* ?assign@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAAEAV12@PEBG@Z */
2503 /* ??4?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV01@PBG@Z */
2504 /* ??4?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAAEAV01@PEBG@Z */
2505 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_assign_cstr
, 8)
2506 basic_string_wchar
* __thiscall
MSVCP_basic_string_wchar_assign_cstr(
2507 basic_string_wchar
*this, const wchar_t *str
)
2509 return MSVCP_basic_string_wchar_assign_cstr_len(this, str
,
2510 MSVCP_char_traits_wchar_length(str
));
2513 /* ?assign@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV12@I_W@Z */
2514 /* ?assign@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAAEAV12@_K_W@Z */
2515 /* ?assign@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV12@IG@Z */
2516 /* ?assign@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAAEAV12@_KG@Z */
2517 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_assignn
, 12)
2518 basic_string_wchar
* __thiscall
MSVCP_basic_string_wchar_assignn(
2519 basic_string_wchar
*this, MSVCP_size_t count
, wchar_t ch
)
2521 TRACE("%p %ld %c\n", this, count
, ch
);
2523 basic_string_wchar_grow(this, count
, FALSE
);
2524 MSVCP_char_traits_wchar_assignn(basic_string_wchar_ptr(this), count
, ch
);
2525 basic_string_wchar_eos(this, count
);
2529 /* ?assign@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV12@PB_W0@Z */
2530 /* ?assign@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAAEAV12@PEB_W0@Z */
2531 /* ?assign@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV12@PBG0@Z */
2532 /* ?assign@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAAEAV12@PEBG0@Z */
2533 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_assign_ptr_ptr
, 12)
2534 basic_string_wchar
* __thiscall
MSVCP_basic_string_wchar_assign_ptr_ptr(
2535 basic_string_wchar
*this, const wchar_t *first
, const wchar_t *last
)
2537 return MSVCP_basic_string_wchar_assign_cstr_len(this, first
, last
-first
);
2540 /* ?_Chassign@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@IAEXII_W@Z */
2541 /* ?_Chassign@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@IEAAX_K0_W@Z */
2542 /* ?_Chassign@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@IAEXIIG@Z */
2543 /* ?_Chassign@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@IEAAX_K0G@Z */
2544 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_Chassign
, 16)
2545 void __thiscall
MSVCP_basic_string_wchar_Chassign(basic_string_wchar
*this,
2546 MSVCP_size_t off
, MSVCP_size_t count
, wchar_t ch
)
2548 TRACE("%p %lu %lu %c\n", this, off
, count
, ch
);
2549 MSVCP_char_traits_wchar_assignn(basic_string_wchar_ptr(this)+off
, count
, ch
);
2552 /* ?_Copy_s@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEIPA_WIII@Z */
2553 /* ?_Copy_s@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBA_KPEA_W_K11@Z */
2554 /* ?_Copy_s@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEIPAGIII@Z */
2555 /* ?_Copy_s@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBA_KPEAG_K11@Z */
2556 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_Copy_s
, 20)
2557 MSVCP_size_t __thiscall
MSVCP_basic_string_wchar_Copy_s(const basic_string_wchar
*this,
2558 wchar_t *dest
, MSVCP_size_t size
, MSVCP_size_t count
, MSVCP_size_t off
)
2560 TRACE("%p %p %lu %lu %lu\n", this, dest
, size
, count
, off
);
2562 if(this->size
< off
)
2563 MSVCP__String_base_Xran();
2565 if(count
> this->size
-off
)
2566 count
= this->size
-off
;
2568 MSVCP_char_traits_wchar__Copy_s(dest
, size
,
2569 basic_string_wchar_const_ptr(this)+off
, count
);
2573 /* ?copy@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEIPA_WII@Z */
2574 /* ?copy@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBA_KPEA_W_K1@Z */
2575 /* ?copy@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEIPAGII@Z */
2576 /* ?copy@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBA_KPEAG_K1@Z */
2577 DEFINE_THISCALL_WRAPPER(basic_string_wchar_copy
, 16)
2578 MSVCP_size_t __thiscall
basic_string_wchar_copy(const basic_string_wchar
*this,
2579 wchar_t *dest
, MSVCP_size_t count
, MSVCP_size_t off
)
2581 return MSVCP_basic_string_wchar_Copy_s(this, dest
, count
, count
, off
);
2584 /* ?c_str@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEPB_WXZ */
2585 /* ?c_str@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBAPEB_WXZ */
2586 /* ?data@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEPB_WXZ */
2587 /* ?data@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBAPEB_WXZ */
2588 /* ?c_str@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEPBGXZ */
2589 /* ?c_str@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBAPEBGXZ */
2590 /* ?data@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEPBGXZ */
2591 /* ?data@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBAPEBGXZ */
2592 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_c_str
, 4)
2593 const wchar_t* __thiscall
MSVCP_basic_string_wchar_c_str(const basic_string_wchar
*this)
2595 TRACE("%p\n", this);
2596 return basic_string_wchar_const_ptr(this);
2599 /* ?capacity@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEIXZ */
2600 /* ?capacity@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBA_KXZ */
2601 /* ?capacity@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEIXZ */
2602 /* ?capacity@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBA_KXZ */
2603 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_capacity
, 4)
2604 MSVCP_size_t __thiscall
MSVCP_basic_string_wchar_capacity(basic_string_wchar
*this)
2606 TRACE("%p\n", this);
2610 /* ?reserve@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEXI@Z */
2611 /* ?reserve@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAX_K@Z */
2612 /* ?reserve@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEXI@Z */
2613 /* ?reserve@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAX_K@Z */
2614 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_reserve
, 8)
2615 void __thiscall
MSVCP_basic_string_wchar_reserve(basic_string_wchar
*this, MSVCP_size_t size
)
2619 TRACE("%p %ld\n", this, size
);
2625 if(basic_string_wchar_grow(this, size
, TRUE
))
2626 basic_string_wchar_eos(this, len
);
2629 /* ??0?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE@XZ */
2630 /* ??0?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAA@XZ */
2631 /* ??0?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAE@XZ */
2632 /* ??0?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAA@XZ */
2633 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_ctor
, 4)
2634 basic_string_wchar
* __thiscall
MSVCP_basic_string_wchar_ctor(basic_string_wchar
*this)
2636 TRACE("%p\n", this);
2638 basic_string_wchar_tidy(this, FALSE
, 0);
2642 /* ??0?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE@ABV01@@Z */
2643 /* ??0?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAA@AEBV01@@Z */
2644 /* ??0?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAE@ABV01@@Z */
2645 /* ??0?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAA@AEBV01@@Z */
2646 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_copy_ctor
, 8)
2647 basic_string_wchar
* __thiscall
MSVCP_basic_string_wchar_copy_ctor(
2648 basic_string_wchar
*this, const basic_string_wchar
*copy
)
2650 TRACE("%p %p\n", this, copy
);
2652 basic_string_wchar_tidy(this, FALSE
, 0);
2653 MSVCP_basic_string_wchar_assign(this, copy
);
2657 /* ??0?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE@PB_W@Z */
2658 /* ??0?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAA@PEB_W@Z */
2659 /* ??0?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAE@PBG@Z */
2660 /* ??0?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAA@PEBG@Z */
2661 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_ctor_cstr
, 8)
2662 basic_string_wchar
* __thiscall
MSVCP_basic_string_wchar_ctor_cstr(
2663 basic_string_wchar
*this, const wchar_t *str
)
2665 TRACE("%p %s\n", this, debugstr_w(str
));
2667 basic_string_wchar_tidy(this, FALSE
, 0);
2668 MSVCP_basic_string_wchar_assign_cstr(this, str
);
2672 /* ??0?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE@PB_WABV?$allocator@_W@1@@Z */
2673 /* ??0?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAA@PEB_WAEBV?$allocator@_W@1@@Z */
2674 /* ??0?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAE@PBGABV?$allocator@G@1@@Z */
2675 /* ??0?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAA@PEBGAEBV?$allocator@G@1@@Z */
2676 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_ctor_cstr_alloc
, 12)
2677 basic_string_wchar
* __thiscall
MSVCP_basic_string_wchar_ctor_cstr_alloc(
2678 basic_string_wchar
*this, const wchar_t *str
, const void *alloc
)
2680 return MSVCP_basic_string_wchar_ctor_cstr(this, str
);
2683 /* ??0?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE@PB_WI@Z */
2684 /* ??0?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAA@PEB_W_K@Z */
2685 /* ??0?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAE@PBGI@Z */
2686 /* ??0?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAA@PEBG_K@Z */
2687 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_ctor_cstr_len
, 12)
2688 basic_string_wchar
* __thiscall
MSVCP_basic_string_wchar_ctor_cstr_len(
2689 basic_string_wchar
*this, const wchar_t *str
, MSVCP_size_t len
)
2691 TRACE("%p %s %ld\n", this, debugstr_wn(str
, len
), len
);
2693 basic_string_wchar_tidy(this, FALSE
, 0);
2694 MSVCP_basic_string_wchar_assign_cstr_len(this, str
, len
);
2698 /* ??0?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE@PB_WIABV?$allocator@_W@1@@Z */
2699 /* ??0?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAA@PEB_W_KAEBV?$allocator@_W@1@@Z */
2700 /* ??0?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAE@PBGIABV?$allocator@G@1@@Z */
2701 /* ??0?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAA@PEBG_KAEBV?$allocator@G@1@@Z */
2702 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_ctor_cstr_len_alloc
, 16)
2703 basic_string_wchar
* __thiscall
MSVCP_basic_string_wchar_ctor_cstr_len_alloc(
2704 basic_string_wchar
*this, const wchar_t *str
, MSVCP_size_t len
, const void *alloc
)
2706 return MSVCP_basic_string_wchar_ctor_cstr_len(this, str
, len
);
2709 /* ??0?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE@ABV01@II@Z */
2710 /* ??0?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAA@AEBV01@_K1@Z */
2711 /* ??0?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAE@ABV01@II@Z */
2712 /* ??0?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAA@AEBV01@_K1@Z */
2713 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_ctor_substr
, 16)
2714 basic_string_wchar
* __thiscall
MSVCP_basic_string_wchar_ctor_substr(
2715 basic_string_wchar
*this, const basic_string_wchar
*assign
,
2716 MSVCP_size_t pos
, MSVCP_size_t len
)
2718 TRACE("%p %p %lu %lu\n", this, assign
, pos
, len
);
2720 basic_string_wchar_tidy(this, FALSE
, 0);
2721 MSVCP_basic_string_wchar_assign_substr(this, assign
, pos
, len
);
2725 /* ??0?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE@ABV01@IIABV?$allocator@_W@1@@Z */
2726 /* ??0?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAA@AEBV01@_K1AEBV?$allocator@_W@1@@Z */
2727 /* ??0?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAE@ABV01@IIABV?$allocator@G@1@@Z */
2728 /* ??0?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAA@AEBV01@_K1AEBV?$allocator@G@1@@Z */
2729 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_ctor_substr_alloc
, 20)
2730 basic_string_wchar
* __thiscall
MSVCP_basic_string_wchar_ctor_substr_alloc(
2731 basic_string_wchar
*this, const basic_string_wchar
*assign
,
2732 MSVCP_size_t pos
, MSVCP_size_t len
, const void *alloc
)
2734 return MSVCP_basic_string_wchar_ctor_substr(this, assign
, pos
, len
);
2737 /* ??0?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE@ABV?$allocator@_W@1@@Z */
2738 /* ??0?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAA@AEBV?$allocator@_W@1@@Z */
2739 /* ??0?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAE@ABV?$allocator@G@1@@Z */
2740 /* ??0?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAA@AEBV?$allocator@G@1@@Z */
2741 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_ctor_alloc
, 8)
2742 basic_string_wchar
* __thiscall
MSVCP_basic_string_wchar_ctor_alloc(
2743 basic_string_wchar
*this, const void *alloc
)
2745 TRACE("%p %p\n", this, alloc
);
2747 basic_string_wchar_tidy(this, FALSE
, 0);
2751 /* ??0?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE@I_W@Z */
2752 /* ??0?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAA@_K_W@Z */
2753 /* ??0?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAE@IG@Z */
2754 /* ??0?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAA@_KG@Z */
2755 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_ctor_ch
, 12)
2756 basic_string_wchar
* __thiscall
MSVCP_basic_string_wchar_ctor_ch(basic_string_wchar
*this,
2757 MSVCP_size_t count
, wchar_t ch
)
2759 TRACE("%p %ld %c\n", this, count
, ch
);
2761 basic_string_wchar_tidy(this, FALSE
, 0);
2762 MSVCP_basic_string_wchar_assignn(this, count
, ch
);
2766 /* ??0?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE@I_WABV?$allocator@_W@1@@Z */
2767 /* ??0?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAA@_K_WAEBV?$allocator@_W@1@@Z */
2768 /* ??0?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAE@IGABV?$allocator@G@1@@Z */
2769 /* ??0?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAA@_KGAEBV?$allocator@G@1@@Z */
2770 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_ctor_ch_alloc
, 16)
2771 basic_string_wchar
* __thiscall
MSVCP_basic_string_wchar_ctor_ch_alloc(basic_string_wchar
*this,
2772 MSVCP_size_t count
, wchar_t ch
, const void *alloc
)
2774 return MSVCP_basic_string_wchar_ctor_ch(this, count
, ch
);
2777 /* ??0?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE@PB_W0@Z */
2778 /* ??0?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAA@PEB_W0@Z */
2779 /* ??0?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAE@PBG0@Z */
2780 /* ??0?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAA@PEBG0@Z */
2781 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_ctor_ptr_ptr
, 12)
2782 basic_string_wchar
* __thiscall
MSVCP_basic_string_wchar_ctor_ptr_ptr(basic_string_wchar
*this,
2783 const wchar_t *first
, const wchar_t *last
)
2785 return MSVCP_basic_string_wchar_ctor_cstr_len(this, first
, last
-first
);
2788 /* ??1?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE@XZ */
2789 /* ??1?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAA@XZ */
2790 /* ??1?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAE@XZ */
2791 /* ??1?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAA@XZ */
2792 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_dtor
, 4)
2793 void* __thiscall
MSVCP_basic_string_wchar_dtor(basic_string_wchar
*this)
2795 TRACE("%p\n", this);
2796 basic_string_wchar_tidy(this, TRUE
, 0);
2797 return NULL
; /* FEAR 1 installer expects EAX set to 0 */
2800 /* ?size@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEIXZ */
2801 /* ?size@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBA_KXZ */
2802 /* ?length@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEIXZ */
2803 /* ?length@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBA_KXZ */
2804 /* ?size@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEIXZ */
2805 /* ?size@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBA_KXZ */
2806 /* ?length@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEIXZ */
2807 /* ?length@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBA_KXZ */
2808 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_length
, 4)
2809 MSVCP_size_t __thiscall
MSVCP_basic_string_wchar_length(const basic_string_wchar
*this)
2811 TRACE("%p\n", this);
2815 /* ?max_size@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEIXZ */
2816 /* ?max_size@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBA_KXZ */
2817 /* ?max_size@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEIXZ */
2818 /* ?max_size@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBA_KXZ */
2819 DEFINE_THISCALL_WRAPPER(basic_string_wchar_max_size
, 4)
2820 MSVCP_size_t __thiscall
basic_string_wchar_max_size(const basic_string_wchar
*this)
2822 TRACE("%p\n", this);
2823 return MSVCP_allocator_wchar_max_size(STRING_ALLOCATOR(this))-1;
2826 /* ?empty@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBE_NXZ */
2827 /* ?empty@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBA_NXZ */
2828 /* ?empty@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBE_NXZ */
2829 /* ?empty@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBA_NXZ */
2830 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_empty
, 4)
2831 MSVCP_bool __thiscall
MSVCP_basic_string_wchar_empty(basic_string_wchar
*this)
2833 TRACE("%p\n", this);
2834 return this->size
== 0;
2837 /* ?swap@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEXAAV12@@Z */
2838 /* ?swap@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAXAEAV12@@Z */
2839 /* ?swap@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEXAAV12@@Z */
2840 /* ?swap@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAXAEAV12@@Z */
2841 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_swap
, 8)
2842 void __thiscall
MSVCP_basic_string_wchar_swap(basic_string_wchar
*this, basic_string_wchar
*str
)
2845 char tmp
[sizeof(this->data
)];
2846 const MSVCP_size_t size
= this->size
;
2847 const MSVCP_size_t res
= this->res
;
2849 memcpy(tmp
, this->data
.buf
, sizeof(this->data
));
2850 memcpy(this->data
.buf
, str
->data
.buf
, sizeof(this->data
));
2851 memcpy(str
->data
.buf
, tmp
, sizeof(this->data
));
2853 this->size
= str
->size
;
2854 this->res
= str
->res
;
2861 /* ?substr@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBE?AV12@II@Z */
2862 /* ?substr@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBA?AV12@_K0@Z */
2863 /* ?substr@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBE?AV12@II@Z */
2864 /* ?substr@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBA?AV12@_K0@Z */
2865 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_substr
, 16)
2866 basic_string_wchar
* __thiscall
MSVCP_basic_string_wchar_substr(basic_string_wchar
*this,
2867 basic_string_wchar
*ret
, MSVCP_size_t off
, MSVCP_size_t len
)
2869 TRACE("%p %lu %lu\n", this, off
, len
);
2871 MSVCP_basic_string_wchar_ctor_substr(ret
, this, off
, len
);
2875 /* ?append@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV12@ABV12@II@Z */
2876 /* ?append@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAAEAV12@AEBV12@_K1@Z */
2877 /* ?append@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV12@ABV12@II@Z */
2878 /* ?append@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAAEAV12@AEBV12@_K1@Z */
2879 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_append_substr
, 16)
2880 basic_string_wchar
* __thiscall
MSVCP_basic_string_wchar_append_substr(basic_string_wchar
*this,
2881 const basic_string_wchar
*append
, MSVCP_size_t offset
, MSVCP_size_t count
)
2883 TRACE("%p %p %lu %lu\n", this, append
, offset
, count
);
2885 if(append
->size
< offset
)
2886 MSVCP__String_base_Xran();
2888 if(count
> append
->size
-offset
)
2889 count
= append
->size
-offset
;
2891 if(MSVCP_basic_string_wchar_npos
-this->size
<=count
|| this->size
+count
<this->size
)
2892 MSVCP__String_base_Xlen();
2894 if(basic_string_wchar_grow(this, this->size
+count
, FALSE
)) {
2895 MSVCP_char_traits_wchar__Copy_s(basic_string_wchar_ptr(this)+this->size
,
2896 this->res
-this->size
, basic_string_wchar_const_ptr(append
)+offset
, count
);
2897 basic_string_wchar_eos(this, this->size
+count
);
2903 /* ?append@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV12@ABV12@@Z */
2904 /* ?append@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAAEAV12@AEBV12@@Z */
2905 /* ??Y?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV01@ABV01@@Z */
2906 /* ??Y?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAAEAV01@AEBV01@@Z */
2907 /* ?append@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV12@ABV12@@Z */
2908 /* ?append@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAAEAV12@AEBV12@@Z */
2909 /* ??Y?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV01@ABV01@@Z */
2910 /* ??Y?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAAEAV01@AEBV01@@Z */
2911 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_append
, 8)
2912 basic_string_wchar
* __thiscall
MSVCP_basic_string_wchar_append(
2913 basic_string_wchar
*this, const basic_string_wchar
*append
)
2915 return MSVCP_basic_string_wchar_append_substr(this, append
,
2916 0, MSVCP_basic_string_wchar_npos
);
2919 /* ?append@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV12@PB_WI@Z */
2920 /* ?append@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAAEAV12@PEB_W_K@Z */
2921 /* ?append@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV12@PBGI@Z */
2922 /* ?append@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAAEAV12@PEBG_K@Z */
2923 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_append_cstr_len
, 12)
2924 basic_string_wchar
* __thiscall
MSVCP_basic_string_wchar_append_cstr_len(
2925 basic_string_wchar
*this, const wchar_t *append
, MSVCP_size_t count
)
2927 TRACE("%p %s %lu\n", this, debugstr_wn(append
, count
), count
);
2929 if(basic_string_wchar_inside(this, append
))
2930 return MSVCP_basic_string_wchar_append_substr(this, this,
2931 append
-basic_string_wchar_ptr(this), count
);
2933 if(MSVCP_basic_string_wchar_npos
-this->size
<=count
|| this->size
+count
<this->size
)
2934 MSVCP__String_base_Xlen();
2936 if(basic_string_wchar_grow(this, this->size
+count
, FALSE
)) {
2937 MSVCP_char_traits_wchar__Copy_s(basic_string_wchar_ptr(this)+this->size
,
2938 this->res
-this->size
, append
, count
);
2939 basic_string_wchar_eos(this, this->size
+count
);
2945 /* ?append@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV12@PB_W@Z */
2946 /* ?append@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAAEAV12@PEB_W@Z */
2947 /* ??Y?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV01@PB_W@Z */
2948 /* ??Y?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAAEAV01@PEB_W@Z */
2949 /* ?append@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV12@PBG@Z */
2950 /* ?append@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAAEAV12@PEBG@Z */
2951 /* ??Y?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV01@PBG@Z */
2952 /* ??Y?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAAEAV01@PEBG@Z */
2953 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_append_cstr
, 8)
2954 basic_string_wchar
* __thiscall
MSVCP_basic_string_wchar_append_cstr(
2955 basic_string_wchar
*this, const wchar_t *append
)
2957 return MSVCP_basic_string_wchar_append_cstr_len(this, append
,
2958 MSVCP_char_traits_wchar_length(append
));
2961 /* ?append@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV12@PB_W0@Z */
2962 /* ?append@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAAEAV12@PEB_W0@Z */
2963 /* ?append@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV12@PBG0@Z */
2964 /* ?append@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAAEAV12@PEBG0@Z */
2965 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_append_beg_end
, 12)
2966 basic_string_wchar
* __thiscall
MSVCP_basic_string_wchar_append_beg_end(
2967 basic_string_wchar
*this, const wchar_t *beg
, const wchar_t *end
)
2969 return MSVCP_basic_string_wchar_append_cstr_len(this, beg
, end
-beg
);
2972 /* ?append@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV12@I_W@Z */
2973 /* ?append@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAAEAV12@_K_W@Z */
2974 /* ?append@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV12@IG@Z */
2975 /* ?append@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAAEAV12@_KG@Z */
2976 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_append_len_ch
, 12)
2977 basic_string_wchar
* __thiscall
MSVCP_basic_string_wchar_append_len_ch(
2978 basic_string_wchar
*this, MSVCP_size_t count
, wchar_t ch
)
2980 TRACE("%p %lu %c\n", this, count
, ch
);
2982 if(MSVCP_basic_string_wchar_npos
-this->size
<= count
)
2983 MSVCP__String_base_Xlen();
2985 if(basic_string_wchar_grow(this, this->size
+count
, FALSE
)) {
2986 MSVCP_char_traits_wchar_assignn(basic_string_wchar_ptr(this)+this->size
, count
, ch
);
2987 basic_string_wchar_eos(this, this->size
+count
);
2993 /* ??Y?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV01@_W@Z */
2994 /* ??Y?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAAEAV01@_W@Z */
2995 /* ?push_back@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEX_W@Z */
2996 /* ?push_back@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAX_W@Z */
2997 /* ??Y?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV01@G@Z */
2998 /* ??Y?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAAEAV01@G@Z */
2999 /* ?push_back@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEXG@Z */
3000 /* ?push_back@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAXG@Z */
3001 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_append_ch
, 8)
3002 basic_string_wchar
* __thiscall
MSVCP_basic_string_wchar_append_ch(
3003 basic_string_wchar
*this, wchar_t ch
)
3005 return MSVCP_basic_string_wchar_append_len_ch(this, 1, ch
);
3008 /* ??$?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 */
3009 /* ??$?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 */
3010 /* ??$?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 */
3011 /* ??$?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 */
3012 /* ??Hstd@@YA?AV?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@0@ABV10@PBG@Z */
3013 /* ??Hstd@@YA?AV?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@0@AEBV10@PEBG@Z */
3014 /* ??Hstd@@YA?AV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@0@ABV10@PB_W@Z */
3015 basic_string_wchar
* __cdecl
MSVCP_basic_string_wchar_concatenate_bstr_cstr(basic_string_wchar
*ret
,
3016 const basic_string_wchar
*left
, const wchar_t *right
)
3018 TRACE("%p %s\n", left
, debugstr_w(right
));
3020 MSVCP_basic_string_wchar_copy_ctor(ret
, left
);
3021 MSVCP_basic_string_wchar_append_cstr(ret
, right
);
3025 /* ??$?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 */
3026 /* ??$?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 */
3027 /* ??$?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 */
3028 /* ??$?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 */
3029 /* ??Hstd@@YA?AV?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@0@PBGABV10@@Z */
3030 /* ??Hstd@@YA?AV?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@0@PEBGAEBV10@@Z */
3031 /* ??Hstd@@YA?AV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@0@PB_WABV10@@Z */
3032 basic_string_wchar
* __cdecl
MSVCP_basic_string_wchar_concatenate_cstr_bstr(basic_string_wchar
*ret
,
3033 const wchar_t *left
, const basic_string_wchar
*right
)
3035 TRACE("%s %p\n", debugstr_w(left
), right
);
3037 MSVCP_basic_string_wchar_ctor_cstr(ret
, left
);
3038 MSVCP_basic_string_wchar_append(ret
, right
);
3042 /* ??$?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 */
3043 /* ??$?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 */
3044 /* ??$?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 */
3045 /* ??$?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 */
3046 /* ??Hstd@@YA?AV?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@0@ABV10@0@Z */
3047 /* ??Hstd@@YA?AV?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@0@AEBV10@0@Z */
3048 /* ??Hstd@@YA?AV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@0@ABV10@0@Z */
3049 basic_string_wchar
* __cdecl
MSVCP_basic_string_wchar_concatenate(basic_string_wchar
*ret
,
3050 const basic_string_wchar
*left
, const basic_string_wchar
*right
)
3052 TRACE("%p %p\n", left
, right
);
3054 MSVCP_basic_string_wchar_copy_ctor(ret
, left
);
3055 MSVCP_basic_string_wchar_append(ret
, right
);
3059 /* ??$?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 */
3060 /* ??$?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 */
3061 /* ??$?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 */
3062 /* ??$?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 */
3063 /* ??Hstd@@YA?AV?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@0@ABV10@G@Z */
3064 /* ??Hstd@@YA?AV?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@0@AEBV10@G@Z */
3065 /* ??Hstd@@YA?AV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@0@ABV10@_W@Z */
3066 basic_string_wchar
* __cdecl
MSVCP_basic_string_wchar_concatenate_bstr_ch(
3067 basic_string_wchar
*ret
, const basic_string_wchar
*left
, wchar_t right
)
3069 TRACE("%p %c\n", left
, right
);
3071 MSVCP_basic_string_wchar_copy_ctor(ret
, left
);
3072 MSVCP_basic_string_wchar_append_ch(ret
, right
);
3076 /* ??$?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 */
3077 /* ??$?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 */
3078 /* ??$?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 */
3079 /* ??$?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 */
3080 /* ??Hstd@@YA?AV?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@0@GABV10@@Z */
3081 /* ??Hstd@@YA?AV?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@0@GAEBV10@@Z */
3082 /* ??Hstd@@YA?AV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@0@_WABV10@@Z */
3083 basic_string_wchar
* __cdecl
MSVCP_basic_string_wchar_concatenate_ch_bstr(
3084 basic_string_wchar
* ret
, wchar_t left
, const basic_string_wchar
*right
)
3086 TRACE("%c %p\n", left
, right
);
3088 MSVCP_basic_string_wchar_ctor_cstr_len(ret
, &left
, 1);
3089 MSVCP_basic_string_wchar_append(ret
, right
);
3093 /* ?compare@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEHIIPB_WI@Z */
3094 /* ?compare@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBAH_K0PEB_W0@Z */
3095 /* ?compare@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEHIIPBGI@Z */
3096 /* ?compare@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBAH_K0PEBG0@Z */
3097 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_compare_substr_cstr_len
, 20)
3098 int __thiscall
MSVCP_basic_string_wchar_compare_substr_cstr_len(
3099 const basic_string_wchar
*this, MSVCP_size_t pos
, MSVCP_size_t num
,
3100 const wchar_t *str
, MSVCP_size_t count
)
3104 TRACE("%p %lu %lu %s %lu\n", this, pos
, num
, debugstr_wn(str
, count
), count
);
3106 if(this->size
< pos
)
3107 MSVCP__String_base_Xran();
3109 if(num
> this->size
-pos
)
3110 num
= this->size
-pos
;
3112 ans
= MSVCP_char_traits_wchar_compare(basic_string_wchar_const_ptr(this)+pos
,
3113 str
, num
>count
? count
: num
);
3119 else if(num
< count
)
3124 /* ?compare@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEHIIPB_W@Z */
3125 /* ?compare@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBAH_K0PEB_W@Z */
3126 /* ?compare@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEHIIPBG@Z */
3127 /* ?compare@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBAH_K0PEBG@Z */
3128 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_compare_substr_cstr
, 16)
3129 int __thiscall
MSVCP_basic_string_wchar_compare_substr_cstr(const basic_string_wchar
*this,
3130 MSVCP_size_t pos
, MSVCP_size_t num
, const wchar_t *str
)
3132 return MSVCP_basic_string_wchar_compare_substr_cstr_len(this, pos
, num
,
3133 str
, MSVCP_char_traits_wchar_length(str
));
3136 /* ?compare@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEHPB_W@Z */
3137 /* ?compare@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBAHPEB_W@Z */
3138 /* ?compare@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEHPBG@Z */
3139 /* ?compare@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBAHPEBG@Z */
3140 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_compare_cstr
, 8)
3141 int __thiscall
MSVCP_basic_string_wchar_compare_cstr(
3142 const basic_string_wchar
*this, const wchar_t *str
)
3144 return MSVCP_basic_string_wchar_compare_substr_cstr_len(this, 0, this->size
,
3145 str
, MSVCP_char_traits_wchar_length(str
));
3148 /* ?compare@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEHIIABV12@II@Z */
3149 /* ?compare@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBAH_K0AEBV12@00@Z */
3150 /* ?compare@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEHIIABV12@II@Z */
3151 /* ?compare@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBAH_K0AEBV12@00@Z */
3152 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_compare_substr_substr
, 24)
3153 int __thiscall
MSVCP_basic_string_wchar_compare_substr_substr(
3154 const basic_string_wchar
*this, MSVCP_size_t pos
, MSVCP_size_t num
,
3155 const basic_string_wchar
*compare
, MSVCP_size_t off
, MSVCP_size_t count
)
3157 TRACE("%p %lu %lu %p %lu %lu\n", this, pos
, num
, compare
, off
, count
);
3159 if(compare
->size
< off
)
3160 MSVCP__String_base_Xran();
3162 if(count
> compare
->size
-off
)
3163 count
= compare
->size
-off
;
3165 return MSVCP_basic_string_wchar_compare_substr_cstr_len(this, pos
, num
,
3166 basic_string_wchar_const_ptr(compare
)+off
, count
);
3169 /* ?compare@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEHIIABV12@@Z */
3170 /* ?compare@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBAH_K0AEBV12@@Z */
3171 /* ?compare@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEHIIABV12@@Z */
3172 /* ?compare@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBAH_K0AEBV12@@Z */
3173 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_compare_substr
, 16)
3174 int __thiscall
MSVCP_basic_string_wchar_compare_substr(
3175 const basic_string_wchar
*this, MSVCP_size_t pos
, MSVCP_size_t num
,
3176 const basic_string_wchar
*compare
)
3178 return MSVCP_basic_string_wchar_compare_substr_cstr_len(this, pos
, num
,
3179 basic_string_wchar_const_ptr(compare
), compare
->size
);
3182 /* ?compare@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEHABV12@@Z */
3183 /* ?compare@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBAHAEBV12@@Z */
3184 /* ?compare@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEHABV12@@Z */
3185 /* ?compare@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBAHAEBV12@@Z */
3186 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_compare
, 8)
3187 int __thiscall
MSVCP_basic_string_wchar_compare(
3188 const basic_string_wchar
*this, const basic_string_wchar
*compare
)
3190 return MSVCP_basic_string_wchar_compare_substr_cstr_len(this, 0, this->size
,
3191 basic_string_wchar_const_ptr(compare
), compare
->size
);
3194 /* ??$?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 */
3195 /* ??$?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 */
3196 /* ??$?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 */
3197 /* ??$?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 */
3198 /* ??8std@@YA_NABV?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@0@0@Z */
3199 /* ??8std@@YA_NAEBV?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@0@0@Z */
3200 /* ??8std@@YA_NABV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@0@0@Z */
3201 MSVCP_bool __cdecl
MSVCP_basic_string_wchar_equal(
3202 const basic_string_wchar
*left
, const basic_string_wchar
*right
)
3204 return MSVCP_basic_string_wchar_compare(left
, right
) == 0;
3207 /* ??$?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 */
3208 /* ??$?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 */
3209 /* ??$?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 */
3210 /* ??$?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 */
3211 /* ??8std@@YA_NABV?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@0@PBG@Z */
3212 /* ??8std@@YA_NAEBV?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@0@PEBG@Z */
3213 /* ??8std@@YA_NABV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@0@PB_W@Z */
3214 MSVCP_bool __cdecl
MSVCP_basic_string_wchar_equal_str_cstr(
3215 const basic_string_wchar
*left
, const wchar_t *right
)
3217 return MSVCP_basic_string_wchar_compare_cstr(left
, right
) == 0;
3220 /* ??$?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 */
3221 /* ??$?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 */
3222 /* ??$?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 */
3223 /* ??$?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 */
3224 /* ??8std@@YA_NPBGABV?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@0@@Z */
3225 /* ??8std@@YA_NPB_WABV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@0@@Z */
3226 MSVCP_bool __cdecl
MSVCP_basic_string_wchar_equal_cstr_str(
3227 const wchar_t *left
, const basic_string_wchar
*right
)
3229 return MSVCP_basic_string_wchar_compare_cstr(right
, left
) == 0;
3232 /* ??$?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 */
3233 /* ??$?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 */
3234 /* ??$?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 */
3235 /* ??$?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 */
3236 /* ??9std@@YA_NABV?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@0@0@Z */
3237 /* ??9std@@YA_NAEBV?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@0@0@Z */
3238 /* ??9std@@YA_NABV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@0@0@Z */
3239 MSVCP_bool __cdecl
MSVCP_basic_string_wchar_not_equal(
3240 const basic_string_wchar
*left
, const basic_string_wchar
*right
)
3242 return MSVCP_basic_string_wchar_compare(left
, right
) != 0;
3245 /* ??$?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 */
3246 /* ??$?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 */
3247 /* ??$?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 */
3248 /* ??$?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 */
3249 /* ??9std@@YA_NABV?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@0@PBG@Z */
3250 /* ??9std@@YA_NAEBV?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@0@PEBG@Z */
3251 /* ??9std@@YA_NABV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@0@PB_W@Z */
3252 MSVCP_bool __cdecl
MSVCP_basic_string_wchar_not_equal_str_cstr(
3253 const basic_string_wchar
*left
, const wchar_t *right
)
3255 return MSVCP_basic_string_wchar_compare_cstr(left
, right
) != 0;
3258 /* ??$?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 */
3259 /* ??$?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 */
3260 /* ??$?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 */
3261 /* ??$?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 */
3262 /* ??9std@@YA_NPBGABV?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@0@@Z */
3263 /* ??9std@@YA_NPEBGAEBV?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@0@@Z */
3264 /* ??9std@@YA_NPB_WABV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@0@@Z */
3265 MSVCP_bool __cdecl
MSVCP_basic_string_wchar_not_equal_cstr_str(
3266 const wchar_t *left
, const basic_string_wchar
*right
)
3268 return MSVCP_basic_string_wchar_compare_cstr(right
, left
) != 0;
3271 /* ??$?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 */
3272 /* ??$?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 */
3273 /* ??$?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 */
3274 /* ??$?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 */
3275 MSVCP_bool __cdecl
MSVCP_basic_string_wchar_lower(
3276 const basic_string_wchar
*left
, const basic_string_wchar
*right
)
3278 return MSVCP_basic_string_wchar_compare(left
, right
) < 0;
3281 /* ??$?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 */
3282 /* ??$?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 */
3283 /* ??$?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 */
3284 /* ??$?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 */
3285 MSVCP_bool __cdecl
MSVCP_basic_string_wchar_lower_bstr_cstr(
3286 const basic_string_wchar
*left
, const wchar_t *right
)
3288 return MSVCP_basic_string_wchar_compare_cstr(left
, right
) < 0;
3291 /* ??$?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 */
3292 /* ??$?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 */
3293 /* ??$?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 */
3294 /* ??$?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 */
3295 MSVCP_bool __cdecl
MSVCP_basic_string_wchar_lower_cstr_bstr(
3296 const wchar_t *left
, const basic_string_wchar
*right
)
3298 return MSVCP_basic_string_wchar_compare_cstr(right
, left
) > 0;
3301 /* ??$?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 */
3302 /* ??$?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 */
3303 /* ??$?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 */
3304 /* ??$?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 */
3305 MSVCP_bool __cdecl
MSVCP_basic_string_wchar_leq(
3306 const basic_string_wchar
*left
, const basic_string_wchar
*right
)
3308 return MSVCP_basic_string_wchar_compare(left
, right
) <= 0;
3311 /* ??$?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 */
3312 /* ??$?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 */
3313 /* ??$?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 */
3314 /* ??$?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 */
3315 MSVCP_bool __cdecl
MSVCP_basic_string_wchar_leq_bstr_cstr(
3316 const basic_string_wchar
*left
, const wchar_t *right
)
3318 return MSVCP_basic_string_wchar_compare_cstr(left
, right
) <= 0;
3321 /* ??$?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 */
3322 /* ??$?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 */
3323 /* ??$?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 */
3324 /* ??$?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 */
3325 MSVCP_bool __cdecl
MSVCP_basic_string_wchar_leq_cstr_bstr(
3326 const wchar_t *left
, const basic_string_wchar
*right
)
3328 return MSVCP_basic_string_wchar_compare_cstr(right
, left
) >= 0;
3331 /* ??$?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 */
3332 /* ??$?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 */
3333 /* ??$?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 */
3334 /* ??$?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 */
3335 MSVCP_bool __cdecl
MSVCP_basic_string_wchar_greater(
3336 const basic_string_wchar
*left
, const basic_string_wchar
*right
)
3338 return MSVCP_basic_string_wchar_compare(left
, right
) > 0;
3341 /* ??$?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 */
3342 /* ??$?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 */
3343 /* ??$?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 */
3344 /* ??$?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 */
3345 MSVCP_bool __cdecl
MSVCP_basic_string_wchar_greater_bstr_cstr(
3346 const basic_string_wchar
*left
, const wchar_t *right
)
3348 return MSVCP_basic_string_wchar_compare_cstr(left
, right
) > 0;
3351 /* ??$?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 */
3352 /* ??$?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 */
3353 /* ??$?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 */
3354 /* ??$?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 */
3355 MSVCP_bool __cdecl
MSVCP_basic_string_wchar_greater_cstr_bstr(
3356 const wchar_t *left
, const basic_string_wchar
*right
)
3358 return MSVCP_basic_string_wchar_compare_cstr(right
, left
) < 0;
3361 /* ??$?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 */
3362 /* ??$?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 */
3363 /* ??$?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 */
3364 /* ??$?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 */
3365 MSVCP_bool __cdecl
MSVCP_basic_string_wchar_geq(
3366 const basic_string_wchar
*left
, const basic_string_wchar
*right
)
3368 return MSVCP_basic_string_wchar_compare(left
, right
) >= 0;
3371 /* ??$?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 */
3372 /* ??$?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 */
3373 /* ??$?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 */
3374 /* ??$?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 */
3375 MSVCP_bool __cdecl
MSVCP_basic_string_wchar_geq_bstr_cstr(
3376 const basic_string_wchar
*left
, const wchar_t *right
)
3378 return MSVCP_basic_string_wchar_compare_cstr(left
, right
) >= 0;
3381 /* ??$?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 */
3382 /* ??$?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 */
3383 /* ??$?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 */
3384 /* ??$?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 */
3385 MSVCP_bool __cdecl
MSVCP_basic_string_wchar_geq_cstr_bstr(
3386 const wchar_t *left
, const basic_string_wchar
*right
)
3388 return MSVCP_basic_string_wchar_compare_cstr(right
, left
) <= 0;
3391 /* ?find@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEIPB_WII@Z */
3392 /* ?find@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBA_KPEB_W_K1@Z */
3393 /* ?find@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEIPBGII@Z */
3394 /* ?find@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBA_KPEBG_K1@Z */
3395 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_find_cstr_substr
, 16)
3396 MSVCP_size_t __thiscall
MSVCP_basic_string_wchar_find_cstr_substr(
3397 const basic_string_wchar
*this, const wchar_t *find
, MSVCP_size_t pos
, MSVCP_size_t len
)
3399 const wchar_t *p
, *end
;
3401 TRACE("%p %s %lu %lu\n", this, debugstr_wn(find
, len
), pos
, len
);
3403 if(len
==0 && pos
<=this->size
)
3405 if(pos
>=this->size
|| len
>this->size
)
3406 return MSVCP_basic_string_wchar_npos
;
3408 end
= basic_string_wchar_const_ptr(this)+this->size
-len
+1;
3409 for(p
=basic_string_wchar_const_ptr(this)+pos
; p
<end
; p
++) {
3410 p
= MSVCP_char_traits_wchar_find(p
, end
-p
, find
);
3414 if(!MSVCP_char_traits_wchar_compare(p
, find
, len
))
3415 return p
-basic_string_wchar_const_ptr(this);
3418 return MSVCP_basic_string_wchar_npos
;
3421 /* ?find@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEIPB_WI@Z */
3422 /* ?find@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBA_KPEB_W_K@Z */
3423 /* ?find@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEIPBGI@Z */
3424 /* ?find@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBA_KPEBG_K@Z */
3425 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_find_cstr_off
, 12)
3426 MSVCP_size_t __thiscall
MSVCP_basic_string_wchar_find_cstr_off(
3427 const basic_string_wchar
*this, const wchar_t *find
, MSVCP_size_t pos
)
3429 return MSVCP_basic_string_wchar_find_cstr_substr(this, find
, pos
,
3430 MSVCP_char_traits_wchar_length(find
));
3433 /* ?find@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEIABV12@I@Z */
3434 /* ?find@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBA_KAEBV12@_K@Z */
3435 /* ?find@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEIABV12@I@Z */
3436 /* ?find@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBA_KAEBV12@_K@Z */
3437 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_find_off
, 12)
3438 MSVCP_size_t __thiscall
MSVCP_basic_string_wchar_find_off(
3439 const basic_string_wchar
*this, const basic_string_wchar
*find
, MSVCP_size_t off
)
3441 return MSVCP_basic_string_wchar_find_cstr_substr(this,
3442 basic_string_wchar_const_ptr(find
), off
, find
->size
);
3445 /* ?find@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEI_WI@Z */
3446 /* ?find@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBA_K_W_K@Z */
3447 /* ?find@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEIGI@Z */
3448 /* ?find@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBA_KG_K@Z */
3449 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_find_ch
, 12)
3450 MSVCP_size_t __thiscall
MSVCP_basic_string_wchar_find_ch(
3451 const basic_string_wchar
*this, wchar_t ch
, MSVCP_size_t pos
)
3453 return MSVCP_basic_string_wchar_find_cstr_substr(this, &ch
, pos
, 1);
3456 /* ?rfind@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEIPB_WII@Z */
3457 /* ?rfind@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBA_KPEB_W_K1@Z */
3458 /* ?rfind@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEIPBGII@Z */
3459 /* ?rfind@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBA_KPEBG_K1@Z */
3460 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_rfind_cstr_substr
, 16)
3461 MSVCP_size_t __thiscall
MSVCP_basic_string_wchar_rfind_cstr_substr(
3462 const basic_string_wchar
*this, const wchar_t *find
, MSVCP_size_t pos
, MSVCP_size_t len
)
3464 const wchar_t *p
, *end
;
3466 TRACE("%p %s %lu %lu\n", this, debugstr_wn(find
, len
), pos
, len
);
3469 return pos
<this->size
? pos
: this->size
;
3471 if(len
> this->size
)
3472 return MSVCP_basic_string_wchar_npos
;
3474 if(pos
> this->size
-len
)
3475 pos
= this->size
-len
;
3476 end
= basic_string_wchar_const_ptr(this);
3477 for(p
=end
+pos
; p
>=end
; p
--) {
3478 if(*p
==*find
&& !MSVCP_char_traits_wchar_compare(p
, find
, len
))
3479 return p
-basic_string_wchar_const_ptr(this);
3482 return MSVCP_basic_string_wchar_npos
;
3485 /* ?rfind@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEIPB_WI@Z */
3486 /* ?rfind@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBA_KPEB_W_K@Z */
3487 /* ?rfind@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEIPBGI@Z */
3488 /* ?rfind@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBA_KPEBG_K@Z */
3489 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_rfind_cstr_off
, 12)
3490 MSVCP_size_t __thiscall
MSVCP_basic_string_wchar_rfind_cstr_off(
3491 const basic_string_wchar
*this, const wchar_t *find
, MSVCP_size_t pos
)
3493 return MSVCP_basic_string_wchar_rfind_cstr_substr(this, find
, pos
,
3494 MSVCP_char_traits_wchar_length(find
));
3497 /* ?rfind@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEIABV12@I@Z */
3498 /* ?rfind@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBA_KAEBV12@_K@Z */
3499 /* ?rfind@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEIABV12@I@Z */
3500 /* ?rfind@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBA_KAEBV12@_K@Z */
3501 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_rfind_off
, 12)
3502 MSVCP_size_t __thiscall
MSVCP_basic_string_wchar_rfind_off(
3503 const basic_string_wchar
*this, const basic_string_wchar
*find
, MSVCP_size_t off
)
3505 return MSVCP_basic_string_wchar_rfind_cstr_substr(this,
3506 basic_string_wchar_const_ptr(find
), off
, find
->size
);
3509 /* ?rfind@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEI_WI@Z */
3510 /* ?rfind@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBA_K_W_K@Z */
3511 /* ?rfind@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEIGI@Z */
3512 /* ?rfind@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBA_KG_K@Z */
3513 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_rfind_ch
, 12)
3514 MSVCP_size_t __thiscall
MSVCP_basic_string_wchar_rfind_ch(
3515 const basic_string_wchar
*this, wchar_t ch
, MSVCP_size_t pos
)
3517 return MSVCP_basic_string_wchar_rfind_cstr_substr(this, &ch
, pos
, 1);
3520 /* ?find_first_of@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEIPB_WII@Z */
3521 /* ?find_first_of@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBA_KPEB_W_K1@Z */
3522 /* ?find_first_of@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEIPBGII@Z */
3523 /* ?find_first_of@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBA_KPEBG_K1@Z */
3524 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_find_first_of_cstr_substr
, 16)
3525 MSVCP_size_t __thiscall
MSVCP_basic_string_wchar_find_first_of_cstr_substr(
3526 const basic_string_wchar
*this, const wchar_t *find
, MSVCP_size_t off
, MSVCP_size_t len
)
3528 const wchar_t *p
, *end
;
3530 TRACE("%p %p %lu %lu\n", this, find
, off
, len
);
3532 if(len
>0 && off
<this->size
) {
3533 end
= basic_string_wchar_const_ptr(this)+this->size
;
3534 for(p
=basic_string_wchar_const_ptr(this)+off
; p
<end
; p
++)
3535 if(MSVCP_char_traits_wchar_find(find
, len
, p
))
3536 return p
-basic_string_wchar_const_ptr(this);
3539 return MSVCP_basic_string_wchar_npos
;
3542 /* ?find_first_of@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEIABV12@I@Z */
3543 /* ?find_first_of@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBA_KAEBV12@_K@Z */
3544 /* ?find_first_of@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEIABV12@I@Z */
3545 /* ?find_first_of@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBA_KAEBV12@_K@Z */
3546 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_find_first_of
, 12)
3547 MSVCP_size_t __thiscall
MSVCP_basic_string_wchar_find_first_of(
3548 const basic_string_wchar
*this, const basic_string_wchar
*find
, MSVCP_size_t off
)
3550 return MSVCP_basic_string_wchar_find_first_of_cstr_substr(this,
3551 basic_string_wchar_const_ptr(find
), off
, find
->size
);
3554 /* ?find_first_of@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEIPB_WI@Z */
3555 /* ?find_first_of@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBA_KPEB_W_K@Z */
3556 /* ?find_first_of@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEIPBGI@Z */
3557 /* ?find_first_of@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBA_KPEBG_K@Z */
3558 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_find_first_of_cstr
, 12)
3559 MSVCP_size_t __thiscall
MSVCP_basic_string_wchar_find_first_of_cstr(
3560 const basic_string_wchar
*this, const wchar_t *find
, MSVCP_size_t off
)
3562 return MSVCP_basic_string_wchar_find_first_of_cstr_substr(
3563 this, find
, off
, MSVCP_char_traits_wchar_length(find
));
3566 /* ?find_first_of@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEI_WI@Z */
3567 /* ?find_first_of@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBA_K_W_K@Z */
3568 /* ?find_first_of@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEIGI@Z */
3569 /* ?find_first_of@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBA_KG_K@Z */
3570 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_find_first_of_ch
, 12)
3571 MSVCP_size_t __thiscall
MSVCP_basic_string_wchar_find_first_of_ch(
3572 const basic_string_wchar
*this, wchar_t ch
, MSVCP_size_t off
)
3574 return MSVCP_basic_string_wchar_find_first_of_cstr_substr(this, &ch
, off
, 1);
3577 /* ?find_first_not_of@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEIPB_WII@Z */
3578 /* ?find_first_not_of@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBA_KPEB_W_K1@Z */
3579 /* ?find_first_not_of@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEIPBGII@Z */
3580 /* ?find_first_not_of@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBA_KPEBG_K1@Z */
3581 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_find_first_not_of_cstr_substr
, 16)
3582 MSVCP_size_t __thiscall
MSVCP_basic_string_wchar_find_first_not_of_cstr_substr(
3583 const basic_string_wchar
*this, const wchar_t *find
, MSVCP_size_t off
, MSVCP_size_t len
)
3585 const wchar_t *p
, *end
;
3587 TRACE("%p %p %lu %lu\n", this, find
, off
, len
);
3589 if(off
<this->size
) {
3590 end
= basic_string_wchar_const_ptr(this)+this->size
;
3591 for(p
=basic_string_wchar_const_ptr(this)+off
; p
<end
; p
++)
3592 if(!MSVCP_char_traits_wchar_find(find
, len
, p
))
3593 return p
-basic_string_wchar_const_ptr(this);
3596 return MSVCP_basic_string_wchar_npos
;
3599 /* ?find_first_not_of@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEIABV12@I@Z */
3600 /* ?find_first_not_of@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBA_KAEBV12@_K@Z */
3601 /* ?find_first_not_of@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEIABV12@I@Z */
3602 /* ?find_first_not_of@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBA_KAEBV12@_K@Z */
3603 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_find_first_not_of
, 12)
3604 MSVCP_size_t __thiscall
MSVCP_basic_string_wchar_find_first_not_of(
3605 const basic_string_wchar
*this, const basic_string_wchar
*find
, MSVCP_size_t off
)
3607 return MSVCP_basic_string_wchar_find_first_not_of_cstr_substr(this,
3608 basic_string_wchar_const_ptr(find
), off
, find
->size
);
3611 /* ?find_first_not_of@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEIPB_WI@Z */
3612 /* ?find_first_not_of@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBA_KPEB_W_K@Z */
3613 /* ?find_first_not_of@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEIPBGI@Z */
3614 /* ?find_first_not_of@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBA_KPEBG_K@Z */
3615 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_find_first_not_of_cstr
, 12)
3616 MSVCP_size_t __thiscall
MSVCP_basic_string_wchar_find_first_not_of_cstr(
3617 const basic_string_wchar
*this, const wchar_t *find
, MSVCP_size_t off
)
3619 return MSVCP_basic_string_wchar_find_first_not_of_cstr_substr(
3620 this, find
, off
, MSVCP_char_traits_wchar_length(find
));
3623 /* ?find_first_not_of@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEI_WI@Z */
3624 /* ?find_first_not_of@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBA_K_W_K@Z */
3625 /* ?find_first_not_of@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEIGI@Z */
3626 /* ?find_first_not_of@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBA_KG_K@Z */
3627 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_find_first_not_of_ch
, 12)
3628 MSVCP_size_t __thiscall
MSVCP_basic_string_wchar_find_first_not_of_ch(
3629 const basic_string_wchar
*this, wchar_t ch
, MSVCP_size_t off
)
3631 return MSVCP_basic_string_wchar_find_first_not_of_cstr_substr(this, &ch
, off
, 1);
3634 /* ?find_last_of@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEIPB_WII@Z */
3635 /* ?find_last_of@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBA_KPEB_W_K1@Z */
3636 /* ?find_last_of@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEIPBGII@Z */
3637 /* ?find_last_of@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBA_KPEBG_K1@Z */
3638 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_find_last_of_cstr_substr
, 16)
3639 MSVCP_size_t __thiscall
MSVCP_basic_string_wchar_find_last_of_cstr_substr(
3640 const basic_string_wchar
*this, const wchar_t *find
, MSVCP_size_t off
, MSVCP_size_t len
)
3642 const wchar_t *p
, *beg
;
3644 TRACE("%p %p %lu %lu\n", this, find
, off
, len
);
3647 if(len
>0 && this->size
>0) {
3648 if(off
>= this->size
)
3651 beg
= basic_string_wchar_const_ptr(this);
3652 for(p
=beg
+off
; p
>=beg
; p
--)
3653 if(MSVCP_char_traits_wchar_find(find
, len
, p
))
3657 return MSVCP_basic_string_wchar_npos
;
3660 /* ?find_last_of@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEIABV12@I@Z */
3661 /* ?find_last_of@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBA_KAEBV12@_K@Z */
3662 /* ?find_last_of@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEIABV12@I@Z */
3663 /* ?find_last_of@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBA_KAEBV12@_K@Z */
3664 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_find_last_of
, 12)
3665 MSVCP_size_t __thiscall
MSVCP_basic_string_wchar_find_last_of(
3666 const basic_string_wchar
*this, const basic_string_wchar
*find
, MSVCP_size_t off
)
3668 return MSVCP_basic_string_wchar_find_last_of_cstr_substr(this,
3669 basic_string_wchar_const_ptr(find
), off
, find
->size
);
3672 /* ?find_last_of@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEIPB_WI@Z */
3673 /* ?find_last_of@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBA_KPEB_W_K@Z */
3674 /* ?find_last_of@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEIPBGI@Z */
3675 /* ?find_last_of@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBA_KPEBG_K@Z */
3676 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_find_last_of_cstr
, 12)
3677 MSVCP_size_t __thiscall
MSVCP_basic_string_wchar_find_last_of_cstr(
3678 const basic_string_wchar
*this, const wchar_t *find
, MSVCP_size_t off
)
3680 return MSVCP_basic_string_wchar_find_last_of_cstr_substr(
3681 this, find
, off
, MSVCP_char_traits_wchar_length(find
));
3684 /* ?find_last_of@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEI_WI@Z */
3685 /* ?find_last_of@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBA_K_W_K@Z */
3686 /* ?find_last_of@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEIGI@Z */
3687 /* ?find_last_of@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBA_KG_K@Z */
3688 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_find_last_of_ch
, 12)
3689 MSVCP_size_t __thiscall
MSVCP_basic_string_wchar_find_last_of_ch(
3690 const basic_string_wchar
*this, wchar_t ch
, MSVCP_size_t off
)
3692 return MSVCP_basic_string_wchar_find_last_of_cstr_substr(this, &ch
, off
, 1);
3695 /* ?find_last_not_of@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEIPB_WII@Z */
3696 /* ?find_last_not_of@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBA_KPEB_W_K1@Z */
3697 /* ?find_last_not_of@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEIPBGII@Z */
3698 /* ?find_last_not_of@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBA_KPEBG_K1@Z */
3699 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_find_last_not_of_cstr_substr
, 16)
3700 MSVCP_size_t __thiscall
MSVCP_basic_string_wchar_find_last_not_of_cstr_substr(
3701 const basic_string_wchar
*this, const wchar_t *find
, MSVCP_size_t off
, MSVCP_size_t len
)
3703 const wchar_t *p
, *beg
;
3705 TRACE("%p %p %lu %lu\n", this, find
, off
, len
);
3708 if(off
>= this->size
)
3711 beg
= basic_string_wchar_const_ptr(this);
3712 for(p
=beg
+off
; p
>=beg
; p
--)
3713 if(!MSVCP_char_traits_wchar_find(find
, len
, p
))
3717 return MSVCP_basic_string_wchar_npos
;
3720 /* ?find_last_not_of@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEIABV12@I@Z */
3721 /* ?find_last_not_of@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBA_KAEBV12@_K@Z */
3722 /* ?find_last_not_of@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEIABV12@I@Z */
3723 /* ?find_last_not_of@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBA_KAEBV12@_K@Z */
3724 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_find_last_not_of
, 12)
3725 MSVCP_size_t __thiscall
MSVCP_basic_string_wchar_find_last_not_of(
3726 const basic_string_wchar
*this, const basic_string_wchar
*find
, MSVCP_size_t off
)
3728 return MSVCP_basic_string_wchar_find_last_not_of_cstr_substr(this,
3729 basic_string_wchar_const_ptr(find
), off
, find
->size
);
3732 /* ?find_last_not_of@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEIPB_WI@Z */
3733 /* ?find_last_not_of@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBA_KPEB_W_K@Z */
3734 /* ?find_last_not_of@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEIPBGI@Z */
3735 /* ?find_last_not_of@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBA_KPEBG_K@Z */
3736 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_find_last_not_of_cstr
, 12)
3737 MSVCP_size_t __thiscall
MSVCP_basic_string_wchar_find_last_not_of_cstr(
3738 const basic_string_wchar
*this, const wchar_t *find
, MSVCP_size_t off
)
3740 return MSVCP_basic_string_wchar_find_last_not_of_cstr_substr(
3741 this, find
, off
, MSVCP_char_traits_wchar_length(find
));
3744 /* ?find_last_not_of@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEI_WI@Z */
3745 /* ?find_last_not_of@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBA_K_W_K@Z */
3746 /* ?find_last_not_of@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEIGI@Z */
3747 /* ?find_last_not_of@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBA_KG_K@Z */
3748 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_find_last_not_of_ch
, 12)
3749 MSVCP_size_t __thiscall
MSVCP_basic_string_wchar_find_last_not_of_ch(
3750 const basic_string_wchar
*this, wchar_t ch
, MSVCP_size_t off
)
3752 return MSVCP_basic_string_wchar_find_last_not_of_cstr_substr(this, &ch
, off
, 1);
3755 /* ?replace@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV12@IIPB_WI@Z */
3756 /* ?replace@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAAEAV12@_K0PEB_W0@Z */
3757 /* ?replace@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV12@IIPBGI@Z */
3758 /* ?replace@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAAEAV12@_K0PEBG0@Z */
3759 DEFINE_THISCALL_WRAPPER(basic_string_wchar_replace_cstr_len
, 20)
3760 basic_string_wchar
* __thiscall
basic_string_wchar_replace_cstr_len(basic_string_wchar
*this,
3761 MSVCP_size_t off
, MSVCP_size_t len
, const wchar_t *str
, MSVCP_size_t str_len
)
3763 MSVCP_size_t inside_pos
= -1;
3764 wchar_t *ptr
= basic_string_wchar_ptr(this);
3766 TRACE("%p %ld %ld %p %ld\n", this, off
, len
, str
, str_len
);
3768 if(this->size
< off
)
3769 MSVCP__String_base_Xran();
3771 if(len
> this->size
-off
)
3772 len
= this->size
-off
;
3774 if(MSVCP_basic_string_wchar_npos
-str_len
<= this->size
-len
)
3775 MSVCP__String_base_Xlen();
3777 if(basic_string_wchar_inside(this, str
))
3778 inside_pos
= str
-ptr
;
3781 basic_string_wchar_grow(this, this->size
-len
+str_len
, FALSE
);
3782 ptr
= basic_string_wchar_ptr(this);
3785 if(inside_pos
== -1) {
3786 memmove(ptr
+off
+str_len
, ptr
+off
+len
, (this->size
-off
-len
)*sizeof(wchar_t));
3787 memcpy(ptr
+off
, str
, str_len
*sizeof(wchar_t));
3788 } else if(len
>= str_len
) {
3789 memmove(ptr
+off
, ptr
+inside_pos
, str_len
*sizeof(wchar_t));
3790 memmove(ptr
+off
+str_len
, ptr
+off
+len
, (this->size
-off
-len
)*sizeof(wchar_t));
3794 memmove(ptr
+off
+str_len
, ptr
+off
+len
, (this->size
-off
-len
)*sizeof(wchar_t));
3796 if(inside_pos
< off
+len
) {
3797 size
= off
+len
-inside_pos
;
3800 memmove(ptr
+off
, ptr
+inside_pos
, size
*sizeof(wchar_t));
3806 memmove(ptr
+off
+size
, ptr
+off
+str_len
, (str_len
-size
)*sizeof(wchar_t));
3809 basic_string_wchar_eos(this, this->size
-len
+str_len
);
3813 /* ?replace@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV12@IIPB_W@Z */
3814 /* ?replace@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAAEAV12@_K0PEB_W@Z */
3815 /* ?replace@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV12@IIPBG@Z */
3816 /* ?replace@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAAEAV12@_K0PEBG@Z */
3817 DEFINE_THISCALL_WRAPPER(basic_string_wchar_replace_cstr
, 16)
3818 basic_string_wchar
* __thiscall
basic_string_wchar_replace_cstr(basic_string_wchar
*this,
3819 MSVCP_size_t off
, MSVCP_size_t len
, const wchar_t *str
)
3821 return basic_string_wchar_replace_cstr_len(this, off
, len
, str
,
3822 MSVCP_char_traits_wchar_length(str
));
3825 /* ?replace@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV12@IIABV12@II@Z */
3826 /* ?replace@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAAEAV12@_K0AEBV12@00@Z */
3827 /* ?replace@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV12@IIABV12@II@Z */
3828 /* ?replace@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAAEAV12@_K0AEBV12@00@Z */
3829 DEFINE_THISCALL_WRAPPER(basic_string_wchar_replace_substr
, 24)
3830 basic_string_wchar
* __thiscall
basic_string_wchar_replace_substr(basic_string_wchar
*this, MSVCP_size_t off
,
3831 MSVCP_size_t len
, const basic_string_wchar
*str
, MSVCP_size_t str_off
, MSVCP_size_t str_len
)
3833 if(str
->size
< str_off
)
3834 MSVCP__String_base_Xran();
3836 if(str_len
> str
->size
-str_off
)
3837 str_len
= str
->size
-str_off
;
3839 return basic_string_wchar_replace_cstr_len(this, off
, len
,
3840 basic_string_wchar_const_ptr(str
)+str_off
, str_len
);
3843 /* ?replace@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV12@IIABV12@@Z */
3844 /* ?replace@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAAEAV12@_K0AEBV12@@Z */
3845 /* ?replace@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV12@IIABV12@@Z */
3846 /* ?replace@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAAEAV12@_K0AEBV12@@Z */
3847 DEFINE_THISCALL_WRAPPER(basic_string_wchar_replace
, 16)
3848 basic_string_wchar
* __thiscall
basic_string_wchar_replace(basic_string_wchar
*this,
3849 MSVCP_size_t off
, MSVCP_size_t len
, const basic_string_wchar
*str
)
3851 return basic_string_wchar_replace_cstr_len(this, off
, len
,
3852 basic_string_wchar_const_ptr(str
), str
->size
);
3855 /* ?replace@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV12@III_W@Z */
3856 /* ?replace@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAAEAV12@_K00_W@Z */
3857 /* ?replace@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV12@IIIG@Z */
3858 /* ?replace@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAAEAV12@_K00G@Z */
3859 DEFINE_THISCALL_WRAPPER(basic_string_wchar_replace_ch
, 20)
3860 basic_string_wchar
* __thiscall
basic_string_wchar_replace_ch(basic_string_wchar
*this,
3861 MSVCP_size_t off
, MSVCP_size_t len
, MSVCP_size_t count
, wchar_t ch
)
3863 wchar_t *ptr
= basic_string_wchar_ptr(this);
3865 TRACE("%p %ld %ld %ld %c\n", this, off
, len
, count
, ch
);
3867 if(this->size
< off
)
3868 MSVCP__String_base_Xran();
3870 if(len
> this->size
-off
)
3871 len
= this->size
-off
;
3873 if(MSVCP_basic_string_wchar_npos
-count
<= this->size
-len
)
3874 MSVCP__String_base_Xlen();
3877 basic_string_wchar_grow(this, this->size
-len
+count
, FALSE
);
3878 ptr
= basic_string_wchar_ptr(this);
3881 memmove(ptr
+off
+count
, ptr
+off
+len
, (this->size
-off
-len
)*sizeof(wchar_t));
3882 MSVCP_char_traits_wchar_assignn(ptr
+off
, count
, ch
);
3883 basic_string_wchar_eos(this, this->size
-len
+count
);
3888 /* ?insert@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV12@IABV12@@Z */
3889 /* ?insert@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAAEAV12@_KAEBV12@@Z */
3890 /* ?insert@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV12@IABV12@@Z */
3891 /* ?insert@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAAEAV12@_KAEBV12@@Z */
3892 DEFINE_THISCALL_WRAPPER(basic_string_wchar_insert
, 12)
3893 basic_string_wchar
* __thiscall
basic_string_wchar_insert(basic_string_wchar
*this,
3894 MSVCP_size_t off
, const basic_string_wchar
*str
)
3896 return basic_string_wchar_replace(this, off
, 0, str
);
3899 /* ?insert@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV12@IABV12@II@Z */
3900 /* ?insert@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAAEAV12@_KAEBV12@00@Z */
3901 /* ?insert@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV12@IABV12@II@Z */
3902 /* ?insert@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAAEAV12@_KAEBV12@00@Z */
3903 DEFINE_THISCALL_WRAPPER(basic_string_wchar_insert_substr
, 20)
3904 basic_string_wchar
* __thiscall
basic_string_wchar_insert_substr(
3905 basic_string_wchar
*this, MSVCP_size_t off
, const basic_string_wchar
*str
,
3906 MSVCP_size_t str_off
, MSVCP_size_t str_count
)
3908 return basic_string_wchar_replace_substr(this, off
, 0, str
, str_off
, str_count
);
3911 /* ?insert@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV12@IPB_W@Z */
3912 /* ?insert@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAAEAV12@_KPEB_W@Z */
3913 /* ?insert@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV12@IPBG@Z */
3914 /* ?insert@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAAEAV12@_KPEBG@Z */
3915 DEFINE_THISCALL_WRAPPER(basic_string_wchar_insert_cstr
, 12)
3916 basic_string_wchar
* __thiscall
basic_string_wchar_insert_cstr(
3917 basic_string_wchar
*this, MSVCP_size_t off
, const wchar_t *str
)
3919 return basic_string_wchar_replace_cstr(this, off
, 0, str
);
3922 /* ?insert@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV12@IPB_WI@Z */
3923 /* ?insert@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAAEAV12@_KPEB_W0@Z */
3924 /* ?insert@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV12@IPBGI@Z */
3925 /* ?insert@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAAEAV12@_KPEBG0@Z */
3926 DEFINE_THISCALL_WRAPPER(basic_string_wchar_insert_cstr_len
, 16)
3927 basic_string_wchar
* __thiscall
basic_string_wchar_insert_cstr_len(basic_string_wchar
*this,
3928 MSVCP_size_t off
, const wchar_t *str
, MSVCP_size_t str_len
)
3930 return basic_string_wchar_replace_cstr_len(this, off
, 0, str
, str_len
);
3933 /* ?insert@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV12@II_W@Z */
3934 /* ?insert@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAAEAV12@_K0_W@Z */
3935 /* ?insert@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV12@IIG@Z */
3936 /* ?insert@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAAEAV12@_K0G@Z */
3937 DEFINE_THISCALL_WRAPPER(basic_string_wchar_insert_chn
, 16)
3938 basic_string_wchar
* __thiscall
basic_string_wchar_insert_chn(basic_string_wchar
*this,
3939 MSVCP_size_t off
, MSVCP_size_t count
, wchar_t ch
)
3941 return basic_string_wchar_replace_ch(this, off
, 0, count
, ch
);
3944 /* ??A?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAA_WI@Z */
3945 /* ??A?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAAEA_W_K@Z */
3946 /* ??A?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAGI@Z */
3947 /* ??A?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAAEAG_K@Z */
3948 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_operator_at
, 8)
3949 wchar_t* __thiscall
MSVCP_basic_string_wchar_operator_at(
3950 basic_string_wchar
*this, MSVCP_size_t pos
)
3952 TRACE("%p %lu\n", this, pos
);
3954 assert(this->size
>= pos
);
3955 return basic_string_wchar_ptr(this)+pos
;
3958 /* ??A?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEAB_WI@Z */
3959 /* ??A?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBAAEB_W_K@Z */
3960 /* ??A?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEABGI@Z */
3961 /* ??A?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBAAEBG_K@Z */
3962 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_const_operator_at
, 8)
3963 const wchar_t* __thiscall
MSVCP_basic_string_wchar_const_operator_at(
3964 const basic_string_wchar
*this, MSVCP_size_t pos
)
3966 TRACE("%p %lu\n", this, pos
);
3968 assert(this->size
>= pos
);
3969 return basic_string_wchar_const_ptr(this)+pos
;
3972 /* ??A?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAA_WU_Size_type_nosscl@01@@Z */
3973 /* ??A?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAAEA_WU_Size_type_nosscl@01@@Z */
3974 /* ??A?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAGU_Size_type_nosscl@01@@Z */
3975 /* ??A?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAAEAGU_Size_type_nosscl@01@@Z */
3976 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_operator_at_noverify
, 8)
3977 wchar_t* __thiscall
MSVCP_basic_string_wchar_operator_at_noverify(
3978 basic_string_wchar
*this, size_t_noverify pos
)
3980 TRACE("%p %lu\n", this, pos
.val
);
3981 return basic_string_wchar_ptr(this)+pos
.val
;
3984 /* ??A?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEAB_WU_Size_type_nosscl@01@@Z */
3985 /* ??A?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBAAEB_WU_Size_type_nosscl@01@@Z */
3986 /* ??A?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEABGU_Size_type_nosscl@01@@Z */
3987 /* ??A?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBAAEBGU_Size_type_nosscl@01@@Z */
3988 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_operator_const_at_noverify
, 8)
3989 const wchar_t* __thiscall
MSVCP_basic_string_wchar_operator_const_at_noverify(
3990 const basic_string_wchar
*this, size_t_noverify pos
)
3992 TRACE("%p %lu\n", this, pos
.val
);
3993 return basic_string_wchar_const_ptr(this)+pos
.val
;
3996 /* ?at@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAA_WI@Z */
3997 /* ?at@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAAEA_W_K@Z */
3998 /* ?at@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAGI@Z */
3999 /* ?at@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAAEAG_K@Z */
4000 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_at
, 8)
4001 wchar_t* __thiscall
MSVCP_basic_string_wchar_at(
4002 basic_string_wchar
*this, MSVCP_size_t pos
)
4004 TRACE("%p %lu\n", this, pos
);
4006 if(this->size
<= pos
)
4007 MSVCP__String_base_Xran();
4009 return basic_string_wchar_ptr(this)+pos
;
4012 /* ?at@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEAB_WI@Z */
4013 /* ?at@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBAAEB_W_K@Z */
4014 /* ?at@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEABGI@Z */
4015 /* ?at@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBAAEBG_K@Z */
4016 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_const_at
, 8)
4017 const wchar_t* __thiscall
MSVCP_basic_string_wchar_const_at(
4018 const basic_string_wchar
*this, MSVCP_size_t pos
)
4020 TRACE("%p %lu\n", this, pos
);
4022 if(this->size
<= pos
)
4023 MSVCP__String_base_Xran();
4025 return basic_string_wchar_const_ptr(this)+pos
;
4028 /* ?resize@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEXI_W@Z */
4029 /* ?resize@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAX_K_W@Z */
4030 /* ?resize@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEXIG@Z */
4031 /* ?resize@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAX_KG@Z */
4032 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_resize_ch
, 12)
4033 void __thiscall
MSVCP_basic_string_wchar_resize_ch(
4034 basic_string_wchar
*this, MSVCP_size_t size
, wchar_t ch
)
4036 TRACE("%p %lu %c\n", this, size
, ch
);
4038 if(size
<= this->size
)
4039 MSVCP_basic_string_wchar_erase(this, size
, this->size
);
4041 MSVCP_basic_string_wchar_append_len_ch(this, size
-this->size
, ch
);
4044 /* ?resize@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEXI@Z */
4045 /* ?resize@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAX_K@Z */
4046 /* ?resize@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEXI@Z */
4047 /* ?resize@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAX_K@Z */
4048 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_resize
, 8)
4049 void __thiscall
MSVCP_basic_string_wchar_resize(
4050 basic_string_wchar
*this, MSVCP_size_t size
)
4052 MSVCP_basic_string_wchar_resize_ch(this, size
, '\0');
4055 /* ?clear@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEXXZ */
4056 /* ?clear@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAXXZ */
4057 /* ?clear@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEXXZ */
4058 /* ?clear@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAXXZ */
4059 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_clear
, 4)
4060 void __thiscall
MSVCP_basic_string_wchar_clear(basic_string_wchar
*this)
4062 basic_string_wchar_eos(this, 0);
4065 /* _String_val class */
4066 /* ??_F?$_String_val@DV?$allocator@D@std@@@std@@QAEXXZ */
4067 /* ??_F?$_String_val@DV?$allocator@D@std@@@std@@QEAAXXZ */
4068 /* ??_F?$_String_val@GV?$allocator@G@std@@@std@@QAEXXZ */
4069 /* ??_F?$_String_val@GV?$allocator@G@std@@@std@@QEAAXXZ */
4070 /* ??_F?$_String_val@_WV?$allocator@_W@std@@@std@@QAEXXZ */
4071 /* ??_F?$_String_val@_WV?$allocator@_W@std@@@std@@QEAAXXZ */
4072 DEFINE_THISCALL_WRAPPER(_String_val_ctor
, 4)
4073 void* __thiscall
_String_val_ctor(void *this)
4075 TRACE("%p\n", this);
4079 /* ??0?$_String_val@DV?$allocator@D@std@@@std@@IAE@V?$allocator@D@1@@Z */
4080 /* ??0?$_String_val@DV?$allocator@D@std@@@std@@IEAA@V?$allocator@D@1@@Z */
4081 /* ??0?$_String_val@GV?$allocator@G@std@@@std@@IAE@V?$allocator@G@1@@Z */
4082 /* ??0?$_String_val@GV?$allocator@G@std@@@std@@IEAA@V?$allocator@G@1@@Z */
4083 /* ??0?$_String_val@_WV?$allocator@_W@std@@@std@@IAE@V?$allocator@_W@1@@Z */
4084 /* ??0?$_String_val@_WV?$allocator@_W@std@@@std@@IEAA@V?$allocator@_W@1@@Z */
4085 /* ??0?$_String_val@DV?$allocator@D@std@@@std@@QAE@ABV01@@Z */
4086 /* ??0?$_String_val@DV?$allocator@D@std@@@std@@QEAA@AEBV01@@Z */
4087 /* ??0?$_String_val@GV?$allocator@G@std@@@std@@QAE@ABV01@@Z */
4088 /* ??0?$_String_val@GV?$allocator@G@std@@@std@@QEAA@AEBV01@@Z */
4089 /* ??0?$_String_val@_WV?$allocator@_W@std@@@std@@QAE@ABV01@@Z */
4090 /* ??0?$_String_val@_WV?$allocator@_W@std@@@std@@QEAA@AEBV01@@Z */
4091 /* ??4?$_String_val@DV?$allocator@D@std@@@std@@QAEAAV01@ABV01@@Z */
4092 /* ??4?$_String_val@DV?$allocator@D@std@@@std@@QEAAAEAV01@AEBV01@@Z */
4093 /* ??4?$_String_val@GV?$allocator@G@std@@@std@@QAEAAV01@ABV01@@Z */
4094 /* ??4?$_String_val@GV?$allocator@G@std@@@std@@QEAAAEAV01@AEBV01@@Z */
4095 /* ??4?$_String_val@_WV?$allocator@_W@std@@@std@@QAEAAV01@ABV01@@Z */
4096 /* ??4?$_String_val@_WV?$allocator@_W@std@@@std@@QEAAAEAV01@AEBV01@@Z */
4097 /* ??4?$_String_val@DV?$allocator@D@std@@@std@@QAEAAV01@ABV01@@Z */
4098 DEFINE_THISCALL_WRAPPER(_String_val_null_ctor
, 8)
4099 void* __thiscall
_String_val_null_ctor(void *this, const void *misc
)
4101 TRACE("%p %p\n", this, misc
);
4105 #if _MSVCP_VER < 80 /* old iterator functions */
4109 } basic_string_char_iterator
;
4113 } basic_string_wchar_iterator
;
4115 /* ?_Pdif@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@KAIVconst_iterator@12@0@Z */
4116 /* ?_Pdif@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@CAIV?$_Ptrit@DHPBDABDPADAAD@2@0@Z */
4117 MSVCP_size_t __cdecl
basic_string_char__Pdif(basic_string_char_iterator i1
, basic_string_char_iterator i2
)
4119 TRACE("(%p %p)\n", i1
.pos
, i2
.pos
);
4120 return !i1
.pos
? 0 : i1
.pos
-i2
.pos
;
4123 /* ?erase@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE?AViterator@12@V312@0@Z */
4124 /* ?erase@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE?AV?$_Ptrit@DHPADAADPADAAD@2@V32@0@Z */
4125 DEFINE_THISCALL_WRAPPER(basic_string_char_erase_iter_range
, 16)
4126 basic_string_char_iterator
* __thiscall
basic_string_char_erase_iter_range(basic_string_char
*this,
4127 basic_string_char_iterator
*ret
, basic_string_char_iterator beg
, basic_string_char_iterator end
)
4131 ret
->pos
= basic_string_char_ptr(this);
4132 off
= basic_string_char__Pdif(beg
, *ret
);
4134 MSVCP_basic_string_char_erase(this, off
, basic_string_char__Pdif(end
, beg
));
4136 ret
->pos
= basic_string_char_ptr(this)+off
;
4140 /* ?erase@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE?AViterator@12@V312@@Z */
4141 /* ?erase@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE?AV?$_Ptrit@DHPADAADPADAAD@2@V32@@Z */
4142 DEFINE_THISCALL_WRAPPER(basic_string_char_erase_iter
, 12)
4143 basic_string_char_iterator
* __thiscall
basic_string_char_erase_iter(basic_string_char
*this,
4144 basic_string_char_iterator
*ret
, basic_string_char_iterator pos
)
4148 ret
->pos
= basic_string_char_ptr(this);
4149 off
= basic_string_char__Pdif(pos
, *ret
);
4151 MSVCP_basic_string_char_erase(this, off
, 1);
4153 ret
->pos
= basic_string_char_ptr(this)+off
;
4157 /* ?assign@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@Vconst_iterator@12@0@Z */
4158 /* ?assign@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@V?$_Ptrit@DHPBDABDPADAAD@2@0@Z */
4159 DEFINE_THISCALL_WRAPPER(basic_string_char_assign_iter
, 12)
4160 basic_string_char
* __thiscall
basic_string_char_assign_iter(basic_string_char
*this,
4161 basic_string_char_iterator beg
, basic_string_char_iterator end
)
4163 return MSVCP_basic_string_char_assign_ptr_ptr(this, beg
.pos
, end
.pos
);
4166 /* ??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@Vconst_iterator@01@0@Z */
4167 /* ??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@V?$_Ptrit@DHPBDABDPADAAD@1@0@Z */
4168 DEFINE_THISCALL_WRAPPER(basic_string_char_ctor_iter
, 12)
4169 basic_string_char
* __thiscall
basic_string_char_ctor_iter(basic_string_char
*this,
4170 basic_string_char_iterator beg
, basic_string_char_iterator end
)
4172 return MSVCP_basic_string_char_ctor_cstr_len(this, beg
.pos
, end
.pos
-beg
.pos
);
4175 /* ?append@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@Vconst_iterator@12@0@Z */
4176 /* ?append@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@V?$_Ptrit@DHPBDABDPADAAD@2@0@Z */
4177 DEFINE_THISCALL_WRAPPER(basic_string_char_append_iter
, 12)
4178 basic_string_char
* __thiscall
basic_string_char_append_iter(basic_string_char
*this,
4179 basic_string_char_iterator beg
, basic_string_char_iterator end
)
4181 return basic_string_char_replace_cstr_len(this, this->size
, 0, beg
.pos
, end
.pos
-beg
.pos
);
4184 /* ?replace@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@Viterator@12@0Vconst_iterator@12@1@Z */
4185 /* ?replace@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@V?$_Ptrit@DHPADAADPADAAD@2@0V?$_Ptrit@DHPBDABDPADAAD@2@1@Z */
4186 DEFINE_THISCALL_WRAPPER(basic_string_char_replace_iter_iter
, 20)
4187 basic_string_char
* __thiscall
basic_string_char_replace_iter_iter(basic_string_char
*this,
4188 basic_string_char_iterator beg
, basic_string_char_iterator end
,
4189 basic_string_char_iterator rbeg
, basic_string_char_iterator rend
)
4191 return basic_string_char_replace_cstr_len(this, beg
.pos
-basic_string_char_ptr(this),
4192 end
.pos
-beg
.pos
, rbeg
.pos
, rend
.pos
-rbeg
.pos
);
4195 /* ?replace@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@Viterator@12@0ABV12@@Z */
4196 /* ?replace@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@V?$_Ptrit@DHPADAADPADAAD@2@0ABV12@@Z */
4197 DEFINE_THISCALL_WRAPPER(basic_string_char_replace_iter_bstr
, 16)
4198 basic_string_char
* __thiscall
basic_string_char_replace_iter_bstr(basic_string_char
*this,
4199 basic_string_char_iterator beg
, basic_string_char_iterator end
, const basic_string_char
*str
)
4201 return basic_string_char_replace_cstr_len(this, beg
.pos
-basic_string_char_ptr(this),
4202 end
.pos
-beg
.pos
, basic_string_char_const_ptr(str
), str
->size
);
4205 /* ?replace@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@Viterator@12@0ID@Z */
4206 /* ?replace@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@V?$_Ptrit@DHPADAADPADAAD@2@0ID@Z */
4207 DEFINE_THISCALL_WRAPPER(basic_string_char_replace_iter_ch
, 20)
4208 basic_string_char
* __thiscall
basic_string_char_replace_iter_ch(basic_string_char
*this,
4209 basic_string_char_iterator beg
, basic_string_char_iterator end
, MSVCP_size_t count
, char ch
)
4211 /* TODO: add more efficient implementation */
4212 MSVCP_size_t off
= beg
.pos
-basic_string_char_ptr(this);
4214 basic_string_char_replace_cstr_len(this, off
, end
.pos
-beg
.pos
, NULL
, 0);
4216 basic_string_char_replace_cstr_len(this, off
, 0, &ch
, 1);
4220 static basic_string_char
* basic_string_char_replace_iter_ptr_ptr(basic_string_char
*this,
4221 basic_string_char_iterator beg
, basic_string_char_iterator end
,
4222 const char *res_beg
, const char *res_end
)
4224 basic_string_char_iterator begin
= { basic_string_char_ptr(this) };
4225 return basic_string_char_replace_cstr_len(this, basic_string_char__Pdif(beg
, begin
),
4226 basic_string_char__Pdif(end
, beg
), res_beg
, res_end
-res_beg
);
4229 /* ?replace@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@Viterator@12@0PBD1@Z */
4230 /* ?replace@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@V?$_Ptrit@DHPADAADPADAAD@2@0PBD1@Z */
4231 DEFINE_THISCALL_WRAPPER(basic_string_char_replace_iter_beg_end
, 20)
4232 basic_string_char
* __thiscall
basic_string_char_replace_iter_beg_end(basic_string_char
*this,
4233 basic_string_char_iterator beg
, basic_string_char_iterator end
, const char *rbeg
, const char *rend
)
4235 return basic_string_char_replace_cstr_len(this, beg
.pos
-basic_string_char_ptr(this),
4236 end
.pos
-beg
.pos
, rbeg
, rend
-rbeg
);
4239 /* ?replace@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@Viterator@12@0PBD@Z */
4240 /* ?replace@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@V?$_Ptrit@DHPADAADPADAAD@2@0PBD@Z */
4241 DEFINE_THISCALL_WRAPPER(basic_string_char_replace_iter_cstr
, 16)
4242 basic_string_char
* __thiscall
basic_string_char_replace_iter_cstr(basic_string_char
*this,
4243 basic_string_char_iterator beg
, basic_string_char_iterator end
, const char *str
)
4245 return basic_string_char_replace_cstr_len(this, beg
.pos
-basic_string_char_ptr(this),
4246 end
.pos
-beg
.pos
, str
, strlen(str
));
4249 /* ?replace@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@Viterator@12@0PBDI@Z */
4250 /* ?replace@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@V?$_Ptrit@DHPADAADPADAAD@2@0PBDI@Z */
4251 DEFINE_THISCALL_WRAPPER(basic_string_char_replace_iter_cstr_len
, 20)
4252 basic_string_char
* __thiscall
basic_string_char_replace_iter_cstr_len(basic_string_char
*this,
4253 basic_string_char_iterator beg
, basic_string_char_iterator end
, const char *str
, MSVCP_size_t len
)
4255 return basic_string_char_replace_cstr_len(this, beg
.pos
-basic_string_char_ptr(this),
4256 end
.pos
-beg
.pos
, str
, len
);
4259 /* ?insert@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEXViterator@12@ID@Z */
4260 /* ?insert@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEXV?$_Ptrit@DHPADAADPADAAD@2@ID@Z */
4261 DEFINE_THISCALL_WRAPPER(basic_string_char_insert_iter_chn
, 16)
4262 void __thiscall
basic_string_char_insert_iter_chn(basic_string_char
*this,
4263 basic_string_char_iterator where
, MSVCP_size_t count
, char ch
)
4265 basic_string_char_iterator iter
= { basic_string_char_ptr(this) };
4266 MSVCP_size_t off
= basic_string_char__Pdif(where
, iter
);
4268 basic_string_char_insert_chn(this, off
, count
, ch
);
4271 /* ?insert@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE?AViterator@12@V312@D@Z */
4272 /* ?insert@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE?AV?$_Ptrit@DHPADAADPADAAD@2@V32@D@Z */
4273 DEFINE_THISCALL_WRAPPER(basic_string_char_insert_iter_ch
, 16)
4274 basic_string_char_iterator
* __thiscall
basic_string_char_insert_iter_ch(basic_string_char
*this,
4275 basic_string_char_iterator
*ret
, basic_string_char_iterator where
, char ch
)
4279 ret
->pos
= basic_string_char_ptr(this);
4280 off
= basic_string_char__Pdif(where
, *ret
);
4282 basic_string_char_insert_chn(this, off
, 1, ch
);
4283 ret
->pos
= basic_string_char_ptr(this)+off
;
4287 /* ?insert@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE?AViterator@12@V312@@Z */
4288 /* ?insert@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE?AV?$_Ptrit@DHPADAADPADAAD@2@V32@@Z */
4289 DEFINE_THISCALL_WRAPPER(basic_string_char_insert_iter_null
, 12)
4290 basic_string_char_iterator
* __thiscall
basic_string_char_insert_iter_null(basic_string_char
*this,
4291 basic_string_char_iterator
*ret
, basic_string_char_iterator where
)
4293 return basic_string_char_insert_iter_ch(this, ret
, where
, 0);
4296 /* ?insert@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEXViterator@12@PBD1@Z */
4297 DEFINE_THISCALL_WRAPPER(basic_string_char_insert_iter_ptr_ptr
, 16)
4298 void __thiscall
basic_string_char_insert_iter_ptr_ptr(basic_string_char
*this,
4299 basic_string_char_iterator where
, const char *beg
, const char *end
)
4301 basic_string_char_replace_iter_ptr_ptr(this, where
, where
, beg
, end
);
4304 /* ?insert@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEXViterator@12@PBD1@Z */
4305 DEFINE_THISCALL_WRAPPER(basic_string_char_insert_iter_beg_end
, 16)
4306 void __thiscall
basic_string_char_insert_iter_beg_end(basic_string_char
*this,
4307 basic_string_char_iterator where
, basic_string_char_iterator beg
, basic_string_char_iterator end
)
4309 basic_string_char_replace_iter_ptr_ptr(this, where
, where
, beg
.pos
, end
.pos
);
4312 /* ?begin@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE?AViterator@12@XZ */
4313 /* ?begin@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBE?AVconst_iterator@12@XZ */
4314 /* ?rend@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE?AV?$reverse_iterator@Viterator@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@XZ */
4315 /* ?rend@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBE?AV?$reverse_iterator@Vconst_iterator@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@XZ */
4316 /* ?begin@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE?AV?$_Ptrit@DHPADAADPADAAD@2@XZ */
4317 /* ?begin@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBE?AV?$_Ptrit@DHPBDABDPADAAD@2@XZ */
4318 /* ?rend@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE?AV?$reverse_iterator@V?$_Ptrit@DHPADAADPADAAD@std@@@2@XZ */
4319 /* ?rend@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBE?AV?$reverse_iterator@V?$_Ptrit@DHPBDABDPADAAD@std@@@2@XZ */
4320 DEFINE_THISCALL_WRAPPER(basic_string_char_begin
, 8)
4321 basic_string_char_iterator
* __thiscall
basic_string_char_begin(
4322 basic_string_char
*this, basic_string_char_iterator
*ret
)
4324 ret
->pos
= basic_string_char_ptr(this);
4328 /* ?end@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE?AViterator@12@XZ */
4329 /* ?end@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBE?AVconst_iterator@12@XZ */
4330 /* ?rbegin@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE?AV?$reverse_iterator@Viterator@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@XZ */
4331 /* ?rbegin@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBE?AV?$reverse_iterator@Vconst_iterator@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@XZ */
4332 /* ?end@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE?AV?$_Ptrit@DHPADAADPADAAD@2@XZ */
4333 /* ?end@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBE?AV?$_Ptrit@DHPBDABDPADAAD@2@XZ */
4334 /* ?rbegin@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE?AV?$reverse_iterator@V?$_Ptrit@DHPADAADPADAAD@std@@@2@XZ */
4335 /* ?rbegin@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBE?AV?$reverse_iterator@V?$_Ptrit@DHPBDABDPADAAD@std@@@2@XZ */
4336 DEFINE_THISCALL_WRAPPER(basic_string_char_end
, 8)
4337 basic_string_char_iterator
* __thiscall
basic_string_char_end(
4338 basic_string_char
*this, basic_string_char_iterator
*ret
)
4340 ret
->pos
= basic_string_char_ptr(this)+this->size
;
4344 /* ?_Pdif@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@KAIVconst_iterator@12@0@Z */
4345 /* ?_Pdif@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@KAIVconst_iterator@12@0@Z */
4346 /* ?_Pdif@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@CAIV?$_Ptrit@_WHPB_WAB_WPA_WAA_W@2@0@Z */
4347 /* ?_Pdif@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@CAIV?$_Ptrit@GHPBGABGPAGAAG@2@0@Z */
4348 MSVCP_size_t __cdecl
basic_string_wchar__Pdif(basic_string_wchar_iterator i1
, basic_string_wchar_iterator i2
)
4350 TRACE("(%p %p)\n", i1
.pos
, i2
.pos
);
4351 return !i1
.pos
? 0 : i1
.pos
-i2
.pos
;
4354 /* ?erase@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE?AViterator@12@V312@0@Z */
4355 /* ?erase@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAE?AViterator@12@V312@0@Z */
4356 /* ?erase@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE?AV?$_Ptrit@_WHPA_WAA_WPA_WAA_W@2@V32@0@Z */
4357 /* ?erase@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAE?AV?$_Ptrit@GHPAGAAGPAGAAG@2@V32@0@Z */
4358 DEFINE_THISCALL_WRAPPER(basic_string_wchar_erase_iter_range
, 16)
4359 basic_string_wchar_iterator
* __thiscall
basic_string_wchar_erase_iter_range(basic_string_wchar
*this,
4360 basic_string_wchar_iterator
*ret
, basic_string_wchar_iterator beg
, basic_string_wchar_iterator end
)
4364 ret
->pos
= basic_string_wchar_ptr(this);
4365 off
= basic_string_wchar__Pdif(beg
, *ret
);
4367 MSVCP_basic_string_wchar_erase(this, off
, basic_string_wchar__Pdif(end
, beg
));
4369 ret
->pos
= basic_string_wchar_ptr(this)+off
;
4373 /* ?erase@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE?AViterator@12@V312@@Z */
4374 /* ?erase@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAE?AViterator@12@V312@@Z */
4375 /* ?erase@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE?AV?$_Ptrit@_WHPA_WAA_WPA_WAA_W@2@V32@@Z */
4376 /* ?erase@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAE?AV?$_Ptrit@GHPAGAAGPAGAAG@2@V32@@Z */
4377 DEFINE_THISCALL_WRAPPER(basic_string_wchar_erase_iter
, 12)
4378 basic_string_wchar_iterator
* __thiscall
basic_string_wchar_erase_iter(basic_string_wchar
*this,
4379 basic_string_wchar_iterator
*ret
, basic_string_wchar_iterator pos
)
4383 ret
->pos
= basic_string_wchar_ptr(this);
4384 off
= basic_string_wchar__Pdif(pos
, *ret
);
4386 MSVCP_basic_string_wchar_erase(this, off
, 1);
4388 ret
->pos
= basic_string_wchar_ptr(this)+off
;
4392 /* ?assign@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV12@Vconst_iterator@12@0@Z */
4393 /* ?assign@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV12@Vconst_iterator@12@0@Z */
4394 /* ?assign@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV12@V?$_Ptrit@_WHPB_WAB_WPA_WAA_W@2@0@Z */
4395 /* ?assign@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV12@V?$_Ptrit@GHPBGABGPAGAAG@2@0@Z */
4396 DEFINE_THISCALL_WRAPPER(basic_string_wchar_assign_iter
, 12)
4397 basic_string_wchar
* __thiscall
basic_string_wchar_assign_iter(basic_string_wchar
*this,
4398 basic_string_wchar_iterator beg
, basic_string_wchar_iterator end
)
4400 return MSVCP_basic_string_wchar_assign_ptr_ptr(this, beg
.pos
, end
.pos
);
4403 /* ??0?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE@Vconst_iterator@01@0@Z */
4404 /* ??0?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAE@Vconst_iterator@01@0@Z */
4405 /* ??0?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE@V?$_Ptrit@_WHPB_WAB_WPA_WAA_W@1@0@Z */
4406 /* ??0?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAE@V?$_Ptrit@GHPBGABGPAGAAG@1@0@Z */
4407 DEFINE_THISCALL_WRAPPER(basic_string_wchar_ctor_iter
, 12)
4408 basic_string_wchar
* __thiscall
basic_string_wchar_ctor_iter(basic_string_wchar
*this,
4409 basic_string_wchar_iterator beg
, basic_string_wchar_iterator end
)
4411 return MSVCP_basic_string_wchar_ctor_cstr_len(this, beg
.pos
, end
.pos
-beg
.pos
);
4414 /* ?append@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV12@Vconst_iterator@12@0@Z */
4415 /* ?append@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV12@Vconst_iterator@12@0@Z */
4416 /* ?append@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV12@V?$_Ptrit@_WHPB_WAB_WPA_WAA_W@2@0@Z */
4417 /* ?append@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV12@V?$_Ptrit@GHPBGABGPAGAAG@2@0@Z */
4418 DEFINE_THISCALL_WRAPPER(basic_string_wchar_append_iter
, 12)
4419 basic_string_wchar
* __thiscall
basic_string_wchar_append_iter(basic_string_wchar
*this,
4420 basic_string_wchar_iterator beg
, basic_string_wchar_iterator end
)
4422 return basic_string_wchar_replace_cstr_len(this, this->size
, 0, beg
.pos
, end
.pos
-beg
.pos
);
4425 /* ?replace@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV12@Viterator@12@0Vconst_iterator@12@1@Z */
4426 /* ?replace@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV12@Viterator@12@0Vconst_iterator@12@1@Z */
4427 /* ?replace@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV12@V?$_Ptrit@GHPAGAAGPAGAAG@2@0V?$_Ptrit@GHPBGABGPAGAAG@2@1@Z */
4428 /* ?replace@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV12@V?$_Ptrit@_WHPA_WAA_WPA_WAA_W@2@0V?$_Ptrit@_WHPB_WAB_WPA_WAA_W@2@1@Z */
4429 DEFINE_THISCALL_WRAPPER(basic_string_wchar_replace_iter_iter
, 20)
4430 basic_string_wchar
* __thiscall
basic_string_wchar_replace_iter_iter(basic_string_wchar
*this,
4431 basic_string_wchar_iterator beg
, basic_string_wchar_iterator end
,
4432 basic_string_wchar_iterator rbeg
, basic_string_wchar_iterator rend
)
4434 return basic_string_wchar_replace_cstr_len(this, beg
.pos
-basic_string_wchar_ptr(this),
4435 end
.pos
-beg
.pos
, rbeg
.pos
, rend
.pos
-rbeg
.pos
);
4438 /* ?replace@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV12@Viterator@12@0ABV12@@Z */
4439 /* ?replace@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV12@Viterator@12@0ABV12@@Z */
4440 /* ?replace@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV12@V?$_Ptrit@GHPAGAAGPAGAAG@2@0ABV12@@Z */
4441 /* ?replace@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV12@V?$_Ptrit@_WHPA_WAA_WPA_WAA_W@2@0ABV12@@Z */
4442 DEFINE_THISCALL_WRAPPER(basic_string_wchar_replace_iter_bstr
, 16)
4443 basic_string_wchar
* __thiscall
basic_string_wchar_replace_iter_bstr(basic_string_wchar
*this,
4444 basic_string_wchar_iterator beg
, basic_string_wchar_iterator end
, basic_string_wchar
*str
)
4446 return basic_string_wchar_replace_cstr_len(this, beg
.pos
-basic_string_wchar_ptr(this),
4447 end
.pos
-beg
.pos
, basic_string_wchar_ptr(str
), str
->size
);
4450 /* ?replace@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV12@Viterator@12@0IG@Z */
4451 /* ?replace@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV12@Viterator@12@0I_W@Z */
4452 /* ?replace@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV12@V?$_Ptrit@GHPAGAAGPAGAAG@2@0IG@Z */
4453 /* ?replace@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV12@V?$_Ptrit@_WHPA_WAA_WPA_WAA_W@2@0I_W@Z */
4454 DEFINE_THISCALL_WRAPPER(basic_string_wchar_replace_iter_ch
, 20)
4455 basic_string_wchar
* __thiscall
basic_string_wchar_replace_iter_ch(basic_string_wchar
*this,
4456 basic_string_wchar_iterator beg
, basic_string_wchar_iterator end
, MSVCP_size_t count
, wchar_t ch
)
4458 /* TODO: add more efficient implementation */
4459 MSVCP_size_t off
= beg
.pos
-basic_string_wchar_ptr(this);
4461 basic_string_wchar_replace_cstr_len(this, off
, end
.pos
-beg
.pos
, NULL
, 0);
4463 basic_string_wchar_replace_cstr_len(this, off
, 0, &ch
, 1);
4467 static basic_string_wchar
* basic_string_wchar_replace_iter_ptr_ptr(basic_string_wchar
*this,
4468 basic_string_wchar_iterator beg
, basic_string_wchar_iterator end
,
4469 const wchar_t *res_beg
, const wchar_t *res_end
)
4471 basic_string_wchar_iterator begin
= { basic_string_wchar_ptr(this) };
4472 return basic_string_wchar_replace_cstr_len(this, basic_string_wchar__Pdif(beg
, begin
),
4473 basic_string_wchar__Pdif(end
, beg
), res_beg
, res_end
-res_beg
);
4476 /* ?replace@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV12@Viterator@12@0PBG1@Z */
4477 /* ?replace@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV12@Viterator@12@0PB_W1@Z */
4478 /* ?replace@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV12@V?$_Ptrit@GHPAGAAGPAGAAG@2@0PBG1@Z */
4479 /* ?replace@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV12@V?$_Ptrit@_WHPA_WAA_WPA_WAA_W@2@0PB_W1@Z */
4480 DEFINE_THISCALL_WRAPPER(basic_string_wchar_replace_iter_beg_end
, 20)
4481 basic_string_wchar
* __thiscall
basic_string_wchar_replace_iter_beg_end(basic_string_wchar
*this,
4482 basic_string_wchar_iterator beg
, basic_string_wchar_iterator end
,
4483 const wchar_t *rbeg
, const wchar_t *rend
)
4485 return basic_string_wchar_replace_cstr_len(this, beg
.pos
-basic_string_wchar_ptr(this),
4486 end
.pos
-beg
.pos
, rbeg
, rend
-rbeg
);
4489 /* ?replace@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV12@Viterator@12@0PBG@Z */
4490 /* ?replace@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV12@Viterator@12@0PB_W@Z */
4491 /* ?replace@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV12@V?$_Ptrit@GHPAGAAGPAGAAG@2@0PBG@Z */
4492 /* ?replace@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV12@V?$_Ptrit@_WHPA_WAA_WPA_WAA_W@2@0PB_W@Z */
4493 DEFINE_THISCALL_WRAPPER(basic_string_wchar_replace_iter_cstr
, 16)
4494 basic_string_wchar
* __thiscall
basic_string_wchar_replace_iter_cstr(basic_string_wchar
*this,
4495 basic_string_wchar_iterator beg
, basic_string_wchar_iterator end
, const wchar_t *str
)
4497 return basic_string_wchar_replace_cstr_len(this, beg
.pos
-basic_string_wchar_ptr(this),
4498 end
.pos
-beg
.pos
, str
, wcslen(str
));
4501 /* ?replace@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV12@Viterator@12@0PBGI@Z */
4502 /* ?replace@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV12@Viterator@12@0PB_WI@Z */
4503 /* ?replace@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV12@V?$_Ptrit@GHPAGAAGPAGAAG@2@0PBGI@Z */
4504 /* ?replace@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV12@V?$_Ptrit@_WHPA_WAA_WPA_WAA_W@2@0PB_WI@Z */
4505 DEFINE_THISCALL_WRAPPER(basic_string_wchar_replace_iter_cstr_len
, 20)
4506 basic_string_wchar
* __thiscall
basic_string_wchar_replace_iter_cstr_len(basic_string_wchar
*this,
4507 basic_string_wchar_iterator beg
, basic_string_wchar_iterator end
,
4508 const wchar_t *str
, MSVCP_size_t len
)
4510 return basic_string_wchar_replace_cstr_len(this, beg
.pos
-basic_string_wchar_ptr(this),
4511 end
.pos
-beg
.pos
, str
, len
);
4514 /* ?insert@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEXViterator@12@I_W@Z */
4515 /* ?insert@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEXViterator@12@IG@Z */
4516 /* ?insert@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEXV?$_Ptrit@_WHPA_WAA_WPA_WAA_W@2@I_W@Z */
4517 /* ?insert@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEXV?$_Ptrit@GHPAGAAGPAGAAG@2@IG@Z */
4518 DEFINE_THISCALL_WRAPPER(basic_string_wchar_insert_iter_chn
, 16)
4519 void __thiscall
basic_string_wchar_insert_iter_chn(basic_string_wchar
*this,
4520 basic_string_wchar_iterator where
, MSVCP_size_t count
, wchar_t ch
)
4522 basic_string_wchar_iterator iter
= { basic_string_wchar_ptr(this) };
4523 MSVCP_size_t off
= basic_string_wchar__Pdif(where
, iter
);
4525 basic_string_wchar_insert_chn(this, off
, count
, ch
);
4528 /* ?insert@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE?AViterator@12@V312@_W@Z */
4529 /* ?insert@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAE?AViterator@12@V312@G@Z */
4530 /* ?insert@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE?AV?$_Ptrit@_WHPA_WAA_WPA_WAA_W@2@V32@_W@Z */
4531 /* ?insert@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAE?AV?$_Ptrit@GHPAGAAGPAGAAG@2@V32@G@Z */
4532 DEFINE_THISCALL_WRAPPER(basic_string_wchar_insert_iter_ch
, 16)
4533 basic_string_wchar_iterator
* __thiscall
basic_string_wchar_insert_iter_ch(basic_string_wchar
*this,
4534 basic_string_wchar_iterator
*ret
, basic_string_wchar_iterator where
, wchar_t ch
)
4538 ret
->pos
= basic_string_wchar_ptr(this);
4539 off
= basic_string_wchar__Pdif(where
, *ret
);
4541 basic_string_wchar_insert_chn(this, off
, 1, ch
);
4542 ret
->pos
= basic_string_wchar_ptr(this)+off
;
4546 /* ?insert@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE?AViterator@12@V312@@Z */
4547 /* ?insert@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAE?AViterator@12@V312@@Z */
4548 /* ?insert@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE?AV?$_Ptrit@_WHPA_WAA_WPA_WAA_W@2@V32@@Z */
4549 /* ?insert@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAE?AV?$_Ptrit@GHPAGAAGPAGAAG@2@V32@@Z */
4550 DEFINE_THISCALL_WRAPPER(basic_string_wchar_insert_iter_null
, 12)
4551 basic_string_wchar_iterator
* __thiscall
basic_string_wchar_insert_iter_null(basic_string_wchar
*this,
4552 basic_string_wchar_iterator
*ret
, basic_string_wchar_iterator where
)
4554 return basic_string_wchar_insert_iter_ch(this, ret
, where
, 0);
4557 /* ?insert@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEXViterator@12@PB_W1@Z */
4558 /* ?insert@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEXViterator@12@PBG1@Z */
4559 /* ?insert@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEXV?$_Ptrit@_WHPA_WAA_WPA_WAA_W@2@PB_W1@Z */
4560 /* ?insert@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEXV?$_Ptrit@GHPAGAAGPAGAAG@2@PBG1@Z */
4561 DEFINE_THISCALL_WRAPPER(basic_string_wchar_insert_iter_ptr_ptr
, 16)
4562 void __thiscall
basic_string_wchar_insert_iter_ptr_ptr(basic_string_wchar
*this,
4563 basic_string_wchar_iterator where
, const wchar_t *beg
, const wchar_t *end
)
4565 basic_string_wchar_replace_iter_ptr_ptr(this, where
, where
, beg
, end
);
4568 /* ?insert@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEXViterator@12@Vconst_iterator@12@1@Z */
4569 /* ?insert@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEXViterator@12@Vconst_iterator@12@1@Z */
4570 /* ?insert@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEXViterator@12@Vconst_iterator@12@1@Z */
4571 /* ?insert@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEXV?$_Ptrit@_WHPA_WAA_WPA_WAA_W@2@V?$_Ptrit@_WHPB_WAB_WPA_WAA_W@2@1@Z */
4572 /* ?insert@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEXV?$_Ptrit@GHPAGAAGPAGAAG@2@V?$_Ptrit@GHPBGABGPAGAAG@2@1@Z */
4573 DEFINE_THISCALL_WRAPPER(basic_string_wchar_insert_iter_beg_end
, 16)
4574 void __thiscall
basic_string_wchar_insert_iter_beg_end(basic_string_wchar
*this,
4575 basic_string_wchar_iterator where
, basic_string_wchar_iterator beg
, basic_string_wchar_iterator end
)
4577 basic_string_wchar_replace_iter_ptr_ptr(this, where
, where
, beg
.pos
, end
.pos
);
4580 /* ?begin@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAE?AViterator@12@XZ */
4581 /* ?begin@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBE?AVconst_iterator@12@XZ */
4582 /* ?begin@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE?AViterator@12@XZ */
4583 /* ?begin@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBE?AVconst_iterator@12@XZ */
4584 /* ?rend@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAE?AV?$reverse_iterator@Viterator@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@@2@XZ */
4585 /* ?rend@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBE?AV?$reverse_iterator@Vconst_iterator@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@@2@XZ */
4586 /* ?rend@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE?AV?$reverse_iterator@Viterator@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@@2@XZ */
4587 /* ?rend@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBE?AV?$reverse_iterator@Vconst_iterator@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@@2@XZ */
4588 /* ?begin@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAE?AV?$_Ptrit@GHPAGAAGPAGAAG@2@XZ */
4589 /* ?begin@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBE?AV?$_Ptrit@GHPBGABGPAGAAG@2@XZ */
4590 /* ?begin@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE?AV?$_Ptrit@_WHPA_WAA_WPA_WAA_W@2@XZ */
4591 /* ?begin@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBE?AV?$_Ptrit@_WHPB_WAB_WPA_WAA_W@2@XZ */
4592 /* ?rend@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAE?AV?$reverse_iterator@V?$_Ptrit@GHPAGAAGPAGAAG@std@@@2@XZ */
4593 /* ?rend@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBE?AV?$reverse_iterator@V?$_Ptrit@GHPBGABGPAGAAG@std@@@2@XZ */
4594 /* ?rend@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE?AV?$reverse_iterator@V?$_Ptrit@_WHPA_WAA_WPA_WAA_W@std@@@2@XZ */
4595 /* ?rend@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBE?AV?$reverse_iterator@V?$_Ptrit@_WHPB_WAB_WPA_WAA_W@std@@@2@XZ */
4596 DEFINE_THISCALL_WRAPPER(basic_string_wchar_begin
, 8)
4597 basic_string_wchar_iterator
* __thiscall
basic_string_wchar_begin(
4598 basic_string_wchar
*this, basic_string_wchar_iterator
*ret
)
4600 ret
->pos
= basic_string_wchar_ptr(this);
4604 /* ?end@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAE?AViterator@12@XZ */
4605 /* ?end@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBE?AVconst_iterator@12@XZ */
4606 /* ?end@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE?AViterator@12@XZ */
4607 /* ?end@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBE?AVconst_iterator@12@XZ */
4608 /* ?rbegin@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAE?AV?$reverse_iterator@Viterator@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@@2@XZ */
4609 /* ?rbegin@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBE?AV?$reverse_iterator@Vconst_iterator@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@@2@XZ */
4610 /* ?rbegin@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE?AV?$reverse_iterator@Viterator@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@@2@XZ */
4611 /* ?rbegin@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBE?AV?$reverse_iterator@Vconst_iterator@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@@2@XZ */
4612 /* ?end@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAE?AV?$_Ptrit@GHPAGAAGPAGAAG@2@XZ */
4613 /* ?end@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBE?AV?$_Ptrit@GHPBGABGPAGAAG@2@XZ */
4614 /* ?end@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE?AV?$_Ptrit@_WHPA_WAA_WPA_WAA_W@2@XZ */
4615 /* ?end@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBE?AV?$_Ptrit@_WHPB_WAB_WPA_WAA_W@2@XZ */
4616 /* ?rbegin@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAE?AV?$reverse_iterator@V?$_Ptrit@GHPAGAAGPAGAAG@std@@@2@XZ */
4617 /* ?rbegin@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBE?AV?$reverse_iterator@V?$_Ptrit@GHPBGABGPAGAAG@std@@@2@XZ */
4618 /* ?rbegin@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE?AV?$reverse_iterator@V?$_Ptrit@_WHPA_WAA_WPA_WAA_W@std@@@2@XZ */
4619 /* ?rbegin@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBE?AV?$reverse_iterator@V?$_Ptrit@_WHPB_WAB_WPA_WAA_W@std@@@2@XZ */
4620 DEFINE_THISCALL_WRAPPER(basic_string_wchar_end
, 8)
4621 basic_string_wchar_iterator
* __thiscall
basic_string_wchar_end(
4622 basic_string_wchar
*this, basic_string_wchar_iterator
*ret
)
4624 ret
->pos
= basic_string_wchar_ptr(this)+this->size
;
4628 #else /* _MSVCP_VER >= 80, new iterator functions */
4630 /* _String_iterator<char> and _String_const_iterator<char> class */
4632 basic_string_char
*bstr
;
4634 } String_iterator_char
;
4637 #if _MSVCP_VER == 80
4640 const basic_string_char
*bstr
;
4642 } String_reverse_iterator_char
;
4645 basic_string_wchar
*bstr
;
4647 } String_iterator_wchar
;
4650 #if _MSVCP_VER == 80
4653 const basic_string_wchar
*bstr
;
4655 } String_reverse_iterator_wchar
;
4657 /* ?_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 */
4658 /* ?_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 */
4659 MSVCP_size_t __cdecl
MSVCP_basic_string_char_Pdif(String_iterator_char i1
, String_iterator_char i2
)
4661 TRACE("(%p %p) (%p %p)\n", i1
.bstr
, i1
.pos
, i2
.bstr
, i2
.pos
);
4663 if((!i1
.bstr
&& i1
.pos
) || i1
.bstr
!=i2
.bstr
) {
4664 _invalid_parameter(NULL
, NULL
, NULL
, 0, 0);
4668 return !i1
.pos
? 0 : i1
.pos
-i2
.pos
;
4671 /* ?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 */
4672 /* ?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 */
4673 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_erase_iter_range
, 24)
4674 String_iterator_char
* __thiscall
MSVCP_basic_string_char_erase_iter_range(basic_string_char
*this,
4675 String_iterator_char
*ret
, String_iterator_char beg
, String_iterator_char end
)
4680 ret
->pos
= basic_string_char_ptr(this);
4681 off
= MSVCP_basic_string_char_Pdif(beg
, *ret
);
4683 MSVCP_basic_string_char_erase(this, off
, MSVCP_basic_string_char_Pdif(end
, beg
));
4686 ret
->pos
= basic_string_char_ptr(this)+off
;
4690 /* ?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 */
4691 /* ?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 */
4692 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_erase_iter
, 16)
4693 String_iterator_char
* __thiscall
MSVCP_basic_string_char_erase_iter(basic_string_char
*this,
4694 String_iterator_char
*ret
, String_iterator_char pos
)
4699 ret
->pos
= basic_string_char_ptr(this);
4700 off
= MSVCP_basic_string_char_Pdif(pos
, *ret
);
4702 MSVCP_basic_string_char_erase(this, off
, 1);
4705 ret
->pos
= basic_string_char_ptr(this)+off
;
4709 /* ?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 */
4710 /* ?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 */
4711 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_assign_iter
, 20)
4712 basic_string_char
* __thiscall
MSVCP_basic_string_char_assign_iter(basic_string_char
*this,
4713 String_iterator_char beg
, String_iterator_char end
)
4715 return MSVCP_basic_string_char_assign_ptr_ptr(this, beg
.pos
, end
.pos
);
4718 /* ??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 */
4719 /* ??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 */
4720 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_ctor_iter
, 20)
4721 basic_string_char
* __thiscall
MSVCP_basic_string_char_ctor_iter(basic_string_char
*this,
4722 String_iterator_char beg
, String_iterator_char end
)
4724 return MSVCP_basic_string_char_ctor_cstr_len(this, beg
.pos
, end
.pos
-beg
.pos
);
4727 /* ?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 */
4728 /* ?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 */
4729 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_append_iter
, 20)
4730 basic_string_char
* __thiscall
MSVCP_basic_string_char_append_iter(
4731 basic_string_char
*this, String_iterator_char beg
, String_iterator_char end
)
4733 return MSVCP_basic_string_char_append_cstr_len(this, beg
.pos
, end
.pos
-beg
.pos
);
4736 /* ?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 */
4737 /* ?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 */
4738 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_replace_iter_iter
, 36)
4739 basic_string_char
* __thiscall
MSVCP_basic_string_char_replace_iter_iter(basic_string_char
*this,
4740 String_iterator_char beg
, String_iterator_char end
,
4741 String_iterator_char res_beg
, String_iterator_char res_end
)
4743 String_iterator_char begin
= { this, basic_string_char_ptr(this) };
4744 return basic_string_char_replace_cstr_len(this,
4745 MSVCP_basic_string_char_Pdif(beg
, begin
), MSVCP_basic_string_char_Pdif(end
, beg
),
4746 res_beg
.pos
, MSVCP_basic_string_char_Pdif(res_end
, res_beg
));
4749 /* ?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 */
4750 /* ?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 */
4751 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_replace_iter_bstr
, 24)
4752 basic_string_char
* __thiscall
MSVCP_basic_string_char_replace_iter_bstr(basic_string_char
*this,
4753 String_iterator_char beg
, String_iterator_char end
, const basic_string_char
*str
)
4755 String_iterator_char begin
= { this, basic_string_char_ptr(this) };
4756 return basic_string_char_replace(this, MSVCP_basic_string_char_Pdif(beg
, begin
),
4757 MSVCP_basic_string_char_Pdif(end
, beg
), str
);
4760 /* ?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 */
4761 /* ?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 */
4762 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_replace_iter_ch
, 28)
4763 basic_string_char
* __thiscall
MSVCP_basic_string_char_replace_iter_ch(basic_string_char
*this,
4764 String_iterator_char beg
, String_iterator_char end
, MSVCP_size_t count
, char ch
)
4766 String_iterator_char begin
= { this, basic_string_char_ptr(this) };
4767 return basic_string_char_replace_ch(this, MSVCP_basic_string_char_Pdif(beg
, begin
),
4768 MSVCP_basic_string_char_Pdif(end
, beg
), count
, ch
);
4771 /* ?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 */
4772 /* ?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 */
4773 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_replace_iter_ptr_ptr
, 28)
4774 basic_string_char
* __thiscall
MSVCP_basic_string_char_replace_iter_ptr_ptr(basic_string_char
*this,
4775 String_iterator_char beg
, String_iterator_char end
,
4776 const char *res_beg
, const char *res_end
)
4778 String_iterator_char begin
= { this, basic_string_char_ptr(this) };
4779 return basic_string_char_replace_cstr_len(this, MSVCP_basic_string_char_Pdif(beg
, begin
),
4780 MSVCP_basic_string_char_Pdif(end
, beg
), res_beg
, res_end
-res_beg
);
4783 /* ?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 */
4784 /* ?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 */
4785 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_replace_iter_cstr
, 24)
4786 basic_string_char
* __thiscall
MSVCP_basic_string_char_replace_iter_cstr(basic_string_char
*this,
4787 String_iterator_char beg
, String_iterator_char end
, const char *str
)
4789 String_iterator_char begin
= { this, basic_string_char_ptr(this) };
4790 return basic_string_char_replace_cstr(this, MSVCP_basic_string_char_Pdif(beg
, begin
),
4791 MSVCP_basic_string_char_Pdif(end
, beg
), str
);
4794 /* ?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 */
4795 /* ?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 */
4796 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_replace_iter_cstr_len
, 28)
4797 basic_string_char
* __thiscall
MSVCP_basic_string_char_replace_iter_cstr_len(basic_string_char
*this,
4798 String_iterator_char beg
, String_iterator_char end
, const char *str
, MSVCP_size_t len
)
4800 String_iterator_char begin
= { this, basic_string_char_ptr(this) };
4801 return basic_string_char_replace_cstr_len(this, MSVCP_basic_string_char_Pdif(beg
, begin
),
4802 MSVCP_basic_string_char_Pdif(end
, beg
), str
, len
);
4805 /* ?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 */
4806 /* ?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 */
4807 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_insert_iter_chn
, 20)
4808 void __thiscall
MSVCP_basic_string_char_insert_iter_chn(basic_string_char
*this,
4809 String_iterator_char where
, MSVCP_size_t count
, char ch
)
4811 String_iterator_char iter
= { this, basic_string_char_ptr(this) };
4812 MSVCP_size_t off
= MSVCP_basic_string_char_Pdif(where
, iter
);
4814 basic_string_char_insert_chn(this, off
, count
, ch
);
4817 /* ?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 */
4818 /* ?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 */
4819 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_insert_iter_ch
, 20)
4820 String_iterator_char
* __thiscall
MSVCP_basic_string_char_insert_iter_ch(basic_string_char
*this,
4821 String_iterator_char
*ret
, String_iterator_char where
, char ch
)
4826 ret
->pos
= basic_string_char_ptr(this);
4827 off
= MSVCP_basic_string_char_Pdif(where
, *ret
);
4829 basic_string_char_insert_chn(this, off
, 1, ch
);
4830 ret
->pos
= basic_string_char_ptr(this)+off
;
4834 /* ?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 */
4835 /* ?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 */
4836 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_insert_iter_null
, 16)
4837 String_iterator_char
* __thiscall
MSVCP_basic_string_char_insert_iter_null(basic_string_char
*this,
4838 String_iterator_char
*ret
, String_iterator_char where
)
4840 return MSVCP_basic_string_char_insert_iter_ch(this, ret
, where
, 0);
4843 /* ?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 */
4844 /* ?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 */
4845 DEFINE_THISCALL_WRAPPER(basic_string_char_insert_iter_beg_end
, 28)
4846 void __thiscall
basic_string_char_insert_iter_beg_end(basic_string_char
*this,
4847 String_iterator_char where
, String_iterator_char beg
, String_iterator_char end
)
4849 MSVCP_basic_string_char_replace_iter_iter(this, where
, where
, beg
, end
);
4852 /* ?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 */
4853 /* ?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 */
4854 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_insert_iter_ptr_ptr
, 20)
4855 void __thiscall
MSVCP_basic_string_char_insert_iter_ptr_ptr(basic_string_char
*this,
4856 String_iterator_char where
, const char *beg
, const char *end
)
4858 MSVCP_basic_string_char_replace_iter_ptr_ptr(this, where
, where
, beg
, end
);
4861 /* ?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 */
4862 /* ?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 */
4863 /* ?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 */
4864 /* ?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 */
4865 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_begin
, 8)
4866 String_iterator_char
* __thiscall
MSVCP_basic_string_char_begin(
4867 basic_string_char
*this, String_iterator_char
*ret
)
4869 TRACE("%p\n", this);
4872 ret
->pos
= basic_string_char_const_ptr(this);
4876 /* ?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 */
4877 /* ?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 */
4878 /* ?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 */
4879 /* ?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 */
4880 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_end
, 8)
4881 String_iterator_char
* __thiscall
MSVCP_basic_string_char_end(
4882 basic_string_char
*this, String_iterator_char
*ret
)
4884 TRACE("%p\n", this);
4887 ret
->pos
= basic_string_char_const_ptr(this)+this->size
;
4891 /* ?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 */
4892 /* ?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 */
4893 /* ?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 */
4894 /* ?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 */
4895 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_rbegin
, 8)
4896 String_reverse_iterator_char
* __thiscall
MSVCP_basic_string_char_rbegin(
4897 basic_string_char
*this, String_reverse_iterator_char
*ret
)
4899 TRACE("%p\n", this);
4901 #if _MSVCP_VER == 80
4905 ret
->pos
= basic_string_char_const_ptr(this)+this->size
;
4909 /* ?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 */
4910 /* ?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 */
4911 /* ?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 */
4912 /* ?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 */
4913 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_rend
, 8)
4914 String_reverse_iterator_char
* __thiscall
MSVCP_basic_string_char_rend(
4915 basic_string_char
*this, String_reverse_iterator_char
*ret
)
4917 TRACE("%p\n", this);
4919 #if _MSVCP_VER == 80
4923 ret
->pos
= basic_string_char_const_ptr(this);
4927 /* ?_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 */
4928 /* ?_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 */
4929 /* ?_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 */
4930 /* ?_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 */
4931 MSVCP_size_t __cdecl
MSVCP_basic_string_wchar_Pdif(String_iterator_wchar i1
, String_iterator_wchar i2
)
4933 TRACE("(%p %p) (%p %p)\n", i1
.bstr
, i1
.pos
, i2
.bstr
, i2
.pos
);
4935 if((!i1
.bstr
&& i1
.pos
) || i1
.bstr
!=i2
.bstr
) {
4936 _invalid_parameter(NULL
, NULL
, NULL
, 0, 0);
4940 return !i1
.pos
? 0 : i1
.pos
-i2
.pos
;
4943 /* ?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 */
4944 /* ?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 */
4945 /* ?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 */
4946 /* ?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 */
4947 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_erase_iter_range
, 24)
4948 String_iterator_wchar
* __thiscall
MSVCP_basic_string_wchar_erase_iter_range(basic_string_wchar
*this,
4949 String_iterator_wchar
*ret
, String_iterator_wchar beg
, String_iterator_wchar end
)
4954 ret
->pos
= basic_string_wchar_ptr(this);
4955 off
= MSVCP_basic_string_wchar_Pdif(beg
, *ret
);
4957 MSVCP_basic_string_wchar_erase(this, off
, MSVCP_basic_string_wchar_Pdif(end
, beg
));
4960 ret
->pos
= basic_string_wchar_ptr(this)+off
;
4964 /* ?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 */
4965 /* ?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 */
4966 /* ?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 */
4967 /* ?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 */
4968 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_erase_iter
, 16)
4969 String_iterator_wchar
* __thiscall
MSVCP_basic_string_wchar_erase_iter(basic_string_wchar
*this,
4970 String_iterator_wchar
*ret
, String_iterator_wchar pos
)
4975 ret
->pos
= basic_string_wchar_ptr(this);
4976 off
= MSVCP_basic_string_wchar_Pdif(pos
, *ret
);
4978 MSVCP_basic_string_wchar_erase(this, off
, 1);
4981 ret
->pos
= basic_string_wchar_ptr(this)+off
;
4985 /* ?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 */
4986 /* ?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 */
4987 /* ?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 */
4988 /* ?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 */
4989 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_assign_iter
, 20)
4990 basic_string_wchar
* __thiscall
MSVCP_basic_string_wchar_assign_iter(basic_string_wchar
*this,
4991 String_iterator_wchar beg
, String_iterator_wchar end
)
4993 return MSVCP_basic_string_wchar_assign_ptr_ptr(this, beg
.pos
, end
.pos
);
4996 /* ??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 */
4997 /* ??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 */
4998 /* ??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 */
4999 /* ??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 */
5000 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_ctor_iter
, 20)
5001 basic_string_wchar
* __thiscall
MSVCP_basic_string_wchar_ctor_iter(basic_string_wchar
*this,
5002 String_iterator_wchar beg
, String_iterator_wchar end
)
5004 return MSVCP_basic_string_wchar_ctor_cstr_len(this, beg
.pos
, end
.pos
-beg
.pos
);
5007 /* ?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 */
5008 /* ?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 */
5009 /* ?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 */
5010 /* ?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 */
5011 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_append_iter
, 20)
5012 basic_string_wchar
* __thiscall
MSVCP_basic_string_wchar_append_iter(
5013 basic_string_wchar
*this, String_iterator_wchar beg
, String_iterator_wchar end
)
5015 return MSVCP_basic_string_wchar_append_cstr_len(this, beg
.pos
, end
.pos
-beg
.pos
);
5018 /* ?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 */
5019 /* ?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 */
5020 /* ?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 */
5021 /* ?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 */
5022 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_replace_iter_iter
, 36)
5023 basic_string_wchar
* __thiscall
MSVCP_basic_string_wchar_replace_iter_iter(basic_string_wchar
*this,
5024 String_iterator_wchar beg
, String_iterator_wchar end
,
5025 String_iterator_wchar res_beg
, String_iterator_wchar res_end
)
5027 String_iterator_wchar begin
= { this, basic_string_wchar_ptr(this) };
5028 return basic_string_wchar_replace_cstr_len(this,
5029 MSVCP_basic_string_wchar_Pdif(beg
, begin
), MSVCP_basic_string_wchar_Pdif(end
, beg
),
5030 res_beg
.pos
, MSVCP_basic_string_wchar_Pdif(res_end
, res_beg
));
5033 /* ?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 */
5034 /* ?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 */
5035 /* ?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 */
5036 /* ?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 */
5037 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_replace_iter_bstr
, 24)
5038 basic_string_wchar
* __thiscall
MSVCP_basic_string_wchar_replace_iter_bstr(basic_string_wchar
*this,
5039 String_iterator_wchar beg
, String_iterator_wchar end
, const basic_string_wchar
*str
)
5041 String_iterator_wchar begin
= { this, basic_string_wchar_ptr(this) };
5042 return basic_string_wchar_replace(this, MSVCP_basic_string_wchar_Pdif(beg
, begin
),
5043 MSVCP_basic_string_wchar_Pdif(end
, beg
), str
);
5046 /* ?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 */
5047 /* ?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 */
5048 /* ?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 */
5049 /* ?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 */
5050 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_replace_iter_ch
, 28)
5051 basic_string_wchar
* __thiscall
MSVCP_basic_string_wchar_replace_iter_ch(basic_string_wchar
*this,
5052 String_iterator_wchar beg
, String_iterator_wchar end
, MSVCP_size_t count
, wchar_t ch
)
5054 String_iterator_wchar begin
= { this, basic_string_wchar_ptr(this) };
5055 return basic_string_wchar_replace_ch(this, MSVCP_basic_string_wchar_Pdif(beg
, begin
),
5056 MSVCP_basic_string_wchar_Pdif(end
, beg
), count
, ch
);
5059 /* ?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 */
5060 /* ?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 */
5061 /* ?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 */
5062 /* ?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 */
5063 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_replace_iter_ptr_ptr
, 28)
5064 basic_string_wchar
* __thiscall
MSVCP_basic_string_wchar_replace_iter_ptr_ptr(basic_string_wchar
*this,
5065 String_iterator_wchar beg
, String_iterator_wchar end
,
5066 const wchar_t *res_beg
, const wchar_t *res_end
)
5068 String_iterator_wchar begin
= { this, basic_string_wchar_ptr(this) };
5069 return basic_string_wchar_replace_cstr_len(this, MSVCP_basic_string_wchar_Pdif(beg
, begin
),
5070 MSVCP_basic_string_wchar_Pdif(end
, beg
), res_beg
, res_end
-res_beg
);
5073 /* ?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 */
5074 /* ?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 */
5075 /* ?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 */
5076 /* ?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 */
5077 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_replace_iter_cstr
, 24)
5078 basic_string_wchar
* __thiscall
MSVCP_basic_string_wchar_replace_iter_cstr(basic_string_wchar
*this,
5079 String_iterator_wchar beg
, String_iterator_wchar end
, const wchar_t *str
)
5081 String_iterator_wchar begin
= { this, basic_string_wchar_ptr(this) };
5082 return basic_string_wchar_replace_cstr(this, MSVCP_basic_string_wchar_Pdif(beg
, begin
),
5083 MSVCP_basic_string_wchar_Pdif(end
, beg
), str
);
5086 /* ?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 */
5087 /* ?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 */
5088 /* ?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 */
5089 /* ?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 */
5090 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_replace_iter_cstr_len
, 28)
5091 basic_string_wchar
* __thiscall
MSVCP_basic_string_wchar_replace_iter_cstr_len(basic_string_wchar
*this,
5092 String_iterator_wchar beg
, String_iterator_wchar end
, const wchar_t *str
, MSVCP_size_t len
)
5094 String_iterator_wchar begin
= { this, basic_string_wchar_ptr(this) };
5095 return basic_string_wchar_replace_cstr_len(this, MSVCP_basic_string_wchar_Pdif(beg
, begin
),
5096 MSVCP_basic_string_wchar_Pdif(end
, beg
), str
, len
);
5099 /* ?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 */
5100 /* ?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 */
5101 /* ?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 */
5102 /* ?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 */
5103 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_insert_iter_chn
, 20)
5104 void __thiscall
MSVCP_basic_string_wchar_insert_iter_chn(basic_string_wchar
*this,
5105 String_iterator_wchar where
, MSVCP_size_t count
, wchar_t ch
)
5107 String_iterator_wchar iter
= { this, basic_string_wchar_ptr(this) };
5108 MSVCP_size_t off
= MSVCP_basic_string_wchar_Pdif(where
, iter
);
5110 basic_string_wchar_insert_chn(this, off
, count
, ch
);
5113 /* ?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 */
5114 /* ?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 */
5115 /* ?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 */
5116 /* ?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 */
5117 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_insert_iter_ch
, 20)
5118 String_iterator_wchar
* __thiscall
MSVCP_basic_string_wchar_insert_iter_ch(basic_string_wchar
*this,
5119 String_iterator_wchar
*ret
, String_iterator_wchar where
, wchar_t ch
)
5124 ret
->pos
= basic_string_wchar_ptr(this);
5125 off
= MSVCP_basic_string_wchar_Pdif(where
, *ret
);
5127 basic_string_wchar_insert_chn(this, off
, 1, ch
);
5128 ret
->pos
= basic_string_wchar_ptr(this)+off
;
5132 /* ?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 */
5133 /* ?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 */
5134 /* ?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 */
5135 /* ?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 */
5136 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_insert_iter_null
, 16)
5137 String_iterator_wchar
* __thiscall
MSVCP_basic_string_wchar_insert_iter_null(basic_string_wchar
*this,
5138 String_iterator_wchar
*ret
, String_iterator_wchar where
)
5140 return MSVCP_basic_string_wchar_insert_iter_ch(this, ret
, where
, 0);
5143 /* ?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 */
5144 /* ?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 */
5145 /* ?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 */
5146 /* ?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 */
5147 DEFINE_THISCALL_WRAPPER(basic_string_wchar_insert_iter_beg_end
, 28)
5148 void __thiscall
basic_string_wchar_insert_iter_beg_end(basic_string_wchar
*this,
5149 String_iterator_wchar where
, String_iterator_wchar beg
, String_iterator_wchar end
)
5151 MSVCP_basic_string_wchar_replace_iter_iter(this, where
, where
, beg
, end
);
5154 /* ?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 */
5155 /* ?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 */
5156 /* ?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 */
5157 /* ?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 */
5158 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_insert_iter_ptr_ptr
, 20)
5159 void __thiscall
MSVCP_basic_string_wchar_insert_iter_ptr_ptr(basic_string_wchar
*this,
5160 String_iterator_wchar where
, const wchar_t *beg
, const wchar_t *end
)
5162 MSVCP_basic_string_wchar_replace_iter_ptr_ptr(this, where
, where
, beg
, end
);
5165 /* ?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 */
5166 /* ?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 */
5167 /* ?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 */
5168 /* ?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 */
5169 /* ?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 */
5170 /* ?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 */
5171 /* ?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 */
5172 /* ?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 */
5173 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_begin
, 8)
5174 String_iterator_wchar
* __thiscall
MSVCP_basic_string_wchar_begin(
5175 basic_string_wchar
*this, String_iterator_wchar
*ret
)
5177 TRACE("%p\n", this);
5180 ret
->pos
= basic_string_wchar_const_ptr(this);
5184 /* ?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 */
5185 /* ?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 */
5186 /* ?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 */
5187 /* ?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 */
5188 /* ?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 */
5189 /* ?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 */
5190 /* ?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 */
5191 /* ?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 */
5192 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_end
, 8)
5193 String_iterator_wchar
* __thiscall
MSVCP_basic_string_wchar_end(
5194 basic_string_wchar
*this, String_iterator_wchar
*ret
)
5196 TRACE("%p\n", this);
5199 ret
->pos
= basic_string_wchar_const_ptr(this)+this->size
;
5203 /* ?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 */
5204 /* ?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 */
5205 /* ?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 */
5206 /* ?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 */
5207 /* ?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 */
5208 /* ?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 */
5209 /* ?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 */
5210 /* ?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 */
5211 /* ?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 */
5212 /* ?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 */
5213 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_rbegin
, 8)
5214 String_reverse_iterator_wchar
* __thiscall
MSVCP_basic_string_wchar_rbegin(
5215 basic_string_wchar
*this, String_reverse_iterator_wchar
*ret
)
5217 TRACE("%p\n", this);
5219 #if _MSVCP_VER == 80
5223 ret
->pos
= basic_string_wchar_const_ptr(this)+this->size
;
5227 /* ?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 */
5228 /* ?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 */
5229 /* ?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 */
5230 /* ?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 */
5231 /* ?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 */
5232 /* ?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 */
5233 /* ?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 */
5234 /* ?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 */
5235 /* ?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 */
5236 /* ?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 */
5237 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_rend
, 8)
5238 String_reverse_iterator_wchar
* __thiscall
MSVCP_basic_string_wchar_rend(
5239 basic_string_wchar
*this, String_reverse_iterator_wchar
*ret
)
5241 TRACE("%p\n", this);
5243 #if _MSVCP_VER == 80
5247 ret
->pos
= basic_string_wchar_const_ptr(this);
5251 #endif /* _MSVCP_VER < 80 */