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 _Yarn_char__Tidy(this);
1650 MSVCP_size_t len
= strlen(str
);
1652 this->str
= MSVCRT_operator_new((len
+1)*sizeof(char));
1654 ERR("out of memory\n");
1657 memcpy(this->str
, str
, (len
+1)*sizeof(char));
1662 /* ??0?$_Yarn@D@std@@QAE@PBD@Z */
1663 /* ??0?$_Yarn@D@std@@QEAA@PEBD@Z */
1664 DEFINE_THISCALL_WRAPPER(_Yarn_char_ctor_cstr
, 8)
1665 _Yarn_char
* __thiscall
_Yarn_char_ctor_cstr(_Yarn_char
*this, const char *str
)
1667 TRACE("(%p %p)\n", this, str
);
1669 _Yarn_char_ctor(this);
1670 return _Yarn_char_op_assign_cstr(this, str
);
1673 /* ??4?$_Yarn@D@std@@QAEAAV01@ABV01@@Z */
1674 /* ??4?$_Yarn@D@std@@QEAAAEAV01@AEBV01@@Z */
1675 DEFINE_THISCALL_WRAPPER(_Yarn_char_op_assign
, 8)
1676 _Yarn_char
* __thiscall
_Yarn_char_op_assign(_Yarn_char
*this, const _Yarn_char
*rhs
)
1678 TRACE("(%p %p)\n", this, rhs
);
1680 return _Yarn_char_op_assign_cstr(this, rhs
->str
);
1683 /* ??0?$_Yarn@D@std@@QAE@ABV01@@Z */
1684 /* ??0?$_Yarn@D@std@@QEAA@AEBV01@@Z */
1685 DEFINE_THISCALL_WRAPPER(_Yarn_char_copy_ctor
, 8)
1686 _Yarn_char
* __thiscall
_Yarn_char_copy_ctor(_Yarn_char
*this, const _Yarn_char
*copy
)
1688 TRACE("(%p %p)\n", this, copy
);
1690 _Yarn_char_ctor(this);
1691 return _Yarn_char_op_assign(this, copy
);
1694 /* ??1?$_Yarn@D@std@@QAE@XZ */
1695 /* ??1?$_Yarn@D@std@@QEAA@XZ */
1696 DEFINE_THISCALL_WRAPPER(_Yarn_char_dtor
, 4)
1697 void __thiscall
_Yarn_char_dtor(_Yarn_char
*this)
1699 TRACE("(%p)\n", this);
1700 _Yarn_char__Tidy(this);
1703 /* ?_C_str@?$_Yarn@D@std@@QBEPBDXZ */
1704 /* ?_C_str@?$_Yarn@D@std@@QEBAPEBDXZ */
1705 /* ?c_str@?$_Yarn@D@std@@QBEPBDXZ */
1706 /* ?c_str@?$_Yarn@D@std@@QEBAPEBDXZ */
1707 DEFINE_THISCALL_WRAPPER(_Yarn_char_c_str
, 4)
1708 const char* __thiscall
_Yarn_char_c_str(const _Yarn_char
*this)
1710 TRACE("(%p)\n", this);
1711 return this->str
? this->str
: &this->null_str
;
1714 /* ?_Empty@?$_Yarn@D@std@@QBE_NXZ */
1715 /* ?_Empty@?$_Yarn@D@std@@QEBA_NXZ */
1716 /* ?empty@?$_Yarn@D@std@@QBE_NXZ */
1717 /* ?empty@?$_Yarn@D@std@@QEBA_NXZ */
1718 DEFINE_THISCALL_WRAPPER(_Yarn_char_empty
, 4)
1719 MSVCP_bool __thiscall
_Yarn_char_empty(const _Yarn_char
*this)
1721 TRACE("(%p)\n", this);
1725 /* ??0?$_Yarn@_W@std@@QAE@XZ */
1726 /* ??0?$_Yarn@_W@std@@QEAA@XZ */
1727 DEFINE_THISCALL_WRAPPER(_Yarn_wchar_ctor
, 4)
1728 _Yarn_wchar
* __thiscall
_Yarn_wchar_ctor(_Yarn_wchar
*this)
1730 TRACE("(%p)\n", this);
1733 this->null_str
= '\0';
1737 /* ?_Tidy@?$_Yarn@_W@std@@AAEXXZ */
1738 /* ?_Tidy@?$_Yarn@_W@std@@AEAAXXZ */
1739 DEFINE_THISCALL_WRAPPER(_Yarn_wchar__Tidy
, 4)
1740 void __thiscall
_Yarn_wchar__Tidy(_Yarn_wchar
*this)
1742 TRACE("(%p)\n", this);
1745 MSVCRT_operator_delete(this->str
);
1749 /* ??1?$_Yarn@_W@std@@QAE@XZ */
1750 /* ??1?$_Yarn@_W@std@@QEAA@XZ */
1751 DEFINE_THISCALL_WRAPPER(_Yarn_wchar_dtor
, 4)
1752 void __thiscall
_Yarn_wchar_dtor(_Yarn_wchar
*this)
1754 TRACE("(%p)\n", this);
1755 _Yarn_wchar__Tidy(this);
1758 /* ??4?$_Yarn@_W@std@@QAEAAV01@PB_W@Z */
1759 /* ??4?$_Yarn@_W@std@@QEAAAEAV01@PEB_W@Z */
1760 DEFINE_THISCALL_WRAPPER(_Yarn_wchar_op_assign_cstr
, 8)
1761 _Yarn_wchar
* __thiscall
_Yarn_wchar_op_assign_cstr(_Yarn_wchar
*this, const wchar_t *str
)
1763 TRACE("(%p %p)\n", this, str
);
1765 _Yarn_wchar__Tidy(this);
1768 MSVCP_size_t len
= wcslen(str
);
1770 this->str
= MSVCRT_operator_new((len
+1)*sizeof(wchar_t));
1772 ERR("out of memory\n");
1775 memcpy(this->str
, str
, (len
+1)*sizeof(wchar_t));
1780 /* ?_C_str@?$_Yarn@_W@std@@QBEPB_WXZ */
1781 /* ?_C_str@?$_Yarn@_W@std@@QEBAPEB_WXZ */
1782 DEFINE_THISCALL_WRAPPER(_Yarn_wchar__C_str
, 4)
1783 const wchar_t* __thiscall
_Yarn_wchar__C_str(const _Yarn_wchar
*this)
1785 TRACE("(%p)\n", this);
1786 return this->str
? this->str
: &this->null_str
;
1789 /* ?_Empty@?$_Yarn@_W@std@@QBE_NXZ */
1790 /* ?_Empty@?$_Yarn@_W@std@@QEBA_NXZ */
1791 DEFINE_THISCALL_WRAPPER(_Yarn_wchar__Empty
, 4)
1792 MSVCP_bool __thiscall
_Yarn_wchar__Empty(const _Yarn_wchar
*this)
1794 TRACE("(%p)\n", this);
1798 /* ?find_first_of@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEIPBDI@Z */
1799 /* ?find_first_of@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA_KPEBD_K@Z */
1800 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_find_first_of_cstr
, 12)
1801 MSVCP_size_t __thiscall
MSVCP_basic_string_char_find_first_of_cstr(
1802 const basic_string_char
*this, const char *find
, MSVCP_size_t off
)
1804 return MSVCP_basic_string_char_find_first_of_cstr_substr(
1805 this, find
, off
, MSVCP_char_traits_char_length(find
));
1808 /* ?find_first_of@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEIDI@Z */
1809 /* ?find_first_of@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA_KD_K@Z */
1810 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_find_first_of_ch
, 12)
1811 MSVCP_size_t __thiscall
MSVCP_basic_string_char_find_first_of_ch(
1812 const basic_string_char
*this, char ch
, MSVCP_size_t off
)
1814 return MSVCP_basic_string_char_find_first_of_cstr_substr(this, &ch
, off
, 1);
1817 /* ?find_first_not_of@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEIPBDII@Z */
1818 /* ?find_first_not_of@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA_KPEBD_K1@Z */
1819 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_find_first_not_of_cstr_substr
, 16)
1820 MSVCP_size_t __thiscall
MSVCP_basic_string_char_find_first_not_of_cstr_substr(
1821 const basic_string_char
*this, const char *find
, MSVCP_size_t off
, MSVCP_size_t len
)
1823 const char *p
, *end
;
1825 TRACE("%p %p %lu %lu\n", this, find
, off
, len
);
1827 if(off
<this->size
) {
1828 end
= basic_string_char_const_ptr(this)+this->size
;
1829 for(p
=basic_string_char_const_ptr(this)+off
; p
<end
; p
++)
1830 if(!MSVCP_char_traits_char_find(find
, len
, p
))
1831 return p
-basic_string_char_const_ptr(this);
1834 return MSVCP_basic_string_char_npos
;
1837 /* ?find_first_not_of@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEIABV12@I@Z */
1838 /* ?find_first_not_of@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA_KAEBV12@_K@Z */
1839 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_find_first_not_of
, 12)
1840 MSVCP_size_t __thiscall
MSVCP_basic_string_char_find_first_not_of(
1841 const basic_string_char
*this, const basic_string_char
*find
, MSVCP_size_t off
)
1843 return MSVCP_basic_string_char_find_first_not_of_cstr_substr(this,
1844 basic_string_char_const_ptr(find
), off
, find
->size
);
1847 /* ?find_first_not_of@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEIPBDI@Z */
1848 /* ?find_first_not_of@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA_KPEBD_K@Z */
1849 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_find_first_not_of_cstr
, 12)
1850 MSVCP_size_t __thiscall
MSVCP_basic_string_char_find_first_not_of_cstr(
1851 const basic_string_char
*this, const char *find
, MSVCP_size_t off
)
1853 return MSVCP_basic_string_char_find_first_not_of_cstr_substr(
1854 this, find
, off
, MSVCP_char_traits_char_length(find
));
1857 /* ?find_first_not_of@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEIDI@Z */
1858 /* ?find_first_not_of@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA_KD_K@Z */
1859 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_find_first_not_of_ch
, 12)
1860 MSVCP_size_t __thiscall
MSVCP_basic_string_char_find_first_not_of_ch(
1861 const basic_string_char
*this, char ch
, MSVCP_size_t off
)
1863 return MSVCP_basic_string_char_find_first_not_of_cstr_substr(this, &ch
, off
, 1);
1866 /* ?find_last_of@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEIPBDII@Z */
1867 /* ?find_last_of@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA_KPEBD_K1@Z */
1868 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_find_last_of_cstr_substr
, 16)
1869 MSVCP_size_t __thiscall
MSVCP_basic_string_char_find_last_of_cstr_substr(
1870 const basic_string_char
*this, const char *find
, MSVCP_size_t off
, MSVCP_size_t len
)
1872 const char *p
, *beg
;
1874 TRACE("%p %p %lu %lu\n", this, find
, off
, len
);
1876 if(len
>0 && this->size
>0) {
1877 if(off
>= this->size
)
1880 beg
= basic_string_char_const_ptr(this);
1881 for(p
=beg
+off
; p
>=beg
; p
--)
1882 if(MSVCP_char_traits_char_find(find
, len
, p
))
1886 return MSVCP_basic_string_char_npos
;
1889 /* ?find_last_of@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEIABV12@I@Z */
1890 /* ?find_last_of@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA_KAEBV12@_K@Z */
1891 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_find_last_of
, 12)
1892 MSVCP_size_t __thiscall
MSVCP_basic_string_char_find_last_of(
1893 const basic_string_char
*this, const basic_string_char
*find
, MSVCP_size_t off
)
1895 return MSVCP_basic_string_char_find_last_of_cstr_substr(this,
1896 basic_string_char_const_ptr(find
), off
, find
->size
);
1899 /* ?find_last_of@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEIPBDI@Z */
1900 /* ?find_last_of@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA_KPEBD_K@Z */
1901 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_find_last_of_cstr
, 12)
1902 MSVCP_size_t __thiscall
MSVCP_basic_string_char_find_last_of_cstr(
1903 const basic_string_char
*this, const char *find
, MSVCP_size_t off
)
1905 return MSVCP_basic_string_char_find_last_of_cstr_substr(
1906 this, find
, off
, MSVCP_char_traits_char_length(find
));
1909 /* ?find_last_of@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEIDI@Z */
1910 /* ?find_last_of@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA_KD_K@Z */
1911 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_find_last_of_ch
, 12)
1912 MSVCP_size_t __thiscall
MSVCP_basic_string_char_find_last_of_ch(
1913 const basic_string_char
*this, char ch
, MSVCP_size_t off
)
1915 return MSVCP_basic_string_char_find_last_of_cstr_substr(this, &ch
, off
, 1);
1918 /* ?find_last_not_of@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEIPBDII@Z */
1919 /* ?find_last_not_of@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA_KPEBD_K1@Z */
1920 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_find_last_not_of_cstr_substr
, 16)
1921 MSVCP_size_t __thiscall
MSVCP_basic_string_char_find_last_not_of_cstr_substr(
1922 const basic_string_char
*this, const char *find
, MSVCP_size_t off
, MSVCP_size_t len
)
1924 const char *p
, *beg
;
1926 TRACE("%p %p %lu %lu\n", this, find
, off
, len
);
1929 if(off
>= this->size
)
1932 beg
= basic_string_char_const_ptr(this);
1933 for(p
=beg
+off
; p
>=beg
; p
--)
1934 if(!MSVCP_char_traits_char_find(find
, len
, p
))
1938 return MSVCP_basic_string_char_npos
;
1941 /* ?find_last_not_of@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEIABV12@I@Z */
1942 /* ?find_last_not_of@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA_KAEBV12@_K@Z */
1943 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_find_last_not_of
, 12)
1944 MSVCP_size_t __thiscall
MSVCP_basic_string_char_find_last_not_of(
1945 const basic_string_char
*this, const basic_string_char
*find
, MSVCP_size_t off
)
1947 return MSVCP_basic_string_char_find_last_not_of_cstr_substr(this,
1948 basic_string_char_const_ptr(find
), off
, find
->size
);
1951 /* ?find_last_not_of@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEIPBDI@Z */
1952 /* ?find_last_not_of@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA_KPEBD_K@Z */
1953 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_find_last_not_of_cstr
, 12)
1954 MSVCP_size_t __thiscall
MSVCP_basic_string_char_find_last_not_of_cstr(
1955 const basic_string_char
*this, const char *find
, MSVCP_size_t off
)
1957 return MSVCP_basic_string_char_find_last_not_of_cstr_substr(
1958 this, find
, off
, MSVCP_char_traits_char_length(find
));
1961 /* ?find_last_not_of@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEIDI@Z */
1962 /* ?find_last_not_of@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA_KD_K@Z */
1963 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_find_last_not_of_ch
, 12)
1964 MSVCP_size_t __thiscall
MSVCP_basic_string_char_find_last_not_of_ch(
1965 const basic_string_char
*this, char ch
, MSVCP_size_t off
)
1967 return MSVCP_basic_string_char_find_last_not_of_cstr_substr(this, &ch
, off
, 1);
1970 /* ??A?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAADI@Z */
1971 /* ??A?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAAEAD_K@Z */
1972 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_operator_at
, 8)
1973 char* __thiscall
MSVCP_basic_string_char_operator_at(
1974 basic_string_char
*this, MSVCP_size_t pos
)
1976 TRACE("%p %lu\n", this, pos
);
1978 assert(this->size
>= pos
);
1979 return basic_string_char_ptr(this)+pos
;
1982 /* ??A?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEABDI@Z */
1983 /* ??A?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBAAEBD_K@Z */
1984 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_const_operator_at
, 8)
1985 const char* __thiscall
MSVCP_basic_string_char_const_operator_at(
1986 const basic_string_char
*this, MSVCP_size_t pos
)
1988 TRACE("%p %lu\n", this, pos
);
1990 assert(this->size
>= pos
);
1991 return basic_string_char_const_ptr(this)+pos
;
1994 /* ??A?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAADU_Size_type_nosscl@01@@Z */
1995 /* ??A?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAAEADU_Size_type_nosscl@01@@Z */
1996 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_operator_at_noverify
, 8)
1997 char* __thiscall
MSVCP_basic_string_char_operator_at_noverify(
1998 basic_string_char
*this, size_t_noverify pos
)
2000 TRACE("%p %lu\n", this, pos
.val
);
2001 return basic_string_char_ptr(this)+pos
.val
;
2004 /* ??A?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEABDU_Size_type_nosscl@01@@Z */
2005 /* ??A?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBAAEBDU_Size_type_nosscl@01@@Z */
2006 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_operator_const_at_noverify
, 8)
2007 const char* __thiscall
MSVCP_basic_string_char_operator_const_at_noverify(
2008 const basic_string_char
*this, size_t_noverify pos
)
2010 TRACE("%p %lu\n", this, pos
.val
);
2011 return basic_string_char_const_ptr(this)+pos
.val
;
2014 /* ?at@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAADI@Z */
2015 /* ?at@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAAEAD_K@Z */
2016 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_at
, 8)
2017 char* __thiscall
MSVCP_basic_string_char_at(
2018 basic_string_char
*this, MSVCP_size_t pos
)
2020 TRACE("%p %lu\n", this, pos
);
2022 if(this->size
<= pos
)
2023 MSVCP__String_base_Xran();
2025 return basic_string_char_ptr(this)+pos
;
2028 /* ?at@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEABDI@Z */
2029 /* ?at@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBAAEBD_K@Z */
2030 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_const_at
, 8)
2031 const char* __thiscall
MSVCP_basic_string_char_const_at(
2032 const basic_string_char
*this, MSVCP_size_t pos
)
2034 TRACE("%p %lu\n", this, pos
);
2036 if(this->size
<= pos
)
2037 MSVCP__String_base_Xran();
2039 return basic_string_char_const_ptr(this)+pos
;
2042 /* ?replace@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@IIPBDI@Z */
2043 /* ?replace@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAAEAV12@_K0PEBD0@Z */
2044 DEFINE_THISCALL_WRAPPER(basic_string_char_replace_cstr_len
, 20)
2045 basic_string_char
* __thiscall
basic_string_char_replace_cstr_len(basic_string_char
*this,
2046 MSVCP_size_t off
, MSVCP_size_t len
, const char *str
, MSVCP_size_t str_len
)
2048 MSVCP_size_t inside_pos
= -1;
2049 char *ptr
= basic_string_char_ptr(this);
2051 TRACE("%p %ld %ld %p %ld\n", this, off
, len
, str
, str_len
);
2053 if(this->size
< off
)
2054 MSVCP__String_base_Xran();
2056 if(len
> this->size
-off
)
2057 len
= this->size
-off
;
2059 if(MSVCP_basic_string_char_npos
-str_len
<= this->size
-len
)
2060 MSVCP__String_base_Xlen();
2062 if(basic_string_char_inside(this, str
))
2063 inside_pos
= str
-ptr
;
2066 basic_string_char_grow(this, this->size
-len
+str_len
, FALSE
);
2067 ptr
= basic_string_char_ptr(this);
2070 if(inside_pos
== -1) {
2071 memmove(ptr
+off
+str_len
, ptr
+off
+len
, (this->size
-off
-len
)*sizeof(char));
2072 memcpy(ptr
+off
, str
, str_len
*sizeof(char));
2073 } else if(len
>= str_len
) {
2074 memmove(ptr
+off
, ptr
+inside_pos
, str_len
*sizeof(char));
2075 memmove(ptr
+off
+str_len
, ptr
+off
+len
, (this->size
-off
-len
)*sizeof(char));
2079 memmove(ptr
+off
+str_len
, ptr
+off
+len
, (this->size
-off
-len
)*sizeof(char));
2081 if(inside_pos
< off
+len
) {
2082 size
= off
+len
-inside_pos
;
2085 memmove(ptr
+off
, ptr
+inside_pos
, size
*sizeof(char));
2091 memmove(ptr
+off
+size
, ptr
+off
+str_len
, (str_len
-size
)*sizeof(char));
2094 basic_string_char_eos(this, this->size
-len
+str_len
);
2098 /* ?replace@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@IIPBD@Z */
2099 /* ?replace@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAAEAV12@_K0PEBD@Z */
2100 DEFINE_THISCALL_WRAPPER(basic_string_char_replace_cstr
, 16)
2101 basic_string_char
* __thiscall
basic_string_char_replace_cstr(basic_string_char
*this,
2102 MSVCP_size_t off
, MSVCP_size_t len
, const char *str
)
2104 return basic_string_char_replace_cstr_len(this, off
, len
, str
,
2105 MSVCP_char_traits_char_length(str
));
2108 /* ?replace@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@IIABV12@II@Z */
2109 /* ?replace@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAAEAV12@_K0AEBV12@00@Z */
2110 DEFINE_THISCALL_WRAPPER(basic_string_char_replace_substr
, 24)
2111 basic_string_char
* __thiscall
basic_string_char_replace_substr(basic_string_char
*this, MSVCP_size_t off
,
2112 MSVCP_size_t len
, const basic_string_char
*str
, MSVCP_size_t str_off
, MSVCP_size_t str_len
)
2114 if(str
->size
< str_off
)
2115 MSVCP__String_base_Xran();
2117 if(str_len
> str
->size
-str_off
)
2118 str_len
= str
->size
-str_off
;
2120 return basic_string_char_replace_cstr_len(this, off
, len
,
2121 basic_string_char_const_ptr(str
)+str_off
, str_len
);
2124 /* ?replace@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@IIABV12@@Z */
2125 /* ?replace@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAAEAV12@_K0AEBV12@@Z */
2126 DEFINE_THISCALL_WRAPPER(basic_string_char_replace
, 16)
2127 basic_string_char
* __thiscall
basic_string_char_replace(basic_string_char
*this,
2128 MSVCP_size_t off
, MSVCP_size_t len
, const basic_string_char
*str
)
2130 return basic_string_char_replace_cstr_len(this, off
, len
,
2131 basic_string_char_const_ptr(str
), str
->size
);
2134 /* ?replace@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@IIID@Z */
2135 /* ?replace@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAAEAV12@_K00D@Z */
2136 DEFINE_THISCALL_WRAPPER(basic_string_char_replace_ch
, 20)
2137 basic_string_char
* __thiscall
basic_string_char_replace_ch(basic_string_char
*this,
2138 MSVCP_size_t off
, MSVCP_size_t len
, MSVCP_size_t count
, char ch
)
2140 char *ptr
= basic_string_char_ptr(this);
2142 TRACE("%p %ld %ld %ld %c\n", this, off
, len
, count
, ch
);
2144 if(this->size
< off
)
2145 MSVCP__String_base_Xran();
2147 if(len
> this->size
-off
)
2148 len
= this->size
-off
;
2150 if(MSVCP_basic_string_char_npos
-count
<= this->size
-len
)
2151 MSVCP__String_base_Xlen();
2154 basic_string_char_grow(this, this->size
-len
+count
, FALSE
);
2155 ptr
= basic_string_char_ptr(this);
2158 memmove(ptr
+off
+count
, ptr
+off
+len
, (this->size
-off
-len
)*sizeof(char));
2159 MSVCP_char_traits_char_assignn(ptr
+off
, count
, ch
);
2160 basic_string_char_eos(this, this->size
-len
+count
);
2165 /* ?insert@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@IABV12@@Z */
2166 /* ?insert@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAAEAV12@_KAEBV12@@Z */
2167 DEFINE_THISCALL_WRAPPER(basic_string_char_insert
, 12)
2168 basic_string_char
* __thiscall
basic_string_char_insert(basic_string_char
*this,
2169 MSVCP_size_t off
, const basic_string_char
*str
)
2171 return basic_string_char_replace(this, off
, 0, str
);
2174 /* ?insert@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@IABV12@II@Z */
2175 /* ?insert@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAAEAV12@_KAEBV12@00@Z */
2176 DEFINE_THISCALL_WRAPPER(basic_string_char_insert_substr
, 20)
2177 basic_string_char
* __thiscall
basic_string_char_insert_substr(
2178 basic_string_char
*this, MSVCP_size_t off
, const basic_string_char
*str
,
2179 MSVCP_size_t str_off
, MSVCP_size_t str_count
)
2181 return basic_string_char_replace_substr(this, off
, 0, str
, str_off
, str_count
);
2184 /* ?insert@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@IPBD@Z */
2185 /* ?insert@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAAEAV12@_KPEBD@Z */
2186 DEFINE_THISCALL_WRAPPER(basic_string_char_insert_cstr
, 12)
2187 basic_string_char
* __thiscall
basic_string_char_insert_cstr(
2188 basic_string_char
*this, MSVCP_size_t off
, const char *str
)
2190 return basic_string_char_replace_cstr(this, off
, 0, str
);
2193 /* ?insert@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@IPBDI@Z */
2194 /* ?insert@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAAEAV12@_KPEBD0@Z */
2195 DEFINE_THISCALL_WRAPPER(basic_string_char_insert_cstr_len
, 16)
2196 basic_string_char
* __thiscall
basic_string_char_insert_cstr_len(basic_string_char
*this,
2197 MSVCP_size_t off
, const char *str
, MSVCP_size_t str_len
)
2199 return basic_string_char_replace_cstr_len(this, off
, 0, str
, str_len
);
2202 /* ?insert@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@IID@Z */
2203 /* ?insert@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAAEAV12@_K0D@Z */
2204 DEFINE_THISCALL_WRAPPER(basic_string_char_insert_chn
, 16)
2205 basic_string_char
* __thiscall
basic_string_char_insert_chn(basic_string_char
*this,
2206 MSVCP_size_t off
, MSVCP_size_t count
, char ch
)
2208 return basic_string_char_replace_ch(this, off
, 0, count
, ch
);
2211 /* ?resize@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEXID@Z */
2212 /* ?resize@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAX_KD@Z */
2213 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_resize_ch
, 12)
2214 void __thiscall
MSVCP_basic_string_char_resize_ch(
2215 basic_string_char
*this, MSVCP_size_t size
, char ch
)
2217 TRACE("%p %lu %c\n", this, size
, ch
);
2219 if(size
<= this->size
)
2220 MSVCP_basic_string_char_erase(this, size
, this->size
);
2222 MSVCP_basic_string_char_append_len_ch(this, size
-this->size
, ch
);
2225 /* ?resize@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEXI@Z */
2226 /* ?resize@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAX_K@Z */
2227 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_resize
, 8)
2228 void __thiscall
MSVCP_basic_string_char_resize(
2229 basic_string_char
*this, MSVCP_size_t size
)
2231 MSVCP_basic_string_char_resize_ch(this, size
, '\0');
2234 /* ?clear@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEXXZ */
2235 /* ?clear@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAXXZ */
2236 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_clear
, 4)
2237 void __thiscall
MSVCP_basic_string_char_clear(basic_string_char
*this)
2239 basic_string_char_eos(this, 0);
2242 /* basic_string<wchar_t, char_traits<wchar_t>, allocator<wchar_t>> */
2243 /* basic_string<unsigned short, char_traits<unsigned short>, allocator<unsigned short>> */
2244 /* ?npos@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@2IB */
2245 /* ?npos@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@2_KB */
2246 /* ?npos@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@2IB */
2247 /* ?npos@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@2_KB */
2248 const MSVCP_size_t MSVCP_basic_string_wchar_npos
= -1;
2250 /* ?_Myptr@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@IAEPA_WXZ */
2251 /* ?_Myptr@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@IEAAPEA_WXZ */
2252 /* ?_Myptr@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@IAEPAGXZ */
2253 /* ?_Myptr@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@IEAAPEAGXZ */
2254 DEFINE_THISCALL_WRAPPER(basic_string_wchar_ptr
, 4)
2255 wchar_t* __thiscall
basic_string_wchar_ptr(basic_string_wchar
*this)
2257 if(this->res
< BUF_SIZE_WCHAR
)
2258 return this->data
.buf
;
2259 return this->data
.ptr
;
2262 /* ?_Myptr@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@IBEPB_WXZ */
2263 /* ?_Myptr@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@IEBAPEB_WXZ */
2264 /* ?_Myptr@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@IBEPBGXZ */
2265 /* ?_Myptr@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@IEBAPEBGXZ */
2266 DEFINE_THISCALL_WRAPPER(basic_string_wchar_const_ptr
, 4)
2267 const wchar_t* __thiscall
basic_string_wchar_const_ptr(const basic_string_wchar
*this)
2269 if(this->res
< BUF_SIZE_WCHAR
)
2270 return this->data
.buf
;
2271 return this->data
.ptr
;
2274 /* ?_Eos@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@IAEXI@Z */
2275 /* ?_Eos@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@IEAAX_K@Z */
2276 /* ?_Eos@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@IAEXI@Z */
2277 /* ?_Eos@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@IEAAX_K@Z */
2278 DEFINE_THISCALL_WRAPPER(basic_string_wchar_eos
, 8)
2279 void __thiscall
basic_string_wchar_eos(basic_string_wchar
*this, MSVCP_size_t len
)
2281 static const wchar_t nullbyte_w
= '\0';
2284 MSVCP_char_traits_wchar_assign(basic_string_wchar_ptr(this)+len
, &nullbyte_w
);
2287 /* ?_Inside@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@IAE_NPB_W@Z */
2288 /* ?_Inside@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@IEAA_NPEB_W@Z */
2289 /* ?_Inside@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@IAE_NPBG@Z */
2290 /* ?_Inside@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@IEAA_NPEBG@Z */
2291 DEFINE_THISCALL_WRAPPER(basic_string_wchar_inside
, 8)
2292 MSVCP_bool __thiscall
basic_string_wchar_inside(
2293 basic_string_wchar
*this, const wchar_t *ptr
)
2295 wchar_t *cstr
= basic_string_wchar_ptr(this);
2297 return ptr
>=cstr
&& ptr
<cstr
+this->size
;
2300 /* ?_Tidy@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@IAEX_NI@Z */
2301 /* ?_Tidy@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@IEAAX_N_K@Z */
2302 /* ?_Tidy@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@IAEX_NI@Z */
2303 /* ?_Tidy@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@IEAAX_N_K@Z */
2304 DEFINE_THISCALL_WRAPPER(basic_string_wchar_tidy
, 12)
2305 void __thiscall
basic_string_wchar_tidy(basic_string_wchar
*this,
2306 MSVCP_bool built
, MSVCP_size_t new_size
)
2308 if(built
&& BUF_SIZE_WCHAR
<=this->res
) {
2309 wchar_t *ptr
= this->data
.ptr
;
2312 MSVCP_char_traits_wchar__Copy_s(this->data
.buf
, BUF_SIZE_WCHAR
, ptr
, new_size
);
2313 MSVCP_allocator_wchar_deallocate(STRING_ALLOCATOR(this), ptr
, this->res
+1);
2316 this->res
= BUF_SIZE_WCHAR
-1;
2317 basic_string_wchar_eos(this, new_size
);
2320 /* ?_Grow@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@IAE_NI_N@Z */
2321 /* ?_Grow@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@IEAA_N_K_N@Z */
2322 /* ?_Grow@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@IAE_NI_N@Z */
2323 /* ?_Grow@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@IEAA_N_K_N@Z */
2324 DEFINE_THISCALL_WRAPPER(basic_string_wchar_grow
, 12)
2325 MSVCP_bool __thiscall
basic_string_wchar_grow(
2326 basic_string_wchar
*this, MSVCP_size_t new_size
, MSVCP_bool trim
)
2328 if(this->res
< new_size
) {
2329 MSVCP_size_t new_res
= new_size
, len
= this->size
;
2334 if(new_res
/3 < this->res
/2)
2335 new_res
= this->res
+ this->res
/2;
2337 ptr
= MSVCP_allocator_wchar_allocate(STRING_ALLOCATOR(this), new_res
+1);
2339 ptr
= MSVCP_allocator_wchar_allocate(STRING_ALLOCATOR(this), new_size
+1);
2343 ERR("Out of memory\n");
2344 basic_string_wchar_tidy(this, TRUE
, 0);
2348 MSVCP_char_traits_wchar__Copy_s(ptr
, new_size
,
2349 basic_string_wchar_ptr(this), this->size
);
2350 basic_string_wchar_tidy(this, TRUE
, 0);
2351 this->data
.ptr
= ptr
;
2352 this->res
= new_size
;
2353 basic_string_wchar_eos(this, len
);
2354 } else if(trim
&& new_size
< BUF_SIZE_WCHAR
)
2355 basic_string_wchar_tidy(this, TRUE
,
2356 new_size
<this->size
? new_size
: this->size
);
2357 else if(new_size
== 0)
2358 basic_string_wchar_eos(this, 0);
2360 return (new_size
>0);
2363 /* ?_Copy@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@IAEXII@Z */
2364 /* ?_Copy@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@IEAAX_K0@Z */
2365 /* ?_Copy@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@IAEXII@Z */
2366 /* ?_Copy@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@IEAAX_K0@Z */
2367 DEFINE_THISCALL_WRAPPER(basic_string_wchar__Copy
, 12)
2368 void __thiscall
basic_string_wchar__Copy(basic_string_wchar
*this,
2369 MSVCP_size_t new_size
, MSVCP_size_t copy_len
)
2371 TRACE("%p %lu %lu\n", this, new_size
, copy_len
);
2373 if(!basic_string_wchar_grow(this, new_size
, FALSE
))
2375 basic_string_wchar_eos(this, copy_len
);
2378 /* ?get_allocator@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBE?AV?$allocator@_W@2@XZ */
2379 /* ?get_allocator@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBA?AV?$allocator@_W@2@XZ */
2380 /* ?get_allocator@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBE?AV?$allocator@G@2@XZ */
2381 /* ?get_allocator@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBA?AV?$allocator@G@2@XZ */
2382 DEFINE_THISCALL_WRAPPER(basic_string_wchar_get_allocator
, 8)
2383 allocator
* __thiscall
basic_string_wchar_get_allocator(const basic_string_wchar
*this, allocator
*ret
)
2385 TRACE("%p\n", this);
2389 /* ?erase@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV12@II@Z */
2390 /* ?erase@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAAEAV12@_K0@Z */
2391 /* ?erase@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV12@II@Z */
2392 /* ?erase@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAAEAV12@_K0@Z */
2393 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_erase
, 12)
2394 basic_string_wchar
* __thiscall
MSVCP_basic_string_wchar_erase(
2395 basic_string_wchar
*this, MSVCP_size_t pos
, MSVCP_size_t len
)
2397 TRACE("%p %lu %lu\n", this, pos
, len
);
2399 if(pos
> this->size
)
2400 MSVCP__String_base_Xran();
2402 if(len
> this->size
-pos
)
2403 len
= this->size
-pos
;
2406 MSVCP_char_traits_wchar__Move_s(basic_string_wchar_ptr(this)+pos
,
2407 this->res
-pos
, basic_string_wchar_ptr(this)+pos
+len
,
2408 this->size
-pos
-len
);
2409 basic_string_wchar_eos(this, this->size
-len
);
2415 /* ?assign@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV12@ABV12@II@Z */
2416 /* ?assign@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAAEAV12@AEBV12@_K1@Z */
2417 /* ?assign@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV12@ABV12@II@Z */
2418 /* ?assign@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAAEAV12@AEBV12@_K1@Z */
2419 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_assign_substr
, 16)
2420 basic_string_wchar
* __thiscall
MSVCP_basic_string_wchar_assign_substr(
2421 basic_string_wchar
*this, const basic_string_wchar
*assign
,
2422 MSVCP_size_t pos
, MSVCP_size_t len
)
2424 TRACE("%p %p %lu %lu\n", this, assign
, pos
, len
);
2426 if(assign
->size
< pos
)
2427 MSVCP__String_base_Xran();
2429 if(len
> assign
->size
-pos
)
2430 len
= assign
->size
-pos
;
2432 if(this == assign
) {
2433 MSVCP_basic_string_wchar_erase(this, pos
+len
, MSVCP_basic_string_wchar_npos
);
2434 MSVCP_basic_string_wchar_erase(this, 0, pos
);
2435 } else if(basic_string_wchar_grow(this, len
, FALSE
)) {
2436 MSVCP_char_traits_wchar__Copy_s(basic_string_wchar_ptr(this),
2437 this->res
, basic_string_wchar_const_ptr(assign
)+pos
, len
);
2438 basic_string_wchar_eos(this, len
);
2444 /* ?assign@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV12@ABV12@@Z */
2445 /* ?assign@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAAEAV12@AEBV12@@Z */
2446 /* ??4?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV01@ABV01@@Z */
2447 /* ??4?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAAEAV01@AEBV01@@Z */
2448 /* ?assign@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV12@ABV12@@Z */
2449 /* ?assign@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAAEAV12@AEBV12@@Z */
2450 /* ??4?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV01@ABV01@@Z */
2451 /* ??4?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAAEAV01@AEBV01@@Z */
2452 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_assign
, 8)
2453 basic_string_wchar
* __thiscall
MSVCP_basic_string_wchar_assign(
2454 basic_string_wchar
*this, const basic_string_wchar
*assign
)
2456 return MSVCP_basic_string_wchar_assign_substr(this, assign
,
2457 0, MSVCP_basic_string_wchar_npos
);
2460 /* ?assign@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV12@PB_WI@Z */
2461 /* ?assign@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAAEAV12@PEB_W_K@Z */
2462 /* ?assign@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV12@PBGI@Z */
2463 /* ?assign@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAAEAV12@PEBG_K@Z */
2464 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_assign_cstr_len
, 12)
2465 basic_string_wchar
* __thiscall
MSVCP_basic_string_wchar_assign_cstr_len(
2466 basic_string_wchar
*this, const wchar_t *str
, MSVCP_size_t len
)
2468 TRACE("%p %s %lu\n", this, debugstr_wn(str
, len
), len
);
2470 if(basic_string_wchar_inside(this, str
))
2471 return MSVCP_basic_string_wchar_assign_substr(this, this,
2472 str
-basic_string_wchar_ptr(this), len
);
2473 else if(basic_string_wchar_grow(this, len
, FALSE
)) {
2474 MSVCP_char_traits_wchar__Copy_s(basic_string_wchar_ptr(this),
2475 this->res
, str
, len
);
2476 basic_string_wchar_eos(this, len
);
2482 /* ??4?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV01@_W@Z */
2483 /* ??4?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAAEAV01@_W@Z */
2484 /* ??4?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV01@G@Z */
2485 /* ??4?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAAEAV01@G@Z */
2486 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_assign_ch
, 8)
2487 basic_string_wchar
* __thiscall
MSVCP_basic_string_wchar_assign_ch(
2488 basic_string_wchar
*this, wchar_t ch
)
2490 return MSVCP_basic_string_wchar_assign_cstr_len(this, &ch
, 1);
2493 /* ?assign@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV12@PB_W@Z */
2494 /* ?assign@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAAEAV12@PEB_W@Z */
2495 /* ??4?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV01@PB_W@Z */
2496 /* ??4?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAAEAV01@PEB_W@Z */
2497 /* ?assign@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV12@PBG@Z */
2498 /* ?assign@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAAEAV12@PEBG@Z */
2499 /* ??4?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV01@PBG@Z */
2500 /* ??4?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAAEAV01@PEBG@Z */
2501 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_assign_cstr
, 8)
2502 basic_string_wchar
* __thiscall
MSVCP_basic_string_wchar_assign_cstr(
2503 basic_string_wchar
*this, const wchar_t *str
)
2505 return MSVCP_basic_string_wchar_assign_cstr_len(this, str
,
2506 MSVCP_char_traits_wchar_length(str
));
2509 /* ?assign@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV12@I_W@Z */
2510 /* ?assign@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAAEAV12@_K_W@Z */
2511 /* ?assign@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV12@IG@Z */
2512 /* ?assign@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAAEAV12@_KG@Z */
2513 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_assignn
, 12)
2514 basic_string_wchar
* __thiscall
MSVCP_basic_string_wchar_assignn(
2515 basic_string_wchar
*this, MSVCP_size_t count
, wchar_t ch
)
2517 TRACE("%p %ld %c\n", this, count
, ch
);
2519 basic_string_wchar_grow(this, count
, FALSE
);
2520 MSVCP_char_traits_wchar_assignn(basic_string_wchar_ptr(this), count
, ch
);
2521 basic_string_wchar_eos(this, count
);
2525 /* ?assign@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV12@PB_W0@Z */
2526 /* ?assign@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAAEAV12@PEB_W0@Z */
2527 /* ?assign@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV12@PBG0@Z */
2528 /* ?assign@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAAEAV12@PEBG0@Z */
2529 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_assign_ptr_ptr
, 12)
2530 basic_string_wchar
* __thiscall
MSVCP_basic_string_wchar_assign_ptr_ptr(
2531 basic_string_wchar
*this, const wchar_t *first
, const wchar_t *last
)
2533 return MSVCP_basic_string_wchar_assign_cstr_len(this, first
, last
-first
);
2536 /* ?_Chassign@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@IAEXII_W@Z */
2537 /* ?_Chassign@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@IEAAX_K0_W@Z */
2538 /* ?_Chassign@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@IAEXIIG@Z */
2539 /* ?_Chassign@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@IEAAX_K0G@Z */
2540 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_Chassign
, 16)
2541 void __thiscall
MSVCP_basic_string_wchar_Chassign(basic_string_wchar
*this,
2542 MSVCP_size_t off
, MSVCP_size_t count
, wchar_t ch
)
2544 TRACE("%p %lu %lu %c\n", this, off
, count
, ch
);
2545 MSVCP_char_traits_wchar_assignn(basic_string_wchar_ptr(this)+off
, count
, ch
);
2548 /* ?_Copy_s@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEIPA_WIII@Z */
2549 /* ?_Copy_s@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBA_KPEA_W_K11@Z */
2550 /* ?_Copy_s@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEIPAGIII@Z */
2551 /* ?_Copy_s@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBA_KPEAG_K11@Z */
2552 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_Copy_s
, 20)
2553 MSVCP_size_t __thiscall
MSVCP_basic_string_wchar_Copy_s(const basic_string_wchar
*this,
2554 wchar_t *dest
, MSVCP_size_t size
, MSVCP_size_t count
, MSVCP_size_t off
)
2556 TRACE("%p %p %lu %lu %lu\n", this, dest
, size
, count
, off
);
2558 if(this->size
< off
)
2559 MSVCP__String_base_Xran();
2561 if(count
> this->size
-off
)
2562 count
= this->size
-off
;
2564 MSVCP_char_traits_wchar__Copy_s(dest
, size
,
2565 basic_string_wchar_const_ptr(this)+off
, count
);
2569 /* ?copy@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEIPA_WII@Z */
2570 /* ?copy@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBA_KPEA_W_K1@Z */
2571 /* ?copy@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEIPAGII@Z */
2572 /* ?copy@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBA_KPEAG_K1@Z */
2573 DEFINE_THISCALL_WRAPPER(basic_string_wchar_copy
, 16)
2574 MSVCP_size_t __thiscall
basic_string_wchar_copy(const basic_string_wchar
*this,
2575 wchar_t *dest
, MSVCP_size_t count
, MSVCP_size_t off
)
2577 return MSVCP_basic_string_wchar_Copy_s(this, dest
, count
, count
, off
);
2580 /* ?c_str@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEPB_WXZ */
2581 /* ?c_str@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBAPEB_WXZ */
2582 /* ?data@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEPB_WXZ */
2583 /* ?data@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBAPEB_WXZ */
2584 /* ?c_str@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEPBGXZ */
2585 /* ?c_str@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBAPEBGXZ */
2586 /* ?data@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEPBGXZ */
2587 /* ?data@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBAPEBGXZ */
2588 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_c_str
, 4)
2589 const wchar_t* __thiscall
MSVCP_basic_string_wchar_c_str(const basic_string_wchar
*this)
2591 TRACE("%p\n", this);
2592 return basic_string_wchar_const_ptr(this);
2595 /* ?capacity@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEIXZ */
2596 /* ?capacity@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBA_KXZ */
2597 /* ?capacity@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEIXZ */
2598 /* ?capacity@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBA_KXZ */
2599 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_capacity
, 4)
2600 MSVCP_size_t __thiscall
MSVCP_basic_string_wchar_capacity(basic_string_wchar
*this)
2602 TRACE("%p\n", this);
2606 /* ?reserve@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEXI@Z */
2607 /* ?reserve@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAX_K@Z */
2608 /* ?reserve@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEXI@Z */
2609 /* ?reserve@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAX_K@Z */
2610 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_reserve
, 8)
2611 void __thiscall
MSVCP_basic_string_wchar_reserve(basic_string_wchar
*this, MSVCP_size_t size
)
2615 TRACE("%p %ld\n", this, size
);
2621 if(basic_string_wchar_grow(this, size
, TRUE
))
2622 basic_string_wchar_eos(this, len
);
2625 /* ??0?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE@XZ */
2626 /* ??0?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAA@XZ */
2627 /* ??0?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAE@XZ */
2628 /* ??0?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAA@XZ */
2629 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_ctor
, 4)
2630 basic_string_wchar
* __thiscall
MSVCP_basic_string_wchar_ctor(basic_string_wchar
*this)
2632 TRACE("%p\n", this);
2634 basic_string_wchar_tidy(this, FALSE
, 0);
2638 /* ??0?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE@ABV01@@Z */
2639 /* ??0?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAA@AEBV01@@Z */
2640 /* ??0?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAE@ABV01@@Z */
2641 /* ??0?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAA@AEBV01@@Z */
2642 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_copy_ctor
, 8)
2643 basic_string_wchar
* __thiscall
MSVCP_basic_string_wchar_copy_ctor(
2644 basic_string_wchar
*this, const basic_string_wchar
*copy
)
2646 TRACE("%p %p\n", this, copy
);
2648 basic_string_wchar_tidy(this, FALSE
, 0);
2649 MSVCP_basic_string_wchar_assign(this, copy
);
2653 /* ??0?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE@PB_W@Z */
2654 /* ??0?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAA@PEB_W@Z */
2655 /* ??0?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAE@PBG@Z */
2656 /* ??0?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAA@PEBG@Z */
2657 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_ctor_cstr
, 8)
2658 basic_string_wchar
* __thiscall
MSVCP_basic_string_wchar_ctor_cstr(
2659 basic_string_wchar
*this, const wchar_t *str
)
2661 TRACE("%p %s\n", this, debugstr_w(str
));
2663 basic_string_wchar_tidy(this, FALSE
, 0);
2664 MSVCP_basic_string_wchar_assign_cstr(this, str
);
2668 /* ??0?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE@PB_WABV?$allocator@_W@1@@Z */
2669 /* ??0?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAA@PEB_WAEBV?$allocator@_W@1@@Z */
2670 /* ??0?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAE@PBGABV?$allocator@G@1@@Z */
2671 /* ??0?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAA@PEBGAEBV?$allocator@G@1@@Z */
2672 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_ctor_cstr_alloc
, 12)
2673 basic_string_wchar
* __thiscall
MSVCP_basic_string_wchar_ctor_cstr_alloc(
2674 basic_string_wchar
*this, const wchar_t *str
, const void *alloc
)
2676 return MSVCP_basic_string_wchar_ctor_cstr(this, str
);
2679 /* ??0?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE@PB_WI@Z */
2680 /* ??0?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAA@PEB_W_K@Z */
2681 /* ??0?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAE@PBGI@Z */
2682 /* ??0?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAA@PEBG_K@Z */
2683 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_ctor_cstr_len
, 12)
2684 basic_string_wchar
* __thiscall
MSVCP_basic_string_wchar_ctor_cstr_len(
2685 basic_string_wchar
*this, const wchar_t *str
, MSVCP_size_t len
)
2687 TRACE("%p %s %ld\n", this, debugstr_wn(str
, len
), len
);
2689 basic_string_wchar_tidy(this, FALSE
, 0);
2690 MSVCP_basic_string_wchar_assign_cstr_len(this, str
, len
);
2694 /* ??0?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE@PB_WIABV?$allocator@_W@1@@Z */
2695 /* ??0?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAA@PEB_W_KAEBV?$allocator@_W@1@@Z */
2696 /* ??0?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAE@PBGIABV?$allocator@G@1@@Z */
2697 /* ??0?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAA@PEBG_KAEBV?$allocator@G@1@@Z */
2698 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_ctor_cstr_len_alloc
, 16)
2699 basic_string_wchar
* __thiscall
MSVCP_basic_string_wchar_ctor_cstr_len_alloc(
2700 basic_string_wchar
*this, const wchar_t *str
, MSVCP_size_t len
, const void *alloc
)
2702 return MSVCP_basic_string_wchar_ctor_cstr_len(this, str
, len
);
2705 /* ??0?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE@ABV01@II@Z */
2706 /* ??0?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAA@AEBV01@_K1@Z */
2707 /* ??0?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAE@ABV01@II@Z */
2708 /* ??0?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAA@AEBV01@_K1@Z */
2709 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_ctor_substr
, 16)
2710 basic_string_wchar
* __thiscall
MSVCP_basic_string_wchar_ctor_substr(
2711 basic_string_wchar
*this, const basic_string_wchar
*assign
,
2712 MSVCP_size_t pos
, MSVCP_size_t len
)
2714 TRACE("%p %p %lu %lu\n", this, assign
, pos
, len
);
2716 basic_string_wchar_tidy(this, FALSE
, 0);
2717 MSVCP_basic_string_wchar_assign_substr(this, assign
, pos
, len
);
2721 /* ??0?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE@ABV01@IIABV?$allocator@_W@1@@Z */
2722 /* ??0?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAA@AEBV01@_K1AEBV?$allocator@_W@1@@Z */
2723 /* ??0?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAE@ABV01@IIABV?$allocator@G@1@@Z */
2724 /* ??0?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAA@AEBV01@_K1AEBV?$allocator@G@1@@Z */
2725 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_ctor_substr_alloc
, 20)
2726 basic_string_wchar
* __thiscall
MSVCP_basic_string_wchar_ctor_substr_alloc(
2727 basic_string_wchar
*this, const basic_string_wchar
*assign
,
2728 MSVCP_size_t pos
, MSVCP_size_t len
, const void *alloc
)
2730 return MSVCP_basic_string_wchar_ctor_substr(this, assign
, pos
, len
);
2733 /* ??0?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE@ABV?$allocator@_W@1@@Z */
2734 /* ??0?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAA@AEBV?$allocator@_W@1@@Z */
2735 /* ??0?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAE@ABV?$allocator@G@1@@Z */
2736 /* ??0?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAA@AEBV?$allocator@G@1@@Z */
2737 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_ctor_alloc
, 8)
2738 basic_string_wchar
* __thiscall
MSVCP_basic_string_wchar_ctor_alloc(
2739 basic_string_wchar
*this, const void *alloc
)
2741 TRACE("%p %p\n", this, alloc
);
2743 basic_string_wchar_tidy(this, FALSE
, 0);
2747 /* ??0?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE@I_W@Z */
2748 /* ??0?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAA@_K_W@Z */
2749 /* ??0?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAE@IG@Z */
2750 /* ??0?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAA@_KG@Z */
2751 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_ctor_ch
, 12)
2752 basic_string_wchar
* __thiscall
MSVCP_basic_string_wchar_ctor_ch(basic_string_wchar
*this,
2753 MSVCP_size_t count
, wchar_t ch
)
2755 TRACE("%p %ld %c\n", this, count
, ch
);
2757 basic_string_wchar_tidy(this, FALSE
, 0);
2758 MSVCP_basic_string_wchar_assignn(this, count
, ch
);
2762 /* ??0?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE@I_WABV?$allocator@_W@1@@Z */
2763 /* ??0?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAA@_K_WAEBV?$allocator@_W@1@@Z */
2764 /* ??0?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAE@IGABV?$allocator@G@1@@Z */
2765 /* ??0?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAA@_KGAEBV?$allocator@G@1@@Z */
2766 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_ctor_ch_alloc
, 16)
2767 basic_string_wchar
* __thiscall
MSVCP_basic_string_wchar_ctor_ch_alloc(basic_string_wchar
*this,
2768 MSVCP_size_t count
, wchar_t ch
, const void *alloc
)
2770 return MSVCP_basic_string_wchar_ctor_ch(this, count
, ch
);
2773 /* ??0?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE@PB_W0@Z */
2774 /* ??0?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAA@PEB_W0@Z */
2775 /* ??0?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAE@PBG0@Z */
2776 /* ??0?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAA@PEBG0@Z */
2777 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_ctor_ptr_ptr
, 12)
2778 basic_string_wchar
* __thiscall
MSVCP_basic_string_wchar_ctor_ptr_ptr(basic_string_wchar
*this,
2779 const wchar_t *first
, const wchar_t *last
)
2781 return MSVCP_basic_string_wchar_ctor_cstr_len(this, first
, last
-first
);
2784 /* ??1?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE@XZ */
2785 /* ??1?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAA@XZ */
2786 /* ??1?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAE@XZ */
2787 /* ??1?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAA@XZ */
2788 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_dtor
, 4)
2789 void* __thiscall
MSVCP_basic_string_wchar_dtor(basic_string_wchar
*this)
2791 TRACE("%p\n", this);
2792 basic_string_wchar_tidy(this, TRUE
, 0);
2793 return NULL
; /* FEAR 1 installer expects EAX set to 0 */
2796 /* ?size@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEIXZ */
2797 /* ?size@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBA_KXZ */
2798 /* ?length@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEIXZ */
2799 /* ?length@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBA_KXZ */
2800 /* ?size@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEIXZ */
2801 /* ?size@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBA_KXZ */
2802 /* ?length@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEIXZ */
2803 /* ?length@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBA_KXZ */
2804 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_length
, 4)
2805 MSVCP_size_t __thiscall
MSVCP_basic_string_wchar_length(const basic_string_wchar
*this)
2807 TRACE("%p\n", this);
2811 /* ?max_size@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEIXZ */
2812 /* ?max_size@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBA_KXZ */
2813 /* ?max_size@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEIXZ */
2814 /* ?max_size@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBA_KXZ */
2815 DEFINE_THISCALL_WRAPPER(basic_string_wchar_max_size
, 4)
2816 MSVCP_size_t __thiscall
basic_string_wchar_max_size(const basic_string_wchar
*this)
2818 TRACE("%p\n", this);
2819 return MSVCP_allocator_wchar_max_size(STRING_ALLOCATOR(this))-1;
2822 /* ?empty@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBE_NXZ */
2823 /* ?empty@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBA_NXZ */
2824 /* ?empty@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBE_NXZ */
2825 /* ?empty@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBA_NXZ */
2826 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_empty
, 4)
2827 MSVCP_bool __thiscall
MSVCP_basic_string_wchar_empty(basic_string_wchar
*this)
2829 TRACE("%p\n", this);
2830 return this->size
== 0;
2833 /* ?swap@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEXAAV12@@Z */
2834 /* ?swap@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAXAEAV12@@Z */
2835 /* ?swap@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEXAAV12@@Z */
2836 /* ?swap@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAXAEAV12@@Z */
2837 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_swap
, 8)
2838 void __thiscall
MSVCP_basic_string_wchar_swap(basic_string_wchar
*this, basic_string_wchar
*str
)
2841 char tmp
[sizeof(this->data
)];
2842 const MSVCP_size_t size
= this->size
;
2843 const MSVCP_size_t res
= this->res
;
2845 memcpy(tmp
, this->data
.buf
, sizeof(this->data
));
2846 memcpy(this->data
.buf
, str
->data
.buf
, sizeof(this->data
));
2847 memcpy(str
->data
.buf
, tmp
, sizeof(this->data
));
2849 this->size
= str
->size
;
2850 this->res
= str
->res
;
2857 /* ?substr@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBE?AV12@II@Z */
2858 /* ?substr@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBA?AV12@_K0@Z */
2859 /* ?substr@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBE?AV12@II@Z */
2860 /* ?substr@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBA?AV12@_K0@Z */
2861 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_substr
, 16)
2862 basic_string_wchar
* __thiscall
MSVCP_basic_string_wchar_substr(basic_string_wchar
*this,
2863 basic_string_wchar
*ret
, MSVCP_size_t off
, MSVCP_size_t len
)
2865 TRACE("%p %lu %lu\n", this, off
, len
);
2867 MSVCP_basic_string_wchar_ctor_substr(ret
, this, off
, len
);
2871 /* ?append@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV12@ABV12@II@Z */
2872 /* ?append@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAAEAV12@AEBV12@_K1@Z */
2873 /* ?append@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV12@ABV12@II@Z */
2874 /* ?append@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAAEAV12@AEBV12@_K1@Z */
2875 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_append_substr
, 16)
2876 basic_string_wchar
* __thiscall
MSVCP_basic_string_wchar_append_substr(basic_string_wchar
*this,
2877 const basic_string_wchar
*append
, MSVCP_size_t offset
, MSVCP_size_t count
)
2879 TRACE("%p %p %lu %lu\n", this, append
, offset
, count
);
2881 if(append
->size
< offset
)
2882 MSVCP__String_base_Xran();
2884 if(count
> append
->size
-offset
)
2885 count
= append
->size
-offset
;
2887 if(MSVCP_basic_string_wchar_npos
-this->size
<=count
|| this->size
+count
<this->size
)
2888 MSVCP__String_base_Xlen();
2890 if(basic_string_wchar_grow(this, this->size
+count
, FALSE
)) {
2891 MSVCP_char_traits_wchar__Copy_s(basic_string_wchar_ptr(this)+this->size
,
2892 this->res
-this->size
, basic_string_wchar_const_ptr(append
)+offset
, count
);
2893 basic_string_wchar_eos(this, this->size
+count
);
2899 /* ?append@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV12@ABV12@@Z */
2900 /* ?append@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAAEAV12@AEBV12@@Z */
2901 /* ??Y?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV01@ABV01@@Z */
2902 /* ??Y?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAAEAV01@AEBV01@@Z */
2903 /* ?append@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV12@ABV12@@Z */
2904 /* ?append@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAAEAV12@AEBV12@@Z */
2905 /* ??Y?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV01@ABV01@@Z */
2906 /* ??Y?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAAEAV01@AEBV01@@Z */
2907 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_append
, 8)
2908 basic_string_wchar
* __thiscall
MSVCP_basic_string_wchar_append(
2909 basic_string_wchar
*this, const basic_string_wchar
*append
)
2911 return MSVCP_basic_string_wchar_append_substr(this, append
,
2912 0, MSVCP_basic_string_wchar_npos
);
2915 /* ?append@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV12@PB_WI@Z */
2916 /* ?append@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAAEAV12@PEB_W_K@Z */
2917 /* ?append@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV12@PBGI@Z */
2918 /* ?append@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAAEAV12@PEBG_K@Z */
2919 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_append_cstr_len
, 12)
2920 basic_string_wchar
* __thiscall
MSVCP_basic_string_wchar_append_cstr_len(
2921 basic_string_wchar
*this, const wchar_t *append
, MSVCP_size_t count
)
2923 TRACE("%p %s %lu\n", this, debugstr_wn(append
, count
), count
);
2925 if(basic_string_wchar_inside(this, append
))
2926 return MSVCP_basic_string_wchar_append_substr(this, this,
2927 append
-basic_string_wchar_ptr(this), count
);
2929 if(MSVCP_basic_string_wchar_npos
-this->size
<=count
|| this->size
+count
<this->size
)
2930 MSVCP__String_base_Xlen();
2932 if(basic_string_wchar_grow(this, this->size
+count
, FALSE
)) {
2933 MSVCP_char_traits_wchar__Copy_s(basic_string_wchar_ptr(this)+this->size
,
2934 this->res
-this->size
, append
, count
);
2935 basic_string_wchar_eos(this, this->size
+count
);
2941 /* ?append@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV12@PB_W@Z */
2942 /* ?append@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAAEAV12@PEB_W@Z */
2943 /* ??Y?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV01@PB_W@Z */
2944 /* ??Y?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAAEAV01@PEB_W@Z */
2945 /* ?append@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV12@PBG@Z */
2946 /* ?append@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAAEAV12@PEBG@Z */
2947 /* ??Y?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV01@PBG@Z */
2948 /* ??Y?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAAEAV01@PEBG@Z */
2949 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_append_cstr
, 8)
2950 basic_string_wchar
* __thiscall
MSVCP_basic_string_wchar_append_cstr(
2951 basic_string_wchar
*this, const wchar_t *append
)
2953 return MSVCP_basic_string_wchar_append_cstr_len(this, append
,
2954 MSVCP_char_traits_wchar_length(append
));
2957 /* ?append@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV12@PB_W0@Z */
2958 /* ?append@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAAEAV12@PEB_W0@Z */
2959 /* ?append@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV12@PBG0@Z */
2960 /* ?append@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAAEAV12@PEBG0@Z */
2961 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_append_beg_end
, 12)
2962 basic_string_wchar
* __thiscall
MSVCP_basic_string_wchar_append_beg_end(
2963 basic_string_wchar
*this, const wchar_t *beg
, const wchar_t *end
)
2965 return MSVCP_basic_string_wchar_append_cstr_len(this, beg
, end
-beg
);
2968 /* ?append@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV12@I_W@Z */
2969 /* ?append@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAAEAV12@_K_W@Z */
2970 /* ?append@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV12@IG@Z */
2971 /* ?append@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAAEAV12@_KG@Z */
2972 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_append_len_ch
, 12)
2973 basic_string_wchar
* __thiscall
MSVCP_basic_string_wchar_append_len_ch(
2974 basic_string_wchar
*this, MSVCP_size_t count
, wchar_t ch
)
2976 TRACE("%p %lu %c\n", this, count
, ch
);
2978 if(MSVCP_basic_string_wchar_npos
-this->size
<= count
)
2979 MSVCP__String_base_Xlen();
2981 if(basic_string_wchar_grow(this, this->size
+count
, FALSE
)) {
2982 MSVCP_char_traits_wchar_assignn(basic_string_wchar_ptr(this)+this->size
, count
, ch
);
2983 basic_string_wchar_eos(this, this->size
+count
);
2989 /* ??Y?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV01@_W@Z */
2990 /* ??Y?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAAEAV01@_W@Z */
2991 /* ?push_back@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEX_W@Z */
2992 /* ?push_back@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAX_W@Z */
2993 /* ??Y?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV01@G@Z */
2994 /* ??Y?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAAEAV01@G@Z */
2995 /* ?push_back@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEXG@Z */
2996 /* ?push_back@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAXG@Z */
2997 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_append_ch
, 8)
2998 basic_string_wchar
* __thiscall
MSVCP_basic_string_wchar_append_ch(
2999 basic_string_wchar
*this, wchar_t ch
)
3001 return MSVCP_basic_string_wchar_append_len_ch(this, 1, ch
);
3004 /* ??$?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 */
3005 /* ??$?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 */
3006 /* ??$?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 */
3007 /* ??$?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 */
3008 /* ??Hstd@@YA?AV?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@0@ABV10@PBG@Z */
3009 /* ??Hstd@@YA?AV?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@0@AEBV10@PEBG@Z */
3010 /* ??Hstd@@YA?AV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@0@ABV10@PB_W@Z */
3011 basic_string_wchar
* __cdecl
MSVCP_basic_string_wchar_concatenate_bstr_cstr(basic_string_wchar
*ret
,
3012 const basic_string_wchar
*left
, const wchar_t *right
)
3014 TRACE("%p %s\n", left
, debugstr_w(right
));
3016 MSVCP_basic_string_wchar_copy_ctor(ret
, left
);
3017 MSVCP_basic_string_wchar_append_cstr(ret
, right
);
3021 /* ??$?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 */
3022 /* ??$?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 */
3023 /* ??$?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 */
3024 /* ??$?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 */
3025 /* ??Hstd@@YA?AV?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@0@PBGABV10@@Z */
3026 /* ??Hstd@@YA?AV?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@0@PEBGAEBV10@@Z */
3027 /* ??Hstd@@YA?AV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@0@PB_WABV10@@Z */
3028 basic_string_wchar
* __cdecl
MSVCP_basic_string_wchar_concatenate_cstr_bstr(basic_string_wchar
*ret
,
3029 const wchar_t *left
, const basic_string_wchar
*right
)
3031 TRACE("%s %p\n", debugstr_w(left
), right
);
3033 MSVCP_basic_string_wchar_ctor_cstr(ret
, left
);
3034 MSVCP_basic_string_wchar_append(ret
, right
);
3038 /* ??$?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 */
3039 /* ??$?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 */
3040 /* ??$?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 */
3041 /* ??$?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 */
3042 /* ??Hstd@@YA?AV?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@0@ABV10@0@Z */
3043 /* ??Hstd@@YA?AV?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@0@AEBV10@0@Z */
3044 /* ??Hstd@@YA?AV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@0@ABV10@0@Z */
3045 basic_string_wchar
* __cdecl
MSVCP_basic_string_wchar_concatenate(basic_string_wchar
*ret
,
3046 const basic_string_wchar
*left
, const basic_string_wchar
*right
)
3048 TRACE("%p %p\n", left
, right
);
3050 MSVCP_basic_string_wchar_copy_ctor(ret
, left
);
3051 MSVCP_basic_string_wchar_append(ret
, right
);
3055 /* ??$?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 */
3056 /* ??$?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 */
3057 /* ??$?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 */
3058 /* ??$?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 */
3059 /* ??Hstd@@YA?AV?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@0@ABV10@G@Z */
3060 /* ??Hstd@@YA?AV?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@0@AEBV10@G@Z */
3061 /* ??Hstd@@YA?AV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@0@ABV10@_W@Z */
3062 basic_string_wchar
* __cdecl
MSVCP_basic_string_wchar_concatenate_bstr_ch(
3063 basic_string_wchar
*ret
, const basic_string_wchar
*left
, wchar_t right
)
3065 TRACE("%p %c\n", left
, right
);
3067 MSVCP_basic_string_wchar_copy_ctor(ret
, left
);
3068 MSVCP_basic_string_wchar_append_ch(ret
, right
);
3072 /* ??$?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 */
3073 /* ??$?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 */
3074 /* ??$?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 */
3075 /* ??$?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 */
3076 /* ??Hstd@@YA?AV?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@0@GABV10@@Z */
3077 /* ??Hstd@@YA?AV?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@0@GAEBV10@@Z */
3078 /* ??Hstd@@YA?AV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@0@_WABV10@@Z */
3079 basic_string_wchar
* __cdecl
MSVCP_basic_string_wchar_concatenate_ch_bstr(
3080 basic_string_wchar
* ret
, wchar_t left
, const basic_string_wchar
*right
)
3082 TRACE("%c %p\n", left
, right
);
3084 MSVCP_basic_string_wchar_ctor_cstr_len(ret
, &left
, 1);
3085 MSVCP_basic_string_wchar_append(ret
, right
);
3089 /* ?compare@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEHIIPB_WI@Z */
3090 /* ?compare@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBAH_K0PEB_W0@Z */
3091 /* ?compare@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEHIIPBGI@Z */
3092 /* ?compare@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBAH_K0PEBG0@Z */
3093 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_compare_substr_cstr_len
, 20)
3094 int __thiscall
MSVCP_basic_string_wchar_compare_substr_cstr_len(
3095 const basic_string_wchar
*this, MSVCP_size_t pos
, MSVCP_size_t num
,
3096 const wchar_t *str
, MSVCP_size_t count
)
3100 TRACE("%p %lu %lu %s %lu\n", this, pos
, num
, debugstr_wn(str
, count
), count
);
3102 if(this->size
< pos
)
3103 MSVCP__String_base_Xran();
3105 if(num
> this->size
-pos
)
3106 num
= this->size
-pos
;
3108 ans
= MSVCP_char_traits_wchar_compare(basic_string_wchar_const_ptr(this)+pos
,
3109 str
, num
>count
? count
: num
);
3115 else if(num
< count
)
3120 /* ?compare@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEHIIPB_W@Z */
3121 /* ?compare@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBAH_K0PEB_W@Z */
3122 /* ?compare@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEHIIPBG@Z */
3123 /* ?compare@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBAH_K0PEBG@Z */
3124 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_compare_substr_cstr
, 16)
3125 int __thiscall
MSVCP_basic_string_wchar_compare_substr_cstr(const basic_string_wchar
*this,
3126 MSVCP_size_t pos
, MSVCP_size_t num
, const wchar_t *str
)
3128 return MSVCP_basic_string_wchar_compare_substr_cstr_len(this, pos
, num
,
3129 str
, MSVCP_char_traits_wchar_length(str
));
3132 /* ?compare@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEHPB_W@Z */
3133 /* ?compare@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBAHPEB_W@Z */
3134 /* ?compare@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEHPBG@Z */
3135 /* ?compare@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBAHPEBG@Z */
3136 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_compare_cstr
, 8)
3137 int __thiscall
MSVCP_basic_string_wchar_compare_cstr(
3138 const basic_string_wchar
*this, const wchar_t *str
)
3140 return MSVCP_basic_string_wchar_compare_substr_cstr_len(this, 0, this->size
,
3141 str
, MSVCP_char_traits_wchar_length(str
));
3144 /* ?compare@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEHIIABV12@II@Z */
3145 /* ?compare@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBAH_K0AEBV12@00@Z */
3146 /* ?compare@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEHIIABV12@II@Z */
3147 /* ?compare@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBAH_K0AEBV12@00@Z */
3148 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_compare_substr_substr
, 24)
3149 int __thiscall
MSVCP_basic_string_wchar_compare_substr_substr(
3150 const basic_string_wchar
*this, MSVCP_size_t pos
, MSVCP_size_t num
,
3151 const basic_string_wchar
*compare
, MSVCP_size_t off
, MSVCP_size_t count
)
3153 TRACE("%p %lu %lu %p %lu %lu\n", this, pos
, num
, compare
, off
, count
);
3155 if(compare
->size
< off
)
3156 MSVCP__String_base_Xran();
3158 if(count
> compare
->size
-off
)
3159 count
= compare
->size
-off
;
3161 return MSVCP_basic_string_wchar_compare_substr_cstr_len(this, pos
, num
,
3162 basic_string_wchar_const_ptr(compare
)+off
, count
);
3165 /* ?compare@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEHIIABV12@@Z */
3166 /* ?compare@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBAH_K0AEBV12@@Z */
3167 /* ?compare@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEHIIABV12@@Z */
3168 /* ?compare@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBAH_K0AEBV12@@Z */
3169 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_compare_substr
, 16)
3170 int __thiscall
MSVCP_basic_string_wchar_compare_substr(
3171 const basic_string_wchar
*this, MSVCP_size_t pos
, MSVCP_size_t num
,
3172 const basic_string_wchar
*compare
)
3174 return MSVCP_basic_string_wchar_compare_substr_cstr_len(this, pos
, num
,
3175 basic_string_wchar_const_ptr(compare
), compare
->size
);
3178 /* ?compare@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEHABV12@@Z */
3179 /* ?compare@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBAHAEBV12@@Z */
3180 /* ?compare@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEHABV12@@Z */
3181 /* ?compare@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBAHAEBV12@@Z */
3182 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_compare
, 8)
3183 int __thiscall
MSVCP_basic_string_wchar_compare(
3184 const basic_string_wchar
*this, const basic_string_wchar
*compare
)
3186 return MSVCP_basic_string_wchar_compare_substr_cstr_len(this, 0, this->size
,
3187 basic_string_wchar_const_ptr(compare
), compare
->size
);
3190 /* ??$?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 */
3191 /* ??$?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 */
3192 /* ??$?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 */
3193 /* ??$?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 */
3194 /* ??8std@@YA_NABV?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@0@0@Z */
3195 /* ??8std@@YA_NAEBV?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@0@0@Z */
3196 /* ??8std@@YA_NABV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@0@0@Z */
3197 MSVCP_bool __cdecl
MSVCP_basic_string_wchar_equal(
3198 const basic_string_wchar
*left
, const basic_string_wchar
*right
)
3200 return MSVCP_basic_string_wchar_compare(left
, right
) == 0;
3203 /* ??$?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 */
3204 /* ??$?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 */
3205 /* ??$?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 */
3206 /* ??$?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 */
3207 /* ??8std@@YA_NABV?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@0@PBG@Z */
3208 /* ??8std@@YA_NAEBV?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@0@PEBG@Z */
3209 /* ??8std@@YA_NABV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@0@PB_W@Z */
3210 MSVCP_bool __cdecl
MSVCP_basic_string_wchar_equal_str_cstr(
3211 const basic_string_wchar
*left
, const wchar_t *right
)
3213 return MSVCP_basic_string_wchar_compare_cstr(left
, right
) == 0;
3216 /* ??$?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 */
3217 /* ??$?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 */
3218 /* ??$?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 */
3219 /* ??$?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 */
3220 /* ??8std@@YA_NPBGABV?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@0@@Z */
3221 /* ??8std@@YA_NPB_WABV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@0@@Z */
3222 MSVCP_bool __cdecl
MSVCP_basic_string_wchar_equal_cstr_str(
3223 const wchar_t *left
, const basic_string_wchar
*right
)
3225 return MSVCP_basic_string_wchar_compare_cstr(right
, left
) == 0;
3228 /* ??$?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 */
3229 /* ??$?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 */
3230 /* ??$?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 */
3231 /* ??$?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 */
3232 /* ??9std@@YA_NABV?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@0@0@Z */
3233 /* ??9std@@YA_NAEBV?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@0@0@Z */
3234 /* ??9std@@YA_NABV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@0@0@Z */
3235 MSVCP_bool __cdecl
MSVCP_basic_string_wchar_not_equal(
3236 const basic_string_wchar
*left
, const basic_string_wchar
*right
)
3238 return MSVCP_basic_string_wchar_compare(left
, right
) != 0;
3241 /* ??$?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 */
3242 /* ??$?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 */
3243 /* ??$?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 */
3244 /* ??$?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 */
3245 /* ??9std@@YA_NABV?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@0@PBG@Z */
3246 /* ??9std@@YA_NAEBV?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@0@PEBG@Z */
3247 /* ??9std@@YA_NABV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@0@PB_W@Z */
3248 MSVCP_bool __cdecl
MSVCP_basic_string_wchar_not_equal_str_cstr(
3249 const basic_string_wchar
*left
, const wchar_t *right
)
3251 return MSVCP_basic_string_wchar_compare_cstr(left
, right
) != 0;
3254 /* ??$?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 */
3255 /* ??$?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 */
3256 /* ??$?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 */
3257 /* ??$?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 */
3258 /* ??9std@@YA_NPBGABV?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@0@@Z */
3259 /* ??9std@@YA_NPEBGAEBV?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@0@@Z */
3260 /* ??9std@@YA_NPB_WABV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@0@@Z */
3261 MSVCP_bool __cdecl
MSVCP_basic_string_wchar_not_equal_cstr_str(
3262 const wchar_t *left
, const basic_string_wchar
*right
)
3264 return MSVCP_basic_string_wchar_compare_cstr(right
, left
) != 0;
3267 /* ??$?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 */
3268 /* ??$?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 */
3269 /* ??$?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 */
3270 /* ??$?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 */
3271 MSVCP_bool __cdecl
MSVCP_basic_string_wchar_lower(
3272 const basic_string_wchar
*left
, const basic_string_wchar
*right
)
3274 return MSVCP_basic_string_wchar_compare(left
, right
) < 0;
3277 /* ??$?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 */
3278 /* ??$?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 */
3279 /* ??$?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 */
3280 /* ??$?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 */
3281 MSVCP_bool __cdecl
MSVCP_basic_string_wchar_lower_bstr_cstr(
3282 const basic_string_wchar
*left
, const wchar_t *right
)
3284 return MSVCP_basic_string_wchar_compare_cstr(left
, right
) < 0;
3287 /* ??$?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 */
3288 /* ??$?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 */
3289 /* ??$?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 */
3290 /* ??$?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 */
3291 MSVCP_bool __cdecl
MSVCP_basic_string_wchar_lower_cstr_bstr(
3292 const wchar_t *left
, const basic_string_wchar
*right
)
3294 return MSVCP_basic_string_wchar_compare_cstr(right
, left
) > 0;
3297 /* ??$?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 */
3298 /* ??$?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 */
3299 /* ??$?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 */
3300 /* ??$?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 */
3301 MSVCP_bool __cdecl
MSVCP_basic_string_wchar_leq(
3302 const basic_string_wchar
*left
, const basic_string_wchar
*right
)
3304 return MSVCP_basic_string_wchar_compare(left
, right
) <= 0;
3307 /* ??$?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 */
3308 /* ??$?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 */
3309 /* ??$?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 */
3310 /* ??$?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 */
3311 MSVCP_bool __cdecl
MSVCP_basic_string_wchar_leq_bstr_cstr(
3312 const basic_string_wchar
*left
, const wchar_t *right
)
3314 return MSVCP_basic_string_wchar_compare_cstr(left
, right
) <= 0;
3317 /* ??$?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 */
3318 /* ??$?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 */
3319 /* ??$?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 */
3320 /* ??$?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 */
3321 MSVCP_bool __cdecl
MSVCP_basic_string_wchar_leq_cstr_bstr(
3322 const wchar_t *left
, const basic_string_wchar
*right
)
3324 return MSVCP_basic_string_wchar_compare_cstr(right
, left
) >= 0;
3327 /* ??$?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 */
3328 /* ??$?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 */
3329 /* ??$?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 */
3330 /* ??$?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 */
3331 MSVCP_bool __cdecl
MSVCP_basic_string_wchar_greater(
3332 const basic_string_wchar
*left
, const basic_string_wchar
*right
)
3334 return MSVCP_basic_string_wchar_compare(left
, right
) > 0;
3337 /* ??$?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 */
3338 /* ??$?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 */
3339 /* ??$?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 */
3340 /* ??$?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 */
3341 MSVCP_bool __cdecl
MSVCP_basic_string_wchar_greater_bstr_cstr(
3342 const basic_string_wchar
*left
, const wchar_t *right
)
3344 return MSVCP_basic_string_wchar_compare_cstr(left
, right
) > 0;
3347 /* ??$?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 */
3348 /* ??$?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 */
3349 /* ??$?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 */
3350 /* ??$?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 */
3351 MSVCP_bool __cdecl
MSVCP_basic_string_wchar_greater_cstr_bstr(
3352 const wchar_t *left
, const basic_string_wchar
*right
)
3354 return MSVCP_basic_string_wchar_compare_cstr(right
, left
) < 0;
3357 /* ??$?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 */
3358 /* ??$?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 */
3359 /* ??$?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 */
3360 /* ??$?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 */
3361 MSVCP_bool __cdecl
MSVCP_basic_string_wchar_geq(
3362 const basic_string_wchar
*left
, const basic_string_wchar
*right
)
3364 return MSVCP_basic_string_wchar_compare(left
, right
) >= 0;
3367 /* ??$?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 */
3368 /* ??$?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 */
3369 /* ??$?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 */
3370 /* ??$?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 */
3371 MSVCP_bool __cdecl
MSVCP_basic_string_wchar_geq_bstr_cstr(
3372 const basic_string_wchar
*left
, const wchar_t *right
)
3374 return MSVCP_basic_string_wchar_compare_cstr(left
, right
) >= 0;
3377 /* ??$?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 */
3378 /* ??$?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 */
3379 /* ??$?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 */
3380 /* ??$?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 */
3381 MSVCP_bool __cdecl
MSVCP_basic_string_wchar_geq_cstr_bstr(
3382 const wchar_t *left
, const basic_string_wchar
*right
)
3384 return MSVCP_basic_string_wchar_compare_cstr(right
, left
) <= 0;
3387 /* ?find@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEIPB_WII@Z */
3388 /* ?find@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBA_KPEB_W_K1@Z */
3389 /* ?find@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEIPBGII@Z */
3390 /* ?find@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBA_KPEBG_K1@Z */
3391 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_find_cstr_substr
, 16)
3392 MSVCP_size_t __thiscall
MSVCP_basic_string_wchar_find_cstr_substr(
3393 const basic_string_wchar
*this, const wchar_t *find
, MSVCP_size_t pos
, MSVCP_size_t len
)
3395 const wchar_t *p
, *end
;
3397 TRACE("%p %s %lu %lu\n", this, debugstr_wn(find
, len
), pos
, len
);
3399 if(len
==0 && pos
<=this->size
)
3401 if(pos
>=this->size
|| len
>this->size
)
3402 return MSVCP_basic_string_wchar_npos
;
3404 end
= basic_string_wchar_const_ptr(this)+this->size
-len
+1;
3405 for(p
=basic_string_wchar_const_ptr(this)+pos
; p
<end
; p
++) {
3406 p
= MSVCP_char_traits_wchar_find(p
, end
-p
, find
);
3410 if(!MSVCP_char_traits_wchar_compare(p
, find
, len
))
3411 return p
-basic_string_wchar_const_ptr(this);
3414 return MSVCP_basic_string_wchar_npos
;
3417 /* ?find@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEIPB_WI@Z */
3418 /* ?find@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBA_KPEB_W_K@Z */
3419 /* ?find@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEIPBGI@Z */
3420 /* ?find@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBA_KPEBG_K@Z */
3421 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_find_cstr_off
, 12)
3422 MSVCP_size_t __thiscall
MSVCP_basic_string_wchar_find_cstr_off(
3423 const basic_string_wchar
*this, const wchar_t *find
, MSVCP_size_t pos
)
3425 return MSVCP_basic_string_wchar_find_cstr_substr(this, find
, pos
,
3426 MSVCP_char_traits_wchar_length(find
));
3429 /* ?find@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEIABV12@I@Z */
3430 /* ?find@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBA_KAEBV12@_K@Z */
3431 /* ?find@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEIABV12@I@Z */
3432 /* ?find@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBA_KAEBV12@_K@Z */
3433 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_find_off
, 12)
3434 MSVCP_size_t __thiscall
MSVCP_basic_string_wchar_find_off(
3435 const basic_string_wchar
*this, const basic_string_wchar
*find
, MSVCP_size_t off
)
3437 return MSVCP_basic_string_wchar_find_cstr_substr(this,
3438 basic_string_wchar_const_ptr(find
), off
, find
->size
);
3441 /* ?find@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEI_WI@Z */
3442 /* ?find@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBA_K_W_K@Z */
3443 /* ?find@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEIGI@Z */
3444 /* ?find@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBA_KG_K@Z */
3445 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_find_ch
, 12)
3446 MSVCP_size_t __thiscall
MSVCP_basic_string_wchar_find_ch(
3447 const basic_string_wchar
*this, wchar_t ch
, MSVCP_size_t pos
)
3449 return MSVCP_basic_string_wchar_find_cstr_substr(this, &ch
, pos
, 1);
3452 /* ?rfind@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEIPB_WII@Z */
3453 /* ?rfind@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBA_KPEB_W_K1@Z */
3454 /* ?rfind@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEIPBGII@Z */
3455 /* ?rfind@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBA_KPEBG_K1@Z */
3456 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_rfind_cstr_substr
, 16)
3457 MSVCP_size_t __thiscall
MSVCP_basic_string_wchar_rfind_cstr_substr(
3458 const basic_string_wchar
*this, const wchar_t *find
, MSVCP_size_t pos
, MSVCP_size_t len
)
3460 const wchar_t *p
, *end
;
3462 TRACE("%p %s %lu %lu\n", this, debugstr_wn(find
, len
), pos
, len
);
3465 return pos
<this->size
? pos
: this->size
;
3467 if(len
> this->size
)
3468 return MSVCP_basic_string_wchar_npos
;
3470 if(pos
> this->size
-len
)
3471 pos
= this->size
-len
;
3472 end
= basic_string_wchar_const_ptr(this);
3473 for(p
=end
+pos
; p
>=end
; p
--) {
3474 if(*p
==*find
&& !MSVCP_char_traits_wchar_compare(p
, find
, len
))
3475 return p
-basic_string_wchar_const_ptr(this);
3478 return MSVCP_basic_string_wchar_npos
;
3481 /* ?rfind@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEIPB_WI@Z */
3482 /* ?rfind@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBA_KPEB_W_K@Z */
3483 /* ?rfind@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEIPBGI@Z */
3484 /* ?rfind@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBA_KPEBG_K@Z */
3485 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_rfind_cstr_off
, 12)
3486 MSVCP_size_t __thiscall
MSVCP_basic_string_wchar_rfind_cstr_off(
3487 const basic_string_wchar
*this, const wchar_t *find
, MSVCP_size_t pos
)
3489 return MSVCP_basic_string_wchar_rfind_cstr_substr(this, find
, pos
,
3490 MSVCP_char_traits_wchar_length(find
));
3493 /* ?rfind@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEIABV12@I@Z */
3494 /* ?rfind@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBA_KAEBV12@_K@Z */
3495 /* ?rfind@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEIABV12@I@Z */
3496 /* ?rfind@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBA_KAEBV12@_K@Z */
3497 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_rfind_off
, 12)
3498 MSVCP_size_t __thiscall
MSVCP_basic_string_wchar_rfind_off(
3499 const basic_string_wchar
*this, const basic_string_wchar
*find
, MSVCP_size_t off
)
3501 return MSVCP_basic_string_wchar_rfind_cstr_substr(this,
3502 basic_string_wchar_const_ptr(find
), off
, find
->size
);
3505 /* ?rfind@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEI_WI@Z */
3506 /* ?rfind@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBA_K_W_K@Z */
3507 /* ?rfind@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEIGI@Z */
3508 /* ?rfind@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBA_KG_K@Z */
3509 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_rfind_ch
, 12)
3510 MSVCP_size_t __thiscall
MSVCP_basic_string_wchar_rfind_ch(
3511 const basic_string_wchar
*this, wchar_t ch
, MSVCP_size_t pos
)
3513 return MSVCP_basic_string_wchar_rfind_cstr_substr(this, &ch
, pos
, 1);
3516 /* ?find_first_of@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEIPB_WII@Z */
3517 /* ?find_first_of@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBA_KPEB_W_K1@Z */
3518 /* ?find_first_of@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEIPBGII@Z */
3519 /* ?find_first_of@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBA_KPEBG_K1@Z */
3520 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_find_first_of_cstr_substr
, 16)
3521 MSVCP_size_t __thiscall
MSVCP_basic_string_wchar_find_first_of_cstr_substr(
3522 const basic_string_wchar
*this, const wchar_t *find
, MSVCP_size_t off
, MSVCP_size_t len
)
3524 const wchar_t *p
, *end
;
3526 TRACE("%p %p %lu %lu\n", this, find
, off
, len
);
3528 if(len
>0 && off
<this->size
) {
3529 end
= basic_string_wchar_const_ptr(this)+this->size
;
3530 for(p
=basic_string_wchar_const_ptr(this)+off
; p
<end
; p
++)
3531 if(MSVCP_char_traits_wchar_find(find
, len
, p
))
3532 return p
-basic_string_wchar_const_ptr(this);
3535 return MSVCP_basic_string_wchar_npos
;
3538 /* ?find_first_of@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEIABV12@I@Z */
3539 /* ?find_first_of@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBA_KAEBV12@_K@Z */
3540 /* ?find_first_of@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEIABV12@I@Z */
3541 /* ?find_first_of@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBA_KAEBV12@_K@Z */
3542 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_find_first_of
, 12)
3543 MSVCP_size_t __thiscall
MSVCP_basic_string_wchar_find_first_of(
3544 const basic_string_wchar
*this, const basic_string_wchar
*find
, MSVCP_size_t off
)
3546 return MSVCP_basic_string_wchar_find_first_of_cstr_substr(this,
3547 basic_string_wchar_const_ptr(find
), off
, find
->size
);
3550 /* ?find_first_of@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEIPB_WI@Z */
3551 /* ?find_first_of@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBA_KPEB_W_K@Z */
3552 /* ?find_first_of@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEIPBGI@Z */
3553 /* ?find_first_of@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBA_KPEBG_K@Z */
3554 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_find_first_of_cstr
, 12)
3555 MSVCP_size_t __thiscall
MSVCP_basic_string_wchar_find_first_of_cstr(
3556 const basic_string_wchar
*this, const wchar_t *find
, MSVCP_size_t off
)
3558 return MSVCP_basic_string_wchar_find_first_of_cstr_substr(
3559 this, find
, off
, MSVCP_char_traits_wchar_length(find
));
3562 /* ?find_first_of@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEI_WI@Z */
3563 /* ?find_first_of@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBA_K_W_K@Z */
3564 /* ?find_first_of@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEIGI@Z */
3565 /* ?find_first_of@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBA_KG_K@Z */
3566 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_find_first_of_ch
, 12)
3567 MSVCP_size_t __thiscall
MSVCP_basic_string_wchar_find_first_of_ch(
3568 const basic_string_wchar
*this, wchar_t ch
, MSVCP_size_t off
)
3570 return MSVCP_basic_string_wchar_find_first_of_cstr_substr(this, &ch
, off
, 1);
3573 /* ?find_first_not_of@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEIPB_WII@Z */
3574 /* ?find_first_not_of@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBA_KPEB_W_K1@Z */
3575 /* ?find_first_not_of@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEIPBGII@Z */
3576 /* ?find_first_not_of@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBA_KPEBG_K1@Z */
3577 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_find_first_not_of_cstr_substr
, 16)
3578 MSVCP_size_t __thiscall
MSVCP_basic_string_wchar_find_first_not_of_cstr_substr(
3579 const basic_string_wchar
*this, const wchar_t *find
, MSVCP_size_t off
, MSVCP_size_t len
)
3581 const wchar_t *p
, *end
;
3583 TRACE("%p %p %lu %lu\n", this, find
, off
, len
);
3585 if(off
<this->size
) {
3586 end
= basic_string_wchar_const_ptr(this)+this->size
;
3587 for(p
=basic_string_wchar_const_ptr(this)+off
; p
<end
; p
++)
3588 if(!MSVCP_char_traits_wchar_find(find
, len
, p
))
3589 return p
-basic_string_wchar_const_ptr(this);
3592 return MSVCP_basic_string_wchar_npos
;
3595 /* ?find_first_not_of@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEIABV12@I@Z */
3596 /* ?find_first_not_of@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBA_KAEBV12@_K@Z */
3597 /* ?find_first_not_of@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEIABV12@I@Z */
3598 /* ?find_first_not_of@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBA_KAEBV12@_K@Z */
3599 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_find_first_not_of
, 12)
3600 MSVCP_size_t __thiscall
MSVCP_basic_string_wchar_find_first_not_of(
3601 const basic_string_wchar
*this, const basic_string_wchar
*find
, MSVCP_size_t off
)
3603 return MSVCP_basic_string_wchar_find_first_not_of_cstr_substr(this,
3604 basic_string_wchar_const_ptr(find
), off
, find
->size
);
3607 /* ?find_first_not_of@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEIPB_WI@Z */
3608 /* ?find_first_not_of@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBA_KPEB_W_K@Z */
3609 /* ?find_first_not_of@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEIPBGI@Z */
3610 /* ?find_first_not_of@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBA_KPEBG_K@Z */
3611 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_find_first_not_of_cstr
, 12)
3612 MSVCP_size_t __thiscall
MSVCP_basic_string_wchar_find_first_not_of_cstr(
3613 const basic_string_wchar
*this, const wchar_t *find
, MSVCP_size_t off
)
3615 return MSVCP_basic_string_wchar_find_first_not_of_cstr_substr(
3616 this, find
, off
, MSVCP_char_traits_wchar_length(find
));
3619 /* ?find_first_not_of@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEI_WI@Z */
3620 /* ?find_first_not_of@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBA_K_W_K@Z */
3621 /* ?find_first_not_of@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEIGI@Z */
3622 /* ?find_first_not_of@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBA_KG_K@Z */
3623 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_find_first_not_of_ch
, 12)
3624 MSVCP_size_t __thiscall
MSVCP_basic_string_wchar_find_first_not_of_ch(
3625 const basic_string_wchar
*this, wchar_t ch
, MSVCP_size_t off
)
3627 return MSVCP_basic_string_wchar_find_first_not_of_cstr_substr(this, &ch
, off
, 1);
3630 /* ?find_last_of@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEIPB_WII@Z */
3631 /* ?find_last_of@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBA_KPEB_W_K1@Z */
3632 /* ?find_last_of@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEIPBGII@Z */
3633 /* ?find_last_of@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBA_KPEBG_K1@Z */
3634 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_find_last_of_cstr_substr
, 16)
3635 MSVCP_size_t __thiscall
MSVCP_basic_string_wchar_find_last_of_cstr_substr(
3636 const basic_string_wchar
*this, const wchar_t *find
, MSVCP_size_t off
, MSVCP_size_t len
)
3638 const wchar_t *p
, *beg
;
3640 TRACE("%p %p %lu %lu\n", this, find
, off
, len
);
3643 if(len
>0 && this->size
>0) {
3644 if(off
>= this->size
)
3647 beg
= basic_string_wchar_const_ptr(this);
3648 for(p
=beg
+off
; p
>=beg
; p
--)
3649 if(MSVCP_char_traits_wchar_find(find
, len
, p
))
3653 return MSVCP_basic_string_wchar_npos
;
3656 /* ?find_last_of@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEIABV12@I@Z */
3657 /* ?find_last_of@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBA_KAEBV12@_K@Z */
3658 /* ?find_last_of@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEIABV12@I@Z */
3659 /* ?find_last_of@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBA_KAEBV12@_K@Z */
3660 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_find_last_of
, 12)
3661 MSVCP_size_t __thiscall
MSVCP_basic_string_wchar_find_last_of(
3662 const basic_string_wchar
*this, const basic_string_wchar
*find
, MSVCP_size_t off
)
3664 return MSVCP_basic_string_wchar_find_last_of_cstr_substr(this,
3665 basic_string_wchar_const_ptr(find
), off
, find
->size
);
3668 /* ?find_last_of@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEIPB_WI@Z */
3669 /* ?find_last_of@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBA_KPEB_W_K@Z */
3670 /* ?find_last_of@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEIPBGI@Z */
3671 /* ?find_last_of@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBA_KPEBG_K@Z */
3672 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_find_last_of_cstr
, 12)
3673 MSVCP_size_t __thiscall
MSVCP_basic_string_wchar_find_last_of_cstr(
3674 const basic_string_wchar
*this, const wchar_t *find
, MSVCP_size_t off
)
3676 return MSVCP_basic_string_wchar_find_last_of_cstr_substr(
3677 this, find
, off
, MSVCP_char_traits_wchar_length(find
));
3680 /* ?find_last_of@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEI_WI@Z */
3681 /* ?find_last_of@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBA_K_W_K@Z */
3682 /* ?find_last_of@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEIGI@Z */
3683 /* ?find_last_of@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBA_KG_K@Z */
3684 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_find_last_of_ch
, 12)
3685 MSVCP_size_t __thiscall
MSVCP_basic_string_wchar_find_last_of_ch(
3686 const basic_string_wchar
*this, wchar_t ch
, MSVCP_size_t off
)
3688 return MSVCP_basic_string_wchar_find_last_of_cstr_substr(this, &ch
, off
, 1);
3691 /* ?find_last_not_of@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEIPB_WII@Z */
3692 /* ?find_last_not_of@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBA_KPEB_W_K1@Z */
3693 /* ?find_last_not_of@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEIPBGII@Z */
3694 /* ?find_last_not_of@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBA_KPEBG_K1@Z */
3695 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_find_last_not_of_cstr_substr
, 16)
3696 MSVCP_size_t __thiscall
MSVCP_basic_string_wchar_find_last_not_of_cstr_substr(
3697 const basic_string_wchar
*this, const wchar_t *find
, MSVCP_size_t off
, MSVCP_size_t len
)
3699 const wchar_t *p
, *beg
;
3701 TRACE("%p %p %lu %lu\n", this, find
, off
, len
);
3704 if(off
>= this->size
)
3707 beg
= basic_string_wchar_const_ptr(this);
3708 for(p
=beg
+off
; p
>=beg
; p
--)
3709 if(!MSVCP_char_traits_wchar_find(find
, len
, p
))
3713 return MSVCP_basic_string_wchar_npos
;
3716 /* ?find_last_not_of@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEIABV12@I@Z */
3717 /* ?find_last_not_of@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBA_KAEBV12@_K@Z */
3718 /* ?find_last_not_of@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEIABV12@I@Z */
3719 /* ?find_last_not_of@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBA_KAEBV12@_K@Z */
3720 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_find_last_not_of
, 12)
3721 MSVCP_size_t __thiscall
MSVCP_basic_string_wchar_find_last_not_of(
3722 const basic_string_wchar
*this, const basic_string_wchar
*find
, MSVCP_size_t off
)
3724 return MSVCP_basic_string_wchar_find_last_not_of_cstr_substr(this,
3725 basic_string_wchar_const_ptr(find
), off
, find
->size
);
3728 /* ?find_last_not_of@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEIPB_WI@Z */
3729 /* ?find_last_not_of@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBA_KPEB_W_K@Z */
3730 /* ?find_last_not_of@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEIPBGI@Z */
3731 /* ?find_last_not_of@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBA_KPEBG_K@Z */
3732 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_find_last_not_of_cstr
, 12)
3733 MSVCP_size_t __thiscall
MSVCP_basic_string_wchar_find_last_not_of_cstr(
3734 const basic_string_wchar
*this, const wchar_t *find
, MSVCP_size_t off
)
3736 return MSVCP_basic_string_wchar_find_last_not_of_cstr_substr(
3737 this, find
, off
, MSVCP_char_traits_wchar_length(find
));
3740 /* ?find_last_not_of@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEI_WI@Z */
3741 /* ?find_last_not_of@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBA_K_W_K@Z */
3742 /* ?find_last_not_of@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEIGI@Z */
3743 /* ?find_last_not_of@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBA_KG_K@Z */
3744 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_find_last_not_of_ch
, 12)
3745 MSVCP_size_t __thiscall
MSVCP_basic_string_wchar_find_last_not_of_ch(
3746 const basic_string_wchar
*this, wchar_t ch
, MSVCP_size_t off
)
3748 return MSVCP_basic_string_wchar_find_last_not_of_cstr_substr(this, &ch
, off
, 1);
3751 /* ?replace@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV12@IIPB_WI@Z */
3752 /* ?replace@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAAEAV12@_K0PEB_W0@Z */
3753 /* ?replace@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV12@IIPBGI@Z */
3754 /* ?replace@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAAEAV12@_K0PEBG0@Z */
3755 DEFINE_THISCALL_WRAPPER(basic_string_wchar_replace_cstr_len
, 20)
3756 basic_string_wchar
* __thiscall
basic_string_wchar_replace_cstr_len(basic_string_wchar
*this,
3757 MSVCP_size_t off
, MSVCP_size_t len
, const wchar_t *str
, MSVCP_size_t str_len
)
3759 MSVCP_size_t inside_pos
= -1;
3760 wchar_t *ptr
= basic_string_wchar_ptr(this);
3762 TRACE("%p %ld %ld %p %ld\n", this, off
, len
, str
, str_len
);
3764 if(this->size
< off
)
3765 MSVCP__String_base_Xran();
3767 if(len
> this->size
-off
)
3768 len
= this->size
-off
;
3770 if(MSVCP_basic_string_wchar_npos
-str_len
<= this->size
-len
)
3771 MSVCP__String_base_Xlen();
3773 if(basic_string_wchar_inside(this, str
))
3774 inside_pos
= str
-ptr
;
3777 basic_string_wchar_grow(this, this->size
-len
+str_len
, FALSE
);
3778 ptr
= basic_string_wchar_ptr(this);
3781 if(inside_pos
== -1) {
3782 memmove(ptr
+off
+str_len
, ptr
+off
+len
, (this->size
-off
-len
)*sizeof(wchar_t));
3783 memcpy(ptr
+off
, str
, str_len
*sizeof(wchar_t));
3784 } else if(len
>= str_len
) {
3785 memmove(ptr
+off
, ptr
+inside_pos
, str_len
*sizeof(wchar_t));
3786 memmove(ptr
+off
+str_len
, ptr
+off
+len
, (this->size
-off
-len
)*sizeof(wchar_t));
3790 memmove(ptr
+off
+str_len
, ptr
+off
+len
, (this->size
-off
-len
)*sizeof(wchar_t));
3792 if(inside_pos
< off
+len
) {
3793 size
= off
+len
-inside_pos
;
3796 memmove(ptr
+off
, ptr
+inside_pos
, size
*sizeof(wchar_t));
3802 memmove(ptr
+off
+size
, ptr
+off
+str_len
, (str_len
-size
)*sizeof(wchar_t));
3805 basic_string_wchar_eos(this, this->size
-len
+str_len
);
3809 /* ?replace@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV12@IIPB_W@Z */
3810 /* ?replace@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAAEAV12@_K0PEB_W@Z */
3811 /* ?replace@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV12@IIPBG@Z */
3812 /* ?replace@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAAEAV12@_K0PEBG@Z */
3813 DEFINE_THISCALL_WRAPPER(basic_string_wchar_replace_cstr
, 16)
3814 basic_string_wchar
* __thiscall
basic_string_wchar_replace_cstr(basic_string_wchar
*this,
3815 MSVCP_size_t off
, MSVCP_size_t len
, const wchar_t *str
)
3817 return basic_string_wchar_replace_cstr_len(this, off
, len
, str
,
3818 MSVCP_char_traits_wchar_length(str
));
3821 /* ?replace@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV12@IIABV12@II@Z */
3822 /* ?replace@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAAEAV12@_K0AEBV12@00@Z */
3823 /* ?replace@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV12@IIABV12@II@Z */
3824 /* ?replace@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAAEAV12@_K0AEBV12@00@Z */
3825 DEFINE_THISCALL_WRAPPER(basic_string_wchar_replace_substr
, 24)
3826 basic_string_wchar
* __thiscall
basic_string_wchar_replace_substr(basic_string_wchar
*this, MSVCP_size_t off
,
3827 MSVCP_size_t len
, const basic_string_wchar
*str
, MSVCP_size_t str_off
, MSVCP_size_t str_len
)
3829 if(str
->size
< str_off
)
3830 MSVCP__String_base_Xran();
3832 if(str_len
> str
->size
-str_off
)
3833 str_len
= str
->size
-str_off
;
3835 return basic_string_wchar_replace_cstr_len(this, off
, len
,
3836 basic_string_wchar_const_ptr(str
)+str_off
, str_len
);
3839 /* ?replace@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV12@IIABV12@@Z */
3840 /* ?replace@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAAEAV12@_K0AEBV12@@Z */
3841 /* ?replace@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV12@IIABV12@@Z */
3842 /* ?replace@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAAEAV12@_K0AEBV12@@Z */
3843 DEFINE_THISCALL_WRAPPER(basic_string_wchar_replace
, 16)
3844 basic_string_wchar
* __thiscall
basic_string_wchar_replace(basic_string_wchar
*this,
3845 MSVCP_size_t off
, MSVCP_size_t len
, const basic_string_wchar
*str
)
3847 return basic_string_wchar_replace_cstr_len(this, off
, len
,
3848 basic_string_wchar_const_ptr(str
), str
->size
);
3851 /* ?replace@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV12@III_W@Z */
3852 /* ?replace@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAAEAV12@_K00_W@Z */
3853 /* ?replace@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV12@IIIG@Z */
3854 /* ?replace@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAAEAV12@_K00G@Z */
3855 DEFINE_THISCALL_WRAPPER(basic_string_wchar_replace_ch
, 20)
3856 basic_string_wchar
* __thiscall
basic_string_wchar_replace_ch(basic_string_wchar
*this,
3857 MSVCP_size_t off
, MSVCP_size_t len
, MSVCP_size_t count
, wchar_t ch
)
3859 wchar_t *ptr
= basic_string_wchar_ptr(this);
3861 TRACE("%p %ld %ld %ld %c\n", this, off
, len
, count
, ch
);
3863 if(this->size
< off
)
3864 MSVCP__String_base_Xran();
3866 if(len
> this->size
-off
)
3867 len
= this->size
-off
;
3869 if(MSVCP_basic_string_wchar_npos
-count
<= this->size
-len
)
3870 MSVCP__String_base_Xlen();
3873 basic_string_wchar_grow(this, this->size
-len
+count
, FALSE
);
3874 ptr
= basic_string_wchar_ptr(this);
3877 memmove(ptr
+off
+count
, ptr
+off
+len
, (this->size
-off
-len
)*sizeof(wchar_t));
3878 MSVCP_char_traits_wchar_assignn(ptr
+off
, count
, ch
);
3879 basic_string_wchar_eos(this, this->size
-len
+count
);
3884 /* ?insert@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV12@IABV12@@Z */
3885 /* ?insert@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAAEAV12@_KAEBV12@@Z */
3886 /* ?insert@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV12@IABV12@@Z */
3887 /* ?insert@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAAEAV12@_KAEBV12@@Z */
3888 DEFINE_THISCALL_WRAPPER(basic_string_wchar_insert
, 12)
3889 basic_string_wchar
* __thiscall
basic_string_wchar_insert(basic_string_wchar
*this,
3890 MSVCP_size_t off
, const basic_string_wchar
*str
)
3892 return basic_string_wchar_replace(this, off
, 0, str
);
3895 /* ?insert@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV12@IABV12@II@Z */
3896 /* ?insert@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAAEAV12@_KAEBV12@00@Z */
3897 /* ?insert@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV12@IABV12@II@Z */
3898 /* ?insert@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAAEAV12@_KAEBV12@00@Z */
3899 DEFINE_THISCALL_WRAPPER(basic_string_wchar_insert_substr
, 20)
3900 basic_string_wchar
* __thiscall
basic_string_wchar_insert_substr(
3901 basic_string_wchar
*this, MSVCP_size_t off
, const basic_string_wchar
*str
,
3902 MSVCP_size_t str_off
, MSVCP_size_t str_count
)
3904 return basic_string_wchar_replace_substr(this, off
, 0, str
, str_off
, str_count
);
3907 /* ?insert@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV12@IPB_W@Z */
3908 /* ?insert@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAAEAV12@_KPEB_W@Z */
3909 /* ?insert@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV12@IPBG@Z */
3910 /* ?insert@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAAEAV12@_KPEBG@Z */
3911 DEFINE_THISCALL_WRAPPER(basic_string_wchar_insert_cstr
, 12)
3912 basic_string_wchar
* __thiscall
basic_string_wchar_insert_cstr(
3913 basic_string_wchar
*this, MSVCP_size_t off
, const wchar_t *str
)
3915 return basic_string_wchar_replace_cstr(this, off
, 0, str
);
3918 /* ?insert@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV12@IPB_WI@Z */
3919 /* ?insert@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAAEAV12@_KPEB_W0@Z */
3920 /* ?insert@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV12@IPBGI@Z */
3921 /* ?insert@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAAEAV12@_KPEBG0@Z */
3922 DEFINE_THISCALL_WRAPPER(basic_string_wchar_insert_cstr_len
, 16)
3923 basic_string_wchar
* __thiscall
basic_string_wchar_insert_cstr_len(basic_string_wchar
*this,
3924 MSVCP_size_t off
, const wchar_t *str
, MSVCP_size_t str_len
)
3926 return basic_string_wchar_replace_cstr_len(this, off
, 0, str
, str_len
);
3929 /* ?insert@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV12@II_W@Z */
3930 /* ?insert@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAAEAV12@_K0_W@Z */
3931 /* ?insert@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV12@IIG@Z */
3932 /* ?insert@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAAEAV12@_K0G@Z */
3933 DEFINE_THISCALL_WRAPPER(basic_string_wchar_insert_chn
, 16)
3934 basic_string_wchar
* __thiscall
basic_string_wchar_insert_chn(basic_string_wchar
*this,
3935 MSVCP_size_t off
, MSVCP_size_t count
, wchar_t ch
)
3937 return basic_string_wchar_replace_ch(this, off
, 0, count
, ch
);
3940 /* ??A?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAA_WI@Z */
3941 /* ??A?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAAEA_W_K@Z */
3942 /* ??A?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAGI@Z */
3943 /* ??A?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAAEAG_K@Z */
3944 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_operator_at
, 8)
3945 wchar_t* __thiscall
MSVCP_basic_string_wchar_operator_at(
3946 basic_string_wchar
*this, MSVCP_size_t pos
)
3948 TRACE("%p %lu\n", this, pos
);
3950 assert(this->size
>= pos
);
3951 return basic_string_wchar_ptr(this)+pos
;
3954 /* ??A?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEAB_WI@Z */
3955 /* ??A?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBAAEB_W_K@Z */
3956 /* ??A?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEABGI@Z */
3957 /* ??A?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBAAEBG_K@Z */
3958 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_const_operator_at
, 8)
3959 const wchar_t* __thiscall
MSVCP_basic_string_wchar_const_operator_at(
3960 const basic_string_wchar
*this, MSVCP_size_t pos
)
3962 TRACE("%p %lu\n", this, pos
);
3964 assert(this->size
>= pos
);
3965 return basic_string_wchar_const_ptr(this)+pos
;
3968 /* ??A?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAA_WU_Size_type_nosscl@01@@Z */
3969 /* ??A?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAAEA_WU_Size_type_nosscl@01@@Z */
3970 /* ??A?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAGU_Size_type_nosscl@01@@Z */
3971 /* ??A?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAAEAGU_Size_type_nosscl@01@@Z */
3972 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_operator_at_noverify
, 8)
3973 wchar_t* __thiscall
MSVCP_basic_string_wchar_operator_at_noverify(
3974 basic_string_wchar
*this, size_t_noverify pos
)
3976 TRACE("%p %lu\n", this, pos
.val
);
3977 return basic_string_wchar_ptr(this)+pos
.val
;
3980 /* ??A?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEAB_WU_Size_type_nosscl@01@@Z */
3981 /* ??A?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBAAEB_WU_Size_type_nosscl@01@@Z */
3982 /* ??A?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEABGU_Size_type_nosscl@01@@Z */
3983 /* ??A?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBAAEBGU_Size_type_nosscl@01@@Z */
3984 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_operator_const_at_noverify
, 8)
3985 const wchar_t* __thiscall
MSVCP_basic_string_wchar_operator_const_at_noverify(
3986 const basic_string_wchar
*this, size_t_noverify pos
)
3988 TRACE("%p %lu\n", this, pos
.val
);
3989 return basic_string_wchar_const_ptr(this)+pos
.val
;
3992 /* ?at@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAA_WI@Z */
3993 /* ?at@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAAEA_W_K@Z */
3994 /* ?at@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAGI@Z */
3995 /* ?at@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAAEAG_K@Z */
3996 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_at
, 8)
3997 wchar_t* __thiscall
MSVCP_basic_string_wchar_at(
3998 basic_string_wchar
*this, MSVCP_size_t pos
)
4000 TRACE("%p %lu\n", this, pos
);
4002 if(this->size
<= pos
)
4003 MSVCP__String_base_Xran();
4005 return basic_string_wchar_ptr(this)+pos
;
4008 /* ?at@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEAB_WI@Z */
4009 /* ?at@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBAAEB_W_K@Z */
4010 /* ?at@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEABGI@Z */
4011 /* ?at@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBAAEBG_K@Z */
4012 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_const_at
, 8)
4013 const wchar_t* __thiscall
MSVCP_basic_string_wchar_const_at(
4014 const basic_string_wchar
*this, MSVCP_size_t pos
)
4016 TRACE("%p %lu\n", this, pos
);
4018 if(this->size
<= pos
)
4019 MSVCP__String_base_Xran();
4021 return basic_string_wchar_const_ptr(this)+pos
;
4024 /* ?resize@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEXI_W@Z */
4025 /* ?resize@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAX_K_W@Z */
4026 /* ?resize@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEXIG@Z */
4027 /* ?resize@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAX_KG@Z */
4028 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_resize_ch
, 12)
4029 void __thiscall
MSVCP_basic_string_wchar_resize_ch(
4030 basic_string_wchar
*this, MSVCP_size_t size
, wchar_t ch
)
4032 TRACE("%p %lu %c\n", this, size
, ch
);
4034 if(size
<= this->size
)
4035 MSVCP_basic_string_wchar_erase(this, size
, this->size
);
4037 MSVCP_basic_string_wchar_append_len_ch(this, size
-this->size
, ch
);
4040 /* ?resize@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEXI@Z */
4041 /* ?resize@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAX_K@Z */
4042 /* ?resize@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEXI@Z */
4043 /* ?resize@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAX_K@Z */
4044 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_resize
, 8)
4045 void __thiscall
MSVCP_basic_string_wchar_resize(
4046 basic_string_wchar
*this, MSVCP_size_t size
)
4048 MSVCP_basic_string_wchar_resize_ch(this, size
, '\0');
4051 /* ?clear@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEXXZ */
4052 /* ?clear@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAXXZ */
4053 /* ?clear@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEXXZ */
4054 /* ?clear@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAXXZ */
4055 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_clear
, 4)
4056 void __thiscall
MSVCP_basic_string_wchar_clear(basic_string_wchar
*this)
4058 basic_string_wchar_eos(this, 0);
4061 /* _String_val class */
4062 /* ??_F?$_String_val@DV?$allocator@D@std@@@std@@QAEXXZ */
4063 /* ??_F?$_String_val@DV?$allocator@D@std@@@std@@QEAAXXZ */
4064 /* ??_F?$_String_val@GV?$allocator@G@std@@@std@@QAEXXZ */
4065 /* ??_F?$_String_val@GV?$allocator@G@std@@@std@@QEAAXXZ */
4066 /* ??_F?$_String_val@_WV?$allocator@_W@std@@@std@@QAEXXZ */
4067 /* ??_F?$_String_val@_WV?$allocator@_W@std@@@std@@QEAAXXZ */
4068 DEFINE_THISCALL_WRAPPER(_String_val_ctor
, 4)
4069 void* __thiscall
_String_val_ctor(void *this)
4071 TRACE("%p\n", this);
4075 /* ??0?$_String_val@DV?$allocator@D@std@@@std@@IAE@V?$allocator@D@1@@Z */
4076 /* ??0?$_String_val@DV?$allocator@D@std@@@std@@IEAA@V?$allocator@D@1@@Z */
4077 /* ??0?$_String_val@GV?$allocator@G@std@@@std@@IAE@V?$allocator@G@1@@Z */
4078 /* ??0?$_String_val@GV?$allocator@G@std@@@std@@IEAA@V?$allocator@G@1@@Z */
4079 /* ??0?$_String_val@_WV?$allocator@_W@std@@@std@@IAE@V?$allocator@_W@1@@Z */
4080 /* ??0?$_String_val@_WV?$allocator@_W@std@@@std@@IEAA@V?$allocator@_W@1@@Z */
4081 /* ??0?$_String_val@DV?$allocator@D@std@@@std@@QAE@ABV01@@Z */
4082 /* ??0?$_String_val@DV?$allocator@D@std@@@std@@QEAA@AEBV01@@Z */
4083 /* ??0?$_String_val@GV?$allocator@G@std@@@std@@QAE@ABV01@@Z */
4084 /* ??0?$_String_val@GV?$allocator@G@std@@@std@@QEAA@AEBV01@@Z */
4085 /* ??0?$_String_val@_WV?$allocator@_W@std@@@std@@QAE@ABV01@@Z */
4086 /* ??0?$_String_val@_WV?$allocator@_W@std@@@std@@QEAA@AEBV01@@Z */
4087 /* ??4?$_String_val@DV?$allocator@D@std@@@std@@QAEAAV01@ABV01@@Z */
4088 /* ??4?$_String_val@DV?$allocator@D@std@@@std@@QEAAAEAV01@AEBV01@@Z */
4089 /* ??4?$_String_val@GV?$allocator@G@std@@@std@@QAEAAV01@ABV01@@Z */
4090 /* ??4?$_String_val@GV?$allocator@G@std@@@std@@QEAAAEAV01@AEBV01@@Z */
4091 /* ??4?$_String_val@_WV?$allocator@_W@std@@@std@@QAEAAV01@ABV01@@Z */
4092 /* ??4?$_String_val@_WV?$allocator@_W@std@@@std@@QEAAAEAV01@AEBV01@@Z */
4093 /* ??4?$_String_val@DV?$allocator@D@std@@@std@@QAEAAV01@ABV01@@Z */
4094 DEFINE_THISCALL_WRAPPER(_String_val_null_ctor
, 8)
4095 void* __thiscall
_String_val_null_ctor(void *this, const void *misc
)
4097 TRACE("%p %p\n", this, misc
);
4101 #if _MSVCP_VER < 80 /* old iterator functions */
4105 } basic_string_char_iterator
;
4109 } basic_string_wchar_iterator
;
4111 /* ?_Pdif@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@KAIVconst_iterator@12@0@Z */
4112 /* ?_Pdif@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@CAIV?$_Ptrit@DHPBDABDPADAAD@2@0@Z */
4113 MSVCP_size_t __cdecl
basic_string_char__Pdif(basic_string_char_iterator i1
, basic_string_char_iterator i2
)
4115 TRACE("(%p %p)\n", i1
.pos
, i2
.pos
);
4116 return !i1
.pos
? 0 : i1
.pos
-i2
.pos
;
4119 /* ?erase@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE?AViterator@12@V312@0@Z */
4120 /* ?erase@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE?AV?$_Ptrit@DHPADAADPADAAD@2@V32@0@Z */
4121 DEFINE_THISCALL_WRAPPER(basic_string_char_erase_iter_range
, 16)
4122 basic_string_char_iterator
* __thiscall
basic_string_char_erase_iter_range(basic_string_char
*this,
4123 basic_string_char_iterator
*ret
, basic_string_char_iterator beg
, basic_string_char_iterator end
)
4127 ret
->pos
= basic_string_char_ptr(this);
4128 off
= basic_string_char__Pdif(beg
, *ret
);
4130 MSVCP_basic_string_char_erase(this, off
, basic_string_char__Pdif(end
, beg
));
4132 ret
->pos
= basic_string_char_ptr(this)+off
;
4136 /* ?erase@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE?AViterator@12@V312@@Z */
4137 /* ?erase@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE?AV?$_Ptrit@DHPADAADPADAAD@2@V32@@Z */
4138 DEFINE_THISCALL_WRAPPER(basic_string_char_erase_iter
, 12)
4139 basic_string_char_iterator
* __thiscall
basic_string_char_erase_iter(basic_string_char
*this,
4140 basic_string_char_iterator
*ret
, basic_string_char_iterator pos
)
4144 ret
->pos
= basic_string_char_ptr(this);
4145 off
= basic_string_char__Pdif(pos
, *ret
);
4147 MSVCP_basic_string_char_erase(this, off
, 1);
4149 ret
->pos
= basic_string_char_ptr(this)+off
;
4153 /* ?assign@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@Vconst_iterator@12@0@Z */
4154 /* ?assign@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@V?$_Ptrit@DHPBDABDPADAAD@2@0@Z */
4155 DEFINE_THISCALL_WRAPPER(basic_string_char_assign_iter
, 12)
4156 basic_string_char
* __thiscall
basic_string_char_assign_iter(basic_string_char
*this,
4157 basic_string_char_iterator beg
, basic_string_char_iterator end
)
4159 return MSVCP_basic_string_char_assign_ptr_ptr(this, beg
.pos
, end
.pos
);
4162 /* ??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@Vconst_iterator@01@0@Z */
4163 /* ??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@V?$_Ptrit@DHPBDABDPADAAD@1@0@Z */
4164 DEFINE_THISCALL_WRAPPER(basic_string_char_ctor_iter
, 12)
4165 basic_string_char
* __thiscall
basic_string_char_ctor_iter(basic_string_char
*this,
4166 basic_string_char_iterator beg
, basic_string_char_iterator end
)
4168 return MSVCP_basic_string_char_ctor_cstr_len(this, beg
.pos
, end
.pos
-beg
.pos
);
4171 /* ?append@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@Vconst_iterator@12@0@Z */
4172 /* ?append@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@V?$_Ptrit@DHPBDABDPADAAD@2@0@Z */
4173 DEFINE_THISCALL_WRAPPER(basic_string_char_append_iter
, 12)
4174 basic_string_char
* __thiscall
basic_string_char_append_iter(basic_string_char
*this,
4175 basic_string_char_iterator beg
, basic_string_char_iterator end
)
4177 return basic_string_char_replace_cstr_len(this, this->size
, 0, beg
.pos
, end
.pos
-beg
.pos
);
4180 /* ?replace@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@Viterator@12@0Vconst_iterator@12@1@Z */
4181 /* ?replace@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@V?$_Ptrit@DHPADAADPADAAD@2@0V?$_Ptrit@DHPBDABDPADAAD@2@1@Z */
4182 DEFINE_THISCALL_WRAPPER(basic_string_char_replace_iter_iter
, 20)
4183 basic_string_char
* __thiscall
basic_string_char_replace_iter_iter(basic_string_char
*this,
4184 basic_string_char_iterator beg
, basic_string_char_iterator end
,
4185 basic_string_char_iterator rbeg
, basic_string_char_iterator rend
)
4187 return basic_string_char_replace_cstr_len(this, beg
.pos
-basic_string_char_ptr(this),
4188 end
.pos
-beg
.pos
, rbeg
.pos
, rend
.pos
-rbeg
.pos
);
4191 /* ?replace@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@Viterator@12@0ABV12@@Z */
4192 /* ?replace@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@V?$_Ptrit@DHPADAADPADAAD@2@0ABV12@@Z */
4193 DEFINE_THISCALL_WRAPPER(basic_string_char_replace_iter_bstr
, 16)
4194 basic_string_char
* __thiscall
basic_string_char_replace_iter_bstr(basic_string_char
*this,
4195 basic_string_char_iterator beg
, basic_string_char_iterator end
, const basic_string_char
*str
)
4197 return basic_string_char_replace_cstr_len(this, beg
.pos
-basic_string_char_ptr(this),
4198 end
.pos
-beg
.pos
, basic_string_char_const_ptr(str
), str
->size
);
4201 /* ?replace@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@Viterator@12@0ID@Z */
4202 /* ?replace@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@V?$_Ptrit@DHPADAADPADAAD@2@0ID@Z */
4203 DEFINE_THISCALL_WRAPPER(basic_string_char_replace_iter_ch
, 20)
4204 basic_string_char
* __thiscall
basic_string_char_replace_iter_ch(basic_string_char
*this,
4205 basic_string_char_iterator beg
, basic_string_char_iterator end
, MSVCP_size_t count
, char ch
)
4207 /* TODO: add more efficient implementation */
4208 MSVCP_size_t off
= beg
.pos
-basic_string_char_ptr(this);
4210 basic_string_char_replace_cstr_len(this, off
, end
.pos
-beg
.pos
, NULL
, 0);
4212 basic_string_char_replace_cstr_len(this, off
, 0, &ch
, 1);
4216 static basic_string_char
* basic_string_char_replace_iter_ptr_ptr(basic_string_char
*this,
4217 basic_string_char_iterator beg
, basic_string_char_iterator end
,
4218 const char *res_beg
, const char *res_end
)
4220 basic_string_char_iterator begin
= { basic_string_char_ptr(this) };
4221 return basic_string_char_replace_cstr_len(this, basic_string_char__Pdif(beg
, begin
),
4222 basic_string_char__Pdif(end
, beg
), res_beg
, res_end
-res_beg
);
4225 /* ?replace@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@Viterator@12@0PBD1@Z */
4226 /* ?replace@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@V?$_Ptrit@DHPADAADPADAAD@2@0PBD1@Z */
4227 DEFINE_THISCALL_WRAPPER(basic_string_char_replace_iter_beg_end
, 20)
4228 basic_string_char
* __thiscall
basic_string_char_replace_iter_beg_end(basic_string_char
*this,
4229 basic_string_char_iterator beg
, basic_string_char_iterator end
, const char *rbeg
, const char *rend
)
4231 return basic_string_char_replace_cstr_len(this, beg
.pos
-basic_string_char_ptr(this),
4232 end
.pos
-beg
.pos
, rbeg
, rend
-rbeg
);
4235 /* ?replace@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@Viterator@12@0PBD@Z */
4236 /* ?replace@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@V?$_Ptrit@DHPADAADPADAAD@2@0PBD@Z */
4237 DEFINE_THISCALL_WRAPPER(basic_string_char_replace_iter_cstr
, 16)
4238 basic_string_char
* __thiscall
basic_string_char_replace_iter_cstr(basic_string_char
*this,
4239 basic_string_char_iterator beg
, basic_string_char_iterator end
, const char *str
)
4241 return basic_string_char_replace_cstr_len(this, beg
.pos
-basic_string_char_ptr(this),
4242 end
.pos
-beg
.pos
, str
, strlen(str
));
4245 /* ?replace@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@Viterator@12@0PBDI@Z */
4246 /* ?replace@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@V?$_Ptrit@DHPADAADPADAAD@2@0PBDI@Z */
4247 DEFINE_THISCALL_WRAPPER(basic_string_char_replace_iter_cstr_len
, 20)
4248 basic_string_char
* __thiscall
basic_string_char_replace_iter_cstr_len(basic_string_char
*this,
4249 basic_string_char_iterator beg
, basic_string_char_iterator end
, const char *str
, MSVCP_size_t len
)
4251 return basic_string_char_replace_cstr_len(this, beg
.pos
-basic_string_char_ptr(this),
4252 end
.pos
-beg
.pos
, str
, len
);
4255 /* ?insert@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEXViterator@12@ID@Z */
4256 /* ?insert@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEXV?$_Ptrit@DHPADAADPADAAD@2@ID@Z */
4257 DEFINE_THISCALL_WRAPPER(basic_string_char_insert_iter_chn
, 16)
4258 void __thiscall
basic_string_char_insert_iter_chn(basic_string_char
*this,
4259 basic_string_char_iterator where
, MSVCP_size_t count
, char ch
)
4261 basic_string_char_iterator iter
= { basic_string_char_ptr(this) };
4262 MSVCP_size_t off
= basic_string_char__Pdif(where
, iter
);
4264 basic_string_char_insert_chn(this, off
, count
, ch
);
4267 /* ?insert@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE?AViterator@12@V312@D@Z */
4268 /* ?insert@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE?AV?$_Ptrit@DHPADAADPADAAD@2@V32@D@Z */
4269 DEFINE_THISCALL_WRAPPER(basic_string_char_insert_iter_ch
, 16)
4270 basic_string_char_iterator
* __thiscall
basic_string_char_insert_iter_ch(basic_string_char
*this,
4271 basic_string_char_iterator
*ret
, basic_string_char_iterator where
, char ch
)
4275 ret
->pos
= basic_string_char_ptr(this);
4276 off
= basic_string_char__Pdif(where
, *ret
);
4278 basic_string_char_insert_chn(this, off
, 1, ch
);
4279 ret
->pos
= basic_string_char_ptr(this)+off
;
4283 /* ?insert@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE?AViterator@12@V312@@Z */
4284 /* ?insert@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE?AV?$_Ptrit@DHPADAADPADAAD@2@V32@@Z */
4285 DEFINE_THISCALL_WRAPPER(basic_string_char_insert_iter_null
, 12)
4286 basic_string_char_iterator
* __thiscall
basic_string_char_insert_iter_null(basic_string_char
*this,
4287 basic_string_char_iterator
*ret
, basic_string_char_iterator where
)
4289 return basic_string_char_insert_iter_ch(this, ret
, where
, 0);
4292 /* ?insert@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEXViterator@12@PBD1@Z */
4293 DEFINE_THISCALL_WRAPPER(basic_string_char_insert_iter_ptr_ptr
, 16)
4294 void __thiscall
basic_string_char_insert_iter_ptr_ptr(basic_string_char
*this,
4295 basic_string_char_iterator where
, const char *beg
, const char *end
)
4297 basic_string_char_replace_iter_ptr_ptr(this, where
, where
, beg
, end
);
4300 /* ?insert@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEXViterator@12@PBD1@Z */
4301 DEFINE_THISCALL_WRAPPER(basic_string_char_insert_iter_beg_end
, 16)
4302 void __thiscall
basic_string_char_insert_iter_beg_end(basic_string_char
*this,
4303 basic_string_char_iterator where
, basic_string_char_iterator beg
, basic_string_char_iterator end
)
4305 basic_string_char_replace_iter_ptr_ptr(this, where
, where
, beg
.pos
, end
.pos
);
4308 /* ?begin@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE?AViterator@12@XZ */
4309 /* ?begin@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBE?AVconst_iterator@12@XZ */
4310 /* ?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 */
4311 /* ?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 */
4312 /* ?begin@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE?AV?$_Ptrit@DHPADAADPADAAD@2@XZ */
4313 /* ?begin@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBE?AV?$_Ptrit@DHPBDABDPADAAD@2@XZ */
4314 /* ?rend@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE?AV?$reverse_iterator@V?$_Ptrit@DHPADAADPADAAD@std@@@2@XZ */
4315 /* ?rend@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBE?AV?$reverse_iterator@V?$_Ptrit@DHPBDABDPADAAD@std@@@2@XZ */
4316 DEFINE_THISCALL_WRAPPER(basic_string_char_begin
, 8)
4317 basic_string_char_iterator
* __thiscall
basic_string_char_begin(
4318 basic_string_char
*this, basic_string_char_iterator
*ret
)
4320 ret
->pos
= basic_string_char_ptr(this);
4324 /* ?end@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE?AViterator@12@XZ */
4325 /* ?end@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBE?AVconst_iterator@12@XZ */
4326 /* ?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 */
4327 /* ?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 */
4328 /* ?end@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE?AV?$_Ptrit@DHPADAADPADAAD@2@XZ */
4329 /* ?end@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBE?AV?$_Ptrit@DHPBDABDPADAAD@2@XZ */
4330 /* ?rbegin@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE?AV?$reverse_iterator@V?$_Ptrit@DHPADAADPADAAD@std@@@2@XZ */
4331 /* ?rbegin@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBE?AV?$reverse_iterator@V?$_Ptrit@DHPBDABDPADAAD@std@@@2@XZ */
4332 DEFINE_THISCALL_WRAPPER(basic_string_char_end
, 8)
4333 basic_string_char_iterator
* __thiscall
basic_string_char_end(
4334 basic_string_char
*this, basic_string_char_iterator
*ret
)
4336 ret
->pos
= basic_string_char_ptr(this)+this->size
;
4340 /* ?_Pdif@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@KAIVconst_iterator@12@0@Z */
4341 /* ?_Pdif@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@KAIVconst_iterator@12@0@Z */
4342 /* ?_Pdif@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@CAIV?$_Ptrit@_WHPB_WAB_WPA_WAA_W@2@0@Z */
4343 /* ?_Pdif@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@CAIV?$_Ptrit@GHPBGABGPAGAAG@2@0@Z */
4344 MSVCP_size_t __cdecl
basic_string_wchar__Pdif(basic_string_wchar_iterator i1
, basic_string_wchar_iterator i2
)
4346 TRACE("(%p %p)\n", i1
.pos
, i2
.pos
);
4347 return !i1
.pos
? 0 : i1
.pos
-i2
.pos
;
4350 /* ?erase@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE?AViterator@12@V312@0@Z */
4351 /* ?erase@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAE?AViterator@12@V312@0@Z */
4352 /* ?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 */
4353 /* ?erase@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAE?AV?$_Ptrit@GHPAGAAGPAGAAG@2@V32@0@Z */
4354 DEFINE_THISCALL_WRAPPER(basic_string_wchar_erase_iter_range
, 16)
4355 basic_string_wchar_iterator
* __thiscall
basic_string_wchar_erase_iter_range(basic_string_wchar
*this,
4356 basic_string_wchar_iterator
*ret
, basic_string_wchar_iterator beg
, basic_string_wchar_iterator end
)
4360 ret
->pos
= basic_string_wchar_ptr(this);
4361 off
= basic_string_wchar__Pdif(beg
, *ret
);
4363 MSVCP_basic_string_wchar_erase(this, off
, basic_string_wchar__Pdif(end
, beg
));
4365 ret
->pos
= basic_string_wchar_ptr(this)+off
;
4369 /* ?erase@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE?AViterator@12@V312@@Z */
4370 /* ?erase@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAE?AViterator@12@V312@@Z */
4371 /* ?erase@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE?AV?$_Ptrit@_WHPA_WAA_WPA_WAA_W@2@V32@@Z */
4372 /* ?erase@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAE?AV?$_Ptrit@GHPAGAAGPAGAAG@2@V32@@Z */
4373 DEFINE_THISCALL_WRAPPER(basic_string_wchar_erase_iter
, 12)
4374 basic_string_wchar_iterator
* __thiscall
basic_string_wchar_erase_iter(basic_string_wchar
*this,
4375 basic_string_wchar_iterator
*ret
, basic_string_wchar_iterator pos
)
4379 ret
->pos
= basic_string_wchar_ptr(this);
4380 off
= basic_string_wchar__Pdif(pos
, *ret
);
4382 MSVCP_basic_string_wchar_erase(this, off
, 1);
4384 ret
->pos
= basic_string_wchar_ptr(this)+off
;
4388 /* ?assign@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV12@Vconst_iterator@12@0@Z */
4389 /* ?assign@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV12@Vconst_iterator@12@0@Z */
4390 /* ?assign@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV12@V?$_Ptrit@_WHPB_WAB_WPA_WAA_W@2@0@Z */
4391 /* ?assign@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV12@V?$_Ptrit@GHPBGABGPAGAAG@2@0@Z */
4392 DEFINE_THISCALL_WRAPPER(basic_string_wchar_assign_iter
, 12)
4393 basic_string_wchar
* __thiscall
basic_string_wchar_assign_iter(basic_string_wchar
*this,
4394 basic_string_wchar_iterator beg
, basic_string_wchar_iterator end
)
4396 return MSVCP_basic_string_wchar_assign_ptr_ptr(this, beg
.pos
, end
.pos
);
4399 /* ??0?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE@Vconst_iterator@01@0@Z */
4400 /* ??0?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAE@Vconst_iterator@01@0@Z */
4401 /* ??0?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE@V?$_Ptrit@_WHPB_WAB_WPA_WAA_W@1@0@Z */
4402 /* ??0?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAE@V?$_Ptrit@GHPBGABGPAGAAG@1@0@Z */
4403 DEFINE_THISCALL_WRAPPER(basic_string_wchar_ctor_iter
, 12)
4404 basic_string_wchar
* __thiscall
basic_string_wchar_ctor_iter(basic_string_wchar
*this,
4405 basic_string_wchar_iterator beg
, basic_string_wchar_iterator end
)
4407 return MSVCP_basic_string_wchar_ctor_cstr_len(this, beg
.pos
, end
.pos
-beg
.pos
);
4410 /* ?append@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV12@Vconst_iterator@12@0@Z */
4411 /* ?append@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV12@Vconst_iterator@12@0@Z */
4412 /* ?append@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV12@V?$_Ptrit@_WHPB_WAB_WPA_WAA_W@2@0@Z */
4413 /* ?append@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV12@V?$_Ptrit@GHPBGABGPAGAAG@2@0@Z */
4414 DEFINE_THISCALL_WRAPPER(basic_string_wchar_append_iter
, 12)
4415 basic_string_wchar
* __thiscall
basic_string_wchar_append_iter(basic_string_wchar
*this,
4416 basic_string_wchar_iterator beg
, basic_string_wchar_iterator end
)
4418 return basic_string_wchar_replace_cstr_len(this, this->size
, 0, beg
.pos
, end
.pos
-beg
.pos
);
4421 /* ?replace@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV12@Viterator@12@0Vconst_iterator@12@1@Z */
4422 /* ?replace@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV12@Viterator@12@0Vconst_iterator@12@1@Z */
4423 /* ?replace@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV12@V?$_Ptrit@GHPAGAAGPAGAAG@2@0V?$_Ptrit@GHPBGABGPAGAAG@2@1@Z */
4424 /* ?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 */
4425 DEFINE_THISCALL_WRAPPER(basic_string_wchar_replace_iter_iter
, 20)
4426 basic_string_wchar
* __thiscall
basic_string_wchar_replace_iter_iter(basic_string_wchar
*this,
4427 basic_string_wchar_iterator beg
, basic_string_wchar_iterator end
,
4428 basic_string_wchar_iterator rbeg
, basic_string_wchar_iterator rend
)
4430 return basic_string_wchar_replace_cstr_len(this, beg
.pos
-basic_string_wchar_ptr(this),
4431 end
.pos
-beg
.pos
, rbeg
.pos
, rend
.pos
-rbeg
.pos
);
4434 /* ?replace@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV12@Viterator@12@0ABV12@@Z */
4435 /* ?replace@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV12@Viterator@12@0ABV12@@Z */
4436 /* ?replace@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV12@V?$_Ptrit@GHPAGAAGPAGAAG@2@0ABV12@@Z */
4437 /* ?replace@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV12@V?$_Ptrit@_WHPA_WAA_WPA_WAA_W@2@0ABV12@@Z */
4438 DEFINE_THISCALL_WRAPPER(basic_string_wchar_replace_iter_bstr
, 16)
4439 basic_string_wchar
* __thiscall
basic_string_wchar_replace_iter_bstr(basic_string_wchar
*this,
4440 basic_string_wchar_iterator beg
, basic_string_wchar_iterator end
, basic_string_wchar
*str
)
4442 return basic_string_wchar_replace_cstr_len(this, beg
.pos
-basic_string_wchar_ptr(this),
4443 end
.pos
-beg
.pos
, basic_string_wchar_ptr(str
), str
->size
);
4446 /* ?replace@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV12@Viterator@12@0IG@Z */
4447 /* ?replace@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV12@Viterator@12@0I_W@Z */
4448 /* ?replace@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV12@V?$_Ptrit@GHPAGAAGPAGAAG@2@0IG@Z */
4449 /* ?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 */
4450 DEFINE_THISCALL_WRAPPER(basic_string_wchar_replace_iter_ch
, 20)
4451 basic_string_wchar
* __thiscall
basic_string_wchar_replace_iter_ch(basic_string_wchar
*this,
4452 basic_string_wchar_iterator beg
, basic_string_wchar_iterator end
, MSVCP_size_t count
, wchar_t ch
)
4454 /* TODO: add more efficient implementation */
4455 MSVCP_size_t off
= beg
.pos
-basic_string_wchar_ptr(this);
4457 basic_string_wchar_replace_cstr_len(this, off
, end
.pos
-beg
.pos
, NULL
, 0);
4459 basic_string_wchar_replace_cstr_len(this, off
, 0, &ch
, 1);
4463 static basic_string_wchar
* basic_string_wchar_replace_iter_ptr_ptr(basic_string_wchar
*this,
4464 basic_string_wchar_iterator beg
, basic_string_wchar_iterator end
,
4465 const wchar_t *res_beg
, const wchar_t *res_end
)
4467 basic_string_wchar_iterator begin
= { basic_string_wchar_ptr(this) };
4468 return basic_string_wchar_replace_cstr_len(this, basic_string_wchar__Pdif(beg
, begin
),
4469 basic_string_wchar__Pdif(end
, beg
), res_beg
, res_end
-res_beg
);
4472 /* ?replace@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV12@Viterator@12@0PBG1@Z */
4473 /* ?replace@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV12@Viterator@12@0PB_W1@Z */
4474 /* ?replace@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV12@V?$_Ptrit@GHPAGAAGPAGAAG@2@0PBG1@Z */
4475 /* ?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 */
4476 DEFINE_THISCALL_WRAPPER(basic_string_wchar_replace_iter_beg_end
, 20)
4477 basic_string_wchar
* __thiscall
basic_string_wchar_replace_iter_beg_end(basic_string_wchar
*this,
4478 basic_string_wchar_iterator beg
, basic_string_wchar_iterator end
,
4479 const wchar_t *rbeg
, const wchar_t *rend
)
4481 return basic_string_wchar_replace_cstr_len(this, beg
.pos
-basic_string_wchar_ptr(this),
4482 end
.pos
-beg
.pos
, rbeg
, rend
-rbeg
);
4485 /* ?replace@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV12@Viterator@12@0PBG@Z */
4486 /* ?replace@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV12@Viterator@12@0PB_W@Z */
4487 /* ?replace@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV12@V?$_Ptrit@GHPAGAAGPAGAAG@2@0PBG@Z */
4488 /* ?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 */
4489 DEFINE_THISCALL_WRAPPER(basic_string_wchar_replace_iter_cstr
, 16)
4490 basic_string_wchar
* __thiscall
basic_string_wchar_replace_iter_cstr(basic_string_wchar
*this,
4491 basic_string_wchar_iterator beg
, basic_string_wchar_iterator end
, const wchar_t *str
)
4493 return basic_string_wchar_replace_cstr_len(this, beg
.pos
-basic_string_wchar_ptr(this),
4494 end
.pos
-beg
.pos
, str
, wcslen(str
));
4497 /* ?replace@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV12@Viterator@12@0PBGI@Z */
4498 /* ?replace@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV12@Viterator@12@0PB_WI@Z */
4499 /* ?replace@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV12@V?$_Ptrit@GHPAGAAGPAGAAG@2@0PBGI@Z */
4500 /* ?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 */
4501 DEFINE_THISCALL_WRAPPER(basic_string_wchar_replace_iter_cstr_len
, 20)
4502 basic_string_wchar
* __thiscall
basic_string_wchar_replace_iter_cstr_len(basic_string_wchar
*this,
4503 basic_string_wchar_iterator beg
, basic_string_wchar_iterator end
,
4504 const wchar_t *str
, MSVCP_size_t len
)
4506 return basic_string_wchar_replace_cstr_len(this, beg
.pos
-basic_string_wchar_ptr(this),
4507 end
.pos
-beg
.pos
, str
, len
);
4510 /* ?insert@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEXViterator@12@I_W@Z */
4511 /* ?insert@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEXViterator@12@IG@Z */
4512 /* ?insert@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEXV?$_Ptrit@_WHPA_WAA_WPA_WAA_W@2@I_W@Z */
4513 /* ?insert@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEXV?$_Ptrit@GHPAGAAGPAGAAG@2@IG@Z */
4514 DEFINE_THISCALL_WRAPPER(basic_string_wchar_insert_iter_chn
, 16)
4515 void __thiscall
basic_string_wchar_insert_iter_chn(basic_string_wchar
*this,
4516 basic_string_wchar_iterator where
, MSVCP_size_t count
, wchar_t ch
)
4518 basic_string_wchar_iterator iter
= { basic_string_wchar_ptr(this) };
4519 MSVCP_size_t off
= basic_string_wchar__Pdif(where
, iter
);
4521 basic_string_wchar_insert_chn(this, off
, count
, ch
);
4524 /* ?insert@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE?AViterator@12@V312@_W@Z */
4525 /* ?insert@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAE?AViterator@12@V312@G@Z */
4526 /* ?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 */
4527 /* ?insert@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAE?AV?$_Ptrit@GHPAGAAGPAGAAG@2@V32@G@Z */
4528 DEFINE_THISCALL_WRAPPER(basic_string_wchar_insert_iter_ch
, 16)
4529 basic_string_wchar_iterator
* __thiscall
basic_string_wchar_insert_iter_ch(basic_string_wchar
*this,
4530 basic_string_wchar_iterator
*ret
, basic_string_wchar_iterator where
, wchar_t ch
)
4534 ret
->pos
= basic_string_wchar_ptr(this);
4535 off
= basic_string_wchar__Pdif(where
, *ret
);
4537 basic_string_wchar_insert_chn(this, off
, 1, ch
);
4538 ret
->pos
= basic_string_wchar_ptr(this)+off
;
4542 /* ?insert@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE?AViterator@12@V312@@Z */
4543 /* ?insert@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAE?AViterator@12@V312@@Z */
4544 /* ?insert@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE?AV?$_Ptrit@_WHPA_WAA_WPA_WAA_W@2@V32@@Z */
4545 /* ?insert@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAE?AV?$_Ptrit@GHPAGAAGPAGAAG@2@V32@@Z */
4546 DEFINE_THISCALL_WRAPPER(basic_string_wchar_insert_iter_null
, 12)
4547 basic_string_wchar_iterator
* __thiscall
basic_string_wchar_insert_iter_null(basic_string_wchar
*this,
4548 basic_string_wchar_iterator
*ret
, basic_string_wchar_iterator where
)
4550 return basic_string_wchar_insert_iter_ch(this, ret
, where
, 0);
4553 /* ?insert@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEXViterator@12@PB_W1@Z */
4554 /* ?insert@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEXViterator@12@PBG1@Z */
4555 /* ?insert@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEXV?$_Ptrit@_WHPA_WAA_WPA_WAA_W@2@PB_W1@Z */
4556 /* ?insert@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEXV?$_Ptrit@GHPAGAAGPAGAAG@2@PBG1@Z */
4557 DEFINE_THISCALL_WRAPPER(basic_string_wchar_insert_iter_ptr_ptr
, 16)
4558 void __thiscall
basic_string_wchar_insert_iter_ptr_ptr(basic_string_wchar
*this,
4559 basic_string_wchar_iterator where
, const wchar_t *beg
, const wchar_t *end
)
4561 basic_string_wchar_replace_iter_ptr_ptr(this, where
, where
, beg
, end
);
4564 /* ?insert@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEXViterator@12@Vconst_iterator@12@1@Z */
4565 /* ?insert@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEXViterator@12@Vconst_iterator@12@1@Z */
4566 /* ?insert@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEXViterator@12@Vconst_iterator@12@1@Z */
4567 /* ?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 */
4568 /* ?insert@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEXV?$_Ptrit@GHPAGAAGPAGAAG@2@V?$_Ptrit@GHPBGABGPAGAAG@2@1@Z */
4569 DEFINE_THISCALL_WRAPPER(basic_string_wchar_insert_iter_beg_end
, 16)
4570 void __thiscall
basic_string_wchar_insert_iter_beg_end(basic_string_wchar
*this,
4571 basic_string_wchar_iterator where
, basic_string_wchar_iterator beg
, basic_string_wchar_iterator end
)
4573 basic_string_wchar_replace_iter_ptr_ptr(this, where
, where
, beg
.pos
, end
.pos
);
4576 /* ?begin@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAE?AViterator@12@XZ */
4577 /* ?begin@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBE?AVconst_iterator@12@XZ */
4578 /* ?begin@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE?AViterator@12@XZ */
4579 /* ?begin@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBE?AVconst_iterator@12@XZ */
4580 /* ?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 */
4581 /* ?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 */
4582 /* ?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 */
4583 /* ?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 */
4584 /* ?begin@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAE?AV?$_Ptrit@GHPAGAAGPAGAAG@2@XZ */
4585 /* ?begin@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBE?AV?$_Ptrit@GHPBGABGPAGAAG@2@XZ */
4586 /* ?begin@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE?AV?$_Ptrit@_WHPA_WAA_WPA_WAA_W@2@XZ */
4587 /* ?begin@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBE?AV?$_Ptrit@_WHPB_WAB_WPA_WAA_W@2@XZ */
4588 /* ?rend@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAE?AV?$reverse_iterator@V?$_Ptrit@GHPAGAAGPAGAAG@std@@@2@XZ */
4589 /* ?rend@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBE?AV?$reverse_iterator@V?$_Ptrit@GHPBGABGPAGAAG@std@@@2@XZ */
4590 /* ?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 */
4591 /* ?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 */
4592 DEFINE_THISCALL_WRAPPER(basic_string_wchar_begin
, 8)
4593 basic_string_wchar_iterator
* __thiscall
basic_string_wchar_begin(
4594 basic_string_wchar
*this, basic_string_wchar_iterator
*ret
)
4596 ret
->pos
= basic_string_wchar_ptr(this);
4600 /* ?end@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAE?AViterator@12@XZ */
4601 /* ?end@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBE?AVconst_iterator@12@XZ */
4602 /* ?end@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE?AViterator@12@XZ */
4603 /* ?end@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBE?AVconst_iterator@12@XZ */
4604 /* ?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 */
4605 /* ?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 */
4606 /* ?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 */
4607 /* ?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 */
4608 /* ?end@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAE?AV?$_Ptrit@GHPAGAAGPAGAAG@2@XZ */
4609 /* ?end@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBE?AV?$_Ptrit@GHPBGABGPAGAAG@2@XZ */
4610 /* ?end@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE?AV?$_Ptrit@_WHPA_WAA_WPA_WAA_W@2@XZ */
4611 /* ?end@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBE?AV?$_Ptrit@_WHPB_WAB_WPA_WAA_W@2@XZ */
4612 /* ?rbegin@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAE?AV?$reverse_iterator@V?$_Ptrit@GHPAGAAGPAGAAG@std@@@2@XZ */
4613 /* ?rbegin@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBE?AV?$reverse_iterator@V?$_Ptrit@GHPBGABGPAGAAG@std@@@2@XZ */
4614 /* ?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 */
4615 /* ?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 */
4616 DEFINE_THISCALL_WRAPPER(basic_string_wchar_end
, 8)
4617 basic_string_wchar_iterator
* __thiscall
basic_string_wchar_end(
4618 basic_string_wchar
*this, basic_string_wchar_iterator
*ret
)
4620 ret
->pos
= basic_string_wchar_ptr(this)+this->size
;
4624 #else /* _MSVCP_VER >= 80, new iterator functions */
4626 /* _String_iterator<char> and _String_const_iterator<char> class */
4628 basic_string_char
*bstr
;
4630 } String_iterator_char
;
4633 #if _MSVCP_VER == 80
4636 const basic_string_char
*bstr
;
4638 } String_reverse_iterator_char
;
4641 basic_string_wchar
*bstr
;
4643 } String_iterator_wchar
;
4646 #if _MSVCP_VER == 80
4649 const basic_string_wchar
*bstr
;
4651 } String_reverse_iterator_wchar
;
4653 /* ?_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 */
4654 /* ?_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 */
4655 MSVCP_size_t __cdecl
MSVCP_basic_string_char_Pdif(String_iterator_char i1
, String_iterator_char i2
)
4657 TRACE("(%p %p) (%p %p)\n", i1
.bstr
, i1
.pos
, i2
.bstr
, i2
.pos
);
4659 if((!i1
.bstr
&& i1
.pos
) || i1
.bstr
!=i2
.bstr
) {
4660 _invalid_parameter(NULL
, NULL
, NULL
, 0, 0);
4664 return !i1
.pos
? 0 : i1
.pos
-i2
.pos
;
4667 /* ?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 */
4668 /* ?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 */
4669 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_erase_iter_range
, 24)
4670 String_iterator_char
* __thiscall
MSVCP_basic_string_char_erase_iter_range(basic_string_char
*this,
4671 String_iterator_char
*ret
, String_iterator_char beg
, String_iterator_char end
)
4676 ret
->pos
= basic_string_char_ptr(this);
4677 off
= MSVCP_basic_string_char_Pdif(beg
, *ret
);
4679 MSVCP_basic_string_char_erase(this, off
, MSVCP_basic_string_char_Pdif(end
, beg
));
4682 ret
->pos
= basic_string_char_ptr(this)+off
;
4686 /* ?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 */
4687 /* ?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 */
4688 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_erase_iter
, 16)
4689 String_iterator_char
* __thiscall
MSVCP_basic_string_char_erase_iter(basic_string_char
*this,
4690 String_iterator_char
*ret
, String_iterator_char pos
)
4695 ret
->pos
= basic_string_char_ptr(this);
4696 off
= MSVCP_basic_string_char_Pdif(pos
, *ret
);
4698 MSVCP_basic_string_char_erase(this, off
, 1);
4701 ret
->pos
= basic_string_char_ptr(this)+off
;
4705 /* ?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 */
4706 /* ?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 */
4707 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_assign_iter
, 20)
4708 basic_string_char
* __thiscall
MSVCP_basic_string_char_assign_iter(basic_string_char
*this,
4709 String_iterator_char beg
, String_iterator_char end
)
4711 return MSVCP_basic_string_char_assign_ptr_ptr(this, beg
.pos
, end
.pos
);
4714 /* ??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 */
4715 /* ??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 */
4716 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_ctor_iter
, 20)
4717 basic_string_char
* __thiscall
MSVCP_basic_string_char_ctor_iter(basic_string_char
*this,
4718 String_iterator_char beg
, String_iterator_char end
)
4720 return MSVCP_basic_string_char_ctor_cstr_len(this, beg
.pos
, end
.pos
-beg
.pos
);
4723 /* ?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 */
4724 /* ?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 */
4725 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_append_iter
, 20)
4726 basic_string_char
* __thiscall
MSVCP_basic_string_char_append_iter(
4727 basic_string_char
*this, String_iterator_char beg
, String_iterator_char end
)
4729 return MSVCP_basic_string_char_append_cstr_len(this, beg
.pos
, end
.pos
-beg
.pos
);
4732 /* ?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 */
4733 /* ?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 */
4734 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_replace_iter_iter
, 36)
4735 basic_string_char
* __thiscall
MSVCP_basic_string_char_replace_iter_iter(basic_string_char
*this,
4736 String_iterator_char beg
, String_iterator_char end
,
4737 String_iterator_char res_beg
, String_iterator_char res_end
)
4739 String_iterator_char begin
= { this, basic_string_char_ptr(this) };
4740 return basic_string_char_replace_cstr_len(this,
4741 MSVCP_basic_string_char_Pdif(beg
, begin
), MSVCP_basic_string_char_Pdif(end
, beg
),
4742 res_beg
.pos
, MSVCP_basic_string_char_Pdif(res_end
, res_beg
));
4745 /* ?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 */
4746 /* ?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 */
4747 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_replace_iter_bstr
, 24)
4748 basic_string_char
* __thiscall
MSVCP_basic_string_char_replace_iter_bstr(basic_string_char
*this,
4749 String_iterator_char beg
, String_iterator_char end
, const basic_string_char
*str
)
4751 String_iterator_char begin
= { this, basic_string_char_ptr(this) };
4752 return basic_string_char_replace(this, MSVCP_basic_string_char_Pdif(beg
, begin
),
4753 MSVCP_basic_string_char_Pdif(end
, beg
), str
);
4756 /* ?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 */
4757 /* ?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 */
4758 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_replace_iter_ch
, 28)
4759 basic_string_char
* __thiscall
MSVCP_basic_string_char_replace_iter_ch(basic_string_char
*this,
4760 String_iterator_char beg
, String_iterator_char end
, MSVCP_size_t count
, char ch
)
4762 String_iterator_char begin
= { this, basic_string_char_ptr(this) };
4763 return basic_string_char_replace_ch(this, MSVCP_basic_string_char_Pdif(beg
, begin
),
4764 MSVCP_basic_string_char_Pdif(end
, beg
), count
, ch
);
4767 /* ?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 */
4768 /* ?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 */
4769 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_replace_iter_ptr_ptr
, 28)
4770 basic_string_char
* __thiscall
MSVCP_basic_string_char_replace_iter_ptr_ptr(basic_string_char
*this,
4771 String_iterator_char beg
, String_iterator_char end
,
4772 const char *res_beg
, const char *res_end
)
4774 String_iterator_char begin
= { this, basic_string_char_ptr(this) };
4775 return basic_string_char_replace_cstr_len(this, MSVCP_basic_string_char_Pdif(beg
, begin
),
4776 MSVCP_basic_string_char_Pdif(end
, beg
), res_beg
, res_end
-res_beg
);
4779 /* ?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 */
4780 /* ?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 */
4781 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_replace_iter_cstr
, 24)
4782 basic_string_char
* __thiscall
MSVCP_basic_string_char_replace_iter_cstr(basic_string_char
*this,
4783 String_iterator_char beg
, String_iterator_char end
, const char *str
)
4785 String_iterator_char begin
= { this, basic_string_char_ptr(this) };
4786 return basic_string_char_replace_cstr(this, MSVCP_basic_string_char_Pdif(beg
, begin
),
4787 MSVCP_basic_string_char_Pdif(end
, beg
), str
);
4790 /* ?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 */
4791 /* ?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 */
4792 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_replace_iter_cstr_len
, 28)
4793 basic_string_char
* __thiscall
MSVCP_basic_string_char_replace_iter_cstr_len(basic_string_char
*this,
4794 String_iterator_char beg
, String_iterator_char end
, const char *str
, MSVCP_size_t len
)
4796 String_iterator_char begin
= { this, basic_string_char_ptr(this) };
4797 return basic_string_char_replace_cstr_len(this, MSVCP_basic_string_char_Pdif(beg
, begin
),
4798 MSVCP_basic_string_char_Pdif(end
, beg
), str
, len
);
4801 /* ?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 */
4802 /* ?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 */
4803 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_insert_iter_chn
, 20)
4804 void __thiscall
MSVCP_basic_string_char_insert_iter_chn(basic_string_char
*this,
4805 String_iterator_char where
, MSVCP_size_t count
, char ch
)
4807 String_iterator_char iter
= { this, basic_string_char_ptr(this) };
4808 MSVCP_size_t off
= MSVCP_basic_string_char_Pdif(where
, iter
);
4810 basic_string_char_insert_chn(this, off
, count
, ch
);
4813 /* ?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 */
4814 /* ?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 */
4815 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_insert_iter_ch
, 20)
4816 String_iterator_char
* __thiscall
MSVCP_basic_string_char_insert_iter_ch(basic_string_char
*this,
4817 String_iterator_char
*ret
, String_iterator_char where
, char ch
)
4822 ret
->pos
= basic_string_char_ptr(this);
4823 off
= MSVCP_basic_string_char_Pdif(where
, *ret
);
4825 basic_string_char_insert_chn(this, off
, 1, ch
);
4826 ret
->pos
= basic_string_char_ptr(this)+off
;
4830 /* ?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 */
4831 /* ?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 */
4832 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_insert_iter_null
, 16)
4833 String_iterator_char
* __thiscall
MSVCP_basic_string_char_insert_iter_null(basic_string_char
*this,
4834 String_iterator_char
*ret
, String_iterator_char where
)
4836 return MSVCP_basic_string_char_insert_iter_ch(this, ret
, where
, 0);
4839 /* ?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 */
4840 /* ?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 */
4841 DEFINE_THISCALL_WRAPPER(basic_string_char_insert_iter_beg_end
, 28)
4842 void __thiscall
basic_string_char_insert_iter_beg_end(basic_string_char
*this,
4843 String_iterator_char where
, String_iterator_char beg
, String_iterator_char end
)
4845 MSVCP_basic_string_char_replace_iter_iter(this, where
, where
, beg
, end
);
4848 /* ?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 */
4849 /* ?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 */
4850 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_insert_iter_ptr_ptr
, 20)
4851 void __thiscall
MSVCP_basic_string_char_insert_iter_ptr_ptr(basic_string_char
*this,
4852 String_iterator_char where
, const char *beg
, const char *end
)
4854 MSVCP_basic_string_char_replace_iter_ptr_ptr(this, where
, where
, beg
, end
);
4857 /* ?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 */
4858 /* ?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 */
4859 /* ?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 */
4860 /* ?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 */
4861 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_begin
, 8)
4862 String_iterator_char
* __thiscall
MSVCP_basic_string_char_begin(
4863 basic_string_char
*this, String_iterator_char
*ret
)
4865 TRACE("%p\n", this);
4868 ret
->pos
= basic_string_char_const_ptr(this);
4872 /* ?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 */
4873 /* ?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 */
4874 /* ?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 */
4875 /* ?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 */
4876 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_end
, 8)
4877 String_iterator_char
* __thiscall
MSVCP_basic_string_char_end(
4878 basic_string_char
*this, String_iterator_char
*ret
)
4880 TRACE("%p\n", this);
4883 ret
->pos
= basic_string_char_const_ptr(this)+this->size
;
4887 /* ?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 */
4888 /* ?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 */
4889 /* ?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 */
4890 /* ?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 */
4891 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_rbegin
, 8)
4892 String_reverse_iterator_char
* __thiscall
MSVCP_basic_string_char_rbegin(
4893 basic_string_char
*this, String_reverse_iterator_char
*ret
)
4895 TRACE("%p\n", this);
4897 #if _MSVCP_VER == 80
4901 ret
->pos
= basic_string_char_const_ptr(this)+this->size
;
4905 /* ?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 */
4906 /* ?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 */
4907 /* ?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 */
4908 /* ?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 */
4909 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_rend
, 8)
4910 String_reverse_iterator_char
* __thiscall
MSVCP_basic_string_char_rend(
4911 basic_string_char
*this, String_reverse_iterator_char
*ret
)
4913 TRACE("%p\n", this);
4915 #if _MSVCP_VER == 80
4919 ret
->pos
= basic_string_char_const_ptr(this);
4923 /* ?_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 */
4924 /* ?_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 */
4925 /* ?_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 */
4926 /* ?_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 */
4927 MSVCP_size_t __cdecl
MSVCP_basic_string_wchar_Pdif(String_iterator_wchar i1
, String_iterator_wchar i2
)
4929 TRACE("(%p %p) (%p %p)\n", i1
.bstr
, i1
.pos
, i2
.bstr
, i2
.pos
);
4931 if((!i1
.bstr
&& i1
.pos
) || i1
.bstr
!=i2
.bstr
) {
4932 _invalid_parameter(NULL
, NULL
, NULL
, 0, 0);
4936 return !i1
.pos
? 0 : i1
.pos
-i2
.pos
;
4939 /* ?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 */
4940 /* ?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 */
4941 /* ?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 */
4942 /* ?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 */
4943 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_erase_iter_range
, 24)
4944 String_iterator_wchar
* __thiscall
MSVCP_basic_string_wchar_erase_iter_range(basic_string_wchar
*this,
4945 String_iterator_wchar
*ret
, String_iterator_wchar beg
, String_iterator_wchar end
)
4950 ret
->pos
= basic_string_wchar_ptr(this);
4951 off
= MSVCP_basic_string_wchar_Pdif(beg
, *ret
);
4953 MSVCP_basic_string_wchar_erase(this, off
, MSVCP_basic_string_wchar_Pdif(end
, beg
));
4956 ret
->pos
= basic_string_wchar_ptr(this)+off
;
4960 /* ?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 */
4961 /* ?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 */
4962 /* ?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 */
4963 /* ?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 */
4964 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_erase_iter
, 16)
4965 String_iterator_wchar
* __thiscall
MSVCP_basic_string_wchar_erase_iter(basic_string_wchar
*this,
4966 String_iterator_wchar
*ret
, String_iterator_wchar pos
)
4971 ret
->pos
= basic_string_wchar_ptr(this);
4972 off
= MSVCP_basic_string_wchar_Pdif(pos
, *ret
);
4974 MSVCP_basic_string_wchar_erase(this, off
, 1);
4977 ret
->pos
= basic_string_wchar_ptr(this)+off
;
4981 /* ?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 */
4982 /* ?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 */
4983 /* ?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 */
4984 /* ?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 */
4985 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_assign_iter
, 20)
4986 basic_string_wchar
* __thiscall
MSVCP_basic_string_wchar_assign_iter(basic_string_wchar
*this,
4987 String_iterator_wchar beg
, String_iterator_wchar end
)
4989 return MSVCP_basic_string_wchar_assign_ptr_ptr(this, beg
.pos
, end
.pos
);
4992 /* ??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 */
4993 /* ??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 */
4994 /* ??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 */
4995 /* ??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 */
4996 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_ctor_iter
, 20)
4997 basic_string_wchar
* __thiscall
MSVCP_basic_string_wchar_ctor_iter(basic_string_wchar
*this,
4998 String_iterator_wchar beg
, String_iterator_wchar end
)
5000 return MSVCP_basic_string_wchar_ctor_cstr_len(this, beg
.pos
, end
.pos
-beg
.pos
);
5003 /* ?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 */
5004 /* ?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 */
5005 /* ?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 */
5006 /* ?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 */
5007 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_append_iter
, 20)
5008 basic_string_wchar
* __thiscall
MSVCP_basic_string_wchar_append_iter(
5009 basic_string_wchar
*this, String_iterator_wchar beg
, String_iterator_wchar end
)
5011 return MSVCP_basic_string_wchar_append_cstr_len(this, beg
.pos
, end
.pos
-beg
.pos
);
5014 /* ?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 */
5015 /* ?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 */
5016 /* ?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 */
5017 /* ?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 */
5018 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_replace_iter_iter
, 36)
5019 basic_string_wchar
* __thiscall
MSVCP_basic_string_wchar_replace_iter_iter(basic_string_wchar
*this,
5020 String_iterator_wchar beg
, String_iterator_wchar end
,
5021 String_iterator_wchar res_beg
, String_iterator_wchar res_end
)
5023 String_iterator_wchar begin
= { this, basic_string_wchar_ptr(this) };
5024 return basic_string_wchar_replace_cstr_len(this,
5025 MSVCP_basic_string_wchar_Pdif(beg
, begin
), MSVCP_basic_string_wchar_Pdif(end
, beg
),
5026 res_beg
.pos
, MSVCP_basic_string_wchar_Pdif(res_end
, res_beg
));
5029 /* ?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 */
5030 /* ?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 */
5031 /* ?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 */
5032 /* ?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 */
5033 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_replace_iter_bstr
, 24)
5034 basic_string_wchar
* __thiscall
MSVCP_basic_string_wchar_replace_iter_bstr(basic_string_wchar
*this,
5035 String_iterator_wchar beg
, String_iterator_wchar end
, const basic_string_wchar
*str
)
5037 String_iterator_wchar begin
= { this, basic_string_wchar_ptr(this) };
5038 return basic_string_wchar_replace(this, MSVCP_basic_string_wchar_Pdif(beg
, begin
),
5039 MSVCP_basic_string_wchar_Pdif(end
, beg
), str
);
5042 /* ?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 */
5043 /* ?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 */
5044 /* ?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 */
5045 /* ?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 */
5046 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_replace_iter_ch
, 28)
5047 basic_string_wchar
* __thiscall
MSVCP_basic_string_wchar_replace_iter_ch(basic_string_wchar
*this,
5048 String_iterator_wchar beg
, String_iterator_wchar end
, MSVCP_size_t count
, wchar_t ch
)
5050 String_iterator_wchar begin
= { this, basic_string_wchar_ptr(this) };
5051 return basic_string_wchar_replace_ch(this, MSVCP_basic_string_wchar_Pdif(beg
, begin
),
5052 MSVCP_basic_string_wchar_Pdif(end
, beg
), count
, ch
);
5055 /* ?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 */
5056 /* ?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 */
5057 /* ?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 */
5058 /* ?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 */
5059 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_replace_iter_ptr_ptr
, 28)
5060 basic_string_wchar
* __thiscall
MSVCP_basic_string_wchar_replace_iter_ptr_ptr(basic_string_wchar
*this,
5061 String_iterator_wchar beg
, String_iterator_wchar end
,
5062 const wchar_t *res_beg
, const wchar_t *res_end
)
5064 String_iterator_wchar begin
= { this, basic_string_wchar_ptr(this) };
5065 return basic_string_wchar_replace_cstr_len(this, MSVCP_basic_string_wchar_Pdif(beg
, begin
),
5066 MSVCP_basic_string_wchar_Pdif(end
, beg
), res_beg
, res_end
-res_beg
);
5069 /* ?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 */
5070 /* ?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 */
5071 /* ?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 */
5072 /* ?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 */
5073 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_replace_iter_cstr
, 24)
5074 basic_string_wchar
* __thiscall
MSVCP_basic_string_wchar_replace_iter_cstr(basic_string_wchar
*this,
5075 String_iterator_wchar beg
, String_iterator_wchar end
, const wchar_t *str
)
5077 String_iterator_wchar begin
= { this, basic_string_wchar_ptr(this) };
5078 return basic_string_wchar_replace_cstr(this, MSVCP_basic_string_wchar_Pdif(beg
, begin
),
5079 MSVCP_basic_string_wchar_Pdif(end
, beg
), str
);
5082 /* ?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 */
5083 /* ?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 */
5084 /* ?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 */
5085 /* ?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 */
5086 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_replace_iter_cstr_len
, 28)
5087 basic_string_wchar
* __thiscall
MSVCP_basic_string_wchar_replace_iter_cstr_len(basic_string_wchar
*this,
5088 String_iterator_wchar beg
, String_iterator_wchar end
, const wchar_t *str
, MSVCP_size_t len
)
5090 String_iterator_wchar begin
= { this, basic_string_wchar_ptr(this) };
5091 return basic_string_wchar_replace_cstr_len(this, MSVCP_basic_string_wchar_Pdif(beg
, begin
),
5092 MSVCP_basic_string_wchar_Pdif(end
, beg
), str
, len
);
5095 /* ?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 */
5096 /* ?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 */
5097 /* ?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 */
5098 /* ?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 */
5099 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_insert_iter_chn
, 20)
5100 void __thiscall
MSVCP_basic_string_wchar_insert_iter_chn(basic_string_wchar
*this,
5101 String_iterator_wchar where
, MSVCP_size_t count
, wchar_t ch
)
5103 String_iterator_wchar iter
= { this, basic_string_wchar_ptr(this) };
5104 MSVCP_size_t off
= MSVCP_basic_string_wchar_Pdif(where
, iter
);
5106 basic_string_wchar_insert_chn(this, off
, count
, ch
);
5109 /* ?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 */
5110 /* ?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 */
5111 /* ?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 */
5112 /* ?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 */
5113 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_insert_iter_ch
, 20)
5114 String_iterator_wchar
* __thiscall
MSVCP_basic_string_wchar_insert_iter_ch(basic_string_wchar
*this,
5115 String_iterator_wchar
*ret
, String_iterator_wchar where
, wchar_t ch
)
5120 ret
->pos
= basic_string_wchar_ptr(this);
5121 off
= MSVCP_basic_string_wchar_Pdif(where
, *ret
);
5123 basic_string_wchar_insert_chn(this, off
, 1, ch
);
5124 ret
->pos
= basic_string_wchar_ptr(this)+off
;
5128 /* ?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 */
5129 /* ?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 */
5130 /* ?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 */
5131 /* ?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 */
5132 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_insert_iter_null
, 16)
5133 String_iterator_wchar
* __thiscall
MSVCP_basic_string_wchar_insert_iter_null(basic_string_wchar
*this,
5134 String_iterator_wchar
*ret
, String_iterator_wchar where
)
5136 return MSVCP_basic_string_wchar_insert_iter_ch(this, ret
, where
, 0);
5139 /* ?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 */
5140 /* ?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 */
5141 /* ?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 */
5142 /* ?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 */
5143 DEFINE_THISCALL_WRAPPER(basic_string_wchar_insert_iter_beg_end
, 28)
5144 void __thiscall
basic_string_wchar_insert_iter_beg_end(basic_string_wchar
*this,
5145 String_iterator_wchar where
, String_iterator_wchar beg
, String_iterator_wchar end
)
5147 MSVCP_basic_string_wchar_replace_iter_iter(this, where
, where
, beg
, end
);
5150 /* ?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 */
5151 /* ?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 */
5152 /* ?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 */
5153 /* ?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 */
5154 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_insert_iter_ptr_ptr
, 20)
5155 void __thiscall
MSVCP_basic_string_wchar_insert_iter_ptr_ptr(basic_string_wchar
*this,
5156 String_iterator_wchar where
, const wchar_t *beg
, const wchar_t *end
)
5158 MSVCP_basic_string_wchar_replace_iter_ptr_ptr(this, where
, where
, beg
, end
);
5161 /* ?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 */
5162 /* ?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 */
5163 /* ?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 */
5164 /* ?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 */
5165 /* ?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 */
5166 /* ?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 */
5167 /* ?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 */
5168 /* ?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 */
5169 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_begin
, 8)
5170 String_iterator_wchar
* __thiscall
MSVCP_basic_string_wchar_begin(
5171 basic_string_wchar
*this, String_iterator_wchar
*ret
)
5173 TRACE("%p\n", this);
5176 ret
->pos
= basic_string_wchar_const_ptr(this);
5180 /* ?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 */
5181 /* ?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 */
5182 /* ?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 */
5183 /* ?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 */
5184 /* ?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 */
5185 /* ?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 */
5186 /* ?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 */
5187 /* ?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 */
5188 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_end
, 8)
5189 String_iterator_wchar
* __thiscall
MSVCP_basic_string_wchar_end(
5190 basic_string_wchar
*this, String_iterator_wchar
*ret
)
5192 TRACE("%p\n", this);
5195 ret
->pos
= basic_string_wchar_const_ptr(this)+this->size
;
5199 /* ?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 */
5200 /* ?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 */
5201 /* ?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 */
5202 /* ?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 */
5203 /* ?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 */
5204 /* ?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 */
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@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 */
5208 /* ?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 */
5209 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_rbegin
, 8)
5210 String_reverse_iterator_wchar
* __thiscall
MSVCP_basic_string_wchar_rbegin(
5211 basic_string_wchar
*this, String_reverse_iterator_wchar
*ret
)
5213 TRACE("%p\n", this);
5215 #if _MSVCP_VER == 80
5219 ret
->pos
= basic_string_wchar_const_ptr(this)+this->size
;
5223 /* ?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 */
5224 /* ?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 */
5225 /* ?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 */
5226 /* ?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 */
5227 /* ?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 */
5228 /* ?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 */
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@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 */
5232 /* ?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 */
5233 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_rend
, 8)
5234 String_reverse_iterator_wchar
* __thiscall
MSVCP_basic_string_wchar_rend(
5235 basic_string_wchar
*this, String_reverse_iterator_wchar
*ret
)
5237 TRACE("%p\n", this);
5239 #if _MSVCP_VER == 80
5243 ret
->pos
= basic_string_wchar_const_ptr(this);
5247 #endif /* _MSVCP_VER < 80 */