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);
982 /* ?size@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEIXZ */
983 /* ?size@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA_KXZ */
984 /* ?length@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEIXZ */
985 /* ?length@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA_KXZ */
986 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_length
, 4)
987 MSVCP_size_t __thiscall
MSVCP_basic_string_char_length(const basic_string_char
*this)
993 /* ?max_size@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEIXZ */
994 /* ?max_size@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA_KXZ */
995 DEFINE_THISCALL_WRAPPER(basic_string_char_max_size
, 4)
996 MSVCP_size_t __thiscall
basic_string_char_max_size(const basic_string_char
*this)
999 return MSVCP_allocator_char_max_size(STRING_ALLOCATOR(this))-1;
1002 /* ?empty@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBE_NXZ */
1003 /* ?empty@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA_NXZ */
1004 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_empty
, 4)
1005 MSVCP_bool __thiscall
MSVCP_basic_string_char_empty(basic_string_char
*this)
1007 TRACE("%p\n", this);
1008 return this->size
== 0;
1011 /* ?swap@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEXAAV12@@Z */
1012 /* ?swap@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAXAEAV12@@Z */
1013 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_swap
, 8)
1014 void __thiscall
MSVCP_basic_string_char_swap(basic_string_char
*this, basic_string_char
*str
)
1017 char tmp
[sizeof(this->data
)];
1018 const MSVCP_size_t size
= this->size
;
1019 const MSVCP_size_t res
= this->res
;
1021 memcpy(tmp
, this->data
.buf
, sizeof(this->data
));
1022 memcpy(this->data
.buf
, str
->data
.buf
, sizeof(this->data
));
1023 memcpy(str
->data
.buf
, tmp
, sizeof(this->data
));
1025 this->size
= str
->size
;
1026 this->res
= str
->res
;
1033 /* ?substr@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBE?AV12@II@Z */
1034 /* ?substr@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA?AV12@_K0@Z */
1035 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_substr
, 16)
1036 basic_string_char
* __thiscall
MSVCP_basic_string_char_substr(basic_string_char
*this,
1037 basic_string_char
*ret
, MSVCP_size_t off
, MSVCP_size_t len
)
1039 TRACE("%p %lu %lu\n", this, off
, len
);
1041 MSVCP_basic_string_char_ctor_substr(ret
, this, off
, len
);
1045 /* ?append@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@ABV12@II@Z */
1046 /* ?append@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAAEAV12@AEBV12@_K1@Z */
1047 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_append_substr
, 16)
1048 basic_string_char
* __thiscall
MSVCP_basic_string_char_append_substr(basic_string_char
*this,
1049 const basic_string_char
*append
, MSVCP_size_t offset
, MSVCP_size_t count
)
1051 TRACE("%p %p %lu %lu\n", this, append
, offset
, count
);
1053 if(append
->size
< offset
)
1054 MSVCP__String_base_Xran();
1056 if(count
> append
->size
-offset
)
1057 count
= append
->size
-offset
;
1059 if(MSVCP_basic_string_char_npos
-this->size
<=count
|| this->size
+count
<this->size
)
1060 MSVCP__String_base_Xlen();
1062 if(basic_string_char_grow(this, this->size
+count
, FALSE
)) {
1063 MSVCP_char_traits_char__Copy_s(basic_string_char_ptr(this)+this->size
,
1064 this->res
-this->size
, basic_string_char_const_ptr(append
)+offset
, count
);
1065 basic_string_char_eos(this, this->size
+count
);
1071 /* ?append@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@ABV12@@Z */
1072 /* ?append@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAAEAV12@AEBV12@@Z */
1073 /* ??Y?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV01@ABV01@@Z */
1074 /* ??Y?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAAEAV01@AEBV01@@Z */
1075 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_append
, 8)
1076 basic_string_char
* __thiscall
MSVCP_basic_string_char_append(
1077 basic_string_char
*this, const basic_string_char
*append
)
1079 return MSVCP_basic_string_char_append_substr(this, append
,
1080 0, MSVCP_basic_string_char_npos
);
1083 /* ?append@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@PBDI@Z */
1084 /* ?append@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAAEAV12@PEBD_K@Z */
1085 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_append_cstr_len
, 12)
1086 basic_string_char
* __thiscall
MSVCP_basic_string_char_append_cstr_len(
1087 basic_string_char
*this, const char *append
, MSVCP_size_t count
)
1089 TRACE("%p %s %lu\n", this, debugstr_an(append
, count
), count
);
1091 if(basic_string_char_inside(this, append
))
1092 return MSVCP_basic_string_char_append_substr(this, this,
1093 append
-basic_string_char_ptr(this), count
);
1095 if(MSVCP_basic_string_char_npos
-this->size
<=count
|| this->size
+count
<this->size
)
1096 MSVCP__String_base_Xlen();
1098 if(basic_string_char_grow(this, this->size
+count
, FALSE
)) {
1099 MSVCP_char_traits_char__Copy_s(basic_string_char_ptr(this)+this->size
,
1100 this->res
-this->size
, append
, count
);
1101 basic_string_char_eos(this, this->size
+count
);
1107 /* ?append@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@PBD@Z */
1108 /* ?append@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAAEAV12@PEBD@Z */
1109 /* ??Y?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV01@PBD@Z */
1110 /* ??Y?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAAEAV01@PEBD@Z */
1111 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_append_cstr
, 8)
1112 basic_string_char
* __thiscall
MSVCP_basic_string_char_append_cstr(
1113 basic_string_char
*this, const char *append
)
1115 return MSVCP_basic_string_char_append_cstr_len(this, append
,
1116 MSVCP_char_traits_char_length(append
));
1119 /* ?append@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@PBD0@Z */
1120 /* ?append@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAAEAV12@PEBD0@Z */
1121 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_append_beg_end
, 12)
1122 basic_string_char
* __thiscall
MSVCP_basic_string_char_append_beg_end(
1123 basic_string_char
*this, const char *beg
, const char *end
)
1125 return MSVCP_basic_string_char_append_cstr_len(this, beg
, end
-beg
);
1128 /* ?append@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@ID@Z */
1129 /* ?append@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAAEAV12@_KD@Z */
1130 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_append_len_ch
, 12)
1131 basic_string_char
* __thiscall
MSVCP_basic_string_char_append_len_ch(
1132 basic_string_char
*this, MSVCP_size_t count
, char ch
)
1134 TRACE("%p %lu %c\n", this, count
, ch
);
1136 if(MSVCP_basic_string_char_npos
-this->size
<= count
)
1137 MSVCP__String_base_Xlen();
1139 if(basic_string_char_grow(this, this->size
+count
, FALSE
)) {
1140 MSVCP_char_traits_char_assignn(basic_string_char_ptr(this)+this->size
, count
, ch
);
1141 basic_string_char_eos(this, this->size
+count
);
1147 /* ??Y?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV01@D@Z */
1148 /* ??Y?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAAEAV01@D@Z */
1149 /* ?push_back@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEXD@Z */
1150 /* ?push_back@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAXD@Z */
1151 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_append_ch
, 8)
1152 basic_string_char
* __thiscall
MSVCP_basic_string_char_append_ch(
1153 basic_string_char
*this, char ch
)
1155 return MSVCP_basic_string_char_append_len_ch(this, 1, ch
);
1158 /* ??$?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 */
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@AEBV10@PEBD@Z */
1160 /* ??Hstd@@YA?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@ABV10@PBD@Z */
1161 /* ??Hstd@@YA?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@AEBV10@PEBD@Z */
1162 basic_string_char
* __cdecl
MSVCP_basic_string_char_concatenate_bstr_cstr(basic_string_char
*ret
,
1163 const basic_string_char
*left
, const char *right
)
1165 TRACE("%p %s\n", left
, debugstr_a(right
));
1167 MSVCP_basic_string_char_copy_ctor(ret
, left
);
1168 MSVCP_basic_string_char_append_cstr(ret
, right
);
1172 /* ??$?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 */
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@PEBDAEBV10@@Z */
1174 /* ??Hstd@@YA?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@PBDABV10@@Z */
1175 /* ??Hstd@@YA?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@PEBDAEBV10@@Z */
1176 basic_string_char
* __cdecl
MSVCP_basic_string_char_concatenate_cstr_bstr(basic_string_char
*ret
,
1177 const char *left
, const basic_string_char
*right
)
1179 TRACE("%s %p\n", debugstr_a(left
), right
);
1181 MSVCP_basic_string_char_ctor_cstr(ret
, left
);
1182 MSVCP_basic_string_char_append(ret
, right
);
1186 /* ??$?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 */
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@AEBV10@0@Z */
1188 /* ??Hstd@@YA?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@ABV10@0@Z */
1189 /* ??Hstd@@YA?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@AEBV10@0@Z */
1190 basic_string_char
* __cdecl
MSVCP_basic_string_char_concatenate(basic_string_char
*ret
,
1191 const basic_string_char
*left
, const basic_string_char
*right
)
1193 TRACE("%p %p\n", left
, right
);
1195 MSVCP_basic_string_char_copy_ctor(ret
, left
);
1196 MSVCP_basic_string_char_append(ret
, right
);
1200 /* ??$?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 */
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@AEBV10@D@Z */
1202 /* ??Hstd@@YA?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@ABV10@D@Z */
1203 /* ??Hstd@@YA?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@AEBV10@D@Z */
1204 basic_string_char
* __cdecl
MSVCP_basic_string_char_concatenate_bstr_ch(basic_string_char
*ret
,
1205 const basic_string_char
*left
, char right
)
1207 TRACE("%p %c\n", left
, right
);
1209 MSVCP_basic_string_char_copy_ctor(ret
, left
);
1210 MSVCP_basic_string_char_append_ch(ret
, right
);
1214 /* ??$?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 */
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@DAEBV10@@Z */
1216 /* ??Hstd@@YA?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@DABV10@@Z */
1217 /* ??Hstd@@YA?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@DAEBV10@@Z */
1218 basic_string_char
* __cdecl
MSVCP_basic_string_char_concatenate_ch_bstr(basic_string_char
*ret
,
1219 char left
, const basic_string_char
*right
)
1221 TRACE("%c %p\n", left
, right
);
1223 MSVCP_basic_string_char_ctor_cstr_len(ret
, &left
, 1);
1224 MSVCP_basic_string_char_append(ret
, right
);
1228 /* ?compare@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEHIIPBDI@Z */
1229 /* ?compare@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBAH_K0PEBD0@Z */
1230 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_compare_substr_cstr_len
, 20)
1231 int __thiscall
MSVCP_basic_string_char_compare_substr_cstr_len(
1232 const basic_string_char
*this, MSVCP_size_t pos
, MSVCP_size_t num
,
1233 const char *str
, MSVCP_size_t count
)
1237 TRACE("%p %lu %lu %s %lu\n", this, pos
, num
, debugstr_an(str
, count
), count
);
1239 if(this->size
< pos
)
1240 MSVCP__String_base_Xran();
1242 if(num
> this->size
-pos
)
1243 num
= this->size
-pos
;
1245 ans
= MSVCP_char_traits_char_compare(basic_string_char_const_ptr(this)+pos
,
1246 str
, num
>count
? count
: num
);
1252 else if(num
< count
)
1257 /* ?compare@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEHIIPBD@Z */
1258 /* ?compare@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBAH_K0PEBD@Z */
1259 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_compare_substr_cstr
, 16)
1260 int __thiscall
MSVCP_basic_string_char_compare_substr_cstr(const basic_string_char
*this,
1261 MSVCP_size_t pos
, MSVCP_size_t num
, const char *str
)
1263 return MSVCP_basic_string_char_compare_substr_cstr_len(this, pos
, num
,
1264 str
, MSVCP_char_traits_char_length(str
));
1267 /* ?compare@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEHPBD@Z */
1268 /* ?compare@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBAHPEBD@Z */
1269 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_compare_cstr
, 8)
1270 int __thiscall
MSVCP_basic_string_char_compare_cstr(
1271 const basic_string_char
*this, const char *str
)
1273 return MSVCP_basic_string_char_compare_substr_cstr_len(this, 0, this->size
,
1274 str
, MSVCP_char_traits_char_length(str
));
1277 /* ?compare@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEHIIABV12@II@Z */
1278 /* ?compare@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBAH_K0AEBV12@00@Z */
1279 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_compare_substr_substr
, 24)
1280 int __thiscall
MSVCP_basic_string_char_compare_substr_substr(
1281 const basic_string_char
*this, MSVCP_size_t pos
, MSVCP_size_t num
,
1282 const basic_string_char
*compare
, MSVCP_size_t off
, MSVCP_size_t count
)
1284 TRACE("%p %lu %lu %p %lu %lu\n", this, pos
, num
, compare
, off
, count
);
1286 if(compare
->size
< off
)
1287 MSVCP__String_base_Xran();
1289 if(count
> compare
->size
-off
)
1290 count
= compare
->size
-off
;
1292 return MSVCP_basic_string_char_compare_substr_cstr_len(this, pos
, num
,
1293 basic_string_char_const_ptr(compare
)+off
, count
);
1296 /* ?compare@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEHIIABV12@@Z */
1297 /* ?compare@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBAH_K0AEBV12@@Z */
1298 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_compare_substr
, 16)
1299 int __thiscall
MSVCP_basic_string_char_compare_substr(
1300 const basic_string_char
*this, MSVCP_size_t pos
, MSVCP_size_t num
,
1301 const basic_string_char
*compare
)
1303 return MSVCP_basic_string_char_compare_substr_cstr_len(this, pos
, num
,
1304 basic_string_char_const_ptr(compare
), compare
->size
);
1307 /* ?compare@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEHABV12@@Z */
1308 /* ?compare@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBAHAEBV12@@Z */
1309 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_compare
, 8)
1310 int __thiscall
MSVCP_basic_string_char_compare(
1311 const basic_string_char
*this, const basic_string_char
*compare
)
1313 return MSVCP_basic_string_char_compare_substr_cstr_len(this, 0, this->size
,
1314 basic_string_char_const_ptr(compare
), compare
->size
);
1317 /* ??$?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 */
1318 /* ??$?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 */
1319 /* ??8std@@YA_NABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@0@Z */
1320 /* ??8std@@YA_NAEBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@0@Z */
1321 MSVCP_bool __cdecl
MSVCP_basic_string_char_equal(
1322 const basic_string_char
*left
, const basic_string_char
*right
)
1324 return MSVCP_basic_string_char_compare(left
, right
) == 0;
1327 /* ??$?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 */
1328 /* ??$?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 */
1329 /* ??8std@@YA_NABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@PBD@Z */
1330 /* ??8std@@YA_NAEBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@PEBD@Z */
1331 MSVCP_bool __cdecl
MSVCP_basic_string_char_equal_str_cstr(
1332 const basic_string_char
*left
, const char *right
)
1334 return MSVCP_basic_string_char_compare_cstr(left
, right
) == 0;
1337 /* ??$?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 */
1338 /* ??$?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 */
1339 /* ??8std@@YA_NPBDABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@@Z */
1340 MSVCP_bool __cdecl
MSVCP_basic_string_char_equal_cstr_str(
1341 const char *left
, const basic_string_char
*right
)
1343 return MSVCP_basic_string_char_compare_cstr(right
, left
) == 0;
1346 /* ??$?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 */
1347 /* ??$?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 */
1348 /* ??9std@@YA_NABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@0@Z */
1349 /* ??9std@@YA_NAEBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@0@Z */
1350 MSVCP_bool __cdecl
MSVCP_basic_string_char_not_equal(
1351 const basic_string_char
*left
, const basic_string_char
*right
)
1353 return MSVCP_basic_string_char_compare(left
, right
) != 0;
1356 /* ??$?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 */
1357 /* ??$?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 */
1358 /* ??9std@@YA_NABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@PBD@Z */
1359 /* ??9std@@YA_NAEBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@PEBD@Z */
1360 MSVCP_bool __cdecl
MSVCP_basic_string_char_not_equal_str_cstr(
1361 const basic_string_char
*left
, const char *right
)
1363 return MSVCP_basic_string_char_compare_cstr(left
, right
) != 0;
1366 /* ??$?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 */
1367 /* ??$?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 */
1368 /* ??9std@@YA_NPBDABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@@Z */
1369 /* ??9std@@YA_NPEBDAEBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@@Z */
1370 MSVCP_bool __cdecl
MSVCP_basic_string_char_not_equal_cstr_str(
1371 const char *left
, const basic_string_char
*right
)
1373 return MSVCP_basic_string_char_compare_cstr(right
, left
) != 0;
1376 /* ??$?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 */
1377 /* ??$?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 */
1378 MSVCP_bool __cdecl
MSVCP_basic_string_char_lower(
1379 const basic_string_char
*left
, const basic_string_char
*right
)
1381 return MSVCP_basic_string_char_compare(left
, right
) < 0;
1384 /* ??$?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 */
1385 /* ??$?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 */
1386 MSVCP_bool __cdecl
MSVCP_basic_string_char_lower_bstr_cstr(
1387 const basic_string_char
*left
, const char *right
)
1389 return MSVCP_basic_string_char_compare_cstr(left
, right
) < 0;
1392 /* ??$?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 */
1393 /* ??$?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 */
1394 MSVCP_bool __cdecl
MSVCP_basic_string_char_lower_cstr_bstr(
1395 const char *left
, const basic_string_char
*right
)
1397 return MSVCP_basic_string_char_compare_cstr(right
, left
) > 0;
1400 /* ??$?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 */
1401 /* ??$?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 */
1402 MSVCP_bool __cdecl
MSVCP_basic_string_char_leq(
1403 const basic_string_char
*left
, const basic_string_char
*right
)
1405 return MSVCP_basic_string_char_compare(left
, right
) <= 0;
1408 /* ??$?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 */
1409 /* ??$?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 */
1410 MSVCP_bool __cdecl
MSVCP_basic_string_char_leq_bstr_cstr(
1411 const basic_string_char
*left
, const char *right
)
1413 return MSVCP_basic_string_char_compare_cstr(left
, right
) <= 0;
1416 /* ??$?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 */
1417 /* ??$?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 */
1418 MSVCP_bool __cdecl
MSVCP_basic_string_char_leq_cstr_bstr(
1419 const char *left
, const basic_string_char
*right
)
1421 return MSVCP_basic_string_char_compare_cstr(right
, left
) >= 0;
1424 /* ??$?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 */
1425 /* ??$?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 */
1426 MSVCP_bool __cdecl
MSVCP_basic_string_char_greater(
1427 const basic_string_char
*left
, const basic_string_char
*right
)
1429 return MSVCP_basic_string_char_compare(left
, right
) > 0;
1432 /* ??$?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 */
1433 /* ??$?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 */
1434 MSVCP_bool __cdecl
MSVCP_basic_string_char_greater_bstr_cstr(
1435 const basic_string_char
*left
, const char *right
)
1437 return MSVCP_basic_string_char_compare_cstr(left
, right
) > 0;
1440 /* ??$?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 */
1441 /* ??$?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 */
1442 MSVCP_bool __cdecl
MSVCP_basic_string_char_greater_cstr_bstr(
1443 const char *left
, const basic_string_char
*right
)
1445 return MSVCP_basic_string_char_compare_cstr(right
, left
) < 0;
1448 /* ??$?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 */
1449 /* ??$?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 */
1450 MSVCP_bool __cdecl
MSVCP_basic_string_char_geq(
1451 const basic_string_char
*left
, const basic_string_char
*right
)
1453 return MSVCP_basic_string_char_compare(left
, right
) >= 0;
1456 /* ??$?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 */
1457 /* ??$?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 */
1458 MSVCP_bool __cdecl
MSVCP_basic_string_char_geq_bstr_cstr(
1459 const basic_string_char
*left
, const char *right
)
1461 return MSVCP_basic_string_char_compare_cstr(left
, right
) >= 0;
1464 /* ??$?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 */
1465 /* ??$?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 */
1466 MSVCP_bool __cdecl
MSVCP_basic_string_char_geq_cstr_bstr(
1467 const char *left
, const basic_string_char
*right
)
1469 return MSVCP_basic_string_char_compare_cstr(right
, left
) <= 0;
1472 /* ?find@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEIPBDII@Z */
1473 /* ?find@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA_KPEBD_K1@Z */
1474 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_find_cstr_substr
, 16)
1475 MSVCP_size_t __thiscall
MSVCP_basic_string_char_find_cstr_substr(
1476 const basic_string_char
*this, const char *find
, MSVCP_size_t pos
, MSVCP_size_t len
)
1478 const char *p
, *end
;
1480 TRACE("%p %s %lu %lu\n", this, debugstr_an(find
, len
), pos
, len
);
1482 if(len
==0 && pos
<=this->size
)
1484 if(pos
>=this->size
|| len
>this->size
)
1485 return MSVCP_basic_string_char_npos
;
1487 end
= basic_string_char_const_ptr(this)+this->size
-len
+1;
1488 for(p
=basic_string_char_const_ptr(this)+pos
; p
<end
; p
++) {
1489 p
= MSVCP_char_traits_char_find(p
, end
-p
, find
);
1493 if(!MSVCP_char_traits_char_compare(p
, find
, len
))
1494 return p
-basic_string_char_const_ptr(this);
1497 return MSVCP_basic_string_char_npos
;
1500 /* ?find@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEIPBDI@Z */
1501 /* ?find@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA_KPEBD_K@Z */
1502 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_find_cstr_off
, 12)
1503 MSVCP_size_t __thiscall
MSVCP_basic_string_char_find_cstr_off(
1504 const basic_string_char
*this, const char *find
, MSVCP_size_t pos
)
1506 return MSVCP_basic_string_char_find_cstr_substr(this, find
, pos
,
1507 MSVCP_char_traits_char_length(find
));
1510 /* ?find@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEIABV12@I@Z */
1511 /* ?find@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA_KAEBV12@_K@Z */
1512 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_find_off
, 12)
1513 MSVCP_size_t __thiscall
MSVCP_basic_string_char_find_off(
1514 const basic_string_char
*this, const basic_string_char
*find
, MSVCP_size_t off
)
1516 return MSVCP_basic_string_char_find_cstr_substr(this,
1517 basic_string_char_const_ptr(find
), off
, find
->size
);
1520 /* ?find@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEIDI@Z */
1521 /* ?find@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA_KD_K@Z */
1522 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_find_ch
, 12)
1523 MSVCP_size_t __thiscall
MSVCP_basic_string_char_find_ch(
1524 const basic_string_char
*this, char ch
, MSVCP_size_t pos
)
1526 return MSVCP_basic_string_char_find_cstr_substr(this, &ch
, pos
, 1);
1529 /* ?rfind@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEIPBDII@Z */
1530 /* ?rfind@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA_KPEBD_K1@Z */
1531 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_rfind_cstr_substr
, 16)
1532 MSVCP_size_t __thiscall
MSVCP_basic_string_char_rfind_cstr_substr(
1533 const basic_string_char
*this, const char *find
, MSVCP_size_t pos
, MSVCP_size_t len
)
1535 const char *p
, *end
;
1537 TRACE("%p %s %lu %lu\n", this, debugstr_an(find
, len
), pos
, len
);
1540 return pos
<this->size
? pos
: this->size
;
1542 if(len
> this->size
)
1543 return MSVCP_basic_string_char_npos
;
1545 if(pos
> this->size
-len
+1)
1546 pos
= this->size
-len
+1;
1547 end
= basic_string_char_const_ptr(this);
1548 for(p
=end
+pos
; p
>=end
; p
--) {
1549 if(*p
==*find
&& !MSVCP_char_traits_char_compare(p
, find
, len
))
1550 return p
-basic_string_char_const_ptr(this);
1553 return MSVCP_basic_string_char_npos
;
1556 /* ?rfind@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEIPBDI@Z */
1557 /* ?rfind@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA_KPEBD_K@Z */
1558 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_rfind_cstr_off
, 12)
1559 MSVCP_size_t __thiscall
MSVCP_basic_string_char_rfind_cstr_off(
1560 const basic_string_char
*this, const char *find
, MSVCP_size_t pos
)
1562 return MSVCP_basic_string_char_rfind_cstr_substr(this, find
, pos
,
1563 MSVCP_char_traits_char_length(find
));
1566 /* ?rfind@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEIABV12@I@Z */
1567 /* ?rfind@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA_KAEBV12@_K@Z */
1568 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_rfind_off
, 12)
1569 MSVCP_size_t __thiscall
MSVCP_basic_string_char_rfind_off(
1570 const basic_string_char
*this, const basic_string_char
*find
, MSVCP_size_t off
)
1572 return MSVCP_basic_string_char_rfind_cstr_substr(this,
1573 basic_string_char_const_ptr(find
), off
, find
->size
);
1576 /* ?rfind@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEIDI@Z */
1577 /* ?rfind@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA_KD_K@Z */
1578 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_rfind_ch
, 12)
1579 MSVCP_size_t __thiscall
MSVCP_basic_string_char_rfind_ch(
1580 const basic_string_char
*this, char ch
, MSVCP_size_t pos
)
1582 return MSVCP_basic_string_char_rfind_cstr_substr(this, &ch
, pos
, 1);
1585 /* ?find_first_of@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEIPBDII@Z */
1586 /* ?find_first_of@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA_KPEBD_K1@Z */
1587 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_find_first_of_cstr_substr
, 16)
1588 MSVCP_size_t __thiscall
MSVCP_basic_string_char_find_first_of_cstr_substr(
1589 const basic_string_char
*this, const char *find
, MSVCP_size_t off
, MSVCP_size_t len
)
1591 const char *p
, *end
;
1593 TRACE("%p %p %lu %lu\n", this, find
, off
, len
);
1595 if(len
>0 && off
<this->size
) {
1596 end
= basic_string_char_const_ptr(this)+this->size
;
1597 for(p
=basic_string_char_const_ptr(this)+off
; p
<end
; p
++)
1598 if(MSVCP_char_traits_char_find(find
, len
, p
))
1599 return p
-basic_string_char_const_ptr(this);
1602 return MSVCP_basic_string_char_npos
;
1605 /* ?find_first_of@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEIABV12@I@Z */
1606 /* ?find_first_of@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA_KAEBV12@_K@Z */
1607 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_find_first_of
, 12)
1608 MSVCP_size_t __thiscall
MSVCP_basic_string_char_find_first_of(
1609 const basic_string_char
*this, const basic_string_char
*find
, MSVCP_size_t off
)
1611 return MSVCP_basic_string_char_find_first_of_cstr_substr(this,
1612 basic_string_char_const_ptr(find
), off
, find
->size
);
1615 /* ??0?$_Yarn@D@std@@QAE@XZ */
1616 /* ??0?$_Yarn@D@std@@QEAA@XZ */
1617 DEFINE_THISCALL_WRAPPER(_Yarn_char_ctor
, 4)
1618 _Yarn_char
* __thiscall
_Yarn_char_ctor(_Yarn_char
*this)
1620 TRACE("(%p)\n", this);
1623 this->null_str
= '\0';
1627 /* ?_Tidy@?$_Yarn@D@std@@AAEXXZ */
1628 /* ?_Tidy@?$_Yarn@D@std@@AEAAXXZ */
1629 DEFINE_THISCALL_WRAPPER(_Yarn_char__Tidy
, 4)
1630 void __thiscall
_Yarn_char__Tidy(_Yarn_char
*this)
1632 TRACE("(%p)\n", this);
1635 MSVCRT_operator_delete(this->str
);
1639 /* ??4?$_Yarn@D@std@@QAEAAV01@PBD@Z */
1640 /* ??4?$_Yarn@D@std@@QEAAAEAV01@PEBD@Z */
1641 DEFINE_THISCALL_WRAPPER(_Yarn_char_op_assign_cstr
, 8)
1642 _Yarn_char
* __thiscall
_Yarn_char_op_assign_cstr(_Yarn_char
*this, const char *str
)
1644 TRACE("(%p %p)\n", this, str
);
1646 _Yarn_char__Tidy(this);
1649 MSVCP_size_t len
= strlen(str
);
1651 this->str
= MSVCRT_operator_new((len
+1)*sizeof(char));
1653 ERR("out of memory\n");
1656 memcpy(this->str
, str
, (len
+1)*sizeof(char));
1661 /* ??0?$_Yarn@D@std@@QAE@PBD@Z */
1662 /* ??0?$_Yarn@D@std@@QEAA@PEBD@Z */
1663 DEFINE_THISCALL_WRAPPER(_Yarn_char_ctor_cstr
, 8)
1664 _Yarn_char
* __thiscall
_Yarn_char_ctor_cstr(_Yarn_char
*this, const char *str
)
1666 TRACE("(%p %p)\n", this, str
);
1668 _Yarn_char_ctor(this);
1669 return _Yarn_char_op_assign_cstr(this, str
);
1672 /* ??4?$_Yarn@D@std@@QAEAAV01@ABV01@@Z */
1673 /* ??4?$_Yarn@D@std@@QEAAAEAV01@AEBV01@@Z */
1674 DEFINE_THISCALL_WRAPPER(_Yarn_char_op_assign
, 8)
1675 _Yarn_char
* __thiscall
_Yarn_char_op_assign(_Yarn_char
*this, const _Yarn_char
*rhs
)
1677 TRACE("(%p %p)\n", this, rhs
);
1679 return _Yarn_char_op_assign_cstr(this, rhs
->str
);
1682 /* ??0?$_Yarn@D@std@@QAE@ABV01@@Z */
1683 /* ??0?$_Yarn@D@std@@QEAA@AEBV01@@Z */
1684 DEFINE_THISCALL_WRAPPER(_Yarn_char_copy_ctor
, 8)
1685 _Yarn_char
* __thiscall
_Yarn_char_copy_ctor(_Yarn_char
*this, const _Yarn_char
*copy
)
1687 TRACE("(%p %p)\n", this, copy
);
1689 _Yarn_char_ctor(this);
1690 return _Yarn_char_op_assign(this, copy
);
1693 /* ??1?$_Yarn@D@std@@QAE@XZ */
1694 /* ??1?$_Yarn@D@std@@QEAA@XZ */
1695 DEFINE_THISCALL_WRAPPER(_Yarn_char_dtor
, 4)
1696 void __thiscall
_Yarn_char_dtor(_Yarn_char
*this)
1698 TRACE("(%p)\n", this);
1699 _Yarn_char__Tidy(this);
1702 /* ?_C_str@?$_Yarn@D@std@@QBEPBDXZ */
1703 /* ?_C_str@?$_Yarn@D@std@@QEBAPEBDXZ */
1704 /* ?c_str@?$_Yarn@D@std@@QBEPBDXZ */
1705 /* ?c_str@?$_Yarn@D@std@@QEBAPEBDXZ */
1706 DEFINE_THISCALL_WRAPPER(_Yarn_char_c_str
, 4)
1707 const char* __thiscall
_Yarn_char_c_str(const _Yarn_char
*this)
1709 TRACE("(%p)\n", this);
1710 return this->str
? this->str
: &this->null_str
;
1713 /* ?_Empty@?$_Yarn@D@std@@QBE_NXZ */
1714 /* ?_Empty@?$_Yarn@D@std@@QEBA_NXZ */
1715 /* ?empty@?$_Yarn@D@std@@QBE_NXZ */
1716 /* ?empty@?$_Yarn@D@std@@QEBA_NXZ */
1717 DEFINE_THISCALL_WRAPPER(_Yarn_char_empty
, 4)
1718 MSVCP_bool __thiscall
_Yarn_char_empty(const _Yarn_char
*this)
1720 TRACE("(%p)\n", this);
1724 /* ?find_first_of@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEIPBDI@Z */
1725 /* ?find_first_of@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA_KPEBD_K@Z */
1726 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_find_first_of_cstr
, 12)
1727 MSVCP_size_t __thiscall
MSVCP_basic_string_char_find_first_of_cstr(
1728 const basic_string_char
*this, const char *find
, MSVCP_size_t off
)
1730 return MSVCP_basic_string_char_find_first_of_cstr_substr(
1731 this, find
, off
, MSVCP_char_traits_char_length(find
));
1734 /* ?find_first_of@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEIDI@Z */
1735 /* ?find_first_of@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA_KD_K@Z */
1736 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_find_first_of_ch
, 12)
1737 MSVCP_size_t __thiscall
MSVCP_basic_string_char_find_first_of_ch(
1738 const basic_string_char
*this, char ch
, MSVCP_size_t off
)
1740 return MSVCP_basic_string_char_find_first_of_cstr_substr(this, &ch
, off
, 1);
1743 /* ?find_first_not_of@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEIPBDII@Z */
1744 /* ?find_first_not_of@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA_KPEBD_K1@Z */
1745 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_find_first_not_of_cstr_substr
, 16)
1746 MSVCP_size_t __thiscall
MSVCP_basic_string_char_find_first_not_of_cstr_substr(
1747 const basic_string_char
*this, const char *find
, MSVCP_size_t off
, MSVCP_size_t len
)
1749 const char *p
, *end
;
1751 TRACE("%p %p %lu %lu\n", this, find
, off
, len
);
1753 if(off
<this->size
) {
1754 end
= basic_string_char_const_ptr(this)+this->size
;
1755 for(p
=basic_string_char_const_ptr(this)+off
; p
<end
; p
++)
1756 if(!MSVCP_char_traits_char_find(find
, len
, p
))
1757 return p
-basic_string_char_const_ptr(this);
1760 return MSVCP_basic_string_char_npos
;
1763 /* ?find_first_not_of@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEIABV12@I@Z */
1764 /* ?find_first_not_of@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA_KAEBV12@_K@Z */
1765 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_find_first_not_of
, 12)
1766 MSVCP_size_t __thiscall
MSVCP_basic_string_char_find_first_not_of(
1767 const basic_string_char
*this, const basic_string_char
*find
, MSVCP_size_t off
)
1769 return MSVCP_basic_string_char_find_first_not_of_cstr_substr(this,
1770 basic_string_char_const_ptr(find
), off
, find
->size
);
1773 /* ?find_first_not_of@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEIPBDI@Z */
1774 /* ?find_first_not_of@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA_KPEBD_K@Z */
1775 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_find_first_not_of_cstr
, 12)
1776 MSVCP_size_t __thiscall
MSVCP_basic_string_char_find_first_not_of_cstr(
1777 const basic_string_char
*this, const char *find
, MSVCP_size_t off
)
1779 return MSVCP_basic_string_char_find_first_not_of_cstr_substr(
1780 this, find
, off
, MSVCP_char_traits_char_length(find
));
1783 /* ?find_first_not_of@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEIDI@Z */
1784 /* ?find_first_not_of@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA_KD_K@Z */
1785 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_find_first_not_of_ch
, 12)
1786 MSVCP_size_t __thiscall
MSVCP_basic_string_char_find_first_not_of_ch(
1787 const basic_string_char
*this, char ch
, MSVCP_size_t off
)
1789 return MSVCP_basic_string_char_find_first_not_of_cstr_substr(this, &ch
, off
, 1);
1792 /* ?find_last_of@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEIPBDII@Z */
1793 /* ?find_last_of@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA_KPEBD_K1@Z */
1794 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_find_last_of_cstr_substr
, 16)
1795 MSVCP_size_t __thiscall
MSVCP_basic_string_char_find_last_of_cstr_substr(
1796 const basic_string_char
*this, const char *find
, MSVCP_size_t off
, MSVCP_size_t len
)
1798 const char *p
, *beg
;
1800 TRACE("%p %p %lu %lu\n", this, find
, off
, len
);
1802 if(len
>0 && this->size
>0) {
1803 if(off
>= this->size
)
1806 beg
= basic_string_char_const_ptr(this);
1807 for(p
=beg
+off
; p
>=beg
; p
--)
1808 if(MSVCP_char_traits_char_find(find
, len
, p
))
1812 return MSVCP_basic_string_char_npos
;
1815 /* ?find_last_of@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEIABV12@I@Z */
1816 /* ?find_last_of@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA_KAEBV12@_K@Z */
1817 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_find_last_of
, 12)
1818 MSVCP_size_t __thiscall
MSVCP_basic_string_char_find_last_of(
1819 const basic_string_char
*this, const basic_string_char
*find
, MSVCP_size_t off
)
1821 return MSVCP_basic_string_char_find_last_of_cstr_substr(this,
1822 basic_string_char_const_ptr(find
), off
, find
->size
);
1825 /* ?find_last_of@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEIPBDI@Z */
1826 /* ?find_last_of@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA_KPEBD_K@Z */
1827 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_find_last_of_cstr
, 12)
1828 MSVCP_size_t __thiscall
MSVCP_basic_string_char_find_last_of_cstr(
1829 const basic_string_char
*this, const char *find
, MSVCP_size_t off
)
1831 return MSVCP_basic_string_char_find_last_of_cstr_substr(
1832 this, find
, off
, MSVCP_char_traits_char_length(find
));
1835 /* ?find_last_of@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEIDI@Z */
1836 /* ?find_last_of@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA_KD_K@Z */
1837 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_find_last_of_ch
, 12)
1838 MSVCP_size_t __thiscall
MSVCP_basic_string_char_find_last_of_ch(
1839 const basic_string_char
*this, char ch
, MSVCP_size_t off
)
1841 return MSVCP_basic_string_char_find_last_of_cstr_substr(this, &ch
, off
, 1);
1844 /* ?find_last_not_of@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEIPBDII@Z */
1845 /* ?find_last_not_of@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA_KPEBD_K1@Z */
1846 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_find_last_not_of_cstr_substr
, 16)
1847 MSVCP_size_t __thiscall
MSVCP_basic_string_char_find_last_not_of_cstr_substr(
1848 const basic_string_char
*this, const char *find
, MSVCP_size_t off
, MSVCP_size_t len
)
1850 const char *p
, *beg
;
1852 TRACE("%p %p %lu %lu\n", this, find
, off
, len
);
1855 if(off
>= this->size
)
1858 beg
= basic_string_char_const_ptr(this);
1859 for(p
=beg
+off
; p
>=beg
; p
--)
1860 if(!MSVCP_char_traits_char_find(find
, len
, p
))
1864 return MSVCP_basic_string_char_npos
;
1867 /* ?find_last_not_of@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEIABV12@I@Z */
1868 /* ?find_last_not_of@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA_KAEBV12@_K@Z */
1869 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_find_last_not_of
, 12)
1870 MSVCP_size_t __thiscall
MSVCP_basic_string_char_find_last_not_of(
1871 const basic_string_char
*this, const basic_string_char
*find
, MSVCP_size_t off
)
1873 return MSVCP_basic_string_char_find_last_not_of_cstr_substr(this,
1874 basic_string_char_const_ptr(find
), off
, find
->size
);
1877 /* ?find_last_not_of@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEIPBDI@Z */
1878 /* ?find_last_not_of@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA_KPEBD_K@Z */
1879 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_find_last_not_of_cstr
, 12)
1880 MSVCP_size_t __thiscall
MSVCP_basic_string_char_find_last_not_of_cstr(
1881 const basic_string_char
*this, const char *find
, MSVCP_size_t off
)
1883 return MSVCP_basic_string_char_find_last_not_of_cstr_substr(
1884 this, find
, off
, MSVCP_char_traits_char_length(find
));
1887 /* ?find_last_not_of@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEIDI@Z */
1888 /* ?find_last_not_of@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA_KD_K@Z */
1889 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_find_last_not_of_ch
, 12)
1890 MSVCP_size_t __thiscall
MSVCP_basic_string_char_find_last_not_of_ch(
1891 const basic_string_char
*this, char ch
, MSVCP_size_t off
)
1893 return MSVCP_basic_string_char_find_last_not_of_cstr_substr(this, &ch
, off
, 1);
1896 /* ??A?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAADI@Z */
1897 /* ??A?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAAEAD_K@Z */
1898 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_operator_at
, 8)
1899 char* __thiscall
MSVCP_basic_string_char_operator_at(
1900 basic_string_char
*this, MSVCP_size_t pos
)
1902 TRACE("%p %lu\n", this, pos
);
1904 assert(this->size
>= pos
);
1905 return basic_string_char_ptr(this)+pos
;
1908 /* ??A?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEABDI@Z */
1909 /* ??A?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBAAEBD_K@Z */
1910 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_const_operator_at
, 8)
1911 const char* __thiscall
MSVCP_basic_string_char_const_operator_at(
1912 const basic_string_char
*this, MSVCP_size_t pos
)
1914 TRACE("%p %lu\n", this, pos
);
1916 assert(this->size
>= pos
);
1917 return basic_string_char_const_ptr(this)+pos
;
1920 /* ??A?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAADU_Size_type_nosscl@01@@Z */
1921 /* ??A?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAAEADU_Size_type_nosscl@01@@Z */
1922 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_operator_at_noverify
, 8)
1923 char* __thiscall
MSVCP_basic_string_char_operator_at_noverify(
1924 basic_string_char
*this, size_t_noverify pos
)
1926 TRACE("%p %lu\n", this, pos
.val
);
1927 return basic_string_char_ptr(this)+pos
.val
;
1930 /* ??A?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEABDU_Size_type_nosscl@01@@Z */
1931 /* ??A?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBAAEBDU_Size_type_nosscl@01@@Z */
1932 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_operator_const_at_noverify
, 8)
1933 const char* __thiscall
MSVCP_basic_string_char_operator_const_at_noverify(
1934 const basic_string_char
*this, size_t_noverify pos
)
1936 TRACE("%p %lu\n", this, pos
.val
);
1937 return basic_string_char_const_ptr(this)+pos
.val
;
1940 /* ?at@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAADI@Z */
1941 /* ?at@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAAEAD_K@Z */
1942 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_at
, 8)
1943 char* __thiscall
MSVCP_basic_string_char_at(
1944 basic_string_char
*this, MSVCP_size_t pos
)
1946 TRACE("%p %lu\n", this, pos
);
1948 if(this->size
<= pos
)
1949 MSVCP__String_base_Xran();
1951 return basic_string_char_ptr(this)+pos
;
1954 /* ?at@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEABDI@Z */
1955 /* ?at@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBAAEBD_K@Z */
1956 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_const_at
, 8)
1957 const char* __thiscall
MSVCP_basic_string_char_const_at(
1958 const basic_string_char
*this, MSVCP_size_t pos
)
1960 TRACE("%p %lu\n", this, pos
);
1962 if(this->size
<= pos
)
1963 MSVCP__String_base_Xran();
1965 return basic_string_char_const_ptr(this)+pos
;
1968 /* ?replace@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@IIPBDI@Z */
1969 /* ?replace@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAAEAV12@_K0PEBD0@Z */
1970 DEFINE_THISCALL_WRAPPER(basic_string_char_replace_cstr_len
, 20)
1971 basic_string_char
* __thiscall
basic_string_char_replace_cstr_len(basic_string_char
*this,
1972 MSVCP_size_t off
, MSVCP_size_t len
, const char *str
, MSVCP_size_t str_len
)
1974 MSVCP_size_t inside_pos
= -1;
1975 char *ptr
= basic_string_char_ptr(this);
1977 TRACE("%p %ld %ld %p %ld\n", this, off
, len
, str
, str_len
);
1979 if(this->size
< off
)
1980 MSVCP__String_base_Xran();
1982 if(len
> this->size
-off
)
1983 len
= this->size
-off
;
1985 if(MSVCP_basic_string_char_npos
-str_len
<= this->size
-len
)
1986 MSVCP__String_base_Xlen();
1988 if(basic_string_char_inside(this, str
))
1989 inside_pos
= str
-ptr
;
1992 basic_string_char_grow(this, this->size
-len
+str_len
, FALSE
);
1993 ptr
= basic_string_char_ptr(this);
1996 if(inside_pos
== -1) {
1997 memmove(ptr
+off
+str_len
, ptr
+off
+len
, (this->size
-off
-len
)*sizeof(char));
1998 memcpy(ptr
+off
, str
, str_len
*sizeof(char));
1999 } else if(len
>= str_len
) {
2000 memmove(ptr
+off
, ptr
+inside_pos
, str_len
*sizeof(char));
2001 memmove(ptr
+off
+str_len
, ptr
+off
+len
, (this->size
-off
-len
)*sizeof(char));
2005 memmove(ptr
+off
+str_len
, ptr
+off
+len
, (this->size
-off
-len
)*sizeof(char));
2007 if(inside_pos
< off
+len
) {
2008 size
= off
+len
-inside_pos
;
2011 memmove(ptr
+off
, ptr
+inside_pos
, size
*sizeof(char));
2017 memmove(ptr
+off
+size
, ptr
+off
+str_len
, (str_len
-size
)*sizeof(char));
2020 basic_string_char_eos(this, this->size
-len
+str_len
);
2024 /* ?replace@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@IIPBD@Z */
2025 /* ?replace@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAAEAV12@_K0PEBD@Z */
2026 DEFINE_THISCALL_WRAPPER(basic_string_char_replace_cstr
, 16)
2027 basic_string_char
* __thiscall
basic_string_char_replace_cstr(basic_string_char
*this,
2028 MSVCP_size_t off
, MSVCP_size_t len
, const char *str
)
2030 return basic_string_char_replace_cstr_len(this, off
, len
, str
,
2031 MSVCP_char_traits_char_length(str
));
2034 /* ?replace@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@IIABV12@II@Z */
2035 /* ?replace@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAAEAV12@_K0AEBV12@00@Z */
2036 DEFINE_THISCALL_WRAPPER(basic_string_char_replace_substr
, 24)
2037 basic_string_char
* __thiscall
basic_string_char_replace_substr(basic_string_char
*this, MSVCP_size_t off
,
2038 MSVCP_size_t len
, const basic_string_char
*str
, MSVCP_size_t str_off
, MSVCP_size_t str_len
)
2040 if(str
->size
< str_off
)
2041 MSVCP__String_base_Xran();
2043 if(str_len
> str
->size
-str_off
)
2044 str_len
= str
->size
-str_off
;
2046 return basic_string_char_replace_cstr_len(this, off
, len
,
2047 basic_string_char_const_ptr(str
)+str_off
, str_len
);
2050 /* ?replace@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@IIABV12@@Z */
2051 /* ?replace@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAAEAV12@_K0AEBV12@@Z */
2052 DEFINE_THISCALL_WRAPPER(basic_string_char_replace
, 16)
2053 basic_string_char
* __thiscall
basic_string_char_replace(basic_string_char
*this,
2054 MSVCP_size_t off
, MSVCP_size_t len
, const basic_string_char
*str
)
2056 return basic_string_char_replace_cstr_len(this, off
, len
,
2057 basic_string_char_const_ptr(str
), str
->size
);
2060 /* ?replace@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@IIID@Z */
2061 /* ?replace@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAAEAV12@_K00D@Z */
2062 DEFINE_THISCALL_WRAPPER(basic_string_char_replace_ch
, 20)
2063 basic_string_char
* __thiscall
basic_string_char_replace_ch(basic_string_char
*this,
2064 MSVCP_size_t off
, MSVCP_size_t len
, MSVCP_size_t count
, char ch
)
2066 char *ptr
= basic_string_char_ptr(this);
2068 TRACE("%p %ld %ld %ld %c\n", this, off
, len
, count
, ch
);
2070 if(this->size
< off
)
2071 MSVCP__String_base_Xran();
2073 if(len
> this->size
-off
)
2074 len
= this->size
-off
;
2076 if(MSVCP_basic_string_char_npos
-count
<= this->size
-len
)
2077 MSVCP__String_base_Xlen();
2080 basic_string_char_grow(this, this->size
-len
+count
, FALSE
);
2081 ptr
= basic_string_char_ptr(this);
2084 memmove(ptr
+off
+count
, ptr
+off
+len
, (this->size
-off
-len
)*sizeof(char));
2085 MSVCP_char_traits_char_assignn(ptr
+off
, count
, ch
);
2086 basic_string_char_eos(this, this->size
-len
+count
);
2091 /* ?insert@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@IABV12@@Z */
2092 /* ?insert@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAAEAV12@_KAEBV12@@Z */
2093 DEFINE_THISCALL_WRAPPER(basic_string_char_insert
, 12)
2094 basic_string_char
* __thiscall
basic_string_char_insert(basic_string_char
*this,
2095 MSVCP_size_t off
, const basic_string_char
*str
)
2097 return basic_string_char_replace(this, off
, 0, str
);
2100 /* ?insert@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@IABV12@II@Z */
2101 /* ?insert@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAAEAV12@_KAEBV12@00@Z */
2102 DEFINE_THISCALL_WRAPPER(basic_string_char_insert_substr
, 20)
2103 basic_string_char
* __thiscall
basic_string_char_insert_substr(
2104 basic_string_char
*this, MSVCP_size_t off
, const basic_string_char
*str
,
2105 MSVCP_size_t str_off
, MSVCP_size_t str_count
)
2107 return basic_string_char_replace_substr(this, off
, 0, str
, str_off
, str_count
);
2110 /* ?insert@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@IPBD@Z */
2111 /* ?insert@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAAEAV12@_KPEBD@Z */
2112 DEFINE_THISCALL_WRAPPER(basic_string_char_insert_cstr
, 12)
2113 basic_string_char
* __thiscall
basic_string_char_insert_cstr(
2114 basic_string_char
*this, MSVCP_size_t off
, const char *str
)
2116 return basic_string_char_replace_cstr(this, off
, 0, str
);
2119 /* ?insert@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@IPBDI@Z */
2120 /* ?insert@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAAEAV12@_KPEBD0@Z */
2121 DEFINE_THISCALL_WRAPPER(basic_string_char_insert_cstr_len
, 16)
2122 basic_string_char
* __thiscall
basic_string_char_insert_cstr_len(basic_string_char
*this,
2123 MSVCP_size_t off
, const char *str
, MSVCP_size_t str_len
)
2125 return basic_string_char_replace_cstr_len(this, off
, 0, str
, str_len
);
2128 /* ?insert@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@IID@Z */
2129 /* ?insert@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAAEAV12@_K0D@Z */
2130 DEFINE_THISCALL_WRAPPER(basic_string_char_insert_chn
, 16)
2131 basic_string_char
* __thiscall
basic_string_char_insert_chn(basic_string_char
*this,
2132 MSVCP_size_t off
, MSVCP_size_t count
, char ch
)
2134 return basic_string_char_replace_ch(this, off
, 0, count
, ch
);
2137 /* ?resize@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEXID@Z */
2138 /* ?resize@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAX_KD@Z */
2139 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_resize_ch
, 12)
2140 void __thiscall
MSVCP_basic_string_char_resize_ch(
2141 basic_string_char
*this, MSVCP_size_t size
, char ch
)
2143 TRACE("%p %lu %c\n", this, size
, ch
);
2145 if(size
<= this->size
)
2146 MSVCP_basic_string_char_erase(this, size
, this->size
);
2148 MSVCP_basic_string_char_append_len_ch(this, size
-this->size
, ch
);
2151 /* ?resize@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEXI@Z */
2152 /* ?resize@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAX_K@Z */
2153 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_resize
, 8)
2154 void __thiscall
MSVCP_basic_string_char_resize(
2155 basic_string_char
*this, MSVCP_size_t size
)
2157 MSVCP_basic_string_char_resize_ch(this, size
, '\0');
2160 /* ?clear@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEXXZ */
2161 /* ?clear@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAXXZ */
2162 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_clear
, 4)
2163 void __thiscall
MSVCP_basic_string_char_clear(basic_string_char
*this)
2165 basic_string_char_eos(this, 0);
2168 /* basic_string<wchar_t, char_traits<wchar_t>, allocator<wchar_t>> */
2169 /* basic_string<unsigned short, char_traits<unsigned short>, allocator<unsigned short>> */
2170 /* ?npos@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@2IB */
2171 /* ?npos@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@2_KB */
2172 /* ?npos@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@2IB */
2173 /* ?npos@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@2_KB */
2174 const MSVCP_size_t MSVCP_basic_string_wchar_npos
= -1;
2176 /* ?_Myptr@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@IAEPA_WXZ */
2177 /* ?_Myptr@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@IEAAPEA_WXZ */
2178 /* ?_Myptr@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@IAEPAGXZ */
2179 /* ?_Myptr@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@IEAAPEAGXZ */
2180 DEFINE_THISCALL_WRAPPER(basic_string_wchar_ptr
, 4)
2181 wchar_t* __thiscall
basic_string_wchar_ptr(basic_string_wchar
*this)
2183 if(this->res
< BUF_SIZE_WCHAR
)
2184 return this->data
.buf
;
2185 return this->data
.ptr
;
2188 /* ?_Myptr@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@IBEPB_WXZ */
2189 /* ?_Myptr@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@IEBAPEB_WXZ */
2190 /* ?_Myptr@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@IBEPBGXZ */
2191 /* ?_Myptr@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@IEBAPEBGXZ */
2192 DEFINE_THISCALL_WRAPPER(basic_string_wchar_const_ptr
, 4)
2193 const wchar_t* __thiscall
basic_string_wchar_const_ptr(const basic_string_wchar
*this)
2195 if(this->res
< BUF_SIZE_WCHAR
)
2196 return this->data
.buf
;
2197 return this->data
.ptr
;
2200 /* ?_Eos@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@IAEXI@Z */
2201 /* ?_Eos@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@IEAAX_K@Z */
2202 /* ?_Eos@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@IAEXI@Z */
2203 /* ?_Eos@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@IEAAX_K@Z */
2204 DEFINE_THISCALL_WRAPPER(basic_string_wchar_eos
, 8)
2205 void __thiscall
basic_string_wchar_eos(basic_string_wchar
*this, MSVCP_size_t len
)
2207 static const wchar_t nullbyte_w
= '\0';
2210 MSVCP_char_traits_wchar_assign(basic_string_wchar_ptr(this)+len
, &nullbyte_w
);
2213 /* ?_Inside@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@IAE_NPB_W@Z */
2214 /* ?_Inside@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@IEAA_NPEB_W@Z */
2215 /* ?_Inside@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@IAE_NPBG@Z */
2216 /* ?_Inside@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@IEAA_NPEBG@Z */
2217 DEFINE_THISCALL_WRAPPER(basic_string_wchar_inside
, 8)
2218 MSVCP_bool __thiscall
basic_string_wchar_inside(
2219 basic_string_wchar
*this, const wchar_t *ptr
)
2221 wchar_t *cstr
= basic_string_wchar_ptr(this);
2223 return ptr
>=cstr
&& ptr
<cstr
+this->size
;
2226 /* ?_Tidy@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@IAEX_NI@Z */
2227 /* ?_Tidy@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@IEAAX_N_K@Z */
2228 /* ?_Tidy@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@IAEX_NI@Z */
2229 /* ?_Tidy@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@IEAAX_N_K@Z */
2230 DEFINE_THISCALL_WRAPPER(basic_string_wchar_tidy
, 12)
2231 void __thiscall
basic_string_wchar_tidy(basic_string_wchar
*this,
2232 MSVCP_bool built
, MSVCP_size_t new_size
)
2234 if(built
&& BUF_SIZE_WCHAR
<=this->res
) {
2235 wchar_t *ptr
= this->data
.ptr
;
2238 MSVCP_char_traits_wchar__Copy_s(this->data
.buf
, BUF_SIZE_WCHAR
, ptr
, new_size
);
2239 MSVCP_allocator_wchar_deallocate(STRING_ALLOCATOR(this), ptr
, this->res
+1);
2242 this->res
= BUF_SIZE_WCHAR
-1;
2243 basic_string_wchar_eos(this, new_size
);
2246 /* ?_Grow@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@IAE_NI_N@Z */
2247 /* ?_Grow@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@IEAA_N_K_N@Z */
2248 /* ?_Grow@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@IAE_NI_N@Z */
2249 /* ?_Grow@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@IEAA_N_K_N@Z */
2250 DEFINE_THISCALL_WRAPPER(basic_string_wchar_grow
, 12)
2251 MSVCP_bool __thiscall
basic_string_wchar_grow(
2252 basic_string_wchar
*this, MSVCP_size_t new_size
, MSVCP_bool trim
)
2254 if(this->res
< new_size
) {
2255 MSVCP_size_t new_res
= new_size
, len
= this->size
;
2260 if(new_res
/3 < this->res
/2)
2261 new_res
= this->res
+ this->res
/2;
2263 ptr
= MSVCP_allocator_wchar_allocate(STRING_ALLOCATOR(this), new_res
+1);
2265 ptr
= MSVCP_allocator_wchar_allocate(STRING_ALLOCATOR(this), new_size
+1);
2269 ERR("Out of memory\n");
2270 basic_string_wchar_tidy(this, TRUE
, 0);
2274 MSVCP_char_traits_wchar__Copy_s(ptr
, new_size
,
2275 basic_string_wchar_ptr(this), this->size
);
2276 basic_string_wchar_tidy(this, TRUE
, 0);
2277 this->data
.ptr
= ptr
;
2278 this->res
= new_size
;
2279 basic_string_wchar_eos(this, len
);
2280 } else if(trim
&& new_size
< BUF_SIZE_WCHAR
)
2281 basic_string_wchar_tidy(this, TRUE
,
2282 new_size
<this->size
? new_size
: this->size
);
2283 else if(new_size
== 0)
2284 basic_string_wchar_eos(this, 0);
2286 return (new_size
>0);
2289 /* ?_Copy@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@IAEXII@Z */
2290 /* ?_Copy@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@IEAAX_K0@Z */
2291 /* ?_Copy@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@IAEXII@Z */
2292 /* ?_Copy@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@IEAAX_K0@Z */
2293 DEFINE_THISCALL_WRAPPER(basic_string_wchar__Copy
, 12)
2294 void __thiscall
basic_string_wchar__Copy(basic_string_wchar
*this,
2295 MSVCP_size_t new_size
, MSVCP_size_t copy_len
)
2297 TRACE("%p %lu %lu\n", this, new_size
, copy_len
);
2299 if(!basic_string_wchar_grow(this, new_size
, FALSE
))
2301 basic_string_wchar_eos(this, copy_len
);
2304 /* ?get_allocator@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBE?AV?$allocator@_W@2@XZ */
2305 /* ?get_allocator@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBA?AV?$allocator@_W@2@XZ */
2306 /* ?get_allocator@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBE?AV?$allocator@G@2@XZ */
2307 /* ?get_allocator@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBA?AV?$allocator@G@2@XZ */
2308 DEFINE_THISCALL_WRAPPER(basic_string_wchar_get_allocator
, 8)
2309 allocator
* __thiscall
basic_string_wchar_get_allocator(const basic_string_wchar
*this, allocator
*ret
)
2311 TRACE("%p\n", this);
2315 /* ?erase@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV12@II@Z */
2316 /* ?erase@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAAEAV12@_K0@Z */
2317 /* ?erase@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV12@II@Z */
2318 /* ?erase@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAAEAV12@_K0@Z */
2319 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_erase
, 12)
2320 basic_string_wchar
* __thiscall
MSVCP_basic_string_wchar_erase(
2321 basic_string_wchar
*this, MSVCP_size_t pos
, MSVCP_size_t len
)
2323 TRACE("%p %lu %lu\n", this, pos
, len
);
2325 if(pos
> this->size
)
2326 MSVCP__String_base_Xran();
2328 if(len
> this->size
-pos
)
2329 len
= this->size
-pos
;
2332 MSVCP_char_traits_wchar__Move_s(basic_string_wchar_ptr(this)+pos
,
2333 this->res
-pos
, basic_string_wchar_ptr(this)+pos
+len
,
2334 this->size
-pos
-len
);
2335 basic_string_wchar_eos(this, this->size
-len
);
2341 /* ?assign@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV12@ABV12@II@Z */
2342 /* ?assign@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAAEAV12@AEBV12@_K1@Z */
2343 /* ?assign@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV12@ABV12@II@Z */
2344 /* ?assign@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAAEAV12@AEBV12@_K1@Z */
2345 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_assign_substr
, 16)
2346 basic_string_wchar
* __thiscall
MSVCP_basic_string_wchar_assign_substr(
2347 basic_string_wchar
*this, const basic_string_wchar
*assign
,
2348 MSVCP_size_t pos
, MSVCP_size_t len
)
2350 TRACE("%p %p %lu %lu\n", this, assign
, pos
, len
);
2352 if(assign
->size
< pos
)
2353 MSVCP__String_base_Xran();
2355 if(len
> assign
->size
-pos
)
2356 len
= assign
->size
-pos
;
2358 if(this == assign
) {
2359 MSVCP_basic_string_wchar_erase(this, pos
+len
, MSVCP_basic_string_wchar_npos
);
2360 MSVCP_basic_string_wchar_erase(this, 0, pos
);
2361 } else if(basic_string_wchar_grow(this, len
, FALSE
)) {
2362 MSVCP_char_traits_wchar__Copy_s(basic_string_wchar_ptr(this),
2363 this->res
, basic_string_wchar_const_ptr(assign
)+pos
, len
);
2364 basic_string_wchar_eos(this, len
);
2370 /* ?assign@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV12@ABV12@@Z */
2371 /* ?assign@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAAEAV12@AEBV12@@Z */
2372 /* ??4?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV01@ABV01@@Z */
2373 /* ??4?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAAEAV01@AEBV01@@Z */
2374 /* ?assign@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV12@ABV12@@Z */
2375 /* ?assign@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAAEAV12@AEBV12@@Z */
2376 /* ??4?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV01@ABV01@@Z */
2377 /* ??4?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAAEAV01@AEBV01@@Z */
2378 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_assign
, 8)
2379 basic_string_wchar
* __thiscall
MSVCP_basic_string_wchar_assign(
2380 basic_string_wchar
*this, const basic_string_wchar
*assign
)
2382 return MSVCP_basic_string_wchar_assign_substr(this, assign
,
2383 0, MSVCP_basic_string_wchar_npos
);
2386 /* ?assign@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV12@PB_WI@Z */
2387 /* ?assign@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAAEAV12@PEB_W_K@Z */
2388 /* ?assign@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV12@PBGI@Z */
2389 /* ?assign@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAAEAV12@PEBG_K@Z */
2390 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_assign_cstr_len
, 12)
2391 basic_string_wchar
* __thiscall
MSVCP_basic_string_wchar_assign_cstr_len(
2392 basic_string_wchar
*this, const wchar_t *str
, MSVCP_size_t len
)
2394 TRACE("%p %s %lu\n", this, debugstr_wn(str
, len
), len
);
2396 if(basic_string_wchar_inside(this, str
))
2397 return MSVCP_basic_string_wchar_assign_substr(this, this,
2398 str
-basic_string_wchar_ptr(this), len
);
2399 else if(basic_string_wchar_grow(this, len
, FALSE
)) {
2400 MSVCP_char_traits_wchar__Copy_s(basic_string_wchar_ptr(this),
2401 this->res
, str
, len
);
2402 basic_string_wchar_eos(this, len
);
2408 /* ??4?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV01@_W@Z */
2409 /* ??4?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAAEAV01@_W@Z */
2410 /* ??4?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV01@G@Z */
2411 /* ??4?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAAEAV01@G@Z */
2412 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_assign_ch
, 8)
2413 basic_string_wchar
* __thiscall
MSVCP_basic_string_wchar_assign_ch(
2414 basic_string_wchar
*this, wchar_t ch
)
2416 return MSVCP_basic_string_wchar_assign_cstr_len(this, &ch
, 1);
2419 /* ?assign@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV12@PB_W@Z */
2420 /* ?assign@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAAEAV12@PEB_W@Z */
2421 /* ??4?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV01@PB_W@Z */
2422 /* ??4?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAAEAV01@PEB_W@Z */
2423 /* ?assign@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV12@PBG@Z */
2424 /* ?assign@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAAEAV12@PEBG@Z */
2425 /* ??4?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV01@PBG@Z */
2426 /* ??4?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAAEAV01@PEBG@Z */
2427 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_assign_cstr
, 8)
2428 basic_string_wchar
* __thiscall
MSVCP_basic_string_wchar_assign_cstr(
2429 basic_string_wchar
*this, const wchar_t *str
)
2431 return MSVCP_basic_string_wchar_assign_cstr_len(this, str
,
2432 MSVCP_char_traits_wchar_length(str
));
2435 /* ?assign@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV12@I_W@Z */
2436 /* ?assign@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAAEAV12@_K_W@Z */
2437 /* ?assign@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV12@IG@Z */
2438 /* ?assign@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAAEAV12@_KG@Z */
2439 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_assignn
, 12)
2440 basic_string_wchar
* __thiscall
MSVCP_basic_string_wchar_assignn(
2441 basic_string_wchar
*this, MSVCP_size_t count
, wchar_t ch
)
2443 TRACE("%p %ld %c\n", this, count
, ch
);
2445 basic_string_wchar_grow(this, count
, FALSE
);
2446 MSVCP_char_traits_wchar_assignn(basic_string_wchar_ptr(this), count
, ch
);
2447 basic_string_wchar_eos(this, count
);
2451 /* ?assign@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV12@PB_W0@Z */
2452 /* ?assign@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAAEAV12@PEB_W0@Z */
2453 /* ?assign@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV12@PBG0@Z */
2454 /* ?assign@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAAEAV12@PEBG0@Z */
2455 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_assign_ptr_ptr
, 12)
2456 basic_string_wchar
* __thiscall
MSVCP_basic_string_wchar_assign_ptr_ptr(
2457 basic_string_wchar
*this, const wchar_t *first
, const wchar_t *last
)
2459 return MSVCP_basic_string_wchar_assign_cstr_len(this, first
, last
-first
);
2462 /* ?_Chassign@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@IAEXII_W@Z */
2463 /* ?_Chassign@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@IEAAX_K0_W@Z */
2464 /* ?_Chassign@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@IAEXIIG@Z */
2465 /* ?_Chassign@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@IEAAX_K0G@Z */
2466 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_Chassign
, 16)
2467 void __thiscall
MSVCP_basic_string_wchar_Chassign(basic_string_wchar
*this,
2468 MSVCP_size_t off
, MSVCP_size_t count
, wchar_t ch
)
2470 TRACE("%p %lu %lu %c\n", this, off
, count
, ch
);
2471 MSVCP_char_traits_wchar_assignn(basic_string_wchar_ptr(this)+off
, count
, ch
);
2474 /* ?_Copy_s@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEIPA_WIII@Z */
2475 /* ?_Copy_s@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBA_KPEA_W_K11@Z */
2476 /* ?_Copy_s@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEIPAGIII@Z */
2477 /* ?_Copy_s@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBA_KPEAG_K11@Z */
2478 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_Copy_s
, 20)
2479 MSVCP_size_t __thiscall
MSVCP_basic_string_wchar_Copy_s(const basic_string_wchar
*this,
2480 wchar_t *dest
, MSVCP_size_t size
, MSVCP_size_t count
, MSVCP_size_t off
)
2482 TRACE("%p %p %lu %lu %lu\n", this, dest
, size
, count
, off
);
2484 if(this->size
< off
)
2485 MSVCP__String_base_Xran();
2487 if(count
> this->size
-off
)
2488 count
= this->size
-off
;
2490 MSVCP_char_traits_wchar__Copy_s(dest
, size
,
2491 basic_string_wchar_const_ptr(this)+off
, count
);
2495 /* ?copy@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEIPA_WII@Z */
2496 /* ?copy@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBA_KPEA_W_K1@Z */
2497 /* ?copy@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEIPAGII@Z */
2498 /* ?copy@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBA_KPEAG_K1@Z */
2499 DEFINE_THISCALL_WRAPPER(basic_string_wchar_copy
, 16)
2500 MSVCP_size_t __thiscall
basic_string_wchar_copy(const basic_string_wchar
*this,
2501 wchar_t *dest
, MSVCP_size_t count
, MSVCP_size_t off
)
2503 return MSVCP_basic_string_wchar_Copy_s(this, dest
, count
, count
, off
);
2506 /* ?c_str@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEPB_WXZ */
2507 /* ?c_str@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBAPEB_WXZ */
2508 /* ?data@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEPB_WXZ */
2509 /* ?data@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBAPEB_WXZ */
2510 /* ?c_str@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEPBGXZ */
2511 /* ?c_str@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBAPEBGXZ */
2512 /* ?data@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEPBGXZ */
2513 /* ?data@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBAPEBGXZ */
2514 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_c_str
, 4)
2515 const wchar_t* __thiscall
MSVCP_basic_string_wchar_c_str(const basic_string_wchar
*this)
2517 TRACE("%p\n", this);
2518 return basic_string_wchar_const_ptr(this);
2521 /* ?capacity@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEIXZ */
2522 /* ?capacity@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBA_KXZ */
2523 /* ?capacity@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEIXZ */
2524 /* ?capacity@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBA_KXZ */
2525 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_capacity
, 4)
2526 MSVCP_size_t __thiscall
MSVCP_basic_string_wchar_capacity(basic_string_wchar
*this)
2528 TRACE("%p\n", this);
2532 /* ?reserve@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEXI@Z */
2533 /* ?reserve@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAX_K@Z */
2534 /* ?reserve@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEXI@Z */
2535 /* ?reserve@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAX_K@Z */
2536 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_reserve
, 8)
2537 void __thiscall
MSVCP_basic_string_wchar_reserve(basic_string_wchar
*this, MSVCP_size_t size
)
2541 TRACE("%p %ld\n", this, size
);
2547 if(basic_string_wchar_grow(this, size
, TRUE
))
2548 basic_string_wchar_eos(this, len
);
2551 /* ??0?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE@XZ */
2552 /* ??0?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAA@XZ */
2553 /* ??0?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAE@XZ */
2554 /* ??0?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAA@XZ */
2555 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_ctor
, 4)
2556 basic_string_wchar
* __thiscall
MSVCP_basic_string_wchar_ctor(basic_string_wchar
*this)
2558 TRACE("%p\n", this);
2560 basic_string_wchar_tidy(this, FALSE
, 0);
2564 /* ??0?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE@ABV01@@Z */
2565 /* ??0?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAA@AEBV01@@Z */
2566 /* ??0?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAE@ABV01@@Z */
2567 /* ??0?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAA@AEBV01@@Z */
2568 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_copy_ctor
, 8)
2569 basic_string_wchar
* __thiscall
MSVCP_basic_string_wchar_copy_ctor(
2570 basic_string_wchar
*this, const basic_string_wchar
*copy
)
2572 TRACE("%p %p\n", this, copy
);
2574 basic_string_wchar_tidy(this, FALSE
, 0);
2575 MSVCP_basic_string_wchar_assign(this, copy
);
2579 /* ??0?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE@PB_W@Z */
2580 /* ??0?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAA@PEB_W@Z */
2581 /* ??0?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAE@PBG@Z */
2582 /* ??0?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAA@PEBG@Z */
2583 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_ctor_cstr
, 8)
2584 basic_string_wchar
* __thiscall
MSVCP_basic_string_wchar_ctor_cstr(
2585 basic_string_wchar
*this, const wchar_t *str
)
2587 TRACE("%p %s\n", this, debugstr_w(str
));
2589 basic_string_wchar_tidy(this, FALSE
, 0);
2590 MSVCP_basic_string_wchar_assign_cstr(this, str
);
2594 /* ??0?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE@PB_WABV?$allocator@_W@1@@Z */
2595 /* ??0?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAA@PEB_WAEBV?$allocator@_W@1@@Z */
2596 /* ??0?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAE@PBGABV?$allocator@G@1@@Z */
2597 /* ??0?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAA@PEBGAEBV?$allocator@G@1@@Z */
2598 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_ctor_cstr_alloc
, 12)
2599 basic_string_wchar
* __thiscall
MSVCP_basic_string_wchar_ctor_cstr_alloc(
2600 basic_string_wchar
*this, const wchar_t *str
, const void *alloc
)
2602 return MSVCP_basic_string_wchar_ctor_cstr(this, str
);
2605 /* ??0?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE@PB_WI@Z */
2606 /* ??0?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAA@PEB_W_K@Z */
2607 /* ??0?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAE@PBGI@Z */
2608 /* ??0?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAA@PEBG_K@Z */
2609 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_ctor_cstr_len
, 12)
2610 basic_string_wchar
* __thiscall
MSVCP_basic_string_wchar_ctor_cstr_len(
2611 basic_string_wchar
*this, const wchar_t *str
, MSVCP_size_t len
)
2613 TRACE("%p %s %ld\n", this, debugstr_wn(str
, len
), len
);
2615 basic_string_wchar_tidy(this, FALSE
, 0);
2616 MSVCP_basic_string_wchar_assign_cstr_len(this, str
, len
);
2620 /* ??0?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE@PB_WIABV?$allocator@_W@1@@Z */
2621 /* ??0?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAA@PEB_W_KAEBV?$allocator@_W@1@@Z */
2622 /* ??0?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAE@PBGIABV?$allocator@G@1@@Z */
2623 /* ??0?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAA@PEBG_KAEBV?$allocator@G@1@@Z */
2624 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_ctor_cstr_len_alloc
, 16)
2625 basic_string_wchar
* __thiscall
MSVCP_basic_string_wchar_ctor_cstr_len_alloc(
2626 basic_string_wchar
*this, const wchar_t *str
, MSVCP_size_t len
, const void *alloc
)
2628 return MSVCP_basic_string_wchar_ctor_cstr_len(this, str
, len
);
2631 /* ??0?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE@ABV01@II@Z */
2632 /* ??0?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAA@AEBV01@_K1@Z */
2633 /* ??0?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAE@ABV01@II@Z */
2634 /* ??0?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAA@AEBV01@_K1@Z */
2635 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_ctor_substr
, 16)
2636 basic_string_wchar
* __thiscall
MSVCP_basic_string_wchar_ctor_substr(
2637 basic_string_wchar
*this, const basic_string_wchar
*assign
,
2638 MSVCP_size_t pos
, MSVCP_size_t len
)
2640 TRACE("%p %p %lu %lu\n", this, assign
, pos
, len
);
2642 basic_string_wchar_tidy(this, FALSE
, 0);
2643 MSVCP_basic_string_wchar_assign_substr(this, assign
, pos
, len
);
2647 /* ??0?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE@ABV01@IIABV?$allocator@_W@1@@Z */
2648 /* ??0?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAA@AEBV01@_K1AEBV?$allocator@_W@1@@Z */
2649 /* ??0?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAE@ABV01@IIABV?$allocator@G@1@@Z */
2650 /* ??0?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAA@AEBV01@_K1AEBV?$allocator@G@1@@Z */
2651 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_ctor_substr_alloc
, 20)
2652 basic_string_wchar
* __thiscall
MSVCP_basic_string_wchar_ctor_substr_alloc(
2653 basic_string_wchar
*this, const basic_string_wchar
*assign
,
2654 MSVCP_size_t pos
, MSVCP_size_t len
, const void *alloc
)
2656 return MSVCP_basic_string_wchar_ctor_substr(this, assign
, pos
, len
);
2659 /* ??0?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE@ABV?$allocator@_W@1@@Z */
2660 /* ??0?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAA@AEBV?$allocator@_W@1@@Z */
2661 /* ??0?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAE@ABV?$allocator@G@1@@Z */
2662 /* ??0?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAA@AEBV?$allocator@G@1@@Z */
2663 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_ctor_alloc
, 8)
2664 basic_string_wchar
* __thiscall
MSVCP_basic_string_wchar_ctor_alloc(
2665 basic_string_wchar
*this, const void *alloc
)
2667 TRACE("%p %p\n", this, alloc
);
2669 basic_string_wchar_tidy(this, FALSE
, 0);
2673 /* ??0?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE@I_W@Z */
2674 /* ??0?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAA@_K_W@Z */
2675 /* ??0?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAE@IG@Z */
2676 /* ??0?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAA@_KG@Z */
2677 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_ctor_ch
, 12)
2678 basic_string_wchar
* __thiscall
MSVCP_basic_string_wchar_ctor_ch(basic_string_wchar
*this,
2679 MSVCP_size_t count
, wchar_t ch
)
2681 TRACE("%p %ld %c\n", this, count
, ch
);
2683 basic_string_wchar_tidy(this, FALSE
, 0);
2684 MSVCP_basic_string_wchar_assignn(this, count
, ch
);
2688 /* ??0?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE@I_WABV?$allocator@_W@1@@Z */
2689 /* ??0?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAA@_K_WAEBV?$allocator@_W@1@@Z */
2690 /* ??0?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAE@IGABV?$allocator@G@1@@Z */
2691 /* ??0?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAA@_KGAEBV?$allocator@G@1@@Z */
2692 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_ctor_ch_alloc
, 16)
2693 basic_string_wchar
* __thiscall
MSVCP_basic_string_wchar_ctor_ch_alloc(basic_string_wchar
*this,
2694 MSVCP_size_t count
, wchar_t ch
, const void *alloc
)
2696 return MSVCP_basic_string_wchar_ctor_ch(this, count
, ch
);
2699 /* ??0?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE@PB_W0@Z */
2700 /* ??0?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAA@PEB_W0@Z */
2701 /* ??0?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAE@PBG0@Z */
2702 /* ??0?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAA@PEBG0@Z */
2703 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_ctor_ptr_ptr
, 12)
2704 basic_string_wchar
* __thiscall
MSVCP_basic_string_wchar_ctor_ptr_ptr(basic_string_wchar
*this,
2705 const wchar_t *first
, const wchar_t *last
)
2707 return MSVCP_basic_string_wchar_ctor_cstr_len(this, first
, last
-first
);
2710 /* ??1?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE@XZ */
2711 /* ??1?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAA@XZ */
2712 /* ??1?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAE@XZ */
2713 /* ??1?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAA@XZ */
2714 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_dtor
, 4)
2715 void __thiscall
MSVCP_basic_string_wchar_dtor(basic_string_wchar
*this)
2717 TRACE("%p\n", this);
2718 basic_string_wchar_tidy(this, TRUE
, 0);
2721 /* ?size@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEIXZ */
2722 /* ?size@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBA_KXZ */
2723 /* ?length@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEIXZ */
2724 /* ?length@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBA_KXZ */
2725 /* ?size@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEIXZ */
2726 /* ?size@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBA_KXZ */
2727 /* ?length@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEIXZ */
2728 /* ?length@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBA_KXZ */
2729 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_length
, 4)
2730 MSVCP_size_t __thiscall
MSVCP_basic_string_wchar_length(const basic_string_wchar
*this)
2732 TRACE("%p\n", this);
2736 /* ?max_size@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEIXZ */
2737 /* ?max_size@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBA_KXZ */
2738 /* ?max_size@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEIXZ */
2739 /* ?max_size@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBA_KXZ */
2740 DEFINE_THISCALL_WRAPPER(basic_string_wchar_max_size
, 4)
2741 MSVCP_size_t __thiscall
basic_string_wchar_max_size(const basic_string_wchar
*this)
2743 TRACE("%p\n", this);
2744 return MSVCP_allocator_wchar_max_size(STRING_ALLOCATOR(this))-1;
2747 /* ?empty@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBE_NXZ */
2748 /* ?empty@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBA_NXZ */
2749 /* ?empty@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBE_NXZ */
2750 /* ?empty@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBA_NXZ */
2751 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_empty
, 4)
2752 MSVCP_bool __thiscall
MSVCP_basic_string_wchar_empty(basic_string_wchar
*this)
2754 TRACE("%p\n", this);
2755 return this->size
== 0;
2758 /* ?swap@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEXAAV12@@Z */
2759 /* ?swap@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAXAEAV12@@Z */
2760 /* ?swap@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEXAAV12@@Z */
2761 /* ?swap@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAXAEAV12@@Z */
2762 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_swap
, 8)
2763 void __thiscall
MSVCP_basic_string_wchar_swap(basic_string_wchar
*this, basic_string_wchar
*str
)
2766 char tmp
[sizeof(this->data
)];
2767 const MSVCP_size_t size
= this->size
;
2768 const MSVCP_size_t res
= this->res
;
2770 memcpy(tmp
, this->data
.buf
, sizeof(this->data
));
2771 memcpy(this->data
.buf
, str
->data
.buf
, sizeof(this->data
));
2772 memcpy(str
->data
.buf
, tmp
, sizeof(this->data
));
2774 this->size
= str
->size
;
2775 this->res
= str
->res
;
2782 /* ?substr@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBE?AV12@II@Z */
2783 /* ?substr@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBA?AV12@_K0@Z */
2784 /* ?substr@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBE?AV12@II@Z */
2785 /* ?substr@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBA?AV12@_K0@Z */
2786 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_substr
, 16)
2787 basic_string_wchar
* __thiscall
MSVCP_basic_string_wchar_substr(basic_string_wchar
*this,
2788 basic_string_wchar
*ret
, MSVCP_size_t off
, MSVCP_size_t len
)
2790 TRACE("%p %lu %lu\n", this, off
, len
);
2792 MSVCP_basic_string_wchar_ctor_substr(ret
, this, off
, len
);
2796 /* ?append@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV12@ABV12@II@Z */
2797 /* ?append@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAAEAV12@AEBV12@_K1@Z */
2798 /* ?append@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV12@ABV12@II@Z */
2799 /* ?append@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAAEAV12@AEBV12@_K1@Z */
2800 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_append_substr
, 16)
2801 basic_string_wchar
* __thiscall
MSVCP_basic_string_wchar_append_substr(basic_string_wchar
*this,
2802 const basic_string_wchar
*append
, MSVCP_size_t offset
, MSVCP_size_t count
)
2804 TRACE("%p %p %lu %lu\n", this, append
, offset
, count
);
2806 if(append
->size
< offset
)
2807 MSVCP__String_base_Xran();
2809 if(count
> append
->size
-offset
)
2810 count
= append
->size
-offset
;
2812 if(MSVCP_basic_string_wchar_npos
-this->size
<=count
|| this->size
+count
<this->size
)
2813 MSVCP__String_base_Xlen();
2815 if(basic_string_wchar_grow(this, this->size
+count
, FALSE
)) {
2816 MSVCP_char_traits_wchar__Copy_s(basic_string_wchar_ptr(this)+this->size
,
2817 this->res
-this->size
, basic_string_wchar_const_ptr(append
)+offset
, count
);
2818 basic_string_wchar_eos(this, this->size
+count
);
2824 /* ?append@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV12@ABV12@@Z */
2825 /* ?append@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAAEAV12@AEBV12@@Z */
2826 /* ??Y?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV01@ABV01@@Z */
2827 /* ??Y?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAAEAV01@AEBV01@@Z */
2828 /* ?append@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV12@ABV12@@Z */
2829 /* ?append@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAAEAV12@AEBV12@@Z */
2830 /* ??Y?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV01@ABV01@@Z */
2831 /* ??Y?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAAEAV01@AEBV01@@Z */
2832 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_append
, 8)
2833 basic_string_wchar
* __thiscall
MSVCP_basic_string_wchar_append(
2834 basic_string_wchar
*this, const basic_string_wchar
*append
)
2836 return MSVCP_basic_string_wchar_append_substr(this, append
,
2837 0, MSVCP_basic_string_wchar_npos
);
2840 /* ?append@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV12@PB_WI@Z */
2841 /* ?append@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAAEAV12@PEB_W_K@Z */
2842 /* ?append@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV12@PBGI@Z */
2843 /* ?append@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAAEAV12@PEBG_K@Z */
2844 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_append_cstr_len
, 12)
2845 basic_string_wchar
* __thiscall
MSVCP_basic_string_wchar_append_cstr_len(
2846 basic_string_wchar
*this, const wchar_t *append
, MSVCP_size_t count
)
2848 TRACE("%p %s %lu\n", this, debugstr_wn(append
, count
), count
);
2850 if(basic_string_wchar_inside(this, append
))
2851 return MSVCP_basic_string_wchar_append_substr(this, this,
2852 append
-basic_string_wchar_ptr(this), count
);
2854 if(MSVCP_basic_string_wchar_npos
-this->size
<=count
|| this->size
+count
<this->size
)
2855 MSVCP__String_base_Xlen();
2857 if(basic_string_wchar_grow(this, this->size
+count
, FALSE
)) {
2858 MSVCP_char_traits_wchar__Copy_s(basic_string_wchar_ptr(this)+this->size
,
2859 this->res
-this->size
, append
, count
);
2860 basic_string_wchar_eos(this, this->size
+count
);
2866 /* ?append@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV12@PB_W@Z */
2867 /* ?append@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAAEAV12@PEB_W@Z */
2868 /* ??Y?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV01@PB_W@Z */
2869 /* ??Y?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAAEAV01@PEB_W@Z */
2870 /* ?append@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV12@PBG@Z */
2871 /* ?append@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAAEAV12@PEBG@Z */
2872 /* ??Y?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV01@PBG@Z */
2873 /* ??Y?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAAEAV01@PEBG@Z */
2874 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_append_cstr
, 8)
2875 basic_string_wchar
* __thiscall
MSVCP_basic_string_wchar_append_cstr(
2876 basic_string_wchar
*this, const wchar_t *append
)
2878 return MSVCP_basic_string_wchar_append_cstr_len(this, append
,
2879 MSVCP_char_traits_wchar_length(append
));
2882 /* ?append@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV12@PB_W0@Z */
2883 /* ?append@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAAEAV12@PEB_W0@Z */
2884 /* ?append@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV12@PBG0@Z */
2885 /* ?append@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAAEAV12@PEBG0@Z */
2886 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_append_beg_end
, 12)
2887 basic_string_wchar
* __thiscall
MSVCP_basic_string_wchar_append_beg_end(
2888 basic_string_wchar
*this, const wchar_t *beg
, const wchar_t *end
)
2890 return MSVCP_basic_string_wchar_append_cstr_len(this, beg
, end
-beg
);
2893 /* ?append@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV12@I_W@Z */
2894 /* ?append@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAAEAV12@_K_W@Z */
2895 /* ?append@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV12@IG@Z */
2896 /* ?append@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAAEAV12@_KG@Z */
2897 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_append_len_ch
, 12)
2898 basic_string_wchar
* __thiscall
MSVCP_basic_string_wchar_append_len_ch(
2899 basic_string_wchar
*this, MSVCP_size_t count
, wchar_t ch
)
2901 TRACE("%p %lu %c\n", this, count
, ch
);
2903 if(MSVCP_basic_string_wchar_npos
-this->size
<= count
)
2904 MSVCP__String_base_Xlen();
2906 if(basic_string_wchar_grow(this, this->size
+count
, FALSE
)) {
2907 MSVCP_char_traits_wchar_assignn(basic_string_wchar_ptr(this)+this->size
, count
, ch
);
2908 basic_string_wchar_eos(this, this->size
+count
);
2914 /* ??Y?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV01@_W@Z */
2915 /* ??Y?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAAEAV01@_W@Z */
2916 /* ?push_back@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEX_W@Z */
2917 /* ?push_back@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAX_W@Z */
2918 /* ??Y?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV01@G@Z */
2919 /* ??Y?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAAEAV01@G@Z */
2920 /* ?push_back@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEXG@Z */
2921 /* ?push_back@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAXG@Z */
2922 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_append_ch
, 8)
2923 basic_string_wchar
* __thiscall
MSVCP_basic_string_wchar_append_ch(
2924 basic_string_wchar
*this, wchar_t ch
)
2926 return MSVCP_basic_string_wchar_append_len_ch(this, 1, ch
);
2929 /* ??$?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 */
2930 /* ??$?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 */
2931 /* ??$?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 */
2932 /* ??$?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 */
2933 /* ??Hstd@@YA?AV?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@0@ABV10@PBG@Z */
2934 /* ??Hstd@@YA?AV?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@0@AEBV10@PEBG@Z */
2935 /* ??Hstd@@YA?AV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@0@ABV10@PB_W@Z */
2936 basic_string_wchar
* __cdecl
MSVCP_basic_string_wchar_concatenate_bstr_cstr(basic_string_wchar
*ret
,
2937 const basic_string_wchar
*left
, const wchar_t *right
)
2939 TRACE("%p %s\n", left
, debugstr_w(right
));
2941 MSVCP_basic_string_wchar_copy_ctor(ret
, left
);
2942 MSVCP_basic_string_wchar_append_cstr(ret
, right
);
2946 /* ??$?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 */
2947 /* ??$?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 */
2948 /* ??$?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 */
2949 /* ??$?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 */
2950 /* ??Hstd@@YA?AV?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@0@PBGABV10@@Z */
2951 /* ??Hstd@@YA?AV?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@0@PEBGAEBV10@@Z */
2952 /* ??Hstd@@YA?AV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@0@PB_WABV10@@Z */
2953 basic_string_wchar
* __cdecl
MSVCP_basic_string_wchar_concatenate_cstr_bstr(basic_string_wchar
*ret
,
2954 const wchar_t *left
, const basic_string_wchar
*right
)
2956 TRACE("%s %p\n", debugstr_w(left
), right
);
2958 MSVCP_basic_string_wchar_ctor_cstr(ret
, left
);
2959 MSVCP_basic_string_wchar_append(ret
, right
);
2963 /* ??$?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 */
2964 /* ??$?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 */
2965 /* ??$?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 */
2966 /* ??$?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 */
2967 /* ??Hstd@@YA?AV?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@0@ABV10@0@Z */
2968 /* ??Hstd@@YA?AV?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@0@AEBV10@0@Z */
2969 /* ??Hstd@@YA?AV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@0@ABV10@0@Z */
2970 basic_string_wchar
* __cdecl
MSVCP_basic_string_wchar_concatenate(basic_string_wchar
*ret
,
2971 const basic_string_wchar
*left
, const basic_string_wchar
*right
)
2973 TRACE("%p %p\n", left
, right
);
2975 MSVCP_basic_string_wchar_copy_ctor(ret
, left
);
2976 MSVCP_basic_string_wchar_append(ret
, right
);
2980 /* ??$?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 */
2981 /* ??$?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 */
2982 /* ??$?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 */
2983 /* ??$?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 */
2984 /* ??Hstd@@YA?AV?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@0@ABV10@G@Z */
2985 /* ??Hstd@@YA?AV?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@0@AEBV10@G@Z */
2986 /* ??Hstd@@YA?AV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@0@ABV10@_W@Z */
2987 basic_string_wchar
* __cdecl
MSVCP_basic_string_wchar_concatenate_bstr_ch(
2988 basic_string_wchar
*ret
, const basic_string_wchar
*left
, wchar_t right
)
2990 TRACE("%p %c\n", left
, right
);
2992 MSVCP_basic_string_wchar_copy_ctor(ret
, left
);
2993 MSVCP_basic_string_wchar_append_ch(ret
, right
);
2997 /* ??$?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 */
2998 /* ??$?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 */
2999 /* ??$?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 */
3000 /* ??$?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 */
3001 /* ??Hstd@@YA?AV?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@0@GABV10@@Z */
3002 /* ??Hstd@@YA?AV?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@0@GAEBV10@@Z */
3003 /* ??Hstd@@YA?AV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@0@_WABV10@@Z */
3004 basic_string_wchar
* __cdecl
MSVCP_basic_string_wchar_concatenate_ch_bstr(
3005 basic_string_wchar
* ret
, wchar_t left
, const basic_string_wchar
*right
)
3007 TRACE("%c %p\n", left
, right
);
3009 MSVCP_basic_string_wchar_ctor_cstr_len(ret
, &left
, 1);
3010 MSVCP_basic_string_wchar_append(ret
, right
);
3014 /* ?compare@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEHIIPB_WI@Z */
3015 /* ?compare@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBAH_K0PEB_W0@Z */
3016 /* ?compare@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEHIIPBGI@Z */
3017 /* ?compare@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBAH_K0PEBG0@Z */
3018 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_compare_substr_cstr_len
, 20)
3019 int __thiscall
MSVCP_basic_string_wchar_compare_substr_cstr_len(
3020 const basic_string_wchar
*this, MSVCP_size_t pos
, MSVCP_size_t num
,
3021 const wchar_t *str
, MSVCP_size_t count
)
3025 TRACE("%p %lu %lu %s %lu\n", this, pos
, num
, debugstr_wn(str
, count
), count
);
3027 if(this->size
< pos
)
3028 MSVCP__String_base_Xran();
3030 if(num
> this->size
-pos
)
3031 num
= this->size
-pos
;
3033 ans
= MSVCP_char_traits_wchar_compare(basic_string_wchar_const_ptr(this)+pos
,
3034 str
, num
>count
? count
: num
);
3040 else if(num
< count
)
3045 /* ?compare@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEHIIPB_W@Z */
3046 /* ?compare@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBAH_K0PEB_W@Z */
3047 /* ?compare@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEHIIPBG@Z */
3048 /* ?compare@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBAH_K0PEBG@Z */
3049 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_compare_substr_cstr
, 16)
3050 int __thiscall
MSVCP_basic_string_wchar_compare_substr_cstr(const basic_string_wchar
*this,
3051 MSVCP_size_t pos
, MSVCP_size_t num
, const wchar_t *str
)
3053 return MSVCP_basic_string_wchar_compare_substr_cstr_len(this, pos
, num
,
3054 str
, MSVCP_char_traits_wchar_length(str
));
3057 /* ?compare@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEHPB_W@Z */
3058 /* ?compare@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBAHPEB_W@Z */
3059 /* ?compare@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEHPBG@Z */
3060 /* ?compare@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBAHPEBG@Z */
3061 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_compare_cstr
, 8)
3062 int __thiscall
MSVCP_basic_string_wchar_compare_cstr(
3063 const basic_string_wchar
*this, const wchar_t *str
)
3065 return MSVCP_basic_string_wchar_compare_substr_cstr_len(this, 0, this->size
,
3066 str
, MSVCP_char_traits_wchar_length(str
));
3069 /* ?compare@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEHIIABV12@II@Z */
3070 /* ?compare@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBAH_K0AEBV12@00@Z */
3071 /* ?compare@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEHIIABV12@II@Z */
3072 /* ?compare@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBAH_K0AEBV12@00@Z */
3073 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_compare_substr_substr
, 24)
3074 int __thiscall
MSVCP_basic_string_wchar_compare_substr_substr(
3075 const basic_string_wchar
*this, MSVCP_size_t pos
, MSVCP_size_t num
,
3076 const basic_string_wchar
*compare
, MSVCP_size_t off
, MSVCP_size_t count
)
3078 TRACE("%p %lu %lu %p %lu %lu\n", this, pos
, num
, compare
, off
, count
);
3080 if(compare
->size
< off
)
3081 MSVCP__String_base_Xran();
3083 if(count
> compare
->size
-off
)
3084 count
= compare
->size
-off
;
3086 return MSVCP_basic_string_wchar_compare_substr_cstr_len(this, pos
, num
,
3087 basic_string_wchar_const_ptr(compare
)+off
, count
);
3090 /* ?compare@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEHIIABV12@@Z */
3091 /* ?compare@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBAH_K0AEBV12@@Z */
3092 /* ?compare@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEHIIABV12@@Z */
3093 /* ?compare@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBAH_K0AEBV12@@Z */
3094 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_compare_substr
, 16)
3095 int __thiscall
MSVCP_basic_string_wchar_compare_substr(
3096 const basic_string_wchar
*this, MSVCP_size_t pos
, MSVCP_size_t num
,
3097 const basic_string_wchar
*compare
)
3099 return MSVCP_basic_string_wchar_compare_substr_cstr_len(this, pos
, num
,
3100 basic_string_wchar_const_ptr(compare
), compare
->size
);
3103 /* ?compare@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEHABV12@@Z */
3104 /* ?compare@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBAHAEBV12@@Z */
3105 /* ?compare@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEHABV12@@Z */
3106 /* ?compare@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBAHAEBV12@@Z */
3107 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_compare
, 8)
3108 int __thiscall
MSVCP_basic_string_wchar_compare(
3109 const basic_string_wchar
*this, const basic_string_wchar
*compare
)
3111 return MSVCP_basic_string_wchar_compare_substr_cstr_len(this, 0, this->size
,
3112 basic_string_wchar_const_ptr(compare
), compare
->size
);
3115 /* ??$?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 */
3116 /* ??$?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 */
3117 /* ??$?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 */
3118 /* ??$?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 */
3119 /* ??8std@@YA_NABV?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@0@0@Z */
3120 /* ??8std@@YA_NAEBV?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@0@0@Z */
3121 /* ??8std@@YA_NABV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@0@0@Z */
3122 MSVCP_bool __cdecl
MSVCP_basic_string_wchar_equal(
3123 const basic_string_wchar
*left
, const basic_string_wchar
*right
)
3125 return MSVCP_basic_string_wchar_compare(left
, right
) == 0;
3128 /* ??$?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 */
3129 /* ??$?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 */
3130 /* ??$?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 */
3131 /* ??$?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 */
3132 /* ??8std@@YA_NABV?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@0@PBG@Z */
3133 /* ??8std@@YA_NAEBV?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@0@PEBG@Z */
3134 /* ??8std@@YA_NABV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@0@PB_W@Z */
3135 MSVCP_bool __cdecl
MSVCP_basic_string_wchar_equal_str_cstr(
3136 const basic_string_wchar
*left
, const wchar_t *right
)
3138 return MSVCP_basic_string_wchar_compare_cstr(left
, right
) == 0;
3141 /* ??$?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 */
3142 /* ??$?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 */
3143 /* ??$?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 */
3144 /* ??$?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 */
3145 /* ??8std@@YA_NPBGABV?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@0@@Z */
3146 /* ??8std@@YA_NPB_WABV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@0@@Z */
3147 MSVCP_bool __cdecl
MSVCP_basic_string_wchar_equal_cstr_str(
3148 const wchar_t *left
, const basic_string_wchar
*right
)
3150 return MSVCP_basic_string_wchar_compare_cstr(right
, left
) == 0;
3153 /* ??$?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 */
3154 /* ??$?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 */
3155 /* ??$?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 */
3156 /* ??$?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 */
3157 /* ??9std@@YA_NABV?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@0@0@Z */
3158 /* ??9std@@YA_NAEBV?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@0@0@Z */
3159 /* ??9std@@YA_NABV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@0@0@Z */
3160 MSVCP_bool __cdecl
MSVCP_basic_string_wchar_not_equal(
3161 const basic_string_wchar
*left
, const basic_string_wchar
*right
)
3163 return MSVCP_basic_string_wchar_compare(left
, right
) != 0;
3166 /* ??$?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 */
3167 /* ??$?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 */
3168 /* ??$?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 */
3169 /* ??$?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 */
3170 /* ??9std@@YA_NABV?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@0@PBG@Z */
3171 /* ??9std@@YA_NAEBV?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@0@PEBG@Z */
3172 /* ??9std@@YA_NABV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@0@PB_W@Z */
3173 MSVCP_bool __cdecl
MSVCP_basic_string_wchar_not_equal_str_cstr(
3174 const basic_string_wchar
*left
, const wchar_t *right
)
3176 return MSVCP_basic_string_wchar_compare_cstr(left
, right
) != 0;
3179 /* ??$?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 */
3180 /* ??$?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 */
3181 /* ??$?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 */
3182 /* ??$?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 */
3183 /* ??9std@@YA_NPBGABV?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@0@@Z */
3184 /* ??9std@@YA_NPEBGAEBV?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@0@@Z */
3185 /* ??9std@@YA_NPB_WABV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@0@@Z */
3186 MSVCP_bool __cdecl
MSVCP_basic_string_wchar_not_equal_cstr_str(
3187 const wchar_t *left
, const basic_string_wchar
*right
)
3189 return MSVCP_basic_string_wchar_compare_cstr(right
, left
) != 0;
3192 /* ??$?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 */
3193 /* ??$?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 */
3194 /* ??$?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 */
3195 /* ??$?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 */
3196 MSVCP_bool __cdecl
MSVCP_basic_string_wchar_lower(
3197 const basic_string_wchar
*left
, const basic_string_wchar
*right
)
3199 return MSVCP_basic_string_wchar_compare(left
, right
) < 0;
3202 /* ??$?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 */
3203 /* ??$?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 */
3204 /* ??$?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 */
3205 /* ??$?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 */
3206 MSVCP_bool __cdecl
MSVCP_basic_string_wchar_lower_bstr_cstr(
3207 const basic_string_wchar
*left
, const wchar_t *right
)
3209 return MSVCP_basic_string_wchar_compare_cstr(left
, right
) < 0;
3212 /* ??$?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 */
3213 /* ??$?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 */
3214 /* ??$?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 */
3215 /* ??$?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 */
3216 MSVCP_bool __cdecl
MSVCP_basic_string_wchar_lower_cstr_bstr(
3217 const wchar_t *left
, const basic_string_wchar
*right
)
3219 return MSVCP_basic_string_wchar_compare_cstr(right
, left
) > 0;
3222 /* ??$?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 */
3223 /* ??$?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 */
3224 /* ??$?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 */
3225 /* ??$?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 */
3226 MSVCP_bool __cdecl
MSVCP_basic_string_wchar_leq(
3227 const basic_string_wchar
*left
, const basic_string_wchar
*right
)
3229 return MSVCP_basic_string_wchar_compare(left
, right
) <= 0;
3232 /* ??$?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 */
3233 /* ??$?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 */
3234 /* ??$?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 */
3235 /* ??$?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 */
3236 MSVCP_bool __cdecl
MSVCP_basic_string_wchar_leq_bstr_cstr(
3237 const basic_string_wchar
*left
, const wchar_t *right
)
3239 return MSVCP_basic_string_wchar_compare_cstr(left
, right
) <= 0;
3242 /* ??$?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 */
3243 /* ??$?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 */
3244 /* ??$?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 */
3245 /* ??$?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 */
3246 MSVCP_bool __cdecl
MSVCP_basic_string_wchar_leq_cstr_bstr(
3247 const wchar_t *left
, const basic_string_wchar
*right
)
3249 return MSVCP_basic_string_wchar_compare_cstr(right
, left
) >= 0;
3252 /* ??$?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 */
3253 /* ??$?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 */
3254 /* ??$?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 */
3255 /* ??$?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 */
3256 MSVCP_bool __cdecl
MSVCP_basic_string_wchar_greater(
3257 const basic_string_wchar
*left
, const basic_string_wchar
*right
)
3259 return MSVCP_basic_string_wchar_compare(left
, right
) > 0;
3262 /* ??$?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 */
3263 /* ??$?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 */
3264 /* ??$?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 */
3265 /* ??$?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 */
3266 MSVCP_bool __cdecl
MSVCP_basic_string_wchar_greater_bstr_cstr(
3267 const basic_string_wchar
*left
, const wchar_t *right
)
3269 return MSVCP_basic_string_wchar_compare_cstr(left
, right
) > 0;
3272 /* ??$?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 */
3273 /* ??$?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 */
3274 /* ??$?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 */
3275 /* ??$?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 */
3276 MSVCP_bool __cdecl
MSVCP_basic_string_wchar_greater_cstr_bstr(
3277 const wchar_t *left
, const basic_string_wchar
*right
)
3279 return MSVCP_basic_string_wchar_compare_cstr(right
, left
) < 0;
3282 /* ??$?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 */
3283 /* ??$?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 */
3284 /* ??$?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 */
3285 /* ??$?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 */
3286 MSVCP_bool __cdecl
MSVCP_basic_string_wchar_geq(
3287 const basic_string_wchar
*left
, const basic_string_wchar
*right
)
3289 return MSVCP_basic_string_wchar_compare(left
, right
) >= 0;
3292 /* ??$?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 */
3293 /* ??$?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 */
3294 /* ??$?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 */
3295 /* ??$?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 */
3296 MSVCP_bool __cdecl
MSVCP_basic_string_wchar_geq_bstr_cstr(
3297 const basic_string_wchar
*left
, const wchar_t *right
)
3299 return MSVCP_basic_string_wchar_compare_cstr(left
, right
) >= 0;
3302 /* ??$?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 */
3303 /* ??$?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 */
3304 /* ??$?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 */
3305 /* ??$?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 */
3306 MSVCP_bool __cdecl
MSVCP_basic_string_wchar_geq_cstr_bstr(
3307 const wchar_t *left
, const basic_string_wchar
*right
)
3309 return MSVCP_basic_string_wchar_compare_cstr(right
, left
) <= 0;
3312 /* ?find@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEIPB_WII@Z */
3313 /* ?find@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBA_KPEB_W_K1@Z */
3314 /* ?find@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEIPBGII@Z */
3315 /* ?find@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBA_KPEBG_K1@Z */
3316 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_find_cstr_substr
, 16)
3317 MSVCP_size_t __thiscall
MSVCP_basic_string_wchar_find_cstr_substr(
3318 const basic_string_wchar
*this, const wchar_t *find
, MSVCP_size_t pos
, MSVCP_size_t len
)
3320 const wchar_t *p
, *end
;
3322 TRACE("%p %s %lu %lu\n", this, debugstr_wn(find
, len
), pos
, len
);
3324 if(len
==0 && pos
<=this->size
)
3326 if(pos
>=this->size
|| len
>this->size
)
3327 return MSVCP_basic_string_wchar_npos
;
3329 end
= basic_string_wchar_const_ptr(this)+this->size
-len
+1;
3330 for(p
=basic_string_wchar_const_ptr(this)+pos
; p
<end
; p
++) {
3331 p
= MSVCP_char_traits_wchar_find(p
, end
-p
, find
);
3335 if(!MSVCP_char_traits_wchar_compare(p
, find
, len
))
3336 return p
-basic_string_wchar_const_ptr(this);
3339 return MSVCP_basic_string_wchar_npos
;
3342 /* ?find@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEIPB_WI@Z */
3343 /* ?find@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBA_KPEB_W_K@Z */
3344 /* ?find@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEIPBGI@Z */
3345 /* ?find@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBA_KPEBG_K@Z */
3346 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_find_cstr_off
, 12)
3347 MSVCP_size_t __thiscall
MSVCP_basic_string_wchar_find_cstr_off(
3348 const basic_string_wchar
*this, const wchar_t *find
, MSVCP_size_t pos
)
3350 return MSVCP_basic_string_wchar_find_cstr_substr(this, find
, pos
,
3351 MSVCP_char_traits_wchar_length(find
));
3354 /* ?find@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEIABV12@I@Z */
3355 /* ?find@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBA_KAEBV12@_K@Z */
3356 /* ?find@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEIABV12@I@Z */
3357 /* ?find@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBA_KAEBV12@_K@Z */
3358 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_find_off
, 12)
3359 MSVCP_size_t __thiscall
MSVCP_basic_string_wchar_find_off(
3360 const basic_string_wchar
*this, const basic_string_wchar
*find
, MSVCP_size_t off
)
3362 return MSVCP_basic_string_wchar_find_cstr_substr(this,
3363 basic_string_wchar_const_ptr(find
), off
, find
->size
);
3366 /* ?find@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEI_WI@Z */
3367 /* ?find@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBA_K_W_K@Z */
3368 /* ?find@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEIGI@Z */
3369 /* ?find@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBA_KG_K@Z */
3370 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_find_ch
, 12)
3371 MSVCP_size_t __thiscall
MSVCP_basic_string_wchar_find_ch(
3372 const basic_string_wchar
*this, wchar_t ch
, MSVCP_size_t pos
)
3374 return MSVCP_basic_string_wchar_find_cstr_substr(this, &ch
, pos
, 1);
3377 /* ?rfind@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEIPB_WII@Z */
3378 /* ?rfind@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBA_KPEB_W_K1@Z */
3379 /* ?rfind@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEIPBGII@Z */
3380 /* ?rfind@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBA_KPEBG_K1@Z */
3381 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_rfind_cstr_substr
, 16)
3382 MSVCP_size_t __thiscall
MSVCP_basic_string_wchar_rfind_cstr_substr(
3383 const basic_string_wchar
*this, const wchar_t *find
, MSVCP_size_t pos
, MSVCP_size_t len
)
3385 const wchar_t *p
, *end
;
3387 TRACE("%p %s %lu %lu\n", this, debugstr_wn(find
, len
), pos
, len
);
3390 return pos
<this->size
? pos
: this->size
;
3392 if(len
> this->size
)
3393 return MSVCP_basic_string_wchar_npos
;
3395 if(pos
> this->size
-len
+1)
3396 pos
= this->size
-len
+1;
3397 end
= basic_string_wchar_const_ptr(this);
3398 for(p
=end
+pos
; p
>=end
; p
--) {
3399 if(*p
==*find
&& !MSVCP_char_traits_wchar_compare(p
, find
, len
))
3400 return p
-basic_string_wchar_const_ptr(this);
3403 return MSVCP_basic_string_wchar_npos
;
3406 /* ?rfind@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEIPB_WI@Z */
3407 /* ?rfind@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBA_KPEB_W_K@Z */
3408 /* ?rfind@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEIPBGI@Z */
3409 /* ?rfind@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBA_KPEBG_K@Z */
3410 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_rfind_cstr_off
, 12)
3411 MSVCP_size_t __thiscall
MSVCP_basic_string_wchar_rfind_cstr_off(
3412 const basic_string_wchar
*this, const wchar_t *find
, MSVCP_size_t pos
)
3414 return MSVCP_basic_string_wchar_rfind_cstr_substr(this, find
, pos
,
3415 MSVCP_char_traits_wchar_length(find
));
3418 /* ?rfind@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEIABV12@I@Z */
3419 /* ?rfind@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBA_KAEBV12@_K@Z */
3420 /* ?rfind@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEIABV12@I@Z */
3421 /* ?rfind@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBA_KAEBV12@_K@Z */
3422 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_rfind_off
, 12)
3423 MSVCP_size_t __thiscall
MSVCP_basic_string_wchar_rfind_off(
3424 const basic_string_wchar
*this, const basic_string_wchar
*find
, MSVCP_size_t off
)
3426 return MSVCP_basic_string_wchar_rfind_cstr_substr(this,
3427 basic_string_wchar_const_ptr(find
), off
, find
->size
);
3430 /* ?rfind@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEI_WI@Z */
3431 /* ?rfind@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBA_K_W_K@Z */
3432 /* ?rfind@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEIGI@Z */
3433 /* ?rfind@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBA_KG_K@Z */
3434 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_rfind_ch
, 12)
3435 MSVCP_size_t __thiscall
MSVCP_basic_string_wchar_rfind_ch(
3436 const basic_string_wchar
*this, wchar_t ch
, MSVCP_size_t pos
)
3438 return MSVCP_basic_string_wchar_rfind_cstr_substr(this, &ch
, pos
, 1);
3441 /* ?find_first_of@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEIPB_WII@Z */
3442 /* ?find_first_of@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBA_KPEB_W_K1@Z */
3443 /* ?find_first_of@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEIPBGII@Z */
3444 /* ?find_first_of@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBA_KPEBG_K1@Z */
3445 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_find_first_of_cstr_substr
, 16)
3446 MSVCP_size_t __thiscall
MSVCP_basic_string_wchar_find_first_of_cstr_substr(
3447 const basic_string_wchar
*this, const wchar_t *find
, MSVCP_size_t off
, MSVCP_size_t len
)
3449 const wchar_t *p
, *end
;
3451 TRACE("%p %p %lu %lu\n", this, find
, off
, len
);
3453 if(len
>0 && off
<this->size
) {
3454 end
= basic_string_wchar_const_ptr(this)+this->size
;
3455 for(p
=basic_string_wchar_const_ptr(this)+off
; p
<end
; p
++)
3456 if(MSVCP_char_traits_wchar_find(find
, len
, p
))
3457 return p
-basic_string_wchar_const_ptr(this);
3460 return MSVCP_basic_string_wchar_npos
;
3463 /* ?find_first_of@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEIABV12@I@Z */
3464 /* ?find_first_of@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBA_KAEBV12@_K@Z */
3465 /* ?find_first_of@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEIABV12@I@Z */
3466 /* ?find_first_of@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBA_KAEBV12@_K@Z */
3467 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_find_first_of
, 12)
3468 MSVCP_size_t __thiscall
MSVCP_basic_string_wchar_find_first_of(
3469 const basic_string_wchar
*this, const basic_string_wchar
*find
, MSVCP_size_t off
)
3471 return MSVCP_basic_string_wchar_find_first_of_cstr_substr(this,
3472 basic_string_wchar_const_ptr(find
), off
, find
->size
);
3475 /* ?find_first_of@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEIPB_WI@Z */
3476 /* ?find_first_of@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBA_KPEB_W_K@Z */
3477 /* ?find_first_of@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEIPBGI@Z */
3478 /* ?find_first_of@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBA_KPEBG_K@Z */
3479 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_find_first_of_cstr
, 12)
3480 MSVCP_size_t __thiscall
MSVCP_basic_string_wchar_find_first_of_cstr(
3481 const basic_string_wchar
*this, const wchar_t *find
, MSVCP_size_t off
)
3483 return MSVCP_basic_string_wchar_find_first_of_cstr_substr(
3484 this, find
, off
, MSVCP_char_traits_wchar_length(find
));
3487 /* ?find_first_of@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEI_WI@Z */
3488 /* ?find_first_of@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBA_K_W_K@Z */
3489 /* ?find_first_of@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEIGI@Z */
3490 /* ?find_first_of@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBA_KG_K@Z */
3491 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_find_first_of_ch
, 12)
3492 MSVCP_size_t __thiscall
MSVCP_basic_string_wchar_find_first_of_ch(
3493 const basic_string_wchar
*this, wchar_t ch
, MSVCP_size_t off
)
3495 return MSVCP_basic_string_wchar_find_first_of_cstr_substr(this, &ch
, off
, 1);
3498 /* ?find_first_not_of@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEIPB_WII@Z */
3499 /* ?find_first_not_of@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBA_KPEB_W_K1@Z */
3500 /* ?find_first_not_of@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEIPBGII@Z */
3501 /* ?find_first_not_of@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBA_KPEBG_K1@Z */
3502 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_find_first_not_of_cstr_substr
, 16)
3503 MSVCP_size_t __thiscall
MSVCP_basic_string_wchar_find_first_not_of_cstr_substr(
3504 const basic_string_wchar
*this, const wchar_t *find
, MSVCP_size_t off
, MSVCP_size_t len
)
3506 const wchar_t *p
, *end
;
3508 TRACE("%p %p %lu %lu\n", this, find
, off
, len
);
3510 if(off
<this->size
) {
3511 end
= basic_string_wchar_const_ptr(this)+this->size
;
3512 for(p
=basic_string_wchar_const_ptr(this)+off
; p
<end
; p
++)
3513 if(!MSVCP_char_traits_wchar_find(find
, len
, p
))
3514 return p
-basic_string_wchar_const_ptr(this);
3517 return MSVCP_basic_string_wchar_npos
;
3520 /* ?find_first_not_of@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEIABV12@I@Z */
3521 /* ?find_first_not_of@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBA_KAEBV12@_K@Z */
3522 /* ?find_first_not_of@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEIABV12@I@Z */
3523 /* ?find_first_not_of@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBA_KAEBV12@_K@Z */
3524 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_find_first_not_of
, 12)
3525 MSVCP_size_t __thiscall
MSVCP_basic_string_wchar_find_first_not_of(
3526 const basic_string_wchar
*this, const basic_string_wchar
*find
, MSVCP_size_t off
)
3528 return MSVCP_basic_string_wchar_find_first_not_of_cstr_substr(this,
3529 basic_string_wchar_const_ptr(find
), off
, find
->size
);
3532 /* ?find_first_not_of@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEIPB_WI@Z */
3533 /* ?find_first_not_of@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBA_KPEB_W_K@Z */
3534 /* ?find_first_not_of@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEIPBGI@Z */
3535 /* ?find_first_not_of@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBA_KPEBG_K@Z */
3536 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_find_first_not_of_cstr
, 12)
3537 MSVCP_size_t __thiscall
MSVCP_basic_string_wchar_find_first_not_of_cstr(
3538 const basic_string_wchar
*this, const wchar_t *find
, MSVCP_size_t off
)
3540 return MSVCP_basic_string_wchar_find_first_not_of_cstr_substr(
3541 this, find
, off
, MSVCP_char_traits_wchar_length(find
));
3544 /* ?find_first_not_of@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEI_WI@Z */
3545 /* ?find_first_not_of@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBA_K_W_K@Z */
3546 /* ?find_first_not_of@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEIGI@Z */
3547 /* ?find_first_not_of@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBA_KG_K@Z */
3548 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_find_first_not_of_ch
, 12)
3549 MSVCP_size_t __thiscall
MSVCP_basic_string_wchar_find_first_not_of_ch(
3550 const basic_string_wchar
*this, wchar_t ch
, MSVCP_size_t off
)
3552 return MSVCP_basic_string_wchar_find_first_not_of_cstr_substr(this, &ch
, off
, 1);
3555 /* ?find_last_of@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEIPB_WII@Z */
3556 /* ?find_last_of@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBA_KPEB_W_K1@Z */
3557 /* ?find_last_of@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEIPBGII@Z */
3558 /* ?find_last_of@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBA_KPEBG_K1@Z */
3559 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_find_last_of_cstr_substr
, 16)
3560 MSVCP_size_t __thiscall
MSVCP_basic_string_wchar_find_last_of_cstr_substr(
3561 const basic_string_wchar
*this, const wchar_t *find
, MSVCP_size_t off
, MSVCP_size_t len
)
3563 const wchar_t *p
, *beg
;
3565 TRACE("%p %p %lu %lu\n", this, find
, off
, len
);
3568 if(len
>0 && this->size
>0) {
3569 if(off
>= this->size
)
3572 beg
= basic_string_wchar_const_ptr(this);
3573 for(p
=beg
+off
; p
>=beg
; p
--)
3574 if(MSVCP_char_traits_wchar_find(find
, len
, p
))
3578 return MSVCP_basic_string_wchar_npos
;
3581 /* ?find_last_of@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEIABV12@I@Z */
3582 /* ?find_last_of@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBA_KAEBV12@_K@Z */
3583 /* ?find_last_of@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEIABV12@I@Z */
3584 /* ?find_last_of@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBA_KAEBV12@_K@Z */
3585 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_find_last_of
, 12)
3586 MSVCP_size_t __thiscall
MSVCP_basic_string_wchar_find_last_of(
3587 const basic_string_wchar
*this, const basic_string_wchar
*find
, MSVCP_size_t off
)
3589 return MSVCP_basic_string_wchar_find_last_of_cstr_substr(this,
3590 basic_string_wchar_const_ptr(find
), off
, find
->size
);
3593 /* ?find_last_of@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEIPB_WI@Z */
3594 /* ?find_last_of@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBA_KPEB_W_K@Z */
3595 /* ?find_last_of@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEIPBGI@Z */
3596 /* ?find_last_of@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBA_KPEBG_K@Z */
3597 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_find_last_of_cstr
, 12)
3598 MSVCP_size_t __thiscall
MSVCP_basic_string_wchar_find_last_of_cstr(
3599 const basic_string_wchar
*this, const wchar_t *find
, MSVCP_size_t off
)
3601 return MSVCP_basic_string_wchar_find_last_of_cstr_substr(
3602 this, find
, off
, MSVCP_char_traits_wchar_length(find
));
3605 /* ?find_last_of@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEI_WI@Z */
3606 /* ?find_last_of@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBA_K_W_K@Z */
3607 /* ?find_last_of@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEIGI@Z */
3608 /* ?find_last_of@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBA_KG_K@Z */
3609 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_find_last_of_ch
, 12)
3610 MSVCP_size_t __thiscall
MSVCP_basic_string_wchar_find_last_of_ch(
3611 const basic_string_wchar
*this, wchar_t ch
, MSVCP_size_t off
)
3613 return MSVCP_basic_string_wchar_find_last_of_cstr_substr(this, &ch
, off
, 1);
3616 /* ?find_last_not_of@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEIPB_WII@Z */
3617 /* ?find_last_not_of@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBA_KPEB_W_K1@Z */
3618 /* ?find_last_not_of@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEIPBGII@Z */
3619 /* ?find_last_not_of@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBA_KPEBG_K1@Z */
3620 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_find_last_not_of_cstr_substr
, 16)
3621 MSVCP_size_t __thiscall
MSVCP_basic_string_wchar_find_last_not_of_cstr_substr(
3622 const basic_string_wchar
*this, const wchar_t *find
, MSVCP_size_t off
, MSVCP_size_t len
)
3624 const wchar_t *p
, *beg
;
3626 TRACE("%p %p %lu %lu\n", this, find
, off
, len
);
3629 if(off
>= this->size
)
3632 beg
= basic_string_wchar_const_ptr(this);
3633 for(p
=beg
+off
; p
>=beg
; p
--)
3634 if(!MSVCP_char_traits_wchar_find(find
, len
, p
))
3638 return MSVCP_basic_string_wchar_npos
;
3641 /* ?find_last_not_of@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEIABV12@I@Z */
3642 /* ?find_last_not_of@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBA_KAEBV12@_K@Z */
3643 /* ?find_last_not_of@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEIABV12@I@Z */
3644 /* ?find_last_not_of@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBA_KAEBV12@_K@Z */
3645 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_find_last_not_of
, 12)
3646 MSVCP_size_t __thiscall
MSVCP_basic_string_wchar_find_last_not_of(
3647 const basic_string_wchar
*this, const basic_string_wchar
*find
, MSVCP_size_t off
)
3649 return MSVCP_basic_string_wchar_find_last_not_of_cstr_substr(this,
3650 basic_string_wchar_const_ptr(find
), off
, find
->size
);
3653 /* ?find_last_not_of@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEIPB_WI@Z */
3654 /* ?find_last_not_of@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBA_KPEB_W_K@Z */
3655 /* ?find_last_not_of@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEIPBGI@Z */
3656 /* ?find_last_not_of@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBA_KPEBG_K@Z */
3657 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_find_last_not_of_cstr
, 12)
3658 MSVCP_size_t __thiscall
MSVCP_basic_string_wchar_find_last_not_of_cstr(
3659 const basic_string_wchar
*this, const wchar_t *find
, MSVCP_size_t off
)
3661 return MSVCP_basic_string_wchar_find_last_not_of_cstr_substr(
3662 this, find
, off
, MSVCP_char_traits_wchar_length(find
));
3665 /* ?find_last_not_of@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEI_WI@Z */
3666 /* ?find_last_not_of@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBA_K_W_K@Z */
3667 /* ?find_last_not_of@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEIGI@Z */
3668 /* ?find_last_not_of@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBA_KG_K@Z */
3669 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_find_last_not_of_ch
, 12)
3670 MSVCP_size_t __thiscall
MSVCP_basic_string_wchar_find_last_not_of_ch(
3671 const basic_string_wchar
*this, wchar_t ch
, MSVCP_size_t off
)
3673 return MSVCP_basic_string_wchar_find_last_not_of_cstr_substr(this, &ch
, off
, 1);
3676 /* ?replace@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV12@IIPB_WI@Z */
3677 /* ?replace@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAAEAV12@_K0PEB_W0@Z */
3678 /* ?replace@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV12@IIPBGI@Z */
3679 /* ?replace@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAAEAV12@_K0PEBG0@Z */
3680 DEFINE_THISCALL_WRAPPER(basic_string_wchar_replace_cstr_len
, 20)
3681 basic_string_wchar
* __thiscall
basic_string_wchar_replace_cstr_len(basic_string_wchar
*this,
3682 MSVCP_size_t off
, MSVCP_size_t len
, const wchar_t *str
, MSVCP_size_t str_len
)
3684 MSVCP_size_t inside_pos
= -1;
3685 wchar_t *ptr
= basic_string_wchar_ptr(this);
3687 TRACE("%p %ld %ld %p %ld\n", this, off
, len
, str
, str_len
);
3689 if(this->size
< off
)
3690 MSVCP__String_base_Xran();
3692 if(len
> this->size
-off
)
3693 len
= this->size
-off
;
3695 if(MSVCP_basic_string_wchar_npos
-str_len
<= this->size
-len
)
3696 MSVCP__String_base_Xlen();
3698 if(basic_string_wchar_inside(this, str
))
3699 inside_pos
= str
-ptr
;
3702 basic_string_wchar_grow(this, this->size
-len
+str_len
, FALSE
);
3703 ptr
= basic_string_wchar_ptr(this);
3706 if(inside_pos
== -1) {
3707 memmove(ptr
+off
+str_len
, ptr
+off
+len
, (this->size
-off
-len
)*sizeof(wchar_t));
3708 memcpy(ptr
+off
, str
, str_len
*sizeof(wchar_t));
3709 } else if(len
>= str_len
) {
3710 memmove(ptr
+off
, ptr
+inside_pos
, str_len
*sizeof(wchar_t));
3711 memmove(ptr
+off
+str_len
, ptr
+off
+len
, (this->size
-off
-len
)*sizeof(wchar_t));
3715 memmove(ptr
+off
+str_len
, ptr
+off
+len
, (this->size
-off
-len
)*sizeof(wchar_t));
3717 if(inside_pos
< off
+len
) {
3718 size
= off
+len
-inside_pos
;
3721 memmove(ptr
+off
, ptr
+inside_pos
, size
*sizeof(wchar_t));
3727 memmove(ptr
+off
+size
, ptr
+off
+str_len
, (str_len
-size
)*sizeof(wchar_t));
3730 basic_string_wchar_eos(this, this->size
-len
+str_len
);
3734 /* ?replace@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV12@IIPB_W@Z */
3735 /* ?replace@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAAEAV12@_K0PEB_W@Z */
3736 /* ?replace@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV12@IIPBG@Z */
3737 /* ?replace@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAAEAV12@_K0PEBG@Z */
3738 DEFINE_THISCALL_WRAPPER(basic_string_wchar_replace_cstr
, 16)
3739 basic_string_wchar
* __thiscall
basic_string_wchar_replace_cstr(basic_string_wchar
*this,
3740 MSVCP_size_t off
, MSVCP_size_t len
, const wchar_t *str
)
3742 return basic_string_wchar_replace_cstr_len(this, off
, len
, str
,
3743 MSVCP_char_traits_wchar_length(str
));
3746 /* ?replace@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV12@IIABV12@II@Z */
3747 /* ?replace@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAAEAV12@_K0AEBV12@00@Z */
3748 /* ?replace@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV12@IIABV12@II@Z */
3749 /* ?replace@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAAEAV12@_K0AEBV12@00@Z */
3750 DEFINE_THISCALL_WRAPPER(basic_string_wchar_replace_substr
, 24)
3751 basic_string_wchar
* __thiscall
basic_string_wchar_replace_substr(basic_string_wchar
*this, MSVCP_size_t off
,
3752 MSVCP_size_t len
, const basic_string_wchar
*str
, MSVCP_size_t str_off
, MSVCP_size_t str_len
)
3754 if(str
->size
< str_off
)
3755 MSVCP__String_base_Xran();
3757 if(str_len
> str
->size
-str_off
)
3758 str_len
= str
->size
-str_off
;
3760 return basic_string_wchar_replace_cstr_len(this, off
, len
,
3761 basic_string_wchar_const_ptr(str
)+str_off
, str_len
);
3764 /* ?replace@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV12@IIABV12@@Z */
3765 /* ?replace@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAAEAV12@_K0AEBV12@@Z */
3766 /* ?replace@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV12@IIABV12@@Z */
3767 /* ?replace@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAAEAV12@_K0AEBV12@@Z */
3768 DEFINE_THISCALL_WRAPPER(basic_string_wchar_replace
, 16)
3769 basic_string_wchar
* __thiscall
basic_string_wchar_replace(basic_string_wchar
*this,
3770 MSVCP_size_t off
, MSVCP_size_t len
, const basic_string_wchar
*str
)
3772 return basic_string_wchar_replace_cstr_len(this, off
, len
,
3773 basic_string_wchar_const_ptr(str
), str
->size
);
3776 /* ?replace@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV12@III_W@Z */
3777 /* ?replace@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAAEAV12@_K00_W@Z */
3778 /* ?replace@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV12@IIIG@Z */
3779 /* ?replace@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAAEAV12@_K00G@Z */
3780 DEFINE_THISCALL_WRAPPER(basic_string_wchar_replace_ch
, 20)
3781 basic_string_wchar
* __thiscall
basic_string_wchar_replace_ch(basic_string_wchar
*this,
3782 MSVCP_size_t off
, MSVCP_size_t len
, MSVCP_size_t count
, wchar_t ch
)
3784 wchar_t *ptr
= basic_string_wchar_ptr(this);
3786 TRACE("%p %ld %ld %ld %c\n", this, off
, len
, count
, ch
);
3788 if(this->size
< off
)
3789 MSVCP__String_base_Xran();
3791 if(len
> this->size
-off
)
3792 len
= this->size
-off
;
3794 if(MSVCP_basic_string_wchar_npos
-count
<= this->size
-len
)
3795 MSVCP__String_base_Xlen();
3798 basic_string_wchar_grow(this, this->size
-len
+count
, FALSE
);
3799 ptr
= basic_string_wchar_ptr(this);
3802 memmove(ptr
+off
+count
, ptr
+off
+len
, (this->size
-off
-len
)*sizeof(wchar_t));
3803 MSVCP_char_traits_wchar_assignn(ptr
+off
, count
, ch
);
3804 basic_string_wchar_eos(this, this->size
-len
+count
);
3809 /* ?insert@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV12@IABV12@@Z */
3810 /* ?insert@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAAEAV12@_KAEBV12@@Z */
3811 /* ?insert@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV12@IABV12@@Z */
3812 /* ?insert@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAAEAV12@_KAEBV12@@Z */
3813 DEFINE_THISCALL_WRAPPER(basic_string_wchar_insert
, 12)
3814 basic_string_wchar
* __thiscall
basic_string_wchar_insert(basic_string_wchar
*this,
3815 MSVCP_size_t off
, const basic_string_wchar
*str
)
3817 return basic_string_wchar_replace(this, off
, 0, str
);
3820 /* ?insert@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV12@IABV12@II@Z */
3821 /* ?insert@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAAEAV12@_KAEBV12@00@Z */
3822 /* ?insert@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV12@IABV12@II@Z */
3823 /* ?insert@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAAEAV12@_KAEBV12@00@Z */
3824 DEFINE_THISCALL_WRAPPER(basic_string_wchar_insert_substr
, 20)
3825 basic_string_wchar
* __thiscall
basic_string_wchar_insert_substr(
3826 basic_string_wchar
*this, MSVCP_size_t off
, const basic_string_wchar
*str
,
3827 MSVCP_size_t str_off
, MSVCP_size_t str_count
)
3829 return basic_string_wchar_replace_substr(this, off
, 0, str
, str_off
, str_count
);
3832 /* ?insert@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV12@IPB_W@Z */
3833 /* ?insert@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAAEAV12@_KPEB_W@Z */
3834 /* ?insert@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV12@IPBG@Z */
3835 /* ?insert@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAAEAV12@_KPEBG@Z */
3836 DEFINE_THISCALL_WRAPPER(basic_string_wchar_insert_cstr
, 12)
3837 basic_string_wchar
* __thiscall
basic_string_wchar_insert_cstr(
3838 basic_string_wchar
*this, MSVCP_size_t off
, const wchar_t *str
)
3840 return basic_string_wchar_replace_cstr(this, off
, 0, str
);
3843 /* ?insert@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV12@IPB_WI@Z */
3844 /* ?insert@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAAEAV12@_KPEB_W0@Z */
3845 /* ?insert@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV12@IPBGI@Z */
3846 /* ?insert@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAAEAV12@_KPEBG0@Z */
3847 DEFINE_THISCALL_WRAPPER(basic_string_wchar_insert_cstr_len
, 16)
3848 basic_string_wchar
* __thiscall
basic_string_wchar_insert_cstr_len(basic_string_wchar
*this,
3849 MSVCP_size_t off
, const wchar_t *str
, MSVCP_size_t str_len
)
3851 return basic_string_wchar_replace_cstr_len(this, off
, 0, str
, str_len
);
3854 /* ?insert@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV12@II_W@Z */
3855 /* ?insert@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAAEAV12@_K0_W@Z */
3856 /* ?insert@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV12@IIG@Z */
3857 /* ?insert@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAAEAV12@_K0G@Z */
3858 DEFINE_THISCALL_WRAPPER(basic_string_wchar_insert_chn
, 16)
3859 basic_string_wchar
* __thiscall
basic_string_wchar_insert_chn(basic_string_wchar
*this,
3860 MSVCP_size_t off
, MSVCP_size_t count
, wchar_t ch
)
3862 return basic_string_wchar_replace_ch(this, off
, 0, count
, ch
);
3865 /* ??A?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAA_WI@Z */
3866 /* ??A?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAAEA_W_K@Z */
3867 /* ??A?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAGI@Z */
3868 /* ??A?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAAEAG_K@Z */
3869 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_operator_at
, 8)
3870 wchar_t* __thiscall
MSVCP_basic_string_wchar_operator_at(
3871 basic_string_wchar
*this, MSVCP_size_t pos
)
3873 TRACE("%p %lu\n", this, pos
);
3875 assert(this->size
>= pos
);
3876 return basic_string_wchar_ptr(this)+pos
;
3879 /* ??A?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEAB_WI@Z */
3880 /* ??A?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBAAEB_W_K@Z */
3881 /* ??A?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEABGI@Z */
3882 /* ??A?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBAAEBG_K@Z */
3883 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_const_operator_at
, 8)
3884 const wchar_t* __thiscall
MSVCP_basic_string_wchar_const_operator_at(
3885 const basic_string_wchar
*this, MSVCP_size_t pos
)
3887 TRACE("%p %lu\n", this, pos
);
3889 assert(this->size
>= pos
);
3890 return basic_string_wchar_const_ptr(this)+pos
;
3893 /* ??A?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAA_WU_Size_type_nosscl@01@@Z */
3894 /* ??A?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAAEA_WU_Size_type_nosscl@01@@Z */
3895 /* ??A?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAGU_Size_type_nosscl@01@@Z */
3896 /* ??A?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAAEAGU_Size_type_nosscl@01@@Z */
3897 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_operator_at_noverify
, 8)
3898 wchar_t* __thiscall
MSVCP_basic_string_wchar_operator_at_noverify(
3899 basic_string_wchar
*this, size_t_noverify pos
)
3901 TRACE("%p %lu\n", this, pos
.val
);
3902 return basic_string_wchar_ptr(this)+pos
.val
;
3905 /* ??A?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEAB_WU_Size_type_nosscl@01@@Z */
3906 /* ??A?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBAAEB_WU_Size_type_nosscl@01@@Z */
3907 /* ??A?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEABGU_Size_type_nosscl@01@@Z */
3908 /* ??A?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBAAEBGU_Size_type_nosscl@01@@Z */
3909 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_operator_const_at_noverify
, 8)
3910 const wchar_t* __thiscall
MSVCP_basic_string_wchar_operator_const_at_noverify(
3911 const basic_string_wchar
*this, size_t_noverify pos
)
3913 TRACE("%p %lu\n", this, pos
.val
);
3914 return basic_string_wchar_const_ptr(this)+pos
.val
;
3917 /* ?at@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAA_WI@Z */
3918 /* ?at@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAAEA_W_K@Z */
3919 /* ?at@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAGI@Z */
3920 /* ?at@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAAEAG_K@Z */
3921 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_at
, 8)
3922 wchar_t* __thiscall
MSVCP_basic_string_wchar_at(
3923 basic_string_wchar
*this, MSVCP_size_t pos
)
3925 TRACE("%p %lu\n", this, pos
);
3927 if(this->size
<= pos
)
3928 MSVCP__String_base_Xran();
3930 return basic_string_wchar_ptr(this)+pos
;
3933 /* ?at@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEAB_WI@Z */
3934 /* ?at@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBAAEB_W_K@Z */
3935 /* ?at@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEABGI@Z */
3936 /* ?at@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBAAEBG_K@Z */
3937 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_const_at
, 8)
3938 const wchar_t* __thiscall
MSVCP_basic_string_wchar_const_at(
3939 const basic_string_wchar
*this, MSVCP_size_t pos
)
3941 TRACE("%p %lu\n", this, pos
);
3943 if(this->size
<= pos
)
3944 MSVCP__String_base_Xran();
3946 return basic_string_wchar_const_ptr(this)+pos
;
3949 /* ?resize@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEXI_W@Z */
3950 /* ?resize@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAX_K_W@Z */
3951 /* ?resize@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEXIG@Z */
3952 /* ?resize@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAX_KG@Z */
3953 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_resize_ch
, 12)
3954 void __thiscall
MSVCP_basic_string_wchar_resize_ch(
3955 basic_string_wchar
*this, MSVCP_size_t size
, wchar_t ch
)
3957 TRACE("%p %lu %c\n", this, size
, ch
);
3959 if(size
<= this->size
)
3960 MSVCP_basic_string_wchar_erase(this, size
, this->size
);
3962 MSVCP_basic_string_wchar_append_len_ch(this, size
-this->size
, ch
);
3965 /* ?resize@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEXI@Z */
3966 /* ?resize@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAX_K@Z */
3967 /* ?resize@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEXI@Z */
3968 /* ?resize@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAX_K@Z */
3969 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_resize
, 8)
3970 void __thiscall
MSVCP_basic_string_wchar_resize(
3971 basic_string_wchar
*this, MSVCP_size_t size
)
3973 MSVCP_basic_string_wchar_resize_ch(this, size
, '\0');
3976 /* ?clear@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEXXZ */
3977 /* ?clear@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAXXZ */
3978 /* ?clear@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEXXZ */
3979 /* ?clear@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAXXZ */
3980 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_clear
, 4)
3981 void __thiscall
MSVCP_basic_string_wchar_clear(basic_string_wchar
*this)
3983 basic_string_wchar_eos(this, 0);
3986 /* _String_val class */
3987 /* ??_F?$_String_val@DV?$allocator@D@std@@@std@@QAEXXZ */
3988 /* ??_F?$_String_val@DV?$allocator@D@std@@@std@@QEAAXXZ */
3989 /* ??_F?$_String_val@GV?$allocator@G@std@@@std@@QAEXXZ */
3990 /* ??_F?$_String_val@GV?$allocator@G@std@@@std@@QEAAXXZ */
3991 /* ??_F?$_String_val@_WV?$allocator@_W@std@@@std@@QAEXXZ */
3992 /* ??_F?$_String_val@_WV?$allocator@_W@std@@@std@@QEAAXXZ */
3993 DEFINE_THISCALL_WRAPPER(_String_val_ctor
, 4)
3994 void* __thiscall
_String_val_ctor(void *this)
3996 TRACE("%p\n", this);
4000 /* ??0?$_String_val@DV?$allocator@D@std@@@std@@IAE@V?$allocator@D@1@@Z */
4001 /* ??0?$_String_val@DV?$allocator@D@std@@@std@@IEAA@V?$allocator@D@1@@Z */
4002 /* ??0?$_String_val@GV?$allocator@G@std@@@std@@IAE@V?$allocator@G@1@@Z */
4003 /* ??0?$_String_val@GV?$allocator@G@std@@@std@@IEAA@V?$allocator@G@1@@Z */
4004 /* ??0?$_String_val@_WV?$allocator@_W@std@@@std@@IAE@V?$allocator@_W@1@@Z */
4005 /* ??0?$_String_val@_WV?$allocator@_W@std@@@std@@IEAA@V?$allocator@_W@1@@Z */
4006 /* ??0?$_String_val@DV?$allocator@D@std@@@std@@QAE@ABV01@@Z */
4007 /* ??0?$_String_val@DV?$allocator@D@std@@@std@@QEAA@AEBV01@@Z */
4008 /* ??0?$_String_val@GV?$allocator@G@std@@@std@@QAE@ABV01@@Z */
4009 /* ??0?$_String_val@GV?$allocator@G@std@@@std@@QEAA@AEBV01@@Z */
4010 /* ??0?$_String_val@_WV?$allocator@_W@std@@@std@@QAE@ABV01@@Z */
4011 /* ??0?$_String_val@_WV?$allocator@_W@std@@@std@@QEAA@AEBV01@@Z */
4012 /* ??4?$_String_val@DV?$allocator@D@std@@@std@@QAEAAV01@ABV01@@Z */
4013 /* ??4?$_String_val@DV?$allocator@D@std@@@std@@QEAAAEAV01@AEBV01@@Z */
4014 /* ??4?$_String_val@GV?$allocator@G@std@@@std@@QAEAAV01@ABV01@@Z */
4015 /* ??4?$_String_val@GV?$allocator@G@std@@@std@@QEAAAEAV01@AEBV01@@Z */
4016 /* ??4?$_String_val@_WV?$allocator@_W@std@@@std@@QAEAAV01@ABV01@@Z */
4017 /* ??4?$_String_val@_WV?$allocator@_W@std@@@std@@QEAAAEAV01@AEBV01@@Z */
4018 /* ??4?$_String_val@DV?$allocator@D@std@@@std@@QAEAAV01@ABV01@@Z */
4019 DEFINE_THISCALL_WRAPPER(_String_val_null_ctor
, 8)
4020 void* __thiscall
_String_val_null_ctor(void *this, const void *misc
)
4022 TRACE("%p %p\n", this, misc
);
4026 #if _MSVCP_VER < 80 /* old iterator functions */
4030 } basic_string_char_iterator
;
4034 } basic_string_wchar_iterator
;
4036 /* ?_Pdif@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@KAIVconst_iterator@12@0@Z */
4037 /* ?_Pdif@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@CAIV?$_Ptrit@DHPBDABDPADAAD@2@0@Z */
4038 MSVCP_size_t __cdecl
basic_string_char__Pdif(basic_string_char_iterator i1
, basic_string_char_iterator i2
)
4040 TRACE("(%p %p)\n", i1
.pos
, i2
.pos
);
4041 return !i1
.pos
? 0 : i1
.pos
-i2
.pos
;
4044 /* ?erase@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE?AViterator@12@V312@0@Z */
4045 /* ?erase@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE?AV?$_Ptrit@DHPADAADPADAAD@2@V32@0@Z */
4046 DEFINE_THISCALL_WRAPPER(basic_string_char_erase_iter_range
, 16)
4047 basic_string_char_iterator
* __thiscall
basic_string_char_erase_iter_range(basic_string_char
*this,
4048 basic_string_char_iterator
*ret
, basic_string_char_iterator beg
, basic_string_char_iterator end
)
4052 ret
->pos
= basic_string_char_ptr(this);
4053 off
= basic_string_char__Pdif(beg
, *ret
);
4055 MSVCP_basic_string_char_erase(this, off
, basic_string_char__Pdif(end
, beg
));
4057 ret
->pos
= basic_string_char_ptr(this)+off
;
4061 /* ?erase@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE?AViterator@12@V312@@Z */
4062 /* ?erase@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE?AV?$_Ptrit@DHPADAADPADAAD@2@V32@@Z */
4063 DEFINE_THISCALL_WRAPPER(basic_string_char_erase_iter
, 12)
4064 basic_string_char_iterator
* __thiscall
basic_string_char_erase_iter(basic_string_char
*this,
4065 basic_string_char_iterator
*ret
, basic_string_char_iterator pos
)
4069 ret
->pos
= basic_string_char_ptr(this);
4070 off
= basic_string_char__Pdif(pos
, *ret
);
4072 MSVCP_basic_string_char_erase(this, off
, 1);
4074 ret
->pos
= basic_string_char_ptr(this)+off
;
4078 /* ?assign@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@Vconst_iterator@12@0@Z */
4079 /* ?assign@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@V?$_Ptrit@DHPBDABDPADAAD@2@0@Z */
4080 DEFINE_THISCALL_WRAPPER(basic_string_char_assign_iter
, 12)
4081 basic_string_char
* __thiscall
basic_string_char_assign_iter(basic_string_char
*this,
4082 basic_string_char_iterator beg
, basic_string_char_iterator end
)
4084 return MSVCP_basic_string_char_assign_ptr_ptr(this, beg
.pos
, end
.pos
);
4087 /* ??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@Vconst_iterator@01@0@Z */
4088 /* ??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@V?$_Ptrit@DHPBDABDPADAAD@1@0@Z */
4089 DEFINE_THISCALL_WRAPPER(basic_string_char_ctor_iter
, 12)
4090 basic_string_char
* __thiscall
basic_string_char_ctor_iter(basic_string_char
*this,
4091 basic_string_char_iterator beg
, basic_string_char_iterator end
)
4093 return MSVCP_basic_string_char_ctor_cstr_len(this, beg
.pos
, end
.pos
-beg
.pos
);
4096 /* ?append@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@Vconst_iterator@12@0@Z */
4097 /* ?append@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@V?$_Ptrit@DHPBDABDPADAAD@2@0@Z */
4098 DEFINE_THISCALL_WRAPPER(basic_string_char_append_iter
, 12)
4099 basic_string_char
* __thiscall
basic_string_char_append_iter(basic_string_char
*this,
4100 basic_string_char_iterator beg
, basic_string_char_iterator end
)
4102 return basic_string_char_replace_cstr_len(this, this->size
, 0, beg
.pos
, end
.pos
-beg
.pos
);
4105 /* ?replace@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@Viterator@12@0Vconst_iterator@12@1@Z */
4106 /* ?replace@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@V?$_Ptrit@DHPADAADPADAAD@2@0V?$_Ptrit@DHPBDABDPADAAD@2@1@Z */
4107 DEFINE_THISCALL_WRAPPER(basic_string_char_replace_iter_iter
, 20)
4108 basic_string_char
* __thiscall
basic_string_char_replace_iter_iter(basic_string_char
*this,
4109 basic_string_char_iterator beg
, basic_string_char_iterator end
,
4110 basic_string_char_iterator rbeg
, basic_string_char_iterator rend
)
4112 return basic_string_char_replace_cstr_len(this, beg
.pos
-basic_string_char_ptr(this),
4113 end
.pos
-beg
.pos
, rbeg
.pos
, rend
.pos
-rbeg
.pos
);
4116 /* ?replace@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@Viterator@12@0ABV12@@Z */
4117 /* ?replace@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@V?$_Ptrit@DHPADAADPADAAD@2@0ABV12@@Z */
4118 DEFINE_THISCALL_WRAPPER(basic_string_char_replace_iter_bstr
, 16)
4119 basic_string_char
* __thiscall
basic_string_char_replace_iter_bstr(basic_string_char
*this,
4120 basic_string_char_iterator beg
, basic_string_char_iterator end
, const basic_string_char
*str
)
4122 return basic_string_char_replace_cstr_len(this, beg
.pos
-basic_string_char_ptr(this),
4123 end
.pos
-beg
.pos
, basic_string_char_const_ptr(str
), str
->size
);
4126 /* ?replace@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@Viterator@12@0ID@Z */
4127 /* ?replace@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@V?$_Ptrit@DHPADAADPADAAD@2@0ID@Z */
4128 DEFINE_THISCALL_WRAPPER(basic_string_char_replace_iter_ch
, 20)
4129 basic_string_char
* __thiscall
basic_string_char_replace_iter_ch(basic_string_char
*this,
4130 basic_string_char_iterator beg
, basic_string_char_iterator end
, MSVCP_size_t count
, char ch
)
4132 /* TODO: add more efficient implementation */
4133 MSVCP_size_t off
= beg
.pos
-basic_string_char_ptr(this);
4135 basic_string_char_replace_cstr_len(this, off
, end
.pos
-beg
.pos
, NULL
, 0);
4137 basic_string_char_replace_cstr_len(this, off
, 0, &ch
, 1);
4141 static basic_string_char
* basic_string_char_replace_iter_ptr_ptr(basic_string_char
*this,
4142 basic_string_char_iterator beg
, basic_string_char_iterator end
,
4143 const char *res_beg
, const char *res_end
)
4145 basic_string_char_iterator begin
= { basic_string_char_ptr(this) };
4146 return basic_string_char_replace_cstr_len(this, basic_string_char__Pdif(beg
, begin
),
4147 basic_string_char__Pdif(end
, beg
), res_beg
, res_end
-res_beg
);
4150 /* ?replace@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@Viterator@12@0PBD1@Z */
4151 /* ?replace@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@V?$_Ptrit@DHPADAADPADAAD@2@0PBD1@Z */
4152 DEFINE_THISCALL_WRAPPER(basic_string_char_replace_iter_beg_end
, 20)
4153 basic_string_char
* __thiscall
basic_string_char_replace_iter_beg_end(basic_string_char
*this,
4154 basic_string_char_iterator beg
, basic_string_char_iterator end
, const char *rbeg
, const char *rend
)
4156 return basic_string_char_replace_cstr_len(this, beg
.pos
-basic_string_char_ptr(this),
4157 end
.pos
-beg
.pos
, rbeg
, rend
-rbeg
);
4160 /* ?replace@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@Viterator@12@0PBD@Z */
4161 /* ?replace@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@V?$_Ptrit@DHPADAADPADAAD@2@0PBD@Z */
4162 DEFINE_THISCALL_WRAPPER(basic_string_char_replace_iter_cstr
, 16)
4163 basic_string_char
* __thiscall
basic_string_char_replace_iter_cstr(basic_string_char
*this,
4164 basic_string_char_iterator beg
, basic_string_char_iterator end
, const char *str
)
4166 return basic_string_char_replace_cstr_len(this, beg
.pos
-basic_string_char_ptr(this),
4167 end
.pos
-beg
.pos
, str
, strlen(str
));
4170 /* ?replace@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@Viterator@12@0PBDI@Z */
4171 /* ?replace@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@V?$_Ptrit@DHPADAADPADAAD@2@0PBDI@Z */
4172 DEFINE_THISCALL_WRAPPER(basic_string_char_replace_iter_cstr_len
, 20)
4173 basic_string_char
* __thiscall
basic_string_char_replace_iter_cstr_len(basic_string_char
*this,
4174 basic_string_char_iterator beg
, basic_string_char_iterator end
, const char *str
, MSVCP_size_t len
)
4176 return basic_string_char_replace_cstr_len(this, beg
.pos
-basic_string_char_ptr(this),
4177 end
.pos
-beg
.pos
, str
, len
);
4180 /* ?insert@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEXViterator@12@ID@Z */
4181 /* ?insert@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEXV?$_Ptrit@DHPADAADPADAAD@2@ID@Z */
4182 DEFINE_THISCALL_WRAPPER(basic_string_char_insert_iter_chn
, 16)
4183 void __thiscall
basic_string_char_insert_iter_chn(basic_string_char
*this,
4184 basic_string_char_iterator where
, MSVCP_size_t count
, char ch
)
4186 basic_string_char_iterator iter
= { basic_string_char_ptr(this) };
4187 MSVCP_size_t off
= basic_string_char__Pdif(where
, iter
);
4189 basic_string_char_insert_chn(this, off
, count
, ch
);
4192 /* ?insert@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE?AViterator@12@V312@D@Z */
4193 /* ?insert@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE?AV?$_Ptrit@DHPADAADPADAAD@2@V32@D@Z */
4194 DEFINE_THISCALL_WRAPPER(basic_string_char_insert_iter_ch
, 16)
4195 basic_string_char_iterator
* __thiscall
basic_string_char_insert_iter_ch(basic_string_char
*this,
4196 basic_string_char_iterator
*ret
, basic_string_char_iterator where
, char ch
)
4200 ret
->pos
= basic_string_char_ptr(this);
4201 off
= basic_string_char__Pdif(where
, *ret
);
4203 basic_string_char_insert_chn(this, off
, 1, ch
);
4204 ret
->pos
= basic_string_char_ptr(this)+off
;
4208 /* ?insert@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE?AViterator@12@V312@@Z */
4209 /* ?insert@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE?AV?$_Ptrit@DHPADAADPADAAD@2@V32@@Z */
4210 DEFINE_THISCALL_WRAPPER(basic_string_char_insert_iter_null
, 12)
4211 basic_string_char_iterator
* __thiscall
basic_string_char_insert_iter_null(basic_string_char
*this,
4212 basic_string_char_iterator
*ret
, basic_string_char_iterator where
)
4214 return basic_string_char_insert_iter_ch(this, ret
, where
, 0);
4217 /* ?insert@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEXViterator@12@PBD1@Z */
4218 DEFINE_THISCALL_WRAPPER(basic_string_char_insert_iter_ptr_ptr
, 16)
4219 void __thiscall
basic_string_char_insert_iter_ptr_ptr(basic_string_char
*this,
4220 basic_string_char_iterator where
, const char *beg
, const char *end
)
4222 basic_string_char_replace_iter_ptr_ptr(this, where
, where
, beg
, end
);
4225 /* ?insert@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEXViterator@12@PBD1@Z */
4226 DEFINE_THISCALL_WRAPPER(basic_string_char_insert_iter_beg_end
, 16)
4227 void __thiscall
basic_string_char_insert_iter_beg_end(basic_string_char
*this,
4228 basic_string_char_iterator where
, basic_string_char_iterator beg
, basic_string_char_iterator end
)
4230 basic_string_char_replace_iter_ptr_ptr(this, where
, where
, beg
.pos
, end
.pos
);
4233 /* ?begin@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE?AViterator@12@XZ */
4234 /* ?begin@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBE?AVconst_iterator@12@XZ */
4235 /* ?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 */
4236 /* ?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 */
4237 /* ?begin@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE?AV?$_Ptrit@DHPADAADPADAAD@2@XZ */
4238 /* ?begin@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBE?AV?$_Ptrit@DHPBDABDPADAAD@2@XZ */
4239 /* ?rend@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE?AV?$reverse_iterator@V?$_Ptrit@DHPADAADPADAAD@std@@@2@XZ */
4240 /* ?rend@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBE?AV?$reverse_iterator@V?$_Ptrit@DHPBDABDPADAAD@std@@@2@XZ */
4241 DEFINE_THISCALL_WRAPPER(basic_string_char_begin
, 8)
4242 basic_string_char_iterator
* __thiscall
basic_string_char_begin(
4243 basic_string_char
*this, basic_string_char_iterator
*ret
)
4245 ret
->pos
= basic_string_char_ptr(this);
4249 /* ?end@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE?AViterator@12@XZ */
4250 /* ?end@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBE?AVconst_iterator@12@XZ */
4251 /* ?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 */
4252 /* ?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 */
4253 /* ?end@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE?AV?$_Ptrit@DHPADAADPADAAD@2@XZ */
4254 /* ?end@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBE?AV?$_Ptrit@DHPBDABDPADAAD@2@XZ */
4255 /* ?rbegin@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE?AV?$reverse_iterator@V?$_Ptrit@DHPADAADPADAAD@std@@@2@XZ */
4256 /* ?rbegin@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBE?AV?$reverse_iterator@V?$_Ptrit@DHPBDABDPADAAD@std@@@2@XZ */
4257 DEFINE_THISCALL_WRAPPER(basic_string_char_end
, 8)
4258 basic_string_char_iterator
* __thiscall
basic_string_char_end(
4259 basic_string_char
*this, basic_string_char_iterator
*ret
)
4261 ret
->pos
= basic_string_char_ptr(this)+this->size
;
4265 /* ?_Pdif@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@KAIVconst_iterator@12@0@Z */
4266 /* ?_Pdif@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@KAIVconst_iterator@12@0@Z */
4267 /* ?_Pdif@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@CAIV?$_Ptrit@_WHPB_WAB_WPA_WAA_W@2@0@Z */
4268 /* ?_Pdif@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@CAIV?$_Ptrit@GHPBGABGPAGAAG@2@0@Z */
4269 MSVCP_size_t __cdecl
basic_string_wchar__Pdif(basic_string_wchar_iterator i1
, basic_string_wchar_iterator i2
)
4271 TRACE("(%p %p)\n", i1
.pos
, i2
.pos
);
4272 return !i1
.pos
? 0 : i1
.pos
-i2
.pos
;
4275 /* ?erase@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE?AViterator@12@V312@0@Z */
4276 /* ?erase@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAE?AViterator@12@V312@0@Z */
4277 /* ?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 */
4278 /* ?erase@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAE?AV?$_Ptrit@GHPAGAAGPAGAAG@2@V32@0@Z */
4279 DEFINE_THISCALL_WRAPPER(basic_string_wchar_erase_iter_range
, 16)
4280 basic_string_wchar_iterator
* __thiscall
basic_string_wchar_erase_iter_range(basic_string_wchar
*this,
4281 basic_string_wchar_iterator
*ret
, basic_string_wchar_iterator beg
, basic_string_wchar_iterator end
)
4285 ret
->pos
= basic_string_wchar_ptr(this);
4286 off
= basic_string_wchar__Pdif(beg
, *ret
);
4288 MSVCP_basic_string_wchar_erase(this, off
, basic_string_wchar__Pdif(end
, beg
));
4290 ret
->pos
= basic_string_wchar_ptr(this)+off
;
4294 /* ?erase@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE?AViterator@12@V312@@Z */
4295 /* ?erase@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAE?AViterator@12@V312@@Z */
4296 /* ?erase@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE?AV?$_Ptrit@_WHPA_WAA_WPA_WAA_W@2@V32@@Z */
4297 /* ?erase@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAE?AV?$_Ptrit@GHPAGAAGPAGAAG@2@V32@@Z */
4298 DEFINE_THISCALL_WRAPPER(basic_string_wchar_erase_iter
, 12)
4299 basic_string_wchar_iterator
* __thiscall
basic_string_wchar_erase_iter(basic_string_wchar
*this,
4300 basic_string_wchar_iterator
*ret
, basic_string_wchar_iterator pos
)
4304 ret
->pos
= basic_string_wchar_ptr(this);
4305 off
= basic_string_wchar__Pdif(pos
, *ret
);
4307 MSVCP_basic_string_wchar_erase(this, off
, 1);
4309 ret
->pos
= basic_string_wchar_ptr(this)+off
;
4313 /* ?assign@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV12@Vconst_iterator@12@0@Z */
4314 /* ?assign@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV12@Vconst_iterator@12@0@Z */
4315 /* ?assign@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV12@V?$_Ptrit@_WHPB_WAB_WPA_WAA_W@2@0@Z */
4316 /* ?assign@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV12@V?$_Ptrit@GHPBGABGPAGAAG@2@0@Z */
4317 DEFINE_THISCALL_WRAPPER(basic_string_wchar_assign_iter
, 12)
4318 basic_string_wchar
* __thiscall
basic_string_wchar_assign_iter(basic_string_wchar
*this,
4319 basic_string_wchar_iterator beg
, basic_string_wchar_iterator end
)
4321 return MSVCP_basic_string_wchar_assign_ptr_ptr(this, beg
.pos
, end
.pos
);
4324 /* ??0?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE@Vconst_iterator@01@0@Z */
4325 /* ??0?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAE@Vconst_iterator@01@0@Z */
4326 /* ??0?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE@V?$_Ptrit@_WHPB_WAB_WPA_WAA_W@1@0@Z */
4327 /* ??0?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAE@V?$_Ptrit@GHPBGABGPAGAAG@1@0@Z */
4328 DEFINE_THISCALL_WRAPPER(basic_string_wchar_ctor_iter
, 12)
4329 basic_string_wchar
* __thiscall
basic_string_wchar_ctor_iter(basic_string_wchar
*this,
4330 basic_string_wchar_iterator beg
, basic_string_wchar_iterator end
)
4332 return MSVCP_basic_string_wchar_ctor_cstr_len(this, beg
.pos
, end
.pos
-beg
.pos
);
4335 /* ?append@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV12@Vconst_iterator@12@0@Z */
4336 /* ?append@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV12@Vconst_iterator@12@0@Z */
4337 /* ?append@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV12@V?$_Ptrit@_WHPB_WAB_WPA_WAA_W@2@0@Z */
4338 /* ?append@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV12@V?$_Ptrit@GHPBGABGPAGAAG@2@0@Z */
4339 DEFINE_THISCALL_WRAPPER(basic_string_wchar_append_iter
, 12)
4340 basic_string_wchar
* __thiscall
basic_string_wchar_append_iter(basic_string_wchar
*this,
4341 basic_string_wchar_iterator beg
, basic_string_wchar_iterator end
)
4343 return basic_string_wchar_replace_cstr_len(this, this->size
, 0, beg
.pos
, end
.pos
-beg
.pos
);
4346 /* ?replace@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV12@Viterator@12@0Vconst_iterator@12@1@Z */
4347 /* ?replace@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV12@Viterator@12@0Vconst_iterator@12@1@Z */
4348 /* ?replace@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV12@V?$_Ptrit@GHPAGAAGPAGAAG@2@0V?$_Ptrit@GHPBGABGPAGAAG@2@1@Z */
4349 /* ?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 */
4350 DEFINE_THISCALL_WRAPPER(basic_string_wchar_replace_iter_iter
, 20)
4351 basic_string_wchar
* __thiscall
basic_string_wchar_replace_iter_iter(basic_string_wchar
*this,
4352 basic_string_wchar_iterator beg
, basic_string_wchar_iterator end
,
4353 basic_string_wchar_iterator rbeg
, basic_string_wchar_iterator rend
)
4355 return basic_string_wchar_replace_cstr_len(this, beg
.pos
-basic_string_wchar_ptr(this),
4356 end
.pos
-beg
.pos
, rbeg
.pos
, rend
.pos
-rbeg
.pos
);
4359 /* ?replace@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV12@Viterator@12@0ABV12@@Z */
4360 /* ?replace@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV12@Viterator@12@0ABV12@@Z */
4361 /* ?replace@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV12@V?$_Ptrit@GHPAGAAGPAGAAG@2@0ABV12@@Z */
4362 /* ?replace@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV12@V?$_Ptrit@_WHPA_WAA_WPA_WAA_W@2@0ABV12@@Z */
4363 DEFINE_THISCALL_WRAPPER(basic_string_wchar_replace_iter_bstr
, 16)
4364 basic_string_wchar
* __thiscall
basic_string_wchar_replace_iter_bstr(basic_string_wchar
*this,
4365 basic_string_wchar_iterator beg
, basic_string_wchar_iterator end
, basic_string_wchar
*str
)
4367 return basic_string_wchar_replace_cstr_len(this, beg
.pos
-basic_string_wchar_ptr(this),
4368 end
.pos
-beg
.pos
, basic_string_wchar_ptr(str
), str
->size
);
4371 /* ?replace@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV12@Viterator@12@0IG@Z */
4372 /* ?replace@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV12@Viterator@12@0I_W@Z */
4373 /* ?replace@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV12@V?$_Ptrit@GHPAGAAGPAGAAG@2@0IG@Z */
4374 /* ?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 */
4375 DEFINE_THISCALL_WRAPPER(basic_string_wchar_replace_iter_ch
, 20)
4376 basic_string_wchar
* __thiscall
basic_string_wchar_replace_iter_ch(basic_string_wchar
*this,
4377 basic_string_wchar_iterator beg
, basic_string_wchar_iterator end
, MSVCP_size_t count
, wchar_t ch
)
4379 /* TODO: add more efficient implementation */
4380 MSVCP_size_t off
= beg
.pos
-basic_string_wchar_ptr(this);
4382 basic_string_wchar_replace_cstr_len(this, off
, end
.pos
-beg
.pos
, NULL
, 0);
4384 basic_string_wchar_replace_cstr_len(this, off
, 0, &ch
, 1);
4388 static basic_string_wchar
* basic_string_wchar_replace_iter_ptr_ptr(basic_string_wchar
*this,
4389 basic_string_wchar_iterator beg
, basic_string_wchar_iterator end
,
4390 const wchar_t *res_beg
, const wchar_t *res_end
)
4392 basic_string_wchar_iterator begin
= { basic_string_wchar_ptr(this) };
4393 return basic_string_wchar_replace_cstr_len(this, basic_string_wchar__Pdif(beg
, begin
),
4394 basic_string_wchar__Pdif(end
, beg
), res_beg
, res_end
-res_beg
);
4397 /* ?replace@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV12@Viterator@12@0PBG1@Z */
4398 /* ?replace@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV12@Viterator@12@0PB_W1@Z */
4399 /* ?replace@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV12@V?$_Ptrit@GHPAGAAGPAGAAG@2@0PBG1@Z */
4400 /* ?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 */
4401 DEFINE_THISCALL_WRAPPER(basic_string_wchar_replace_iter_beg_end
, 20)
4402 basic_string_wchar
* __thiscall
basic_string_wchar_replace_iter_beg_end(basic_string_wchar
*this,
4403 basic_string_wchar_iterator beg
, basic_string_wchar_iterator end
,
4404 const wchar_t *rbeg
, const wchar_t *rend
)
4406 return basic_string_wchar_replace_cstr_len(this, beg
.pos
-basic_string_wchar_ptr(this),
4407 end
.pos
-beg
.pos
, rbeg
, rend
-rbeg
);
4410 /* ?replace@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV12@Viterator@12@0PBG@Z */
4411 /* ?replace@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV12@Viterator@12@0PB_W@Z */
4412 /* ?replace@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV12@V?$_Ptrit@GHPAGAAGPAGAAG@2@0PBG@Z */
4413 /* ?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 */
4414 DEFINE_THISCALL_WRAPPER(basic_string_wchar_replace_iter_cstr
, 16)
4415 basic_string_wchar
* __thiscall
basic_string_wchar_replace_iter_cstr(basic_string_wchar
*this,
4416 basic_string_wchar_iterator beg
, basic_string_wchar_iterator end
, const wchar_t *str
)
4418 return basic_string_wchar_replace_cstr_len(this, beg
.pos
-basic_string_wchar_ptr(this),
4419 end
.pos
-beg
.pos
, str
, wcslen(str
));
4422 /* ?replace@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV12@Viterator@12@0PBGI@Z */
4423 /* ?replace@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV12@Viterator@12@0PB_WI@Z */
4424 /* ?replace@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV12@V?$_Ptrit@GHPAGAAGPAGAAG@2@0PBGI@Z */
4425 /* ?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 */
4426 DEFINE_THISCALL_WRAPPER(basic_string_wchar_replace_iter_cstr_len
, 20)
4427 basic_string_wchar
* __thiscall
basic_string_wchar_replace_iter_cstr_len(basic_string_wchar
*this,
4428 basic_string_wchar_iterator beg
, basic_string_wchar_iterator end
,
4429 const wchar_t *str
, MSVCP_size_t len
)
4431 return basic_string_wchar_replace_cstr_len(this, beg
.pos
-basic_string_wchar_ptr(this),
4432 end
.pos
-beg
.pos
, str
, len
);
4435 /* ?insert@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEXViterator@12@I_W@Z */
4436 /* ?insert@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEXViterator@12@IG@Z */
4437 /* ?insert@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEXV?$_Ptrit@_WHPA_WAA_WPA_WAA_W@2@I_W@Z */
4438 /* ?insert@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEXV?$_Ptrit@GHPAGAAGPAGAAG@2@IG@Z */
4439 DEFINE_THISCALL_WRAPPER(basic_string_wchar_insert_iter_chn
, 16)
4440 void __thiscall
basic_string_wchar_insert_iter_chn(basic_string_wchar
*this,
4441 basic_string_wchar_iterator where
, MSVCP_size_t count
, wchar_t ch
)
4443 basic_string_wchar_iterator iter
= { basic_string_wchar_ptr(this) };
4444 MSVCP_size_t off
= basic_string_wchar__Pdif(where
, iter
);
4446 basic_string_wchar_insert_chn(this, off
, count
, ch
);
4449 /* ?insert@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE?AViterator@12@V312@_W@Z */
4450 /* ?insert@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAE?AViterator@12@V312@G@Z */
4451 /* ?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 */
4452 /* ?insert@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAE?AV?$_Ptrit@GHPAGAAGPAGAAG@2@V32@G@Z */
4453 DEFINE_THISCALL_WRAPPER(basic_string_wchar_insert_iter_ch
, 16)
4454 basic_string_wchar_iterator
* __thiscall
basic_string_wchar_insert_iter_ch(basic_string_wchar
*this,
4455 basic_string_wchar_iterator
*ret
, basic_string_wchar_iterator where
, wchar_t ch
)
4459 ret
->pos
= basic_string_wchar_ptr(this);
4460 off
= basic_string_wchar__Pdif(where
, *ret
);
4462 basic_string_wchar_insert_chn(this, off
, 1, ch
);
4463 ret
->pos
= basic_string_wchar_ptr(this)+off
;
4467 /* ?insert@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE?AViterator@12@V312@@Z */
4468 /* ?insert@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAE?AViterator@12@V312@@Z */
4469 /* ?insert@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE?AV?$_Ptrit@_WHPA_WAA_WPA_WAA_W@2@V32@@Z */
4470 /* ?insert@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAE?AV?$_Ptrit@GHPAGAAGPAGAAG@2@V32@@Z */
4471 DEFINE_THISCALL_WRAPPER(basic_string_wchar_insert_iter_null
, 12)
4472 basic_string_wchar_iterator
* __thiscall
basic_string_wchar_insert_iter_null(basic_string_wchar
*this,
4473 basic_string_wchar_iterator
*ret
, basic_string_wchar_iterator where
)
4475 return basic_string_wchar_insert_iter_ch(this, ret
, where
, 0);
4478 /* ?insert@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEXViterator@12@PB_W1@Z */
4479 /* ?insert@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEXViterator@12@PBG1@Z */
4480 /* ?insert@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEXV?$_Ptrit@_WHPA_WAA_WPA_WAA_W@2@PB_W1@Z */
4481 /* ?insert@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEXV?$_Ptrit@GHPAGAAGPAGAAG@2@PBG1@Z */
4482 DEFINE_THISCALL_WRAPPER(basic_string_wchar_insert_iter_ptr_ptr
, 16)
4483 void __thiscall
basic_string_wchar_insert_iter_ptr_ptr(basic_string_wchar
*this,
4484 basic_string_wchar_iterator where
, const wchar_t *beg
, const wchar_t *end
)
4486 basic_string_wchar_replace_iter_ptr_ptr(this, where
, where
, beg
, end
);
4489 /* ?insert@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEXViterator@12@Vconst_iterator@12@1@Z */
4490 /* ?insert@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEXViterator@12@Vconst_iterator@12@1@Z */
4491 /* ?insert@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEXViterator@12@Vconst_iterator@12@1@Z */
4492 /* ?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 */
4493 /* ?insert@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEXV?$_Ptrit@GHPAGAAGPAGAAG@2@V?$_Ptrit@GHPBGABGPAGAAG@2@1@Z */
4494 DEFINE_THISCALL_WRAPPER(basic_string_wchar_insert_iter_beg_end
, 16)
4495 void __thiscall
basic_string_wchar_insert_iter_beg_end(basic_string_wchar
*this,
4496 basic_string_wchar_iterator where
, basic_string_wchar_iterator beg
, basic_string_wchar_iterator end
)
4498 basic_string_wchar_replace_iter_ptr_ptr(this, where
, where
, beg
.pos
, end
.pos
);
4501 /* ?begin@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAE?AViterator@12@XZ */
4502 /* ?begin@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBE?AVconst_iterator@12@XZ */
4503 /* ?begin@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE?AViterator@12@XZ */
4504 /* ?begin@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBE?AVconst_iterator@12@XZ */
4505 /* ?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 */
4506 /* ?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 */
4507 /* ?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 */
4508 /* ?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 */
4509 /* ?begin@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAE?AV?$_Ptrit@GHPAGAAGPAGAAG@2@XZ */
4510 /* ?begin@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBE?AV?$_Ptrit@GHPBGABGPAGAAG@2@XZ */
4511 /* ?begin@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE?AV?$_Ptrit@_WHPA_WAA_WPA_WAA_W@2@XZ */
4512 /* ?begin@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBE?AV?$_Ptrit@_WHPB_WAB_WPA_WAA_W@2@XZ */
4513 /* ?rend@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAE?AV?$reverse_iterator@V?$_Ptrit@GHPAGAAGPAGAAG@std@@@2@XZ */
4514 /* ?rend@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBE?AV?$reverse_iterator@V?$_Ptrit@GHPBGABGPAGAAG@std@@@2@XZ */
4515 /* ?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 */
4516 /* ?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 */
4517 DEFINE_THISCALL_WRAPPER(basic_string_wchar_begin
, 8)
4518 basic_string_wchar_iterator
* __thiscall
basic_string_wchar_begin(
4519 basic_string_wchar
*this, basic_string_wchar_iterator
*ret
)
4521 ret
->pos
= basic_string_wchar_ptr(this);
4525 /* ?end@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAE?AViterator@12@XZ */
4526 /* ?end@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBE?AVconst_iterator@12@XZ */
4527 /* ?end@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE?AViterator@12@XZ */
4528 /* ?end@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBE?AVconst_iterator@12@XZ */
4529 /* ?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 */
4530 /* ?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 */
4531 /* ?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 */
4532 /* ?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 */
4533 /* ?end@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAE?AV?$_Ptrit@GHPAGAAGPAGAAG@2@XZ */
4534 /* ?end@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBE?AV?$_Ptrit@GHPBGABGPAGAAG@2@XZ */
4535 /* ?end@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE?AV?$_Ptrit@_WHPA_WAA_WPA_WAA_W@2@XZ */
4536 /* ?end@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBE?AV?$_Ptrit@_WHPB_WAB_WPA_WAA_W@2@XZ */
4537 /* ?rbegin@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAE?AV?$reverse_iterator@V?$_Ptrit@GHPAGAAGPAGAAG@std@@@2@XZ */
4538 /* ?rbegin@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBE?AV?$reverse_iterator@V?$_Ptrit@GHPBGABGPAGAAG@std@@@2@XZ */
4539 /* ?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 */
4540 /* ?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 */
4541 DEFINE_THISCALL_WRAPPER(basic_string_wchar_end
, 8)
4542 basic_string_wchar_iterator
* __thiscall
basic_string_wchar_end(
4543 basic_string_wchar
*this, basic_string_wchar_iterator
*ret
)
4545 ret
->pos
= basic_string_wchar_ptr(this)+this->size
;
4549 #else /* _MSVCP_VER >= 80, new iterator functions */
4551 /* _String_iterator<char> and _String_const_iterator<char> class */
4553 basic_string_char
*bstr
;
4555 } String_iterator_char
;
4558 #if _MSVCP_VER == 80
4561 const basic_string_char
*bstr
;
4563 } String_reverse_iterator_char
;
4566 basic_string_wchar
*bstr
;
4568 } String_iterator_wchar
;
4571 #if _MSVCP_VER == 80
4574 const basic_string_wchar
*bstr
;
4576 } String_reverse_iterator_wchar
;
4578 /* ?_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 */
4579 /* ?_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 */
4580 MSVCP_size_t __cdecl
MSVCP_basic_string_char_Pdif(String_iterator_char i1
, String_iterator_char i2
)
4582 TRACE("(%p %p) (%p %p)\n", i1
.bstr
, i1
.pos
, i2
.bstr
, i2
.pos
);
4584 if((!i1
.bstr
&& i1
.pos
) || i1
.bstr
!=i2
.bstr
) {
4585 _invalid_parameter(NULL
, NULL
, NULL
, 0, 0);
4589 return !i1
.pos
? 0 : i1
.pos
-i2
.pos
;
4592 /* ?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 */
4593 /* ?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 */
4594 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_erase_iter_range
, 24)
4595 String_iterator_char
* __thiscall
MSVCP_basic_string_char_erase_iter_range(basic_string_char
*this,
4596 String_iterator_char
*ret
, String_iterator_char beg
, String_iterator_char end
)
4601 ret
->pos
= basic_string_char_ptr(this);
4602 off
= MSVCP_basic_string_char_Pdif(beg
, *ret
);
4604 MSVCP_basic_string_char_erase(this, off
, MSVCP_basic_string_char_Pdif(end
, beg
));
4607 ret
->pos
= basic_string_char_ptr(this)+off
;
4611 /* ?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 */
4612 /* ?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 */
4613 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_erase_iter
, 16)
4614 String_iterator_char
* __thiscall
MSVCP_basic_string_char_erase_iter(basic_string_char
*this,
4615 String_iterator_char
*ret
, String_iterator_char pos
)
4620 ret
->pos
= basic_string_char_ptr(this);
4621 off
= MSVCP_basic_string_char_Pdif(pos
, *ret
);
4623 MSVCP_basic_string_char_erase(this, off
, 1);
4626 ret
->pos
= basic_string_char_ptr(this)+off
;
4630 /* ?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 */
4631 /* ?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 */
4632 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_assign_iter
, 20)
4633 basic_string_char
* __thiscall
MSVCP_basic_string_char_assign_iter(basic_string_char
*this,
4634 String_iterator_char beg
, String_iterator_char end
)
4636 return MSVCP_basic_string_char_assign_ptr_ptr(this, beg
.pos
, end
.pos
);
4639 /* ??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 */
4640 /* ??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 */
4641 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_ctor_iter
, 20)
4642 basic_string_char
* __thiscall
MSVCP_basic_string_char_ctor_iter(basic_string_char
*this,
4643 String_iterator_char beg
, String_iterator_char end
)
4645 return MSVCP_basic_string_char_ctor_cstr_len(this, beg
.pos
, end
.pos
-beg
.pos
);
4648 /* ?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 */
4649 /* ?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 */
4650 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_append_iter
, 20)
4651 basic_string_char
* __thiscall
MSVCP_basic_string_char_append_iter(
4652 basic_string_char
*this, String_iterator_char beg
, String_iterator_char end
)
4654 return MSVCP_basic_string_char_append_cstr_len(this, beg
.pos
, end
.pos
-beg
.pos
);
4657 /* ?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 */
4658 /* ?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 */
4659 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_replace_iter_iter
, 36)
4660 basic_string_char
* __thiscall
MSVCP_basic_string_char_replace_iter_iter(basic_string_char
*this,
4661 String_iterator_char beg
, String_iterator_char end
,
4662 String_iterator_char res_beg
, String_iterator_char res_end
)
4664 String_iterator_char begin
= { this, basic_string_char_ptr(this) };
4665 return basic_string_char_replace_cstr_len(this,
4666 MSVCP_basic_string_char_Pdif(beg
, begin
), MSVCP_basic_string_char_Pdif(end
, beg
),
4667 res_beg
.pos
, MSVCP_basic_string_char_Pdif(res_end
, res_beg
));
4670 /* ?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 */
4671 /* ?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 */
4672 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_replace_iter_bstr
, 24)
4673 basic_string_char
* __thiscall
MSVCP_basic_string_char_replace_iter_bstr(basic_string_char
*this,
4674 String_iterator_char beg
, String_iterator_char end
, const basic_string_char
*str
)
4676 String_iterator_char begin
= { this, basic_string_char_ptr(this) };
4677 return basic_string_char_replace(this, MSVCP_basic_string_char_Pdif(beg
, begin
),
4678 MSVCP_basic_string_char_Pdif(end
, beg
), str
);
4681 /* ?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 */
4682 /* ?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 */
4683 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_replace_iter_ch
, 28)
4684 basic_string_char
* __thiscall
MSVCP_basic_string_char_replace_iter_ch(basic_string_char
*this,
4685 String_iterator_char beg
, String_iterator_char end
, MSVCP_size_t count
, char ch
)
4687 String_iterator_char begin
= { this, basic_string_char_ptr(this) };
4688 return basic_string_char_replace_ch(this, MSVCP_basic_string_char_Pdif(beg
, begin
),
4689 MSVCP_basic_string_char_Pdif(end
, beg
), count
, ch
);
4692 /* ?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 */
4693 /* ?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 */
4694 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_replace_iter_ptr_ptr
, 28)
4695 basic_string_char
* __thiscall
MSVCP_basic_string_char_replace_iter_ptr_ptr(basic_string_char
*this,
4696 String_iterator_char beg
, String_iterator_char end
,
4697 const char *res_beg
, const char *res_end
)
4699 String_iterator_char begin
= { this, basic_string_char_ptr(this) };
4700 return basic_string_char_replace_cstr_len(this, MSVCP_basic_string_char_Pdif(beg
, begin
),
4701 MSVCP_basic_string_char_Pdif(end
, beg
), res_beg
, res_end
-res_beg
);
4704 /* ?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 */
4705 /* ?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 */
4706 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_replace_iter_cstr
, 24)
4707 basic_string_char
* __thiscall
MSVCP_basic_string_char_replace_iter_cstr(basic_string_char
*this,
4708 String_iterator_char beg
, String_iterator_char end
, const char *str
)
4710 String_iterator_char begin
= { this, basic_string_char_ptr(this) };
4711 return basic_string_char_replace_cstr(this, MSVCP_basic_string_char_Pdif(beg
, begin
),
4712 MSVCP_basic_string_char_Pdif(end
, beg
), str
);
4715 /* ?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 */
4716 /* ?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 */
4717 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_replace_iter_cstr_len
, 28)
4718 basic_string_char
* __thiscall
MSVCP_basic_string_char_replace_iter_cstr_len(basic_string_char
*this,
4719 String_iterator_char beg
, String_iterator_char end
, const char *str
, MSVCP_size_t len
)
4721 String_iterator_char begin
= { this, basic_string_char_ptr(this) };
4722 return basic_string_char_replace_cstr_len(this, MSVCP_basic_string_char_Pdif(beg
, begin
),
4723 MSVCP_basic_string_char_Pdif(end
, beg
), str
, len
);
4726 /* ?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 */
4727 /* ?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 */
4728 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_insert_iter_chn
, 20)
4729 void __thiscall
MSVCP_basic_string_char_insert_iter_chn(basic_string_char
*this,
4730 String_iterator_char where
, MSVCP_size_t count
, char ch
)
4732 String_iterator_char iter
= { this, basic_string_char_ptr(this) };
4733 MSVCP_size_t off
= MSVCP_basic_string_char_Pdif(where
, iter
);
4735 basic_string_char_insert_chn(this, off
, count
, ch
);
4738 /* ?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 */
4739 /* ?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 */
4740 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_insert_iter_ch
, 20)
4741 String_iterator_char
* __thiscall
MSVCP_basic_string_char_insert_iter_ch(basic_string_char
*this,
4742 String_iterator_char
*ret
, String_iterator_char where
, char ch
)
4747 ret
->pos
= basic_string_char_ptr(this);
4748 off
= MSVCP_basic_string_char_Pdif(where
, *ret
);
4750 basic_string_char_insert_chn(this, off
, 1, ch
);
4751 ret
->pos
= basic_string_char_ptr(this)+off
;
4755 /* ?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 */
4756 /* ?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 */
4757 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_insert_iter_null
, 16)
4758 String_iterator_char
* __thiscall
MSVCP_basic_string_char_insert_iter_null(basic_string_char
*this,
4759 String_iterator_char
*ret
, String_iterator_char where
)
4761 return MSVCP_basic_string_char_insert_iter_ch(this, ret
, where
, 0);
4764 /* ?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 */
4765 /* ?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 */
4766 DEFINE_THISCALL_WRAPPER(basic_string_char_insert_iter_beg_end
, 28)
4767 void __thiscall
basic_string_char_insert_iter_beg_end(basic_string_char
*this,
4768 String_iterator_char where
, String_iterator_char beg
, String_iterator_char end
)
4770 MSVCP_basic_string_char_replace_iter_iter(this, where
, where
, beg
, end
);
4773 /* ?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 */
4774 /* ?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 */
4775 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_insert_iter_ptr_ptr
, 20)
4776 void __thiscall
MSVCP_basic_string_char_insert_iter_ptr_ptr(basic_string_char
*this,
4777 String_iterator_char where
, const char *beg
, const char *end
)
4779 MSVCP_basic_string_char_replace_iter_ptr_ptr(this, where
, where
, beg
, end
);
4782 /* ?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 */
4783 /* ?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 */
4784 /* ?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 */
4785 /* ?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 */
4786 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_begin
, 8)
4787 String_iterator_char
* __thiscall
MSVCP_basic_string_char_begin(
4788 basic_string_char
*this, String_iterator_char
*ret
)
4790 TRACE("%p\n", this);
4793 ret
->pos
= basic_string_char_const_ptr(this);
4797 /* ?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 */
4798 /* ?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 */
4799 /* ?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 */
4800 /* ?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 */
4801 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_end
, 8)
4802 String_iterator_char
* __thiscall
MSVCP_basic_string_char_end(
4803 basic_string_char
*this, String_iterator_char
*ret
)
4805 TRACE("%p\n", this);
4808 ret
->pos
= basic_string_char_const_ptr(this)+this->size
;
4812 /* ?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 */
4813 /* ?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 */
4814 /* ?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 */
4815 /* ?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 */
4816 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_rbegin
, 8)
4817 String_reverse_iterator_char
* __thiscall
MSVCP_basic_string_char_rbegin(
4818 basic_string_char
*this, String_reverse_iterator_char
*ret
)
4820 TRACE("%p\n", this);
4822 #if _MSVCP_VER == 80
4826 ret
->pos
= basic_string_char_const_ptr(this)+this->size
;
4830 /* ?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 */
4831 /* ?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 */
4832 /* ?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 */
4833 /* ?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 */
4834 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_rend
, 8)
4835 String_reverse_iterator_char
* __thiscall
MSVCP_basic_string_char_rend(
4836 basic_string_char
*this, String_reverse_iterator_char
*ret
)
4838 TRACE("%p\n", this);
4840 #if _MSVCP_VER == 80
4844 ret
->pos
= basic_string_char_const_ptr(this);
4848 /* ?_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 */
4849 /* ?_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 */
4850 /* ?_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 */
4851 /* ?_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 */
4852 MSVCP_size_t __cdecl
MSVCP_basic_string_wchar_Pdif(String_iterator_wchar i1
, String_iterator_wchar i2
)
4854 TRACE("(%p %p) (%p %p)\n", i1
.bstr
, i1
.pos
, i2
.bstr
, i2
.pos
);
4856 if((!i1
.bstr
&& i1
.pos
) || i1
.bstr
!=i2
.bstr
) {
4857 _invalid_parameter(NULL
, NULL
, NULL
, 0, 0);
4861 return !i1
.pos
? 0 : i1
.pos
-i2
.pos
;
4864 /* ?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 */
4865 /* ?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 */
4866 /* ?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 */
4867 /* ?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 */
4868 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_erase_iter_range
, 24)
4869 String_iterator_wchar
* __thiscall
MSVCP_basic_string_wchar_erase_iter_range(basic_string_wchar
*this,
4870 String_iterator_wchar
*ret
, String_iterator_wchar beg
, String_iterator_wchar end
)
4875 ret
->pos
= basic_string_wchar_ptr(this);
4876 off
= MSVCP_basic_string_wchar_Pdif(beg
, *ret
);
4878 MSVCP_basic_string_wchar_erase(this, off
, MSVCP_basic_string_wchar_Pdif(end
, beg
));
4881 ret
->pos
= basic_string_wchar_ptr(this)+off
;
4885 /* ?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 */
4886 /* ?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 */
4887 /* ?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 */
4888 /* ?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 */
4889 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_erase_iter
, 16)
4890 String_iterator_wchar
* __thiscall
MSVCP_basic_string_wchar_erase_iter(basic_string_wchar
*this,
4891 String_iterator_wchar
*ret
, String_iterator_wchar pos
)
4896 ret
->pos
= basic_string_wchar_ptr(this);
4897 off
= MSVCP_basic_string_wchar_Pdif(pos
, *ret
);
4899 MSVCP_basic_string_wchar_erase(this, off
, 1);
4902 ret
->pos
= basic_string_wchar_ptr(this)+off
;
4906 /* ?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 */
4907 /* ?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 */
4908 /* ?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 */
4909 /* ?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 */
4910 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_assign_iter
, 20)
4911 basic_string_wchar
* __thiscall
MSVCP_basic_string_wchar_assign_iter(basic_string_wchar
*this,
4912 String_iterator_wchar beg
, String_iterator_wchar end
)
4914 return MSVCP_basic_string_wchar_assign_ptr_ptr(this, beg
.pos
, end
.pos
);
4917 /* ??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 */
4918 /* ??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 */
4919 /* ??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 */
4920 /* ??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 */
4921 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_ctor_iter
, 20)
4922 basic_string_wchar
* __thiscall
MSVCP_basic_string_wchar_ctor_iter(basic_string_wchar
*this,
4923 String_iterator_wchar beg
, String_iterator_wchar end
)
4925 return MSVCP_basic_string_wchar_ctor_cstr_len(this, beg
.pos
, end
.pos
-beg
.pos
);
4928 /* ?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 */
4929 /* ?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 */
4930 /* ?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 */
4931 /* ?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 */
4932 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_append_iter
, 20)
4933 basic_string_wchar
* __thiscall
MSVCP_basic_string_wchar_append_iter(
4934 basic_string_wchar
*this, String_iterator_wchar beg
, String_iterator_wchar end
)
4936 return MSVCP_basic_string_wchar_append_cstr_len(this, beg
.pos
, end
.pos
-beg
.pos
);
4939 /* ?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 */
4940 /* ?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 */
4941 /* ?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 */
4942 /* ?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 */
4943 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_replace_iter_iter
, 36)
4944 basic_string_wchar
* __thiscall
MSVCP_basic_string_wchar_replace_iter_iter(basic_string_wchar
*this,
4945 String_iterator_wchar beg
, String_iterator_wchar end
,
4946 String_iterator_wchar res_beg
, String_iterator_wchar res_end
)
4948 String_iterator_wchar begin
= { this, basic_string_wchar_ptr(this) };
4949 return basic_string_wchar_replace_cstr_len(this,
4950 MSVCP_basic_string_wchar_Pdif(beg
, begin
), MSVCP_basic_string_wchar_Pdif(end
, beg
),
4951 res_beg
.pos
, MSVCP_basic_string_wchar_Pdif(res_end
, res_beg
));
4954 /* ?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 */
4955 /* ?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 */
4956 /* ?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 */
4957 /* ?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 */
4958 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_replace_iter_bstr
, 24)
4959 basic_string_wchar
* __thiscall
MSVCP_basic_string_wchar_replace_iter_bstr(basic_string_wchar
*this,
4960 String_iterator_wchar beg
, String_iterator_wchar end
, const basic_string_wchar
*str
)
4962 String_iterator_wchar begin
= { this, basic_string_wchar_ptr(this) };
4963 return basic_string_wchar_replace(this, MSVCP_basic_string_wchar_Pdif(beg
, begin
),
4964 MSVCP_basic_string_wchar_Pdif(end
, beg
), str
);
4967 /* ?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 */
4968 /* ?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 */
4969 /* ?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 */
4970 /* ?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 */
4971 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_replace_iter_ch
, 28)
4972 basic_string_wchar
* __thiscall
MSVCP_basic_string_wchar_replace_iter_ch(basic_string_wchar
*this,
4973 String_iterator_wchar beg
, String_iterator_wchar end
, MSVCP_size_t count
, wchar_t ch
)
4975 String_iterator_wchar begin
= { this, basic_string_wchar_ptr(this) };
4976 return basic_string_wchar_replace_ch(this, MSVCP_basic_string_wchar_Pdif(beg
, begin
),
4977 MSVCP_basic_string_wchar_Pdif(end
, beg
), count
, ch
);
4980 /* ?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 */
4981 /* ?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 */
4982 /* ?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 */
4983 /* ?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 */
4984 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_replace_iter_ptr_ptr
, 28)
4985 basic_string_wchar
* __thiscall
MSVCP_basic_string_wchar_replace_iter_ptr_ptr(basic_string_wchar
*this,
4986 String_iterator_wchar beg
, String_iterator_wchar end
,
4987 const wchar_t *res_beg
, const wchar_t *res_end
)
4989 String_iterator_wchar begin
= { this, basic_string_wchar_ptr(this) };
4990 return basic_string_wchar_replace_cstr_len(this, MSVCP_basic_string_wchar_Pdif(beg
, begin
),
4991 MSVCP_basic_string_wchar_Pdif(end
, beg
), res_beg
, res_end
-res_beg
);
4994 /* ?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 */
4995 /* ?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 */
4996 /* ?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 */
4997 /* ?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 */
4998 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_replace_iter_cstr
, 24)
4999 basic_string_wchar
* __thiscall
MSVCP_basic_string_wchar_replace_iter_cstr(basic_string_wchar
*this,
5000 String_iterator_wchar beg
, String_iterator_wchar end
, const wchar_t *str
)
5002 String_iterator_wchar begin
= { this, basic_string_wchar_ptr(this) };
5003 return basic_string_wchar_replace_cstr(this, MSVCP_basic_string_wchar_Pdif(beg
, begin
),
5004 MSVCP_basic_string_wchar_Pdif(end
, beg
), str
);
5007 /* ?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 */
5008 /* ?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 */
5009 /* ?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 */
5010 /* ?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 */
5011 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_replace_iter_cstr_len
, 28)
5012 basic_string_wchar
* __thiscall
MSVCP_basic_string_wchar_replace_iter_cstr_len(basic_string_wchar
*this,
5013 String_iterator_wchar beg
, String_iterator_wchar end
, const wchar_t *str
, MSVCP_size_t len
)
5015 String_iterator_wchar begin
= { this, basic_string_wchar_ptr(this) };
5016 return basic_string_wchar_replace_cstr_len(this, MSVCP_basic_string_wchar_Pdif(beg
, begin
),
5017 MSVCP_basic_string_wchar_Pdif(end
, beg
), str
, len
);
5020 /* ?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 */
5021 /* ?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 */
5022 /* ?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 */
5023 /* ?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 */
5024 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_insert_iter_chn
, 20)
5025 void __thiscall
MSVCP_basic_string_wchar_insert_iter_chn(basic_string_wchar
*this,
5026 String_iterator_wchar where
, MSVCP_size_t count
, wchar_t ch
)
5028 String_iterator_wchar iter
= { this, basic_string_wchar_ptr(this) };
5029 MSVCP_size_t off
= MSVCP_basic_string_wchar_Pdif(where
, iter
);
5031 basic_string_wchar_insert_chn(this, off
, count
, ch
);
5034 /* ?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 */
5035 /* ?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 */
5036 /* ?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 */
5037 /* ?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 */
5038 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_insert_iter_ch
, 20)
5039 String_iterator_wchar
* __thiscall
MSVCP_basic_string_wchar_insert_iter_ch(basic_string_wchar
*this,
5040 String_iterator_wchar
*ret
, String_iterator_wchar where
, wchar_t ch
)
5045 ret
->pos
= basic_string_wchar_ptr(this);
5046 off
= MSVCP_basic_string_wchar_Pdif(where
, *ret
);
5048 basic_string_wchar_insert_chn(this, off
, 1, ch
);
5049 ret
->pos
= basic_string_wchar_ptr(this)+off
;
5053 /* ?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 */
5054 /* ?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 */
5055 /* ?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 */
5056 /* ?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 */
5057 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_insert_iter_null
, 16)
5058 String_iterator_wchar
* __thiscall
MSVCP_basic_string_wchar_insert_iter_null(basic_string_wchar
*this,
5059 String_iterator_wchar
*ret
, String_iterator_wchar where
)
5061 return MSVCP_basic_string_wchar_insert_iter_ch(this, ret
, where
, 0);
5064 /* ?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 */
5065 /* ?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 */
5066 /* ?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 */
5067 /* ?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 */
5068 DEFINE_THISCALL_WRAPPER(basic_string_wchar_insert_iter_beg_end
, 28)
5069 void __thiscall
basic_string_wchar_insert_iter_beg_end(basic_string_wchar
*this,
5070 String_iterator_wchar where
, String_iterator_wchar beg
, String_iterator_wchar end
)
5072 MSVCP_basic_string_wchar_replace_iter_iter(this, where
, where
, beg
, end
);
5075 /* ?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 */
5076 /* ?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 */
5077 /* ?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 */
5078 /* ?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 */
5079 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_insert_iter_ptr_ptr
, 20)
5080 void __thiscall
MSVCP_basic_string_wchar_insert_iter_ptr_ptr(basic_string_wchar
*this,
5081 String_iterator_wchar where
, const wchar_t *beg
, const wchar_t *end
)
5083 MSVCP_basic_string_wchar_replace_iter_ptr_ptr(this, where
, where
, beg
, end
);
5086 /* ?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 */
5087 /* ?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 */
5088 /* ?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 */
5089 /* ?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 */
5090 /* ?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 */
5091 /* ?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 */
5092 /* ?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 */
5093 /* ?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 */
5094 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_begin
, 8)
5095 String_iterator_wchar
* __thiscall
MSVCP_basic_string_wchar_begin(
5096 basic_string_wchar
*this, String_iterator_wchar
*ret
)
5098 TRACE("%p\n", this);
5101 ret
->pos
= basic_string_wchar_const_ptr(this);
5105 /* ?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 */
5106 /* ?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 */
5107 /* ?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 */
5108 /* ?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 */
5109 /* ?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 */
5110 /* ?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 */
5111 /* ?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 */
5112 /* ?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 */
5113 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_end
, 8)
5114 String_iterator_wchar
* __thiscall
MSVCP_basic_string_wchar_end(
5115 basic_string_wchar
*this, String_iterator_wchar
*ret
)
5117 TRACE("%p\n", this);
5120 ret
->pos
= basic_string_wchar_const_ptr(this)+this->size
;
5124 /* ?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 */
5125 /* ?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 */
5126 /* ?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 */
5127 /* ?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 */
5128 /* ?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 */
5129 /* ?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 */
5130 /* ?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 */
5131 /* ?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 */
5132 /* ?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 */
5133 /* ?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 */
5134 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_rbegin
, 8)
5135 String_reverse_iterator_wchar
* __thiscall
MSVCP_basic_string_wchar_rbegin(
5136 basic_string_wchar
*this, String_reverse_iterator_wchar
*ret
)
5138 TRACE("%p\n", this);
5140 #if _MSVCP_VER == 80
5144 ret
->pos
= basic_string_wchar_const_ptr(this)+this->size
;
5148 /* ?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 */
5149 /* ?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 */
5150 /* ?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 */
5151 /* ?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 */
5152 /* ?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 */
5153 /* ?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 */
5154 /* ?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 */
5155 /* ?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 */
5156 /* ?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 */
5157 /* ?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 */
5158 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_rend
, 8)
5159 String_reverse_iterator_wchar
* __thiscall
MSVCP_basic_string_wchar_rend(
5160 basic_string_wchar
*this, String_reverse_iterator_wchar
*ret
)
5162 TRACE("%p\n", this);
5164 #if _MSVCP_VER == 80
5168 ret
->pos
= basic_string_wchar_const_ptr(this);
5172 #endif /* _MSVCP_VER < 80 */