2 * Copyright 2010 Piotr Caban for CodeWeavers
4 * This library is free software; you can redistribute it and/or
5 * modify it under the terms of the GNU Lesser General Public
6 * License as published by the Free Software Foundation; either
7 * version 2.1 of the License, or (at your option) any later version.
9 * This library is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12 * Lesser General Public License for more details.
14 * You should have received a copy of the GNU Lesser General Public
15 * License along with this library; if not, write to the Free Software
16 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
29 #include "wine/debug.h"
30 WINE_DEFAULT_DEBUG_CHANNEL(msvcp
);
32 /* size_t_noverify structure */
42 /* char_traits<char> */
43 /* ?assign@?$char_traits@D@std@@SAXAADABD@Z */
44 /* ?assign@?$char_traits@D@std@@SAXAEADAEBD@Z */
45 void CDECL
MSVCP_char_traits_char_assign(char *ch
, const char *assign
)
50 /* ?eq@?$char_traits@D@std@@SA_NABD0@Z */
51 /* ?eq@?$char_traits@D@std@@SA_NAEBD0@Z */
52 MSVCP_bool CDECL
MSVCP_char_traits_char_eq(const char *ch1
, const char *ch2
)
57 /* ?lt@?$char_traits@D@std@@SA_NABD0@Z */
58 /* ?lt@?$char_traits@D@std@@SA_NAEBD0@Z */
59 MSVCP_bool CDECL
MSVCP_char_traits_lt(const char *ch1
, const char *ch2
)
64 /* ?compare@?$char_traits@D@std@@SAHPBD0I@Z */
65 /* ?compare@?$char_traits@D@std@@SAHPEBD0_K@Z */
66 int CDECL
MSVCP_char_traits_char_compare(
67 const char *s1
, const char *s2
, MSVCP_size_t count
)
69 int ret
= memcmp(s1
, s2
, count
);
70 return (ret
>0 ? 1 : (ret
<0 ? -1 : 0));
73 /* ?length@?$char_traits@D@std@@SAIPBD@Z */
74 /* ?length@?$char_traits@D@std@@SA_KPEBD@Z */
75 MSVCP_size_t CDECL
MSVCP_char_traits_char_length(const char *str
)
80 /* ?_Copy_s@?$char_traits@D@std@@SAPADPADIPBDI@Z */
81 /* ?_Copy_s@?$char_traits@D@std@@SAPEADPEAD_KPEBD1@Z */
82 char* CDECL
MSVCP_char_traits_char__Copy_s(char *dest
,
83 MSVCP_size_t size
, const char *src
, MSVCP_size_t count
)
85 memcpy_s(dest
, size
, src
, count
);
89 /* ?copy@?$char_traits@D@std@@SAPADPADPBDI@Z */
90 /* ?copy@?$char_traits@D@std@@SAPEADPEADPEBD_K@Z */
91 char* CDECL
MSVCP_char_traits_char_copy(
92 char *dest
, const char *src
, MSVCP_size_t count
)
94 return MSVCP_char_traits_char__Copy_s(dest
, count
, src
, count
);
97 /* ?find@?$char_traits@D@std@@SAPBDPBDIABD@Z */
98 /* ?find@?$char_traits@D@std@@SAPEBDPEBD_KAEBD@Z */
99 const char * CDECL
MSVCP_char_traits_char_find(
100 const char *str
, MSVCP_size_t range
, const char *c
)
102 return memchr(str
, *c
, range
);
105 /* ?_Move_s@?$char_traits@D@std@@SAPADPADIPBDI@Z */
106 /* ?_Move_s@?$char_traits@D@std@@SAPEADPEAD_KPEBD1@Z */
107 char* CDECL
MSVCP_char_traits_char__Move_s(char *dest
,
108 MSVCP_size_t size
, const char *src
, MSVCP_size_t count
)
110 memmove_s(dest
, size
, src
, count
);
114 /* ?move@?$char_traits@D@std@@SAPADPADPBDI@Z */
115 /* ?move@?$char_traits@D@std@@SAPEADPEADPEBD_K@Z */
116 char* CDECL
MSVCP_char_traits_char_move(
117 char *dest
, const char *src
, MSVCP_size_t count
)
119 return MSVCP_char_traits_char__Move_s(dest
, count
, src
, count
);
122 /* ?assign@?$char_traits@D@std@@SAPADPADID@Z */
123 /* ?assign@?$char_traits@D@std@@SAPEADPEAD_KD@Z */
124 char* CDECL
MSVCP_char_traits_char_assignn(char *str
, MSVCP_size_t num
, char c
)
126 return memset(str
, c
, num
);
129 /* ?to_char_type@?$char_traits@D@std@@SADABH@Z */
130 /* ?to_char_type@?$char_traits@D@std@@SADAEBH@Z */
131 char CDECL
MSVCP_char_traits_char_to_char_type(const int *i
)
136 /* ?to_int_type@?$char_traits@D@std@@SAHABD@Z */
137 /* ?to_int_type@?$char_traits@D@std@@SAHAEBD@Z */
138 int CDECL
MSVCP_char_traits_char_to_int_type(const char *ch
)
140 return (unsigned char)*ch
;
143 /* ?eq_int_type@?$char_traits@D@std@@SA_NABH0@Z */
144 /* ?eq_int_type@?$char_traits@D@std@@SA_NAEBH0@Z */
145 MSVCP_bool CDECL
MSVCP_char_traits_char_eq_int_type(const int *i1
, const int *i2
)
150 /* ?eof@?$char_traits@D@std@@SAHXZ */
151 int CDECL
MSVCP_char_traits_char_eof(void)
156 /* ?not_eof@?$char_traits@D@std@@SAHABH@Z */
157 /* ?not_eof@?$char_traits@D@std@@SAHAEBH@Z */
158 int CDECL
MSVCP_char_traits_char_not_eof(int *in
)
160 return (*in
==EOF
? !EOF
: *in
);
164 /* char_traits<wchar_t> */
165 /* ?assign@?$char_traits@_W@std@@SAXAA_WAB_W@Z */
166 /* ?assign@?$char_traits@_W@std@@SAXAEA_WAEB_W@Z */
167 void CDECL
MSVCP_char_traits_wchar_assign(wchar_t *ch
,
168 const wchar_t *assign
)
173 /* ?eq@?$char_traits@_W@std@@SA_NAB_W0@Z */
174 /* ?eq@?$char_traits@_W@std@@SA_NAEB_W0@Z */
175 MSVCP_bool CDECL
MSVCP_char_traits_wchar_eq(wchar_t *ch1
, wchar_t *ch2
)
180 /* ?lt@?$char_traits@_W@std@@SA_NAB_W0@Z */
181 /* ?lt@?$char_traits@_W@std@@SA_NAEB_W0@Z */
182 MSVCP_bool CDECL
MSVCP_char_traits_wchar_lt(const wchar_t *ch1
,
188 /* ?compare@?$char_traits@_W@std@@SAHPB_W0I@Z */
189 /* ?compare@?$char_traits@_W@std@@SAHPEB_W0_K@Z */
190 int CDECL
MSVCP_char_traits_wchar_compare(const wchar_t *s1
,
191 const wchar_t *s2
, MSVCP_size_t count
)
193 int ret
= memcmp(s1
, s2
, count
* sizeof(wchar_t));
194 return (ret
>0 ? 1 : (ret
<0 ? -1 : 0));
197 /* ?length@?$char_traits@_W@std@@SAIPB_W@Z */
198 /* ?length@?$char_traits@_W@std@@SA_KPEB_W@Z */
199 MSVCP_size_t CDECL
MSVCP_char_traits_wchar_length(const wchar_t *str
)
201 return wcslen((WCHAR
*)str
);
204 /* ?_Copy_s@?$char_traits@_W@std@@SAPA_WPA_WIPB_WI@Z */
205 /* ?_Copy_s@?$char_traits@_W@std@@SAPEA_WPEA_W_KPEB_W1@Z */
206 wchar_t* CDECL
MSVCP_char_traits_wchar__Copy_s(wchar_t *dest
,
207 MSVCP_size_t size
, const wchar_t *src
, MSVCP_size_t count
)
209 memcpy_s(dest
, size
* sizeof(wchar_t), src
, count
* sizeof(wchar_t));
213 /* ?copy@?$char_traits@_W@std@@SAPA_WPA_WPB_WI@Z */
214 /* ?copy@?$char_traits@_W@std@@SAPEA_WPEA_WPEB_W_K@Z */
215 wchar_t* CDECL
MSVCP_char_traits_wchar_copy(wchar_t *dest
,
216 const wchar_t *src
, MSVCP_size_t count
)
218 return MSVCP_char_traits_wchar__Copy_s(dest
, count
, src
, count
);
221 /* ?find@?$char_traits@_W@std@@SAPB_WPB_WIAB_W@Z */
222 /* ?find@?$char_traits@_W@std@@SAPEB_WPEB_W_KAEB_W@Z */
223 const wchar_t* CDECL
MSVCP_char_traits_wchar_find(
224 const wchar_t *str
, MSVCP_size_t range
, const wchar_t *c
)
228 for(i
=0; i
<range
; i
++)
235 /* ?_Move_s@?$char_traits@_W@std@@SAPA_WPA_WIPB_WI@Z */
236 /* ?_Move_s@?$char_traits@_W@std@@SAPEA_WPEA_W_KPEB_W1@Z */
237 wchar_t* CDECL
MSVCP_char_traits_wchar__Move_s(wchar_t *dest
,
238 MSVCP_size_t size
, const wchar_t *src
, MSVCP_size_t count
)
240 memmove_s(dest
, size
* sizeof(wchar_t), src
, count
* sizeof(wchar_t));
244 /* ?move@?$char_traits@_W@std@@SAPA_WPA_WPB_WI@Z */
245 /* ?move@?$char_traits@_W@std@@SAPEA_WPEA_WPEB_W_K@Z */
246 wchar_t* CDECL
MSVCP_char_traits_wchar_move(wchar_t *dest
,
247 const wchar_t *src
, MSVCP_size_t count
)
249 return MSVCP_char_traits_wchar__Move_s(dest
, count
, src
, count
);
252 /* ?assign@?$char_traits@_W@std@@SAPA_WPA_WI_W@Z */
253 /* ?assign@?$char_traits@_W@std@@SAPEA_WPEA_W_K_W@Z */
254 wchar_t* CDECL
MSVCP_char_traits_wchar_assignn(wchar_t *str
,
255 MSVCP_size_t num
, wchar_t c
)
265 /* ?to_char_type@?$char_traits@_W@std@@SA_WABG@Z */
266 /* ?to_char_type@?$char_traits@_W@std@@SA_WAEBG@Z */
267 wchar_t CDECL
MSVCP_char_traits_wchar_to_char_type(const unsigned short *i
)
272 /* ?to_int_type@?$char_traits@_W@std@@SAGAB_W@Z */
273 /* ?to_int_type@?$char_traits@_W@std@@SAGAEB_W@Z */
274 unsigned short CDECL
MSVCP_char_traits_wchar_to_int_type(const wchar_t *ch
)
279 /* ?eq_int_type@?$char_traits@_W@std@@SA_NABG0@Z */
280 /* ?eq_int_type@?$char_traits@_W@std@@SA_NAEBG0@Z */
281 MSVCP_bool CDECL
MSVCP_char_traits_wchar_eq_int_tpe(const unsigned short *i1
,
282 const unsigned short *i2
)
287 /* ?eof@?$char_traits@_W@std@@SAGXZ */
288 unsigned short CDECL
MSVCP_char_traits_wchar_eof(void)
293 /* ?not_eof@?$char_traits@_W@std@@SAGABG@Z */
294 /* ?not_eof@?$char_traits@_W@std@@SAGAEBG@Z */
295 unsigned short CDECL
MSVCP_char_traits_wchar_not_eof(const unsigned short *in
)
297 return (*in
==WEOF
? !WEOF
: *in
);
301 /* char_traits<unsigned short> */
302 /* ?assign@?$char_traits@G@std@@SAXAAGABG@Z */
303 /* ?assign@?$char_traits@G@std@@SAXAEAGAEBG@Z */
304 void CDECL
MSVCP_char_traits_short_assign(unsigned short *ch
,
305 const unsigned short *assign
)
310 /* ?eq@?$char_traits@G@std@@SA_NABG0@Z */
311 /* ?eq@?$char_traits@G@std@@SA_NAEBG0@Z */
312 MSVCP_bool CDECL
MSVCP_char_traits_short_eq(const unsigned short *ch1
,
313 const unsigned short *ch2
)
318 /* ?lt@?$char_traits@G@std@@SA_NABG0@Z */
319 /* ?lt@?$char_traits@G@std@@SA_NAEBG0@Z */
320 MSVCP_bool CDECL
MSVCP_char_traits_short_lt(const unsigned short *ch1
,
321 const unsigned short *ch2
)
326 /* ?compare@?$char_traits@G@std@@SAHPBG0I@Z */
327 /* ?compare@?$char_traits@G@std@@SAHPEBG0_K@Z */
328 int CDECL
MSVCP_char_traits_short_compare(const unsigned short *s1
,
329 const unsigned short *s2
, MSVCP_size_t count
)
333 for(i
=0; i
<count
; i
++)
335 return (s1
[i
] < s2
[i
] ? -1 : 1);
340 /* ?length@?$char_traits@G@std@@SAIPBG@Z */
341 /* ?length@?$char_traits@G@std@@SA_KPEBG@Z */
342 MSVCP_size_t CDECL
MSVCP_char_traits_short_length(const unsigned short *str
)
346 for(len
=0; str
[len
]; len
++);
351 /* ?_Copy_s@?$char_traits@G@std@@SAPAGPAGIPBGI@Z */
352 /* ?_Copy_s@?$char_traits@G@std@@SAPEAGPEAG_KPEBG1@Z */
353 unsigned short * CDECL
MSVCP_char_traits_short__Copy_s(unsigned short *dest
,
354 MSVCP_size_t size
, const unsigned short *src
, MSVCP_size_t count
)
356 memcpy_s(dest
, size
* sizeof(unsigned short), src
, count
* sizeof(unsigned short));
360 /* ?copy@?$char_traits@G@std@@SAPAGPAGPBGI@Z */
361 /* ?copy@?$char_traits@G@std@@SAPEAGPEAGPEBG_K@Z */
362 unsigned short* CDECL
MSVCP_char_traits_short_copy(unsigned short *dest
,
363 const unsigned short *src
, MSVCP_size_t count
)
365 return MSVCP_char_traits_short__Copy_s(dest
, count
, src
, count
);
368 /* ?find@?$char_traits@G@std@@SAPBGPBGIABG@Z */
369 /* ?find@?$char_traits@G@std@@SAPEBGPEBG_KAEBG@Z */
370 const unsigned short* CDECL
MSVCP_char_traits_short_find(
371 const unsigned short *str
, MSVCP_size_t range
, const unsigned short *c
)
375 for(i
=0; i
<range
; i
++)
382 /* ?_Move_s@?$char_traits@G@std@@SAPAGPAGIPBGI@Z */
383 /* ?_Move_s@?$char_traits@G@std@@SAPEAGPEAG_KPEBG1@Z */
384 unsigned short* CDECL
MSVCP_char_traits_short__Move_s(unsigned short *dest
,
385 MSVCP_size_t size
, const unsigned short *src
, MSVCP_size_t count
)
387 memmove_s(dest
, size
* sizeof(unsigned short), src
, count
* sizeof(unsigned short));
391 /* ?move@?$char_traits@G@std@@SAPAGPAGPBGI@Z */
392 /* ?move@?$char_traits@G@std@@SAPEAGPEAGPEBG_K@Z */
393 unsigned short* CDECL
MSVCP_char_traits_short_move(unsigned short *dest
,
394 const unsigned short *src
, MSVCP_size_t count
)
396 return MSVCP_char_traits_short__Move_s(dest
, count
, src
, count
);
399 /* ?assign@?$char_traits@G@std@@SAPAGPAGIG@Z */
400 /* ?assign@?$char_traits@G@std@@SAPEAGPEAG_KG@Z */
401 unsigned short* CDECL
MSVCP_char_traits_short_assignn(unsigned short *str
,
402 MSVCP_size_t num
, unsigned short c
)
412 /* ?to_char_type@?$char_traits@G@std@@SAGABG@Z */
413 /* ?to_char_type@?$char_traits@G@std@@SAGAEBG@Z */
414 unsigned short CDECL
MSVCP_char_traits_short_to_char_type(const unsigned short *i
)
419 /* ?to_int_type@?$char_traits@G@std@@SAGABG@Z */
420 /* ?to_int_type@?$char_traits@G@std@@SAGAEBG@Z */
421 unsigned short CDECL
MSVCP_char_traits_short_to_int_type(const unsigned short *ch
)
426 /* ?eq_int_type@?$char_traits@G@std@@SA_NABG0@Z */
427 /* ?eq_int_type@?$char_traits@G@std@@SA_NAEBG0@Z */
428 MSVCP_bool CDECL
MSVCP_char_traits_short_eq_int_type(unsigned short *i1
,
434 /* ?eof@?$char_traits@G@std@@SAGXZ */
435 unsigned short CDECL
MSVCP_char_traits_short_eof(void)
440 /* ?not_eof@?$char_traits@G@std@@SAGABG@Z */
441 /* ?not_eof@?$char_traits@G@std@@SAGAEBG@Z */
442 unsigned short CDECL
MSVCP_char_traits_short_not_eof(const unsigned short *in
)
444 return (*in
==(unsigned short)-1 ? 0 : *in
);
449 /* ?_Xlen@_String_base@std@@SAXXZ */
450 void CDECL
MSVCP__String_base_Xlen(void)
452 static const char msg
[] = "string too long";
455 throw_exception(EXCEPTION_LENGTH_ERROR
, msg
);
458 /* ?_Xlen@_String_base@std@@QBEXXZ */
459 DEFINE_THISCALL_WRAPPER(_String_base__Xlen
, 4)
460 void __thiscall
_String_base__Xlen(const void/*_String_base*/ *this)
462 MSVCP__String_base_Xlen();
465 /* ?_Xran@_String_base@std@@SAXXZ */
466 void CDECL
MSVCP__String_base_Xran(void)
468 static const char msg
[] = "invalid string position";
471 throw_exception(EXCEPTION_OUT_OF_RANGE
, msg
);
474 /* ?_Xran@_String_base@std@@QBEXXZ */
475 DEFINE_THISCALL_WRAPPER(_String_base__Xran
, 4)
476 void __thiscall
_String_base__Xran(const void/*_String_base*/ *this)
478 MSVCP__String_base_Xran();
481 /* ?_Xinvarg@_String_base@std@@SAXXZ */
482 void CDECL
MSVCP__String_base_Xinvarg(void)
484 static const char msg
[] = "invalid string argument";
487 throw_exception(EXCEPTION_INVALID_ARGUMENT
, msg
);
491 /* basic_string<char, char_traits<char>, allocator<char>> */
492 /* ?npos@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@2IB */
493 /* ?npos@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@2_KB */
494 const MSVCP_size_t MSVCP_basic_string_char_npos
= -1;
496 /* ?_Myptr@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IAEPADXZ */
497 /* ?_Myptr@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IEAAPEADXZ */
498 DEFINE_THISCALL_WRAPPER(basic_string_char_ptr
, 4)
499 char* __thiscall
basic_string_char_ptr(basic_string_char
*this)
501 if(this->res
< BUF_SIZE_CHAR
)
502 return this->data
.buf
;
503 return this->data
.ptr
;
506 /* ?_Myptr@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IBEPBDXZ */
507 /* ?_Myptr@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IEBAPEBDXZ */
508 DEFINE_THISCALL_WRAPPER(basic_string_char_const_ptr
, 4)
509 const char* __thiscall
basic_string_char_const_ptr(const basic_string_char
*this)
511 if(this->res
< BUF_SIZE_CHAR
)
512 return this->data
.buf
;
513 return this->data
.ptr
;
516 /* ?_Eos@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IAEXI@Z */
517 /* ?_Eos@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IEAAX_K@Z */
518 DEFINE_THISCALL_WRAPPER(basic_string_char_eos
, 8)
519 void __thiscall
basic_string_char_eos(basic_string_char
*this, MSVCP_size_t len
)
521 static const char nullbyte
= '\0';
524 MSVCP_char_traits_char_assign(basic_string_char_ptr(this)+len
, &nullbyte
);
527 /* ?_Inside@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IAE_NPBD@Z */
528 /* ?_Inside@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IEAA_NPEBD@Z */
529 DEFINE_THISCALL_WRAPPER(basic_string_char_inside
, 8)
530 MSVCP_bool __thiscall
basic_string_char_inside(
531 basic_string_char
*this, const char *ptr
)
533 char *cstr
= basic_string_char_ptr(this);
535 return ptr
>=cstr
&& ptr
<cstr
+this->size
;
538 /* ?_Tidy@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IAEX_NI@Z */
539 /* ?_Tidy@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IEAAX_N_K@Z */
540 DEFINE_THISCALL_WRAPPER(basic_string_char_tidy
, 12)
541 void __thiscall
basic_string_char_tidy(basic_string_char
*this,
542 MSVCP_bool built
, MSVCP_size_t new_size
)
544 if(built
&& BUF_SIZE_CHAR
<=this->res
) {
545 char *ptr
= this->data
.ptr
;
548 MSVCP_char_traits_char__Copy_s(this->data
.buf
, BUF_SIZE_CHAR
, ptr
, new_size
);
549 MSVCP_allocator_char_deallocate(this->allocator
, ptr
, this->res
+1);
552 this->res
= BUF_SIZE_CHAR
-1;
553 basic_string_char_eos(this, new_size
);
556 /* Exported only from msvcp60/70 */
557 /* ?_Tidy@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@AAEX_N@Z */
558 /* ?_Tidy@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@AEAAX_N@Z */
559 DEFINE_THISCALL_WRAPPER(basic_string_char_tidy_built
, 8)
560 void __thiscall
basic_string_char_tidy_built(basic_string_char
*this, MSVCP_bool built
)
562 basic_string_char_tidy(this, built
, 0);
565 /* ?_Grow@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IAE_NI_N@Z */
566 /* ?_Grow@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IEAA_N_K_N@Z */
567 DEFINE_THISCALL_WRAPPER(basic_string_char_grow
, 12)
568 MSVCP_bool __thiscall
basic_string_char_grow(
569 basic_string_char
*this, MSVCP_size_t new_size
, MSVCP_bool trim
)
571 if(this->res
< new_size
) {
572 MSVCP_size_t new_res
= new_size
, len
= this->size
;
577 if(new_res
/3 < this->res
/2)
578 new_res
= this->res
+ this->res
/2;
580 ptr
= MSVCP_allocator_char_allocate(this->allocator
, new_res
+1);
582 ptr
= MSVCP_allocator_char_allocate(this->allocator
, new_size
+1);
586 ERR("Out of memory\n");
587 basic_string_char_tidy(this, TRUE
, 0);
591 MSVCP_char_traits_char__Copy_s(ptr
, new_size
,
592 basic_string_char_ptr(this), this->size
);
593 basic_string_char_tidy(this, TRUE
, 0);
594 this->data
.ptr
= ptr
;
595 this->res
= new_size
;
596 basic_string_char_eos(this, len
);
597 } else if(trim
&& new_size
< BUF_SIZE_CHAR
)
598 basic_string_char_tidy(this, TRUE
,
599 new_size
<this->size
? new_size
: this->size
);
600 else if(new_size
== 0)
601 basic_string_char_eos(this, 0);
606 /* ?_Copy@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IAEXII@Z */
607 /* ?_Copy@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IEAAX_K0@Z */
608 DEFINE_THISCALL_WRAPPER(basic_string_char__Copy
, 12)
609 void __thiscall
basic_string_char__Copy(basic_string_char
*this,
610 MSVCP_size_t new_size
, MSVCP_size_t copy_len
)
612 TRACE("%p %lu %lu\n", this, new_size
, copy_len
);
614 if(!basic_string_char_grow(this, new_size
, FALSE
))
616 basic_string_char_eos(this, copy_len
);
619 /* ?get_allocator@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBE?AV?$allocator@D@2@XZ */
620 /* ?get_allocator@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA?AV?$allocator@D@2@XZ */
621 DEFINE_THISCALL_WRAPPER(basic_string_char_get_allocator
, 8)
622 allocator
* __thiscall
basic_string_char_get_allocator(const basic_string_char
*this, allocator
*ret
)
628 /* ?erase@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@II@Z */
629 /* ?erase@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAAEAV12@_K0@Z */
630 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_erase
, 12)
631 basic_string_char
* __thiscall
MSVCP_basic_string_char_erase(
632 basic_string_char
*this, MSVCP_size_t pos
, MSVCP_size_t len
)
634 TRACE("%p %lu %lu\n", this, pos
, len
);
637 MSVCP__String_base_Xran();
639 if(len
> this->size
-pos
)
640 len
= this->size
-pos
;
643 MSVCP_char_traits_char__Move_s(basic_string_char_ptr(this)+pos
,
644 this->res
-pos
, basic_string_char_ptr(this)+pos
+len
,
646 basic_string_char_eos(this, this->size
-len
);
652 /* ?assign@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@ABV12@II@Z */
653 /* ?assign@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAAEAV12@AEBV12@_K1@Z */
654 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_assign_substr
, 16)
655 basic_string_char
* __thiscall
MSVCP_basic_string_char_assign_substr(
656 basic_string_char
*this, const basic_string_char
*assign
,
657 MSVCP_size_t pos
, MSVCP_size_t len
)
659 TRACE("%p %p %lu %lu\n", this, assign
, pos
, len
);
661 if(assign
->size
< pos
)
662 MSVCP__String_base_Xran();
664 if(len
> assign
->size
-pos
)
665 len
= assign
->size
-pos
;
668 MSVCP_basic_string_char_erase(this, pos
+len
, MSVCP_basic_string_char_npos
);
669 MSVCP_basic_string_char_erase(this, 0, pos
);
670 } else if(basic_string_char_grow(this, len
, FALSE
)) {
671 MSVCP_char_traits_char__Copy_s(basic_string_char_ptr(this),
672 this->res
, basic_string_char_const_ptr(assign
)+pos
, len
);
673 basic_string_char_eos(this, len
);
679 /* ?assign@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@ABV12@@Z */
680 /* ?assign@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAAEAV12@AEBV12@@Z */
681 /* ??4?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV01@ABV01@@Z */
682 /* ??4?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAAEAV01@AEBV01@@Z */
683 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_assign
, 8)
684 basic_string_char
* __thiscall
MSVCP_basic_string_char_assign(
685 basic_string_char
*this, const basic_string_char
*assign
)
687 return MSVCP_basic_string_char_assign_substr(this, assign
,
688 0, MSVCP_basic_string_char_npos
);
691 /* ?assign@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@PBDI@Z */
692 /* ?assign@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAAEAV12@PEBD_K@Z */
693 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_assign_cstr_len
, 12)
694 basic_string_char
* __thiscall
MSVCP_basic_string_char_assign_cstr_len(
695 basic_string_char
*this, const char *str
, MSVCP_size_t len
)
697 TRACE("%p %s %lu\n", this, debugstr_an(str
, len
), len
);
699 if(basic_string_char_inside(this, str
))
700 return MSVCP_basic_string_char_assign_substr(this, this,
701 str
-basic_string_char_ptr(this), len
);
702 else if(basic_string_char_grow(this, len
, FALSE
)) {
703 MSVCP_char_traits_char__Copy_s(basic_string_char_ptr(this),
704 this->res
, str
, len
);
705 basic_string_char_eos(this, len
);
711 /* ??4?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV01@D@Z */
712 /* ??4?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAAEAV01@D@Z */
713 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_assign_ch
, 8)
714 basic_string_char
* __thiscall
MSVCP_basic_string_char_assign_ch(
715 basic_string_char
*this, char ch
)
717 return MSVCP_basic_string_char_assign_cstr_len(this, &ch
, 1);
720 /* ?assign@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@PBD@Z */
721 /* ?assign@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAAEAV12@PEBD@Z */
722 /* ??4?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV01@PBD@Z */
723 /* ??4?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAAEAV01@PEBD@Z */
724 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_assign_cstr
, 8)
725 basic_string_char
* __thiscall
MSVCP_basic_string_char_assign_cstr(
726 basic_string_char
*this, const char *str
)
728 return MSVCP_basic_string_char_assign_cstr_len(this, str
,
729 MSVCP_char_traits_char_length(str
));
732 /* ?assign@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@ID@Z */
733 /* ?assign@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAAEAV12@_KD@Z */
734 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_assignn
, 12)
735 basic_string_char
* __thiscall
MSVCP_basic_string_char_assignn(
736 basic_string_char
*this, MSVCP_size_t count
, char ch
)
738 TRACE("%p %ld %c\n", this, count
, ch
);
740 basic_string_char_grow(this, count
, FALSE
);
741 MSVCP_char_traits_char_assignn(basic_string_char_ptr(this), count
, ch
);
742 basic_string_char_eos(this, count
);
746 /* ?assign@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@PBD0@Z */
747 /* ?assign@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAAEAV12@PEBD0@Z */
748 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_assign_ptr_ptr
, 12)
749 basic_string_char
* __thiscall
MSVCP_basic_string_char_assign_ptr_ptr(
750 basic_string_char
*this, const char *first
, const char *last
)
752 return MSVCP_basic_string_char_assign_cstr_len(this, first
, last
-first
);
755 /* ?_Chassign@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IAEXIID@Z */
756 /* ?_Chassign@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IEAAX_K0D@Z */
757 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_Chassign
, 16)
758 void __thiscall
MSVCP_basic_string_char_Chassign(basic_string_char
*this,
759 MSVCP_size_t off
, MSVCP_size_t count
, char ch
)
761 TRACE("%p %lu %lu %c\n", this, off
, count
, ch
);
762 MSVCP_char_traits_char_assignn(basic_string_char_ptr(this)+off
, count
, ch
);
765 /* ?_Copy_s@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEIPADIII@Z */
766 /* ?_Copy_s@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA_KPEAD_K11@Z */
767 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_Copy_s
, 20)
768 MSVCP_size_t __thiscall
MSVCP_basic_string_char_Copy_s(const basic_string_char
*this,
769 char *dest
, MSVCP_size_t size
, MSVCP_size_t count
, MSVCP_size_t off
)
771 TRACE("%p %p %lu %lu %lu\n", this, dest
, size
, count
, off
);
774 MSVCP__String_base_Xran();
776 if(count
> this->size
-off
)
777 count
= this->size
-off
;
779 MSVCP_char_traits_char__Copy_s(dest
, size
,
780 basic_string_char_const_ptr(this)+off
, count
);
784 /* ?copy@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEIPADII@Z */
785 /* ?copy@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA_KPEAD_K1@Z */
786 DEFINE_THISCALL_WRAPPER(basic_string_char_copy
, 16)
787 MSVCP_size_t __thiscall
basic_string_char_copy(const basic_string_char
*this,
788 char *dest
, MSVCP_size_t count
, MSVCP_size_t off
)
790 return MSVCP_basic_string_char_Copy_s(this, dest
, count
, count
, off
);
793 /* ?c_str@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEPBDXZ */
794 /* ?c_str@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBAPEBDXZ */
795 /* ?data@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEPBDXZ */
796 /* ?data@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBAPEBDXZ */
797 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_c_str
, 4)
798 const char* __thiscall
MSVCP_basic_string_char_c_str(const basic_string_char
*this)
801 return basic_string_char_const_ptr(this);
804 /* ?capacity@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEIXZ */
805 /* ?capacity@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA_KXZ */
806 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_capacity
, 4)
807 MSVCP_size_t __thiscall
MSVCP_basic_string_char_capacity(basic_string_char
*this)
813 /* ?reserve@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEXI@Z */
814 /* ?reserve@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAX_K@Z */
815 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_reserve
, 8)
816 void __thiscall
MSVCP_basic_string_char_reserve(basic_string_char
*this, MSVCP_size_t size
)
820 TRACE("%p %ld\n", this, size
);
826 if(basic_string_char_grow(this, size
, TRUE
))
827 basic_string_char_eos(this, len
);
830 /* ??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@XZ */
831 /* ??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAA@XZ */
832 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_ctor
, 4)
833 basic_string_char
* __thiscall
MSVCP_basic_string_char_ctor(basic_string_char
*this)
837 basic_string_char_tidy(this, FALSE
, 0);
841 /* ??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@ABV01@@Z */
842 /* ??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAA@AEBV01@@Z */
843 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_copy_ctor
, 8)
844 basic_string_char
* __thiscall
MSVCP_basic_string_char_copy_ctor(
845 basic_string_char
*this, const basic_string_char
*copy
)
847 TRACE("%p %p\n", this, copy
);
849 basic_string_char_tidy(this, FALSE
, 0);
850 MSVCP_basic_string_char_assign(this, copy
);
854 /* ??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@PBD@Z */
855 /* ??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAA@PEBD@Z */
856 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_ctor_cstr
, 8)
857 basic_string_char
* __thiscall
MSVCP_basic_string_char_ctor_cstr(
858 basic_string_char
*this, const char *str
)
860 TRACE("%p %s\n", this, debugstr_a(str
));
862 basic_string_char_tidy(this, FALSE
, 0);
863 MSVCP_basic_string_char_assign_cstr(this, str
);
867 /* ??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@PBDABV?$allocator@D@1@@Z */
868 /* ??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAA@PEBDAEBV?$allocator@D@1@@Z */
869 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_ctor_cstr_alloc
, 12)
870 basic_string_char
* __thiscall
MSVCP_basic_string_char_ctor_cstr_alloc(
871 basic_string_char
*this, const char *str
, const void *alloc
)
873 return MSVCP_basic_string_char_ctor_cstr(this, str
);
876 /* ??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@PBDI@Z */
877 /* ??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAA@PEBD_K@Z */
878 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_ctor_cstr_len
, 12)
879 basic_string_char
* __thiscall
MSVCP_basic_string_char_ctor_cstr_len(
880 basic_string_char
*this, const char *str
, MSVCP_size_t len
)
882 TRACE("%p %s %ld\n", this, debugstr_an(str
, len
), len
);
884 basic_string_char_tidy(this, FALSE
, 0);
885 MSVCP_basic_string_char_assign_cstr_len(this, str
, len
);
889 /* ??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@PBDIABV?$allocator@D@1@@Z */
890 /* ??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAA@PEBD_KAEBV?$allocator@D@1@@Z */
891 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_ctor_cstr_len_alloc
, 16)
892 basic_string_char
* __thiscall
MSVCP_basic_string_char_ctor_cstr_len_alloc(
893 basic_string_char
*this, const char *str
, MSVCP_size_t len
, const void *alloc
)
895 return MSVCP_basic_string_char_ctor_cstr_len(this, str
, len
);
898 /* ??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@ABV01@II@Z */
899 /* ??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAA@AEBV01@_K1@Z */
900 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_ctor_substr
, 16)
901 basic_string_char
* __thiscall
MSVCP_basic_string_char_ctor_substr(
902 basic_string_char
*this, const basic_string_char
*assign
,
903 MSVCP_size_t pos
, MSVCP_size_t len
)
905 TRACE("%p %p %lu %lu\n", this, assign
, pos
, len
);
907 basic_string_char_tidy(this, FALSE
, 0);
908 MSVCP_basic_string_char_assign_substr(this, assign
, pos
, len
);
912 /* ??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@ABV01@IIABV?$allocator@D@1@@Z */
913 /* ??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAA@AEBV01@_K1AEBV?$allocator@D@1@@Z */
914 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_ctor_substr_alloc
, 20)
915 basic_string_char
* __thiscall
MSVCP_basic_string_char_ctor_substr_alloc(
916 basic_string_char
*this, const basic_string_char
*assign
,
917 MSVCP_size_t pos
, MSVCP_size_t len
, const void *alloc
)
919 return MSVCP_basic_string_char_ctor_substr(this, assign
, pos
, len
);
922 /* ??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@ABV?$allocator@D@1@@Z */
923 /* ??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAA@AEBV?$allocator@D@1@@Z */
924 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_ctor_alloc
, 8)
925 basic_string_char
* __thiscall
MSVCP_basic_string_char_ctor_alloc(
926 basic_string_char
*this, const void *alloc
)
928 TRACE("%p %p\n", this, alloc
);
930 basic_string_char_tidy(this, FALSE
, 0);
934 /* ??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@ID@Z */
935 /* ??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAA@_KD@Z */
936 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_ctor_ch
, 12)
937 basic_string_char
* __thiscall
MSVCP_basic_string_char_ctor_ch(basic_string_char
*this,
938 MSVCP_size_t count
, char ch
)
940 TRACE("%p %ld %c\n", this, count
, ch
);
942 basic_string_char_tidy(this, FALSE
, 0);
943 MSVCP_basic_string_char_assignn(this, count
, ch
);
947 /* ??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@IDABV?$allocator@D@1@@Z */
948 /* ??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAA@_KDAEBV?$allocator@D@1@@Z */
949 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_ctor_ch_alloc
, 16)
950 basic_string_char
* __thiscall
MSVCP_basic_string_char_ctor_ch_alloc(basic_string_char
*this,
951 MSVCP_size_t count
, char ch
, const void *alloc
)
953 return MSVCP_basic_string_char_ctor_ch(this, count
, ch
);
956 /* ??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@PBD0@Z */
957 /* ??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAA@PEBD0@Z */
958 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_ctor_ptr_ptr
, 12)
959 basic_string_char
* __thiscall
MSVCP_basic_string_char_ctor_ptr_ptr(basic_string_char
*this,
960 const char *first
, const char *last
)
962 return MSVCP_basic_string_char_ctor_cstr_len(this, first
, last
-first
);
965 /* ??1?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@XZ */
966 /* ??1?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAA@XZ */
967 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_dtor
, 4)
968 void __thiscall
MSVCP_basic_string_char_dtor(basic_string_char
*this)
971 basic_string_char_tidy(this, TRUE
, 0);
974 /* ?size@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEIXZ */
975 /* ?size@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA_KXZ */
976 /* ?length@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEIXZ */
977 /* ?length@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA_KXZ */
978 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_length
, 4)
979 MSVCP_size_t __thiscall
MSVCP_basic_string_char_length(const basic_string_char
*this)
985 /* ?max_size@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEIXZ */
986 /* ?max_size@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA_KXZ */
987 DEFINE_THISCALL_WRAPPER(basic_string_char_max_size
, 4)
988 MSVCP_size_t __thiscall
basic_string_char_max_size(const basic_string_char
*this)
991 return MSVCP_allocator_char_max_size(this->allocator
)-1;
994 /* ?empty@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBE_NXZ */
995 /* ?empty@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA_NXZ */
996 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_empty
, 4)
997 MSVCP_bool __thiscall
MSVCP_basic_string_char_empty(basic_string_char
*this)
1000 return this->size
== 0;
1003 /* ?swap@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEXAAV12@@Z */
1004 /* ?swap@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAXAEAV12@@Z */
1005 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_swap
, 8)
1006 void __thiscall
MSVCP_basic_string_char_swap(basic_string_char
*this, basic_string_char
*str
)
1009 char tmp
[sizeof(this->data
)];
1010 const MSVCP_size_t size
= this->size
;
1011 const MSVCP_size_t res
= this->res
;
1013 memcpy(tmp
, this->data
.buf
, sizeof(this->data
));
1014 memcpy(this->data
.buf
, str
->data
.buf
, sizeof(this->data
));
1015 memcpy(str
->data
.buf
, tmp
, sizeof(this->data
));
1017 this->size
= str
->size
;
1018 this->res
= str
->res
;
1025 /* ?substr@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBE?AV12@II@Z */
1026 /* ?substr@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA?AV12@_K0@Z */
1027 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_substr
, 16)
1028 basic_string_char
* __thiscall
MSVCP_basic_string_char_substr(basic_string_char
*this,
1029 basic_string_char
*ret
, MSVCP_size_t off
, MSVCP_size_t len
)
1031 TRACE("%p %lu %lu\n", this, off
, len
);
1033 MSVCP_basic_string_char_ctor_substr(ret
, this, off
, len
);
1037 /* ?append@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@ABV12@II@Z */
1038 /* ?append@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAAEAV12@AEBV12@_K1@Z */
1039 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_append_substr
, 16)
1040 basic_string_char
* __thiscall
MSVCP_basic_string_char_append_substr(basic_string_char
*this,
1041 const basic_string_char
*append
, MSVCP_size_t offset
, MSVCP_size_t count
)
1043 TRACE("%p %p %lu %lu\n", this, append
, offset
, count
);
1045 if(append
->size
< offset
)
1046 MSVCP__String_base_Xran();
1048 if(count
> append
->size
-offset
)
1049 count
= append
->size
-offset
;
1051 if(MSVCP_basic_string_char_npos
-this->size
<=count
|| this->size
+count
<this->size
)
1052 MSVCP__String_base_Xlen();
1054 if(basic_string_char_grow(this, this->size
+count
, FALSE
)) {
1055 MSVCP_char_traits_char__Copy_s(basic_string_char_ptr(this)+this->size
,
1056 this->res
-this->size
, basic_string_char_const_ptr(append
)+offset
, count
);
1057 basic_string_char_eos(this, this->size
+count
);
1063 /* ?append@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@ABV12@@Z */
1064 /* ?append@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAAEAV12@AEBV12@@Z */
1065 /* ??Y?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV01@ABV01@@Z */
1066 /* ??Y?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAAEAV01@AEBV01@@Z */
1067 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_append
, 8)
1068 basic_string_char
* __thiscall
MSVCP_basic_string_char_append(
1069 basic_string_char
*this, const basic_string_char
*append
)
1071 return MSVCP_basic_string_char_append_substr(this, append
,
1072 0, MSVCP_basic_string_char_npos
);
1075 /* ?append@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@PBDI@Z */
1076 /* ?append@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAAEAV12@PEBD_K@Z */
1077 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_append_cstr_len
, 12)
1078 basic_string_char
* __thiscall
MSVCP_basic_string_char_append_cstr_len(
1079 basic_string_char
*this, const char *append
, MSVCP_size_t count
)
1081 TRACE("%p %s %lu\n", this, debugstr_an(append
, count
), count
);
1083 if(basic_string_char_inside(this, append
))
1084 return MSVCP_basic_string_char_append_substr(this, this,
1085 append
-basic_string_char_ptr(this), count
);
1087 if(MSVCP_basic_string_char_npos
-this->size
<=count
|| this->size
+count
<this->size
)
1088 MSVCP__String_base_Xlen();
1090 if(basic_string_char_grow(this, this->size
+count
, FALSE
)) {
1091 MSVCP_char_traits_char__Copy_s(basic_string_char_ptr(this)+this->size
,
1092 this->res
-this->size
, append
, count
);
1093 basic_string_char_eos(this, this->size
+count
);
1099 /* ?append@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@PBD@Z */
1100 /* ?append@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAAEAV12@PEBD@Z */
1101 /* ??Y?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV01@PBD@Z */
1102 /* ??Y?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAAEAV01@PEBD@Z */
1103 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_append_cstr
, 8)
1104 basic_string_char
* __thiscall
MSVCP_basic_string_char_append_cstr(
1105 basic_string_char
*this, const char *append
)
1107 return MSVCP_basic_string_char_append_cstr_len(this, append
,
1108 MSVCP_char_traits_char_length(append
));
1111 /* ?append@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@PBD0@Z */
1112 /* ?append@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAAEAV12@PEBD0@Z */
1113 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_append_beg_end
, 12)
1114 basic_string_char
* __thiscall
MSVCP_basic_string_char_append_beg_end(
1115 basic_string_char
*this, const char *beg
, const char *end
)
1117 return MSVCP_basic_string_char_append_cstr_len(this, beg
, end
-beg
);
1120 /* ?append@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@ID@Z */
1121 /* ?append@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAAEAV12@_KD@Z */
1122 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_append_len_ch
, 12)
1123 basic_string_char
* __thiscall
MSVCP_basic_string_char_append_len_ch(
1124 basic_string_char
*this, MSVCP_size_t count
, char ch
)
1126 TRACE("%p %lu %c\n", this, count
, ch
);
1128 if(MSVCP_basic_string_char_npos
-this->size
<= count
)
1129 MSVCP__String_base_Xlen();
1131 if(basic_string_char_grow(this, this->size
+count
, FALSE
)) {
1132 MSVCP_char_traits_char_assignn(basic_string_char_ptr(this)+this->size
, count
, ch
);
1133 basic_string_char_eos(this, this->size
+count
);
1139 /* ??Y?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV01@D@Z */
1140 /* ??Y?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAAEAV01@D@Z */
1141 /* ?push_back@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEXD@Z */
1142 /* ?push_back@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAXD@Z */
1143 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_append_ch
, 8)
1144 basic_string_char
* __thiscall
MSVCP_basic_string_char_append_ch(
1145 basic_string_char
*this, char ch
)
1147 return MSVCP_basic_string_char_append_len_ch(this, 1, ch
);
1150 /* ??$?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 */
1151 /* ??$?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 */
1152 /* ??Hstd@@YA?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@ABV10@PBD@Z */
1153 /* ??Hstd@@YA?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@AEBV10@PEBD@Z */
1154 basic_string_char
* __cdecl
MSVCP_basic_string_char_concatenate_bstr_cstr(basic_string_char
*ret
,
1155 const basic_string_char
*left
, const char *right
)
1157 TRACE("%p %s\n", left
, debugstr_a(right
));
1159 MSVCP_basic_string_char_copy_ctor(ret
, left
);
1160 MSVCP_basic_string_char_append_cstr(ret
, right
);
1164 /* ??$?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 */
1165 /* ??$?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 */
1166 /* ??Hstd@@YA?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@PBDABV10@@Z */
1167 /* ??Hstd@@YA?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@PEBDAEBV10@@Z */
1168 basic_string_char
* __cdecl
MSVCP_basic_string_char_concatenate_cstr_bstr(basic_string_char
*ret
,
1169 const char *left
, const basic_string_char
*right
)
1171 TRACE("%s %p\n", debugstr_a(left
), right
);
1173 MSVCP_basic_string_char_ctor_cstr(ret
, left
);
1174 MSVCP_basic_string_char_append(ret
, right
);
1178 /* ??$?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 */
1179 /* ??$?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 */
1180 /* ??Hstd@@YA?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@ABV10@0@Z */
1181 /* ??Hstd@@YA?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@AEBV10@0@Z */
1182 basic_string_char
* __cdecl
MSVCP_basic_string_char_concatenate(basic_string_char
*ret
,
1183 const basic_string_char
*left
, const basic_string_char
*right
)
1185 TRACE("%p %p\n", left
, right
);
1187 MSVCP_basic_string_char_copy_ctor(ret
, left
);
1188 MSVCP_basic_string_char_append(ret
, right
);
1192 /* ??$?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 */
1193 /* ??$?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 */
1194 /* ??Hstd@@YA?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@ABV10@D@Z */
1195 /* ??Hstd@@YA?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@AEBV10@D@Z */
1196 basic_string_char
* __cdecl
MSVCP_basic_string_char_concatenate_bstr_ch(basic_string_char
*ret
,
1197 const basic_string_char
*left
, char right
)
1199 TRACE("%p %c\n", left
, right
);
1201 MSVCP_basic_string_char_copy_ctor(ret
, left
);
1202 MSVCP_basic_string_char_append_ch(ret
, right
);
1206 /* ??$?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 */
1207 /* ??$?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 */
1208 /* ??Hstd@@YA?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@DABV10@@Z */
1209 /* ??Hstd@@YA?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@DAEBV10@@Z */
1210 basic_string_char
* __cdecl
MSVCP_basic_string_char_concatenate_ch_bstr(basic_string_char
*ret
,
1211 char left
, const basic_string_char
*right
)
1213 TRACE("%c %p\n", left
, right
);
1215 MSVCP_basic_string_char_ctor_cstr_len(ret
, &left
, 1);
1216 MSVCP_basic_string_char_append(ret
, right
);
1220 /* ?compare@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEHIIPBDI@Z */
1221 /* ?compare@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBAH_K0PEBD0@Z */
1222 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_compare_substr_cstr_len
, 20)
1223 int __thiscall
MSVCP_basic_string_char_compare_substr_cstr_len(
1224 const basic_string_char
*this, MSVCP_size_t pos
, MSVCP_size_t num
,
1225 const char *str
, MSVCP_size_t count
)
1229 TRACE("%p %lu %lu %s %lu\n", this, pos
, num
, debugstr_an(str
, count
), count
);
1231 if(this->size
< pos
)
1232 MSVCP__String_base_Xran();
1234 if(num
> this->size
-pos
)
1235 num
= this->size
-pos
;
1237 ans
= MSVCP_char_traits_char_compare(basic_string_char_const_ptr(this)+pos
,
1238 str
, num
>count
? count
: num
);
1244 else if(num
< count
)
1249 /* ?compare@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEHIIPBD@Z */
1250 /* ?compare@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBAH_K0PEBD@Z */
1251 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_compare_substr_cstr
, 16)
1252 int __thiscall
MSVCP_basic_string_char_compare_substr_cstr(const basic_string_char
*this,
1253 MSVCP_size_t pos
, MSVCP_size_t num
, const char *str
)
1255 return MSVCP_basic_string_char_compare_substr_cstr_len(this, pos
, num
,
1256 str
, MSVCP_char_traits_char_length(str
));
1259 /* ?compare@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEHPBD@Z */
1260 /* ?compare@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBAHPEBD@Z */
1261 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_compare_cstr
, 8)
1262 int __thiscall
MSVCP_basic_string_char_compare_cstr(
1263 const basic_string_char
*this, const char *str
)
1265 return MSVCP_basic_string_char_compare_substr_cstr_len(this, 0, this->size
,
1266 str
, MSVCP_char_traits_char_length(str
));
1269 /* ?compare@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEHIIABV12@II@Z */
1270 /* ?compare@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBAH_K0AEBV12@00@Z */
1271 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_compare_substr_substr
, 24)
1272 int __thiscall
MSVCP_basic_string_char_compare_substr_substr(
1273 const basic_string_char
*this, MSVCP_size_t pos
, MSVCP_size_t num
,
1274 const basic_string_char
*compare
, MSVCP_size_t off
, MSVCP_size_t count
)
1276 TRACE("%p %lu %lu %p %lu %lu\n", this, pos
, num
, compare
, off
, count
);
1278 if(compare
->size
< off
)
1279 MSVCP__String_base_Xran();
1281 if(count
> compare
->size
-off
)
1282 count
= compare
->size
-off
;
1284 return MSVCP_basic_string_char_compare_substr_cstr_len(this, pos
, num
,
1285 basic_string_char_const_ptr(compare
)+off
, count
);
1288 /* ?compare@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEHIIABV12@@Z */
1289 /* ?compare@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBAH_K0AEBV12@@Z */
1290 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_compare_substr
, 16)
1291 int __thiscall
MSVCP_basic_string_char_compare_substr(
1292 const basic_string_char
*this, MSVCP_size_t pos
, MSVCP_size_t num
,
1293 const basic_string_char
*compare
)
1295 return MSVCP_basic_string_char_compare_substr_cstr_len(this, pos
, num
,
1296 basic_string_char_const_ptr(compare
), compare
->size
);
1299 /* ?compare@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEHABV12@@Z */
1300 /* ?compare@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBAHAEBV12@@Z */
1301 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_compare
, 8)
1302 int __thiscall
MSVCP_basic_string_char_compare(
1303 const basic_string_char
*this, const basic_string_char
*compare
)
1305 return MSVCP_basic_string_char_compare_substr_cstr_len(this, 0, this->size
,
1306 basic_string_char_const_ptr(compare
), compare
->size
);
1309 /* ??$?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 */
1310 /* ??$?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 */
1311 /* ??8std@@YA_NABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@0@Z */
1312 /* ??8std@@YA_NAEBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@0@Z */
1313 MSVCP_bool __cdecl
MSVCP_basic_string_char_equal(
1314 const basic_string_char
*left
, const basic_string_char
*right
)
1316 return MSVCP_basic_string_char_compare(left
, right
) == 0;
1319 /* ??$?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 */
1320 /* ??$?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 */
1321 /* ??8std@@YA_NABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@PBD@Z */
1322 /* ??8std@@YA_NAEBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@PEBD@Z */
1323 MSVCP_bool __cdecl
MSVCP_basic_string_char_equal_str_cstr(
1324 const basic_string_char
*left
, const char *right
)
1326 return MSVCP_basic_string_char_compare_cstr(left
, right
) == 0;
1329 /* ??$?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 */
1330 /* ??$?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 */
1331 /* ??8std@@YA_NPBDABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@@Z */
1332 MSVCP_bool __cdecl
MSVCP_basic_string_char_equal_cstr_str(
1333 const char *left
, const basic_string_char
*right
)
1335 return MSVCP_basic_string_char_compare_cstr(right
, left
) == 0;
1338 /* ??$?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 */
1339 /* ??$?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 */
1340 /* ??9std@@YA_NABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@0@Z */
1341 /* ??9std@@YA_NAEBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@0@Z */
1342 MSVCP_bool __cdecl
MSVCP_basic_string_char_not_equal(
1343 const basic_string_char
*left
, const basic_string_char
*right
)
1345 return MSVCP_basic_string_char_compare(left
, right
) != 0;
1348 /* ??$?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 */
1349 /* ??$?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 */
1350 /* ??9std@@YA_NABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@PBD@Z */
1351 /* ??9std@@YA_NAEBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@PEBD@Z */
1352 MSVCP_bool __cdecl
MSVCP_basic_string_char_not_equal_str_cstr(
1353 const basic_string_char
*left
, const char *right
)
1355 return MSVCP_basic_string_char_compare_cstr(left
, right
) != 0;
1358 /* ??$?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 */
1359 /* ??$?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 */
1360 /* ??9std@@YA_NPBDABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@@Z */
1361 /* ??9std@@YA_NPEBDAEBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@@Z */
1362 MSVCP_bool __cdecl
MSVCP_basic_string_char_not_equal_cstr_str(
1363 const char *left
, const basic_string_char
*right
)
1365 return MSVCP_basic_string_char_compare_cstr(right
, left
) != 0;
1368 /* ??$?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 */
1369 /* ??$?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 */
1370 MSVCP_bool __cdecl
MSVCP_basic_string_char_lower(
1371 const basic_string_char
*left
, const basic_string_char
*right
)
1373 return MSVCP_basic_string_char_compare(left
, right
) < 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@PBD@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@PEBD@Z */
1378 MSVCP_bool __cdecl
MSVCP_basic_string_char_lower_bstr_cstr(
1379 const basic_string_char
*left
, const char *right
)
1381 return MSVCP_basic_string_char_compare_cstr(left
, right
) < 0;
1384 /* ??$?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 */
1385 /* ??$?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 */
1386 MSVCP_bool __cdecl
MSVCP_basic_string_char_lower_cstr_bstr(
1387 const char *left
, const basic_string_char
*right
)
1389 return MSVCP_basic_string_char_compare_cstr(right
, left
) > 0;
1392 /* ??$?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 */
1393 /* ??$?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 */
1394 MSVCP_bool __cdecl
MSVCP_basic_string_char_leq(
1395 const basic_string_char
*left
, const basic_string_char
*right
)
1397 return MSVCP_basic_string_char_compare(left
, right
) <= 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@PBD@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@PEBD@Z */
1402 MSVCP_bool __cdecl
MSVCP_basic_string_char_leq_bstr_cstr(
1403 const basic_string_char
*left
, const char *right
)
1405 return MSVCP_basic_string_char_compare_cstr(left
, right
) <= 0;
1408 /* ??$?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 */
1409 /* ??$?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 */
1410 MSVCP_bool __cdecl
MSVCP_basic_string_char_leq_cstr_bstr(
1411 const char *left
, const basic_string_char
*right
)
1413 return MSVCP_basic_string_char_compare_cstr(right
, left
) >= 0;
1416 /* ??$?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 */
1417 /* ??$?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 */
1418 MSVCP_bool __cdecl
MSVCP_basic_string_char_greater(
1419 const basic_string_char
*left
, const basic_string_char
*right
)
1421 return MSVCP_basic_string_char_compare(left
, right
) > 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@PBD@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@PEBD@Z */
1426 MSVCP_bool __cdecl
MSVCP_basic_string_char_greater_bstr_cstr(
1427 const basic_string_char
*left
, const char *right
)
1429 return MSVCP_basic_string_char_compare_cstr(left
, right
) > 0;
1432 /* ??$?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 */
1433 /* ??$?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 */
1434 MSVCP_bool __cdecl
MSVCP_basic_string_char_greater_cstr_bstr(
1435 const char *left
, const basic_string_char
*right
)
1437 return MSVCP_basic_string_char_compare_cstr(right
, left
) < 0;
1440 /* ??$?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 */
1441 /* ??$?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 */
1442 MSVCP_bool __cdecl
MSVCP_basic_string_char_geq(
1443 const basic_string_char
*left
, const basic_string_char
*right
)
1445 return MSVCP_basic_string_char_compare(left
, right
) >= 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@PBD@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@PEBD@Z */
1450 MSVCP_bool __cdecl
MSVCP_basic_string_char_geq_bstr_cstr(
1451 const basic_string_char
*left
, const char *right
)
1453 return MSVCP_basic_string_char_compare_cstr(left
, right
) >= 0;
1456 /* ??$?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 */
1457 /* ??$?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 */
1458 MSVCP_bool __cdecl
MSVCP_basic_string_char_geq_cstr_bstr(
1459 const char *left
, const basic_string_char
*right
)
1461 return MSVCP_basic_string_char_compare_cstr(right
, left
) <= 0;
1464 /* ?find@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEIPBDII@Z */
1465 /* ?find@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA_KPEBD_K1@Z */
1466 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_find_cstr_substr
, 16)
1467 MSVCP_size_t __thiscall
MSVCP_basic_string_char_find_cstr_substr(
1468 const basic_string_char
*this, const char *find
, MSVCP_size_t pos
, MSVCP_size_t len
)
1470 const char *p
, *end
;
1472 TRACE("%p %s %lu %lu\n", this, debugstr_an(find
, len
), pos
, len
);
1474 if(len
==0 && pos
<=this->size
)
1476 if(pos
>=this->size
|| len
>this->size
)
1477 return MSVCP_basic_string_char_npos
;
1479 end
= basic_string_char_const_ptr(this)+this->size
-len
+1;
1480 for(p
=basic_string_char_const_ptr(this)+pos
; p
<end
; p
++) {
1481 p
= MSVCP_char_traits_char_find(p
, end
-p
, find
);
1485 if(!MSVCP_char_traits_char_compare(p
, find
, len
))
1486 return p
-basic_string_char_const_ptr(this);
1489 return MSVCP_basic_string_char_npos
;
1492 /* ?find@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEIPBDI@Z */
1493 /* ?find@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA_KPEBD_K@Z */
1494 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_find_cstr_off
, 12)
1495 MSVCP_size_t __thiscall
MSVCP_basic_string_char_find_cstr_off(
1496 const basic_string_char
*this, const char *find
, MSVCP_size_t pos
)
1498 return MSVCP_basic_string_char_find_cstr_substr(this, find
, pos
,
1499 MSVCP_char_traits_char_length(find
));
1502 /* ?find@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEIABV12@I@Z */
1503 /* ?find@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA_KAEBV12@_K@Z */
1504 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_find_off
, 12)
1505 MSVCP_size_t __thiscall
MSVCP_basic_string_char_find_off(
1506 const basic_string_char
*this, const basic_string_char
*find
, MSVCP_size_t off
)
1508 return MSVCP_basic_string_char_find_cstr_substr(this,
1509 basic_string_char_const_ptr(find
), off
, find
->size
);
1512 /* ?find@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEIDI@Z */
1513 /* ?find@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA_KD_K@Z */
1514 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_find_ch
, 12)
1515 MSVCP_size_t __thiscall
MSVCP_basic_string_char_find_ch(
1516 const basic_string_char
*this, char ch
, MSVCP_size_t pos
)
1518 return MSVCP_basic_string_char_find_cstr_substr(this, &ch
, pos
, 1);
1521 /* ?rfind@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEIPBDII@Z */
1522 /* ?rfind@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA_KPEBD_K1@Z */
1523 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_rfind_cstr_substr
, 16)
1524 MSVCP_size_t __thiscall
MSVCP_basic_string_char_rfind_cstr_substr(
1525 const basic_string_char
*this, const char *find
, MSVCP_size_t pos
, MSVCP_size_t len
)
1527 const char *p
, *end
;
1529 TRACE("%p %s %lu %lu\n", this, debugstr_an(find
, len
), pos
, len
);
1532 return pos
<this->size
? pos
: this->size
;
1534 if(len
> this->size
)
1535 return MSVCP_basic_string_char_npos
;
1537 if(pos
> this->size
-len
+1)
1538 pos
= this->size
-len
+1;
1539 end
= basic_string_char_const_ptr(this);
1540 for(p
=end
+pos
; p
>=end
; p
--) {
1541 if(*p
==*find
&& !MSVCP_char_traits_char_compare(p
, find
, len
))
1542 return p
-basic_string_char_const_ptr(this);
1545 return MSVCP_basic_string_char_npos
;
1548 /* ?rfind@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEIPBDI@Z */
1549 /* ?rfind@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA_KPEBD_K@Z */
1550 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_rfind_cstr_off
, 12)
1551 MSVCP_size_t __thiscall
MSVCP_basic_string_char_rfind_cstr_off(
1552 const basic_string_char
*this, const char *find
, MSVCP_size_t pos
)
1554 return MSVCP_basic_string_char_rfind_cstr_substr(this, find
, pos
,
1555 MSVCP_char_traits_char_length(find
));
1558 /* ?rfind@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEIABV12@I@Z */
1559 /* ?rfind@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA_KAEBV12@_K@Z */
1560 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_rfind_off
, 12)
1561 MSVCP_size_t __thiscall
MSVCP_basic_string_char_rfind_off(
1562 const basic_string_char
*this, const basic_string_char
*find
, MSVCP_size_t off
)
1564 return MSVCP_basic_string_char_rfind_cstr_substr(this,
1565 basic_string_char_const_ptr(find
), off
, find
->size
);
1568 /* ?rfind@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEIDI@Z */
1569 /* ?rfind@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA_KD_K@Z */
1570 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_rfind_ch
, 12)
1571 MSVCP_size_t __thiscall
MSVCP_basic_string_char_rfind_ch(
1572 const basic_string_char
*this, char ch
, MSVCP_size_t pos
)
1574 return MSVCP_basic_string_char_rfind_cstr_substr(this, &ch
, pos
, 1);
1577 /* ?find_first_of@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEIPBDII@Z */
1578 /* ?find_first_of@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA_KPEBD_K1@Z */
1579 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_find_first_of_cstr_substr
, 16)
1580 MSVCP_size_t __thiscall
MSVCP_basic_string_char_find_first_of_cstr_substr(
1581 const basic_string_char
*this, const char *find
, MSVCP_size_t off
, MSVCP_size_t len
)
1583 const char *p
, *end
;
1585 TRACE("%p %p %lu %lu\n", this, find
, off
, len
);
1587 if(len
>0 && off
<this->size
) {
1588 end
= basic_string_char_const_ptr(this)+this->size
;
1589 for(p
=basic_string_char_const_ptr(this)+off
; p
<end
; p
++)
1590 if(MSVCP_char_traits_char_find(find
, len
, p
))
1591 return p
-basic_string_char_const_ptr(this);
1594 return MSVCP_basic_string_char_npos
;
1597 /* ?find_first_of@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEIABV12@I@Z */
1598 /* ?find_first_of@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA_KAEBV12@_K@Z */
1599 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_find_first_of
, 12)
1600 MSVCP_size_t __thiscall
MSVCP_basic_string_char_find_first_of(
1601 const basic_string_char
*this, const basic_string_char
*find
, MSVCP_size_t off
)
1603 return MSVCP_basic_string_char_find_first_of_cstr_substr(this,
1604 basic_string_char_const_ptr(find
), off
, find
->size
);
1607 /* ??0?$_Yarn@D@std@@QAE@XZ */
1608 /* ??0?$_Yarn@D@std@@QEAA@XZ */
1609 DEFINE_THISCALL_WRAPPER(_Yarn_char_ctor
, 4)
1610 _Yarn_char
* __thiscall
_Yarn_char_ctor(_Yarn_char
*this)
1612 TRACE("(%p)\n", this);
1615 this->null_str
= '\0';
1619 /* ?_Tidy@?$_Yarn@D@std@@AAEXXZ */
1620 /* ?_Tidy@?$_Yarn@D@std@@AEAAXXZ */
1621 DEFINE_THISCALL_WRAPPER(_Yarn_char__Tidy
, 4)
1622 void __thiscall
_Yarn_char__Tidy(_Yarn_char
*this)
1624 TRACE("(%p)\n", this);
1627 MSVCRT_operator_delete(this->str
);
1631 /* ??4?$_Yarn@D@std@@QAEAAV01@PBD@Z */
1632 /* ??4?$_Yarn@D@std@@QEAAAEAV01@PEBD@Z */
1633 DEFINE_THISCALL_WRAPPER(_Yarn_char_op_assign_cstr
, 8)
1634 _Yarn_char
* __thiscall
_Yarn_char_op_assign_cstr(_Yarn_char
*this, const char *str
)
1636 TRACE("(%p %p)\n", this, str
);
1638 _Yarn_char__Tidy(this);
1641 MSVCP_size_t len
= strlen(str
);
1643 this->str
= MSVCRT_operator_new((len
+1)*sizeof(char));
1645 ERR("out of memory\n");
1648 memcpy(this->str
, str
, (len
+1)*sizeof(char));
1653 /* ??0?$_Yarn@D@std@@QAE@PBD@Z */
1654 /* ??0?$_Yarn@D@std@@QEAA@PEBD@Z */
1655 DEFINE_THISCALL_WRAPPER(_Yarn_char_ctor_cstr
, 8)
1656 _Yarn_char
* __thiscall
_Yarn_char_ctor_cstr(_Yarn_char
*this, const char *str
)
1658 TRACE("(%p %p)\n", this, str
);
1660 _Yarn_char_ctor(this);
1661 return _Yarn_char_op_assign_cstr(this, str
);
1664 /* ??4?$_Yarn@D@std@@QAEAAV01@ABV01@@Z */
1665 /* ??4?$_Yarn@D@std@@QEAAAEAV01@AEBV01@@Z */
1666 DEFINE_THISCALL_WRAPPER(_Yarn_char_op_assign
, 8)
1667 _Yarn_char
* __thiscall
_Yarn_char_op_assign(_Yarn_char
*this, const _Yarn_char
*rhs
)
1669 TRACE("(%p %p)\n", this, rhs
);
1671 return _Yarn_char_op_assign_cstr(this, rhs
->str
);
1674 /* ??0?$_Yarn@D@std@@QAE@ABV01@@Z */
1675 /* ??0?$_Yarn@D@std@@QEAA@AEBV01@@Z */
1676 DEFINE_THISCALL_WRAPPER(_Yarn_char_copy_ctor
, 8)
1677 _Yarn_char
* __thiscall
_Yarn_char_copy_ctor(_Yarn_char
*this, const _Yarn_char
*copy
)
1679 TRACE("(%p %p)\n", this, copy
);
1681 _Yarn_char_ctor(this);
1682 return _Yarn_char_op_assign(this, copy
);
1685 /* ??1?$_Yarn@D@std@@QAE@XZ */
1686 /* ??1?$_Yarn@D@std@@QEAA@XZ */
1687 DEFINE_THISCALL_WRAPPER(_Yarn_char_dtor
, 4)
1688 void __thiscall
_Yarn_char_dtor(_Yarn_char
*this)
1690 TRACE("(%p)\n", this);
1691 _Yarn_char__Tidy(this);
1694 /* ?_C_str@?$_Yarn@D@std@@QBEPBDXZ */
1695 /* ?_C_str@?$_Yarn@D@std@@QEBAPEBDXZ */
1696 /* ?c_str@?$_Yarn@D@std@@QBEPBDXZ */
1697 /* ?c_str@?$_Yarn@D@std@@QEBAPEBDXZ */
1698 DEFINE_THISCALL_WRAPPER(_Yarn_char_c_str
, 4)
1699 const char* __thiscall
_Yarn_char_c_str(const _Yarn_char
*this)
1701 TRACE("(%p)\n", this);
1702 return this->str
? this->str
: &this->null_str
;
1705 /* ?_Empty@?$_Yarn@D@std@@QBE_NXZ */
1706 /* ?_Empty@?$_Yarn@D@std@@QEBA_NXZ */
1707 /* ?empty@?$_Yarn@D@std@@QBE_NXZ */
1708 /* ?empty@?$_Yarn@D@std@@QEBA_NXZ */
1709 DEFINE_THISCALL_WRAPPER(_Yarn_char_empty
, 4)
1710 MSVCP_bool __thiscall
_Yarn_char_empty(const _Yarn_char
*this)
1712 TRACE("(%p)\n", this);
1716 /* ?find_first_of@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEIPBDI@Z */
1717 /* ?find_first_of@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA_KPEBD_K@Z */
1718 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_find_first_of_cstr
, 12)
1719 MSVCP_size_t __thiscall
MSVCP_basic_string_char_find_first_of_cstr(
1720 const basic_string_char
*this, const char *find
, MSVCP_size_t off
)
1722 return MSVCP_basic_string_char_find_first_of_cstr_substr(
1723 this, find
, off
, MSVCP_char_traits_char_length(find
));
1726 /* ?find_first_of@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEIDI@Z */
1727 /* ?find_first_of@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA_KD_K@Z */
1728 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_find_first_of_ch
, 12)
1729 MSVCP_size_t __thiscall
MSVCP_basic_string_char_find_first_of_ch(
1730 const basic_string_char
*this, char ch
, MSVCP_size_t off
)
1732 return MSVCP_basic_string_char_find_first_of_cstr_substr(this, &ch
, off
, 1);
1735 /* ?find_first_not_of@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEIPBDII@Z */
1736 /* ?find_first_not_of@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA_KPEBD_K1@Z */
1737 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_find_first_not_of_cstr_substr
, 16)
1738 MSVCP_size_t __thiscall
MSVCP_basic_string_char_find_first_not_of_cstr_substr(
1739 const basic_string_char
*this, const char *find
, MSVCP_size_t off
, MSVCP_size_t len
)
1741 const char *p
, *end
;
1743 TRACE("%p %p %lu %lu\n", this, find
, off
, len
);
1745 if(off
<this->size
) {
1746 end
= basic_string_char_const_ptr(this)+this->size
;
1747 for(p
=basic_string_char_const_ptr(this)+off
; p
<end
; p
++)
1748 if(!MSVCP_char_traits_char_find(find
, len
, p
))
1749 return p
-basic_string_char_const_ptr(this);
1752 return MSVCP_basic_string_char_npos
;
1755 /* ?find_first_not_of@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEIABV12@I@Z */
1756 /* ?find_first_not_of@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA_KAEBV12@_K@Z */
1757 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_find_first_not_of
, 12)
1758 MSVCP_size_t __thiscall
MSVCP_basic_string_char_find_first_not_of(
1759 const basic_string_char
*this, const basic_string_char
*find
, MSVCP_size_t off
)
1761 return MSVCP_basic_string_char_find_first_not_of_cstr_substr(this,
1762 basic_string_char_const_ptr(find
), off
, find
->size
);
1765 /* ?find_first_not_of@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEIPBDI@Z */
1766 /* ?find_first_not_of@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA_KPEBD_K@Z */
1767 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_find_first_not_of_cstr
, 12)
1768 MSVCP_size_t __thiscall
MSVCP_basic_string_char_find_first_not_of_cstr(
1769 const basic_string_char
*this, const char *find
, MSVCP_size_t off
)
1771 return MSVCP_basic_string_char_find_first_not_of_cstr_substr(
1772 this, find
, off
, MSVCP_char_traits_char_length(find
));
1775 /* ?find_first_not_of@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEIDI@Z */
1776 /* ?find_first_not_of@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA_KD_K@Z */
1777 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_find_first_not_of_ch
, 12)
1778 MSVCP_size_t __thiscall
MSVCP_basic_string_char_find_first_not_of_ch(
1779 const basic_string_char
*this, char ch
, MSVCP_size_t off
)
1781 return MSVCP_basic_string_char_find_first_not_of_cstr_substr(this, &ch
, off
, 1);
1784 /* ?find_last_of@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEIPBDII@Z */
1785 /* ?find_last_of@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA_KPEBD_K1@Z */
1786 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_find_last_of_cstr_substr
, 16)
1787 MSVCP_size_t __thiscall
MSVCP_basic_string_char_find_last_of_cstr_substr(
1788 const basic_string_char
*this, const char *find
, MSVCP_size_t off
, MSVCP_size_t len
)
1790 const char *p
, *beg
;
1792 TRACE("%p %p %lu %lu\n", this, find
, off
, len
);
1794 if(len
>0 && this->size
>0) {
1795 if(off
>= this->size
)
1798 beg
= basic_string_char_const_ptr(this);
1799 for(p
=beg
+off
; p
>=beg
; p
--)
1800 if(MSVCP_char_traits_char_find(find
, len
, p
))
1804 return MSVCP_basic_string_char_npos
;
1807 /* ?find_last_of@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEIABV12@I@Z */
1808 /* ?find_last_of@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA_KAEBV12@_K@Z */
1809 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_find_last_of
, 12)
1810 MSVCP_size_t __thiscall
MSVCP_basic_string_char_find_last_of(
1811 const basic_string_char
*this, const basic_string_char
*find
, MSVCP_size_t off
)
1813 return MSVCP_basic_string_char_find_last_of_cstr_substr(this,
1814 basic_string_char_const_ptr(find
), off
, find
->size
);
1817 /* ?find_last_of@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEIPBDI@Z */
1818 /* ?find_last_of@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA_KPEBD_K@Z */
1819 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_find_last_of_cstr
, 12)
1820 MSVCP_size_t __thiscall
MSVCP_basic_string_char_find_last_of_cstr(
1821 const basic_string_char
*this, const char *find
, MSVCP_size_t off
)
1823 return MSVCP_basic_string_char_find_last_of_cstr_substr(
1824 this, find
, off
, MSVCP_char_traits_char_length(find
));
1827 /* ?find_last_of@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEIDI@Z */
1828 /* ?find_last_of@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA_KD_K@Z */
1829 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_find_last_of_ch
, 12)
1830 MSVCP_size_t __thiscall
MSVCP_basic_string_char_find_last_of_ch(
1831 const basic_string_char
*this, char ch
, MSVCP_size_t off
)
1833 return MSVCP_basic_string_char_find_last_of_cstr_substr(this, &ch
, off
, 1);
1836 /* ?find_last_not_of@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEIPBDII@Z */
1837 /* ?find_last_not_of@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA_KPEBD_K1@Z */
1838 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_find_last_not_of_cstr_substr
, 16)
1839 MSVCP_size_t __thiscall
MSVCP_basic_string_char_find_last_not_of_cstr_substr(
1840 const basic_string_char
*this, const char *find
, MSVCP_size_t off
, MSVCP_size_t len
)
1842 const char *p
, *beg
;
1844 TRACE("%p %p %lu %lu\n", this, find
, off
, len
);
1847 if(off
>= this->size
)
1850 beg
= basic_string_char_const_ptr(this);
1851 for(p
=beg
+off
; p
>=beg
; p
--)
1852 if(!MSVCP_char_traits_char_find(find
, len
, p
))
1856 return MSVCP_basic_string_char_npos
;
1859 /* ?find_last_not_of@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEIABV12@I@Z */
1860 /* ?find_last_not_of@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA_KAEBV12@_K@Z */
1861 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_find_last_not_of
, 12)
1862 MSVCP_size_t __thiscall
MSVCP_basic_string_char_find_last_not_of(
1863 const basic_string_char
*this, const basic_string_char
*find
, MSVCP_size_t off
)
1865 return MSVCP_basic_string_char_find_last_not_of_cstr_substr(this,
1866 basic_string_char_const_ptr(find
), off
, find
->size
);
1869 /* ?find_last_not_of@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEIPBDI@Z */
1870 /* ?find_last_not_of@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA_KPEBD_K@Z */
1871 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_find_last_not_of_cstr
, 12)
1872 MSVCP_size_t __thiscall
MSVCP_basic_string_char_find_last_not_of_cstr(
1873 const basic_string_char
*this, const char *find
, MSVCP_size_t off
)
1875 return MSVCP_basic_string_char_find_last_not_of_cstr_substr(
1876 this, find
, off
, MSVCP_char_traits_char_length(find
));
1879 /* ?find_last_not_of@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEIDI@Z */
1880 /* ?find_last_not_of@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA_KD_K@Z */
1881 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_find_last_not_of_ch
, 12)
1882 MSVCP_size_t __thiscall
MSVCP_basic_string_char_find_last_not_of_ch(
1883 const basic_string_char
*this, char ch
, MSVCP_size_t off
)
1885 return MSVCP_basic_string_char_find_last_not_of_cstr_substr(this, &ch
, off
, 1);
1888 /* ??A?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAADI@Z */
1889 /* ??A?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAAEAD_K@Z */
1890 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_operator_at
, 8)
1891 char* __thiscall
MSVCP_basic_string_char_operator_at(
1892 basic_string_char
*this, MSVCP_size_t pos
)
1894 TRACE("%p %lu\n", this, pos
);
1896 assert(this->size
>= pos
);
1897 return basic_string_char_ptr(this)+pos
;
1900 /* ??A?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEABDI@Z */
1901 /* ??A?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBAAEBD_K@Z */
1902 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_const_operator_at
, 8)
1903 const char* __thiscall
MSVCP_basic_string_char_const_operator_at(
1904 const basic_string_char
*this, MSVCP_size_t pos
)
1906 TRACE("%p %lu\n", this, pos
);
1908 assert(this->size
>= pos
);
1909 return basic_string_char_const_ptr(this)+pos
;
1912 /* ??A?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAADU_Size_type_nosscl@01@@Z */
1913 /* ??A?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAAEADU_Size_type_nosscl@01@@Z */
1914 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_operator_at_noverify
, 8)
1915 char* __thiscall
MSVCP_basic_string_char_operator_at_noverify(
1916 basic_string_char
*this, size_t_noverify pos
)
1918 TRACE("%p %lu\n", this, pos
.val
);
1919 return basic_string_char_ptr(this)+pos
.val
;
1922 /* ??A?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEABDU_Size_type_nosscl@01@@Z */
1923 /* ??A?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBAAEBDU_Size_type_nosscl@01@@Z */
1924 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_operator_const_at_noverify
, 8)
1925 const char* __thiscall
MSVCP_basic_string_char_operator_const_at_noverify(
1926 const basic_string_char
*this, size_t_noverify pos
)
1928 TRACE("%p %lu\n", this, pos
.val
);
1929 return basic_string_char_const_ptr(this)+pos
.val
;
1932 /* ?at@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAADI@Z */
1933 /* ?at@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAAEAD_K@Z */
1934 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_at
, 8)
1935 char* __thiscall
MSVCP_basic_string_char_at(
1936 basic_string_char
*this, MSVCP_size_t pos
)
1938 TRACE("%p %lu\n", this, pos
);
1940 if(this->size
<= pos
)
1941 MSVCP__String_base_Xran();
1943 return basic_string_char_ptr(this)+pos
;
1946 /* ?at@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEABDI@Z */
1947 /* ?at@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBAAEBD_K@Z */
1948 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_const_at
, 8)
1949 const char* __thiscall
MSVCP_basic_string_char_const_at(
1950 const basic_string_char
*this, MSVCP_size_t pos
)
1952 TRACE("%p %lu\n", this, pos
);
1954 if(this->size
<= pos
)
1955 MSVCP__String_base_Xran();
1957 return basic_string_char_const_ptr(this)+pos
;
1960 /* ?replace@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@IIPBDI@Z */
1961 /* ?replace@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAAEAV12@_K0PEBD0@Z */
1962 DEFINE_THISCALL_WRAPPER(basic_string_char_replace_cstr_len
, 20)
1963 basic_string_char
* __thiscall
basic_string_char_replace_cstr_len(basic_string_char
*this,
1964 MSVCP_size_t off
, MSVCP_size_t len
, const char *str
, MSVCP_size_t str_len
)
1966 MSVCP_size_t inside_pos
= -1;
1967 char *ptr
= basic_string_char_ptr(this);
1969 TRACE("%p %ld %ld %p %ld\n", this, off
, len
, str
, str_len
);
1971 if(this->size
< off
)
1972 MSVCP__String_base_Xran();
1974 if(len
> this->size
-off
)
1975 len
= this->size
-off
;
1977 if(MSVCP_basic_string_char_npos
-str_len
<= this->size
-len
)
1978 MSVCP__String_base_Xlen();
1980 if(basic_string_char_inside(this, str
))
1981 inside_pos
= str
-ptr
;
1984 basic_string_char_grow(this, this->size
-len
+str_len
, FALSE
);
1985 ptr
= basic_string_char_ptr(this);
1988 if(inside_pos
== -1) {
1989 memmove(ptr
+off
+str_len
, ptr
+off
+len
, (this->size
-off
-len
)*sizeof(char));
1990 memcpy(ptr
+off
, str
, str_len
*sizeof(char));
1991 } else if(len
>= str_len
) {
1992 memmove(ptr
+off
, ptr
+inside_pos
, str_len
*sizeof(char));
1993 memmove(ptr
+off
+str_len
, ptr
+off
+len
, (this->size
-off
-len
)*sizeof(char));
1997 memmove(ptr
+off
+str_len
, ptr
+off
+len
, (this->size
-off
-len
)*sizeof(char));
1999 if(inside_pos
< off
+len
) {
2000 size
= off
+len
-inside_pos
;
2003 memmove(ptr
+off
, ptr
+inside_pos
, size
*sizeof(char));
2009 memmove(ptr
+off
+size
, ptr
+off
+str_len
, (str_len
-size
)*sizeof(char));
2012 basic_string_char_eos(this, this->size
-len
+str_len
);
2016 /* ?replace@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@IIPBD@Z */
2017 /* ?replace@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAAEAV12@_K0PEBD@Z */
2018 DEFINE_THISCALL_WRAPPER(basic_string_char_replace_cstr
, 16)
2019 basic_string_char
* __thiscall
basic_string_char_replace_cstr(basic_string_char
*this,
2020 MSVCP_size_t off
, MSVCP_size_t len
, const char *str
)
2022 return basic_string_char_replace_cstr_len(this, off
, len
, str
,
2023 MSVCP_char_traits_char_length(str
));
2026 /* ?replace@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@IIABV12@II@Z */
2027 /* ?replace@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAAEAV12@_K0AEBV12@00@Z */
2028 DEFINE_THISCALL_WRAPPER(basic_string_char_replace_substr
, 24)
2029 basic_string_char
* __thiscall
basic_string_char_replace_substr(basic_string_char
*this, MSVCP_size_t off
,
2030 MSVCP_size_t len
, const basic_string_char
*str
, MSVCP_size_t str_off
, MSVCP_size_t str_len
)
2032 if(str
->size
< str_off
)
2033 MSVCP__String_base_Xran();
2035 if(str_len
> str
->size
-str_off
)
2036 str_len
= str
->size
-str_off
;
2038 return basic_string_char_replace_cstr_len(this, off
, len
,
2039 basic_string_char_const_ptr(str
)+str_off
, str_len
);
2042 /* ?replace@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@IIABV12@@Z */
2043 /* ?replace@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAAEAV12@_K0AEBV12@@Z */
2044 DEFINE_THISCALL_WRAPPER(basic_string_char_replace
, 16)
2045 basic_string_char
* __thiscall
basic_string_char_replace(basic_string_char
*this,
2046 MSVCP_size_t off
, MSVCP_size_t len
, const basic_string_char
*str
)
2048 return basic_string_char_replace_cstr_len(this, off
, len
,
2049 basic_string_char_const_ptr(str
), str
->size
);
2052 /* ?replace@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@IIID@Z */
2053 /* ?replace@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAAEAV12@_K00D@Z */
2054 DEFINE_THISCALL_WRAPPER(basic_string_char_replace_ch
, 20)
2055 basic_string_char
* __thiscall
basic_string_char_replace_ch(basic_string_char
*this,
2056 MSVCP_size_t off
, MSVCP_size_t len
, MSVCP_size_t count
, char ch
)
2058 char *ptr
= basic_string_char_ptr(this);
2060 TRACE("%p %ld %ld %ld %c\n", this, off
, len
, count
, ch
);
2062 if(this->size
< off
)
2063 MSVCP__String_base_Xran();
2065 if(len
> this->size
-off
)
2066 len
= this->size
-off
;
2068 if(MSVCP_basic_string_char_npos
-count
<= this->size
-len
)
2069 MSVCP__String_base_Xlen();
2072 basic_string_char_grow(this, this->size
-len
+count
, FALSE
);
2073 ptr
= basic_string_char_ptr(this);
2076 memmove(ptr
+off
+count
, ptr
+off
+len
, (this->size
-off
-len
)*sizeof(char));
2077 MSVCP_char_traits_char_assignn(ptr
+off
, count
, ch
);
2078 basic_string_char_eos(this, this->size
-len
+count
);
2083 /* ?insert@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@IABV12@@Z */
2084 /* ?insert@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAAEAV12@_KAEBV12@@Z */
2085 DEFINE_THISCALL_WRAPPER(basic_string_char_insert
, 12)
2086 basic_string_char
* __thiscall
basic_string_char_insert(basic_string_char
*this,
2087 MSVCP_size_t off
, const basic_string_char
*str
)
2089 return basic_string_char_replace(this, off
, 0, str
);
2092 /* ?insert@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@IABV12@II@Z */
2093 /* ?insert@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAAEAV12@_KAEBV12@00@Z */
2094 DEFINE_THISCALL_WRAPPER(basic_string_char_insert_substr
, 20)
2095 basic_string_char
* __thiscall
basic_string_char_insert_substr(
2096 basic_string_char
*this, MSVCP_size_t off
, const basic_string_char
*str
,
2097 MSVCP_size_t str_off
, MSVCP_size_t str_count
)
2099 return basic_string_char_replace_substr(this, off
, 0, str
, str_off
, str_count
);
2102 /* ?insert@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@IPBD@Z */
2103 /* ?insert@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAAEAV12@_KPEBD@Z */
2104 DEFINE_THISCALL_WRAPPER(basic_string_char_insert_cstr
, 12)
2105 basic_string_char
* __thiscall
basic_string_char_insert_cstr(
2106 basic_string_char
*this, MSVCP_size_t off
, const char *str
)
2108 return basic_string_char_replace_cstr(this, off
, 0, str
);
2111 /* ?insert@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@IPBDI@Z */
2112 /* ?insert@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAAEAV12@_KPEBD0@Z */
2113 DEFINE_THISCALL_WRAPPER(basic_string_char_insert_cstr_len
, 16)
2114 basic_string_char
* __thiscall
basic_string_char_insert_cstr_len(basic_string_char
*this,
2115 MSVCP_size_t off
, const char *str
, MSVCP_size_t str_len
)
2117 return basic_string_char_replace_cstr_len(this, off
, 0, str
, str_len
);
2120 /* ?insert@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@IID@Z */
2121 /* ?insert@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAAEAV12@_K0D@Z */
2122 DEFINE_THISCALL_WRAPPER(basic_string_char_insert_chn
, 16)
2123 basic_string_char
* __thiscall
basic_string_char_insert_chn(basic_string_char
*this,
2124 MSVCP_size_t off
, MSVCP_size_t count
, char ch
)
2126 return basic_string_char_replace_ch(this, off
, 0, count
, ch
);
2129 /* ?resize@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEXID@Z */
2130 /* ?resize@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAX_KD@Z */
2131 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_resize_ch
, 12)
2132 void __thiscall
MSVCP_basic_string_char_resize_ch(
2133 basic_string_char
*this, MSVCP_size_t size
, char ch
)
2135 TRACE("%p %lu %c\n", this, size
, ch
);
2137 if(size
<= this->size
)
2138 MSVCP_basic_string_char_erase(this, size
, this->size
);
2140 MSVCP_basic_string_char_append_len_ch(this, size
-this->size
, ch
);
2143 /* ?resize@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEXI@Z */
2144 /* ?resize@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAX_K@Z */
2145 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_resize
, 8)
2146 void __thiscall
MSVCP_basic_string_char_resize(
2147 basic_string_char
*this, MSVCP_size_t size
)
2149 MSVCP_basic_string_char_resize_ch(this, size
, '\0');
2152 /* ?clear@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEXXZ */
2153 /* ?clear@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAXXZ */
2154 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_clear
, 4)
2155 void __thiscall
MSVCP_basic_string_char_clear(basic_string_char
*this)
2157 basic_string_char_eos(this, 0);
2160 /* basic_string<wchar_t, char_traits<wchar_t>, allocator<wchar_t>> */
2161 /* basic_string<unsigned short, char_traits<unsigned short>, allocator<unsigned short>> */
2162 /* ?npos@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@2IB */
2163 /* ?npos@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@2_KB */
2164 /* ?npos@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@2IB */
2165 /* ?npos@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@2_KB */
2166 const MSVCP_size_t MSVCP_basic_string_wchar_npos
= -1;
2168 /* ?_Myptr@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@IAEPA_WXZ */
2169 /* ?_Myptr@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@IEAAPEA_WXZ */
2170 /* ?_Myptr@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@IAEPAGXZ */
2171 /* ?_Myptr@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@IEAAPEAGXZ */
2172 DEFINE_THISCALL_WRAPPER(basic_string_wchar_ptr
, 4)
2173 wchar_t* __thiscall
basic_string_wchar_ptr(basic_string_wchar
*this)
2175 if(this->res
< BUF_SIZE_WCHAR
)
2176 return this->data
.buf
;
2177 return this->data
.ptr
;
2180 /* ?_Myptr@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@IBEPB_WXZ */
2181 /* ?_Myptr@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@IEBAPEB_WXZ */
2182 /* ?_Myptr@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@IBEPBGXZ */
2183 /* ?_Myptr@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@IEBAPEBGXZ */
2184 DEFINE_THISCALL_WRAPPER(basic_string_wchar_const_ptr
, 4)
2185 const wchar_t* __thiscall
basic_string_wchar_const_ptr(const basic_string_wchar
*this)
2187 if(this->res
< BUF_SIZE_WCHAR
)
2188 return this->data
.buf
;
2189 return this->data
.ptr
;
2192 /* ?_Eos@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@IAEXI@Z */
2193 /* ?_Eos@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@IEAAX_K@Z */
2194 /* ?_Eos@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@IAEXI@Z */
2195 /* ?_Eos@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@IEAAX_K@Z */
2196 DEFINE_THISCALL_WRAPPER(basic_string_wchar_eos
, 8)
2197 void __thiscall
basic_string_wchar_eos(basic_string_wchar
*this, MSVCP_size_t len
)
2199 static const wchar_t nullbyte_w
= '\0';
2202 MSVCP_char_traits_wchar_assign(basic_string_wchar_ptr(this)+len
, &nullbyte_w
);
2205 /* ?_Inside@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@IAE_NPB_W@Z */
2206 /* ?_Inside@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@IEAA_NPEB_W@Z */
2207 /* ?_Inside@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@IAE_NPBG@Z */
2208 /* ?_Inside@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@IEAA_NPEBG@Z */
2209 DEFINE_THISCALL_WRAPPER(basic_string_wchar_inside
, 8)
2210 MSVCP_bool __thiscall
basic_string_wchar_inside(
2211 basic_string_wchar
*this, const wchar_t *ptr
)
2213 wchar_t *cstr
= basic_string_wchar_ptr(this);
2215 return ptr
>=cstr
&& ptr
<cstr
+this->size
;
2218 /* ?_Tidy@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@IAEX_NI@Z */
2219 /* ?_Tidy@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@IEAAX_N_K@Z */
2220 /* ?_Tidy@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@IAEX_NI@Z */
2221 /* ?_Tidy@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@IEAAX_N_K@Z */
2222 DEFINE_THISCALL_WRAPPER(basic_string_wchar_tidy
, 12)
2223 void __thiscall
basic_string_wchar_tidy(basic_string_wchar
*this,
2224 MSVCP_bool built
, MSVCP_size_t new_size
)
2226 if(built
&& BUF_SIZE_WCHAR
<=this->res
) {
2227 wchar_t *ptr
= this->data
.ptr
;
2230 MSVCP_char_traits_wchar__Copy_s(this->data
.buf
, BUF_SIZE_WCHAR
, ptr
, new_size
);
2231 MSVCP_allocator_wchar_deallocate(this->allocator
, ptr
, this->res
+1);
2234 this->res
= BUF_SIZE_WCHAR
-1;
2235 basic_string_wchar_eos(this, new_size
);
2238 /* ?_Grow@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@IAE_NI_N@Z */
2239 /* ?_Grow@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@IEAA_N_K_N@Z */
2240 /* ?_Grow@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@IAE_NI_N@Z */
2241 /* ?_Grow@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@IEAA_N_K_N@Z */
2242 DEFINE_THISCALL_WRAPPER(basic_string_wchar_grow
, 12)
2243 MSVCP_bool __thiscall
basic_string_wchar_grow(
2244 basic_string_wchar
*this, MSVCP_size_t new_size
, MSVCP_bool trim
)
2246 if(this->res
< new_size
) {
2247 MSVCP_size_t new_res
= new_size
, len
= this->size
;
2252 if(new_res
/3 < this->res
/2)
2253 new_res
= this->res
+ this->res
/2;
2255 ptr
= MSVCP_allocator_wchar_allocate(this->allocator
, new_res
+1);
2257 ptr
= MSVCP_allocator_wchar_allocate(this->allocator
, new_size
+1);
2261 ERR("Out of memory\n");
2262 basic_string_wchar_tidy(this, TRUE
, 0);
2266 MSVCP_char_traits_wchar__Copy_s(ptr
, new_size
,
2267 basic_string_wchar_ptr(this), this->size
);
2268 basic_string_wchar_tidy(this, TRUE
, 0);
2269 this->data
.ptr
= ptr
;
2270 this->res
= new_size
;
2271 basic_string_wchar_eos(this, len
);
2272 } else if(trim
&& new_size
< BUF_SIZE_WCHAR
)
2273 basic_string_wchar_tidy(this, TRUE
,
2274 new_size
<this->size
? new_size
: this->size
);
2275 else if(new_size
== 0)
2276 basic_string_wchar_eos(this, 0);
2278 return (new_size
>0);
2281 /* ?_Copy@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@IAEXII@Z */
2282 /* ?_Copy@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@IEAAX_K0@Z */
2283 /* ?_Copy@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@IAEXII@Z */
2284 /* ?_Copy@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@IEAAX_K0@Z */
2285 DEFINE_THISCALL_WRAPPER(basic_string_wchar__Copy
, 12)
2286 void __thiscall
basic_string_wchar__Copy(basic_string_wchar
*this,
2287 MSVCP_size_t new_size
, MSVCP_size_t copy_len
)
2289 TRACE("%p %lu %lu\n", this, new_size
, copy_len
);
2291 if(!basic_string_wchar_grow(this, new_size
, FALSE
))
2293 basic_string_wchar_eos(this, copy_len
);
2296 /* ?get_allocator@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBE?AV?$allocator@_W@2@XZ */
2297 /* ?get_allocator@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBA?AV?$allocator@_W@2@XZ */
2298 /* ?get_allocator@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBE?AV?$allocator@G@2@XZ */
2299 /* ?get_allocator@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBA?AV?$allocator@G@2@XZ */
2300 DEFINE_THISCALL_WRAPPER(basic_string_wchar_get_allocator
, 8)
2301 allocator
* __thiscall
basic_string_wchar_get_allocator(const basic_string_wchar
*this, allocator
*ret
)
2303 TRACE("%p\n", this);
2307 /* ?erase@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV12@II@Z */
2308 /* ?erase@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAAEAV12@_K0@Z */
2309 /* ?erase@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV12@II@Z */
2310 /* ?erase@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAAEAV12@_K0@Z */
2311 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_erase
, 12)
2312 basic_string_wchar
* __thiscall
MSVCP_basic_string_wchar_erase(
2313 basic_string_wchar
*this, MSVCP_size_t pos
, MSVCP_size_t len
)
2315 TRACE("%p %lu %lu\n", this, pos
, len
);
2317 if(pos
> this->size
)
2318 MSVCP__String_base_Xran();
2320 if(len
> this->size
-pos
)
2321 len
= this->size
-pos
;
2324 MSVCP_char_traits_wchar__Move_s(basic_string_wchar_ptr(this)+pos
,
2325 this->res
-pos
, basic_string_wchar_ptr(this)+pos
+len
,
2326 this->size
-pos
-len
);
2327 basic_string_wchar_eos(this, this->size
-len
);
2333 /* ?assign@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV12@ABV12@II@Z */
2334 /* ?assign@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAAEAV12@AEBV12@_K1@Z */
2335 /* ?assign@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV12@ABV12@II@Z */
2336 /* ?assign@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAAEAV12@AEBV12@_K1@Z */
2337 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_assign_substr
, 16)
2338 basic_string_wchar
* __thiscall
MSVCP_basic_string_wchar_assign_substr(
2339 basic_string_wchar
*this, const basic_string_wchar
*assign
,
2340 MSVCP_size_t pos
, MSVCP_size_t len
)
2342 TRACE("%p %p %lu %lu\n", this, assign
, pos
, len
);
2344 if(assign
->size
< pos
)
2345 MSVCP__String_base_Xran();
2347 if(len
> assign
->size
-pos
)
2348 len
= assign
->size
-pos
;
2350 if(this == assign
) {
2351 MSVCP_basic_string_wchar_erase(this, pos
+len
, MSVCP_basic_string_wchar_npos
);
2352 MSVCP_basic_string_wchar_erase(this, 0, pos
);
2353 } else if(basic_string_wchar_grow(this, len
, FALSE
)) {
2354 MSVCP_char_traits_wchar__Copy_s(basic_string_wchar_ptr(this),
2355 this->res
, basic_string_wchar_const_ptr(assign
)+pos
, len
);
2356 basic_string_wchar_eos(this, len
);
2362 /* ?assign@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV12@ABV12@@Z */
2363 /* ?assign@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAAEAV12@AEBV12@@Z */
2364 /* ??4?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV01@ABV01@@Z */
2365 /* ??4?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAAEAV01@AEBV01@@Z */
2366 /* ?assign@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV12@ABV12@@Z */
2367 /* ?assign@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAAEAV12@AEBV12@@Z */
2368 /* ??4?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV01@ABV01@@Z */
2369 /* ??4?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAAEAV01@AEBV01@@Z */
2370 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_assign
, 8)
2371 basic_string_wchar
* __thiscall
MSVCP_basic_string_wchar_assign(
2372 basic_string_wchar
*this, const basic_string_wchar
*assign
)
2374 return MSVCP_basic_string_wchar_assign_substr(this, assign
,
2375 0, MSVCP_basic_string_wchar_npos
);
2378 /* ?assign@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV12@PB_WI@Z */
2379 /* ?assign@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAAEAV12@PEB_W_K@Z */
2380 /* ?assign@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV12@PBGI@Z */
2381 /* ?assign@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAAEAV12@PEBG_K@Z */
2382 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_assign_cstr_len
, 12)
2383 basic_string_wchar
* __thiscall
MSVCP_basic_string_wchar_assign_cstr_len(
2384 basic_string_wchar
*this, const wchar_t *str
, MSVCP_size_t len
)
2386 TRACE("%p %s %lu\n", this, debugstr_wn(str
, len
), len
);
2388 if(basic_string_wchar_inside(this, str
))
2389 return MSVCP_basic_string_wchar_assign_substr(this, this,
2390 str
-basic_string_wchar_ptr(this), len
);
2391 else if(basic_string_wchar_grow(this, len
, FALSE
)) {
2392 MSVCP_char_traits_wchar__Copy_s(basic_string_wchar_ptr(this),
2393 this->res
, str
, len
);
2394 basic_string_wchar_eos(this, len
);
2400 /* ??4?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV01@_W@Z */
2401 /* ??4?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAAEAV01@_W@Z */
2402 /* ??4?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV01@G@Z */
2403 /* ??4?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAAEAV01@G@Z */
2404 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_assign_ch
, 8)
2405 basic_string_wchar
* __thiscall
MSVCP_basic_string_wchar_assign_ch(
2406 basic_string_wchar
*this, wchar_t ch
)
2408 return MSVCP_basic_string_wchar_assign_cstr_len(this, &ch
, 1);
2411 /* ?assign@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV12@PB_W@Z */
2412 /* ?assign@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAAEAV12@PEB_W@Z */
2413 /* ??4?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV01@PB_W@Z */
2414 /* ??4?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAAEAV01@PEB_W@Z */
2415 /* ?assign@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV12@PBG@Z */
2416 /* ?assign@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAAEAV12@PEBG@Z */
2417 /* ??4?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV01@PBG@Z */
2418 /* ??4?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAAEAV01@PEBG@Z */
2419 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_assign_cstr
, 8)
2420 basic_string_wchar
* __thiscall
MSVCP_basic_string_wchar_assign_cstr(
2421 basic_string_wchar
*this, const wchar_t *str
)
2423 return MSVCP_basic_string_wchar_assign_cstr_len(this, str
,
2424 MSVCP_char_traits_wchar_length(str
));
2427 /* ?assign@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV12@I_W@Z */
2428 /* ?assign@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAAEAV12@_K_W@Z */
2429 /* ?assign@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV12@IG@Z */
2430 /* ?assign@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAAEAV12@_KG@Z */
2431 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_assignn
, 12)
2432 basic_string_wchar
* __thiscall
MSVCP_basic_string_wchar_assignn(
2433 basic_string_wchar
*this, MSVCP_size_t count
, wchar_t ch
)
2435 TRACE("%p %ld %c\n", this, count
, ch
);
2437 basic_string_wchar_grow(this, count
, FALSE
);
2438 MSVCP_char_traits_wchar_assignn(basic_string_wchar_ptr(this), count
, ch
);
2439 basic_string_wchar_eos(this, count
);
2443 /* ?assign@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV12@PB_W0@Z */
2444 /* ?assign@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAAEAV12@PEB_W0@Z */
2445 /* ?assign@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV12@PBG0@Z */
2446 /* ?assign@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAAEAV12@PEBG0@Z */
2447 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_assign_ptr_ptr
, 12)
2448 basic_string_wchar
* __thiscall
MSVCP_basic_string_wchar_assign_ptr_ptr(
2449 basic_string_wchar
*this, const wchar_t *first
, const wchar_t *last
)
2451 return MSVCP_basic_string_wchar_assign_cstr_len(this, first
, last
-first
);
2454 /* ?_Chassign@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@IAEXII_W@Z */
2455 /* ?_Chassign@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@IEAAX_K0_W@Z */
2456 /* ?_Chassign@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@IAEXIIG@Z */
2457 /* ?_Chassign@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@IEAAX_K0G@Z */
2458 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_Chassign
, 16)
2459 void __thiscall
MSVCP_basic_string_wchar_Chassign(basic_string_wchar
*this,
2460 MSVCP_size_t off
, MSVCP_size_t count
, wchar_t ch
)
2462 TRACE("%p %lu %lu %c\n", this, off
, count
, ch
);
2463 MSVCP_char_traits_wchar_assignn(basic_string_wchar_ptr(this)+off
, count
, ch
);
2466 /* ?_Copy_s@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEIPA_WIII@Z */
2467 /* ?_Copy_s@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBA_KPEA_W_K11@Z */
2468 /* ?_Copy_s@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEIPAGIII@Z */
2469 /* ?_Copy_s@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBA_KPEAG_K11@Z */
2470 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_Copy_s
, 20)
2471 MSVCP_size_t __thiscall
MSVCP_basic_string_wchar_Copy_s(const basic_string_wchar
*this,
2472 wchar_t *dest
, MSVCP_size_t size
, MSVCP_size_t count
, MSVCP_size_t off
)
2474 TRACE("%p %p %lu %lu %lu\n", this, dest
, size
, count
, off
);
2476 if(this->size
< off
)
2477 MSVCP__String_base_Xran();
2479 if(count
> this->size
-off
)
2480 count
= this->size
-off
;
2482 MSVCP_char_traits_wchar__Copy_s(dest
, size
,
2483 basic_string_wchar_const_ptr(this)+off
, count
);
2487 /* ?copy@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEIPA_WII@Z */
2488 /* ?copy@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBA_KPEA_W_K1@Z */
2489 /* ?copy@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEIPAGII@Z */
2490 /* ?copy@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBA_KPEAG_K1@Z */
2491 DEFINE_THISCALL_WRAPPER(basic_string_wchar_copy
, 16)
2492 MSVCP_size_t __thiscall
basic_string_wchar_copy(const basic_string_wchar
*this,
2493 wchar_t *dest
, MSVCP_size_t count
, MSVCP_size_t off
)
2495 return MSVCP_basic_string_wchar_Copy_s(this, dest
, count
, count
, off
);
2498 /* ?c_str@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEPB_WXZ */
2499 /* ?c_str@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBAPEB_WXZ */
2500 /* ?data@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEPB_WXZ */
2501 /* ?data@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBAPEB_WXZ */
2502 /* ?c_str@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEPBGXZ */
2503 /* ?c_str@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBAPEBGXZ */
2504 /* ?data@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEPBGXZ */
2505 /* ?data@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBAPEBGXZ */
2506 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_c_str
, 4)
2507 const wchar_t* __thiscall
MSVCP_basic_string_wchar_c_str(const basic_string_wchar
*this)
2509 TRACE("%p\n", this);
2510 return basic_string_wchar_const_ptr(this);
2513 /* ?capacity@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEIXZ */
2514 /* ?capacity@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBA_KXZ */
2515 /* ?capacity@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEIXZ */
2516 /* ?capacity@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBA_KXZ */
2517 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_capacity
, 4)
2518 MSVCP_size_t __thiscall
MSVCP_basic_string_wchar_capacity(basic_string_wchar
*this)
2520 TRACE("%p\n", this);
2524 /* ?reserve@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEXI@Z */
2525 /* ?reserve@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAX_K@Z */
2526 /* ?reserve@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEXI@Z */
2527 /* ?reserve@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAX_K@Z */
2528 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_reserve
, 8)
2529 void __thiscall
MSVCP_basic_string_wchar_reserve(basic_string_wchar
*this, MSVCP_size_t size
)
2533 TRACE("%p %ld\n", this, size
);
2539 if(basic_string_wchar_grow(this, size
, TRUE
))
2540 basic_string_wchar_eos(this, len
);
2543 /* ??0?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE@XZ */
2544 /* ??0?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAA@XZ */
2545 /* ??0?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAE@XZ */
2546 /* ??0?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAA@XZ */
2547 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_ctor
, 4)
2548 basic_string_wchar
* __thiscall
MSVCP_basic_string_wchar_ctor(basic_string_wchar
*this)
2550 TRACE("%p\n", this);
2552 basic_string_wchar_tidy(this, FALSE
, 0);
2556 /* ??0?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE@ABV01@@Z */
2557 /* ??0?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAA@AEBV01@@Z */
2558 /* ??0?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAE@ABV01@@Z */
2559 /* ??0?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAA@AEBV01@@Z */
2560 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_copy_ctor
, 8)
2561 basic_string_wchar
* __thiscall
MSVCP_basic_string_wchar_copy_ctor(
2562 basic_string_wchar
*this, const basic_string_wchar
*copy
)
2564 TRACE("%p %p\n", this, copy
);
2566 basic_string_wchar_tidy(this, FALSE
, 0);
2567 MSVCP_basic_string_wchar_assign(this, copy
);
2571 /* ??0?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE@PB_W@Z */
2572 /* ??0?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAA@PEB_W@Z */
2573 /* ??0?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAE@PBG@Z */
2574 /* ??0?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAA@PEBG@Z */
2575 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_ctor_cstr
, 8)
2576 basic_string_wchar
* __thiscall
MSVCP_basic_string_wchar_ctor_cstr(
2577 basic_string_wchar
*this, const wchar_t *str
)
2579 TRACE("%p %s\n", this, debugstr_w(str
));
2581 basic_string_wchar_tidy(this, FALSE
, 0);
2582 MSVCP_basic_string_wchar_assign_cstr(this, str
);
2586 /* ??0?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE@PB_WABV?$allocator@_W@1@@Z */
2587 /* ??0?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAA@PEB_WAEBV?$allocator@_W@1@@Z */
2588 /* ??0?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAE@PBGABV?$allocator@G@1@@Z */
2589 /* ??0?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAA@PEBGAEBV?$allocator@G@1@@Z */
2590 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_ctor_cstr_alloc
, 12)
2591 basic_string_wchar
* __thiscall
MSVCP_basic_string_wchar_ctor_cstr_alloc(
2592 basic_string_wchar
*this, const wchar_t *str
, const void *alloc
)
2594 return MSVCP_basic_string_wchar_ctor_cstr(this, str
);
2597 /* ??0?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE@PB_WI@Z */
2598 /* ??0?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAA@PEB_W_K@Z */
2599 /* ??0?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAE@PBGI@Z */
2600 /* ??0?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAA@PEBG_K@Z */
2601 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_ctor_cstr_len
, 12)
2602 basic_string_wchar
* __thiscall
MSVCP_basic_string_wchar_ctor_cstr_len(
2603 basic_string_wchar
*this, const wchar_t *str
, MSVCP_size_t len
)
2605 TRACE("%p %s %ld\n", this, debugstr_wn(str
, len
), len
);
2607 basic_string_wchar_tidy(this, FALSE
, 0);
2608 MSVCP_basic_string_wchar_assign_cstr_len(this, str
, len
);
2612 /* ??0?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE@PB_WIABV?$allocator@_W@1@@Z */
2613 /* ??0?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAA@PEB_W_KAEBV?$allocator@_W@1@@Z */
2614 /* ??0?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAE@PBGIABV?$allocator@G@1@@Z */
2615 /* ??0?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAA@PEBG_KAEBV?$allocator@G@1@@Z */
2616 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_ctor_cstr_len_alloc
, 16)
2617 basic_string_wchar
* __thiscall
MSVCP_basic_string_wchar_ctor_cstr_len_alloc(
2618 basic_string_wchar
*this, const wchar_t *str
, MSVCP_size_t len
, const void *alloc
)
2620 return MSVCP_basic_string_wchar_ctor_cstr_len(this, str
, len
);
2623 /* ??0?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE@ABV01@II@Z */
2624 /* ??0?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAA@AEBV01@_K1@Z */
2625 /* ??0?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAE@ABV01@II@Z */
2626 /* ??0?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAA@AEBV01@_K1@Z */
2627 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_ctor_substr
, 16)
2628 basic_string_wchar
* __thiscall
MSVCP_basic_string_wchar_ctor_substr(
2629 basic_string_wchar
*this, const basic_string_wchar
*assign
,
2630 MSVCP_size_t pos
, MSVCP_size_t len
)
2632 TRACE("%p %p %lu %lu\n", this, assign
, pos
, len
);
2634 basic_string_wchar_tidy(this, FALSE
, 0);
2635 MSVCP_basic_string_wchar_assign_substr(this, assign
, pos
, len
);
2639 /* ??0?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE@ABV01@IIABV?$allocator@_W@1@@Z */
2640 /* ??0?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAA@AEBV01@_K1AEBV?$allocator@_W@1@@Z */
2641 /* ??0?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAE@ABV01@IIABV?$allocator@G@1@@Z */
2642 /* ??0?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAA@AEBV01@_K1AEBV?$allocator@G@1@@Z */
2643 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_ctor_substr_alloc
, 20)
2644 basic_string_wchar
* __thiscall
MSVCP_basic_string_wchar_ctor_substr_alloc(
2645 basic_string_wchar
*this, const basic_string_wchar
*assign
,
2646 MSVCP_size_t pos
, MSVCP_size_t len
, const void *alloc
)
2648 return MSVCP_basic_string_wchar_ctor_substr(this, assign
, pos
, len
);
2651 /* ??0?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE@ABV?$allocator@_W@1@@Z */
2652 /* ??0?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAA@AEBV?$allocator@_W@1@@Z */
2653 /* ??0?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAE@ABV?$allocator@G@1@@Z */
2654 /* ??0?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAA@AEBV?$allocator@G@1@@Z */
2655 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_ctor_alloc
, 8)
2656 basic_string_wchar
* __thiscall
MSVCP_basic_string_wchar_ctor_alloc(
2657 basic_string_wchar
*this, const void *alloc
)
2659 TRACE("%p %p\n", this, alloc
);
2661 basic_string_wchar_tidy(this, FALSE
, 0);
2665 /* ??0?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE@I_W@Z */
2666 /* ??0?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAA@_K_W@Z */
2667 /* ??0?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAE@IG@Z */
2668 /* ??0?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAA@_KG@Z */
2669 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_ctor_ch
, 12)
2670 basic_string_wchar
* __thiscall
MSVCP_basic_string_wchar_ctor_ch(basic_string_wchar
*this,
2671 MSVCP_size_t count
, wchar_t ch
)
2673 TRACE("%p %ld %c\n", this, count
, ch
);
2675 basic_string_wchar_tidy(this, FALSE
, 0);
2676 MSVCP_basic_string_wchar_assignn(this, count
, ch
);
2680 /* ??0?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE@I_WABV?$allocator@_W@1@@Z */
2681 /* ??0?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAA@_K_WAEBV?$allocator@_W@1@@Z */
2682 /* ??0?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAE@IGABV?$allocator@G@1@@Z */
2683 /* ??0?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAA@_KGAEBV?$allocator@G@1@@Z */
2684 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_ctor_ch_alloc
, 16)
2685 basic_string_wchar
* __thiscall
MSVCP_basic_string_wchar_ctor_ch_alloc(basic_string_wchar
*this,
2686 MSVCP_size_t count
, wchar_t ch
, const void *alloc
)
2688 return MSVCP_basic_string_wchar_ctor_ch(this, count
, ch
);
2691 /* ??0?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE@PB_W0@Z */
2692 /* ??0?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAA@PEB_W0@Z */
2693 /* ??0?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAE@PBG0@Z */
2694 /* ??0?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAA@PEBG0@Z */
2695 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_ctor_ptr_ptr
, 12)
2696 basic_string_wchar
* __thiscall
MSVCP_basic_string_wchar_ctor_ptr_ptr(basic_string_wchar
*this,
2697 const wchar_t *first
, const wchar_t *last
)
2699 return MSVCP_basic_string_wchar_ctor_cstr_len(this, first
, last
-first
);
2702 /* ??1?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE@XZ */
2703 /* ??1?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAA@XZ */
2704 /* ??1?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAE@XZ */
2705 /* ??1?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAA@XZ */
2706 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_dtor
, 4)
2707 void __thiscall
MSVCP_basic_string_wchar_dtor(basic_string_wchar
*this)
2709 TRACE("%p\n", this);
2710 basic_string_wchar_tidy(this, TRUE
, 0);
2713 /* ?size@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEIXZ */
2714 /* ?size@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBA_KXZ */
2715 /* ?length@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEIXZ */
2716 /* ?length@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBA_KXZ */
2717 /* ?size@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEIXZ */
2718 /* ?size@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBA_KXZ */
2719 /* ?length@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEIXZ */
2720 /* ?length@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBA_KXZ */
2721 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_length
, 4)
2722 MSVCP_size_t __thiscall
MSVCP_basic_string_wchar_length(const basic_string_wchar
*this)
2724 TRACE("%p\n", this);
2728 /* ?max_size@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEIXZ */
2729 /* ?max_size@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBA_KXZ */
2730 /* ?max_size@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEIXZ */
2731 /* ?max_size@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBA_KXZ */
2732 DEFINE_THISCALL_WRAPPER(basic_string_wchar_max_size
, 4)
2733 MSVCP_size_t __thiscall
basic_string_wchar_max_size(const basic_string_wchar
*this)
2735 TRACE("%p\n", this);
2736 return MSVCP_allocator_wchar_max_size(this->allocator
)-1;
2739 /* ?empty@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBE_NXZ */
2740 /* ?empty@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBA_NXZ */
2741 /* ?empty@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBE_NXZ */
2742 /* ?empty@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBA_NXZ */
2743 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_empty
, 4)
2744 MSVCP_bool __thiscall
MSVCP_basic_string_wchar_empty(basic_string_wchar
*this)
2746 TRACE("%p\n", this);
2747 return this->size
== 0;
2750 /* ?swap@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEXAAV12@@Z */
2751 /* ?swap@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAXAEAV12@@Z */
2752 /* ?swap@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEXAAV12@@Z */
2753 /* ?swap@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAXAEAV12@@Z */
2754 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_swap
, 8)
2755 void __thiscall
MSVCP_basic_string_wchar_swap(basic_string_wchar
*this, basic_string_wchar
*str
)
2758 char tmp
[sizeof(this->data
)];
2759 const MSVCP_size_t size
= this->size
;
2760 const MSVCP_size_t res
= this->res
;
2762 memcpy(tmp
, this->data
.buf
, sizeof(this->data
));
2763 memcpy(this->data
.buf
, str
->data
.buf
, sizeof(this->data
));
2764 memcpy(str
->data
.buf
, tmp
, sizeof(this->data
));
2766 this->size
= str
->size
;
2767 this->res
= str
->res
;
2774 /* ?substr@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBE?AV12@II@Z */
2775 /* ?substr@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBA?AV12@_K0@Z */
2776 /* ?substr@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBE?AV12@II@Z */
2777 /* ?substr@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBA?AV12@_K0@Z */
2778 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_substr
, 16)
2779 basic_string_wchar
* __thiscall
MSVCP_basic_string_wchar_substr(basic_string_wchar
*this,
2780 basic_string_wchar
*ret
, MSVCP_size_t off
, MSVCP_size_t len
)
2782 TRACE("%p %lu %lu\n", this, off
, len
);
2784 MSVCP_basic_string_wchar_ctor_substr(ret
, this, off
, len
);
2788 /* ?append@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV12@ABV12@II@Z */
2789 /* ?append@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAAEAV12@AEBV12@_K1@Z */
2790 /* ?append@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV12@ABV12@II@Z */
2791 /* ?append@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAAEAV12@AEBV12@_K1@Z */
2792 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_append_substr
, 16)
2793 basic_string_wchar
* __thiscall
MSVCP_basic_string_wchar_append_substr(basic_string_wchar
*this,
2794 const basic_string_wchar
*append
, MSVCP_size_t offset
, MSVCP_size_t count
)
2796 TRACE("%p %p %lu %lu\n", this, append
, offset
, count
);
2798 if(append
->size
< offset
)
2799 MSVCP__String_base_Xran();
2801 if(count
> append
->size
-offset
)
2802 count
= append
->size
-offset
;
2804 if(MSVCP_basic_string_wchar_npos
-this->size
<=count
|| this->size
+count
<this->size
)
2805 MSVCP__String_base_Xlen();
2807 if(basic_string_wchar_grow(this, this->size
+count
, FALSE
)) {
2808 MSVCP_char_traits_wchar__Copy_s(basic_string_wchar_ptr(this)+this->size
,
2809 this->res
-this->size
, basic_string_wchar_const_ptr(append
)+offset
, count
);
2810 basic_string_wchar_eos(this, this->size
+count
);
2816 /* ?append@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV12@ABV12@@Z */
2817 /* ?append@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAAEAV12@AEBV12@@Z */
2818 /* ??Y?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV01@ABV01@@Z */
2819 /* ??Y?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAAEAV01@AEBV01@@Z */
2820 /* ?append@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV12@ABV12@@Z */
2821 /* ?append@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAAEAV12@AEBV12@@Z */
2822 /* ??Y?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV01@ABV01@@Z */
2823 /* ??Y?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAAEAV01@AEBV01@@Z */
2824 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_append
, 8)
2825 basic_string_wchar
* __thiscall
MSVCP_basic_string_wchar_append(
2826 basic_string_wchar
*this, const basic_string_wchar
*append
)
2828 return MSVCP_basic_string_wchar_append_substr(this, append
,
2829 0, MSVCP_basic_string_wchar_npos
);
2832 /* ?append@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV12@PB_WI@Z */
2833 /* ?append@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAAEAV12@PEB_W_K@Z */
2834 /* ?append@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV12@PBGI@Z */
2835 /* ?append@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAAEAV12@PEBG_K@Z */
2836 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_append_cstr_len
, 12)
2837 basic_string_wchar
* __thiscall
MSVCP_basic_string_wchar_append_cstr_len(
2838 basic_string_wchar
*this, const wchar_t *append
, MSVCP_size_t count
)
2840 TRACE("%p %s %lu\n", this, debugstr_wn(append
, count
), count
);
2842 if(basic_string_wchar_inside(this, append
))
2843 return MSVCP_basic_string_wchar_append_substr(this, this,
2844 append
-basic_string_wchar_ptr(this), count
);
2846 if(MSVCP_basic_string_wchar_npos
-this->size
<=count
|| this->size
+count
<this->size
)
2847 MSVCP__String_base_Xlen();
2849 if(basic_string_wchar_grow(this, this->size
+count
, FALSE
)) {
2850 MSVCP_char_traits_wchar__Copy_s(basic_string_wchar_ptr(this)+this->size
,
2851 this->res
-this->size
, append
, count
);
2852 basic_string_wchar_eos(this, this->size
+count
);
2858 /* ?append@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV12@PB_W@Z */
2859 /* ?append@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAAEAV12@PEB_W@Z */
2860 /* ??Y?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV01@PB_W@Z */
2861 /* ??Y?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAAEAV01@PEB_W@Z */
2862 /* ?append@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV12@PBG@Z */
2863 /* ?append@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAAEAV12@PEBG@Z */
2864 /* ??Y?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV01@PBG@Z */
2865 /* ??Y?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAAEAV01@PEBG@Z */
2866 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_append_cstr
, 8)
2867 basic_string_wchar
* __thiscall
MSVCP_basic_string_wchar_append_cstr(
2868 basic_string_wchar
*this, const wchar_t *append
)
2870 return MSVCP_basic_string_wchar_append_cstr_len(this, append
,
2871 MSVCP_char_traits_wchar_length(append
));
2874 /* ?append@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV12@PB_W0@Z */
2875 /* ?append@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAAEAV12@PEB_W0@Z */
2876 /* ?append@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV12@PBG0@Z */
2877 /* ?append@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAAEAV12@PEBG0@Z */
2878 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_append_beg_end
, 12)
2879 basic_string_wchar
* __thiscall
MSVCP_basic_string_wchar_append_beg_end(
2880 basic_string_wchar
*this, const wchar_t *beg
, const wchar_t *end
)
2882 return MSVCP_basic_string_wchar_append_cstr_len(this, beg
, end
-beg
);
2885 /* ?append@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV12@I_W@Z */
2886 /* ?append@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAAEAV12@_K_W@Z */
2887 /* ?append@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV12@IG@Z */
2888 /* ?append@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAAEAV12@_KG@Z */
2889 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_append_len_ch
, 12)
2890 basic_string_wchar
* __thiscall
MSVCP_basic_string_wchar_append_len_ch(
2891 basic_string_wchar
*this, MSVCP_size_t count
, wchar_t ch
)
2893 TRACE("%p %lu %c\n", this, count
, ch
);
2895 if(MSVCP_basic_string_wchar_npos
-this->size
<= count
)
2896 MSVCP__String_base_Xlen();
2898 if(basic_string_wchar_grow(this, this->size
+count
, FALSE
)) {
2899 MSVCP_char_traits_wchar_assignn(basic_string_wchar_ptr(this)+this->size
, count
, ch
);
2900 basic_string_wchar_eos(this, this->size
+count
);
2906 /* ??Y?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV01@_W@Z */
2907 /* ??Y?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAAEAV01@_W@Z */
2908 /* ?push_back@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEX_W@Z */
2909 /* ?push_back@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAX_W@Z */
2910 /* ??Y?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV01@G@Z */
2911 /* ??Y?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAAEAV01@G@Z */
2912 /* ?push_back@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEXG@Z */
2913 /* ?push_back@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAXG@Z */
2914 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_append_ch
, 8)
2915 basic_string_wchar
* __thiscall
MSVCP_basic_string_wchar_append_ch(
2916 basic_string_wchar
*this, wchar_t ch
)
2918 return MSVCP_basic_string_wchar_append_len_ch(this, 1, ch
);
2921 /* ??$?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 */
2922 /* ??$?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 */
2923 /* ??$?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 */
2924 /* ??$?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 */
2925 /* ??Hstd@@YA?AV?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@0@ABV10@PBG@Z */
2926 /* ??Hstd@@YA?AV?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@0@AEBV10@PEBG@Z */
2927 /* ??Hstd@@YA?AV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@0@ABV10@PB_W@Z */
2928 basic_string_wchar
* __cdecl
MSVCP_basic_string_wchar_concatenate_bstr_cstr(basic_string_wchar
*ret
,
2929 const basic_string_wchar
*left
, const wchar_t *right
)
2931 TRACE("%p %s\n", left
, debugstr_w(right
));
2933 MSVCP_basic_string_wchar_copy_ctor(ret
, left
);
2934 MSVCP_basic_string_wchar_append_cstr(ret
, right
);
2938 /* ??$?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 */
2939 /* ??$?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 */
2940 /* ??$?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 */
2941 /* ??$?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 */
2942 /* ??Hstd@@YA?AV?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@0@PBGABV10@@Z */
2943 /* ??Hstd@@YA?AV?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@0@PEBGAEBV10@@Z */
2944 /* ??Hstd@@YA?AV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@0@PB_WABV10@@Z */
2945 basic_string_wchar
* __cdecl
MSVCP_basic_string_wchar_concatenate_cstr_bstr(basic_string_wchar
*ret
,
2946 const wchar_t *left
, const basic_string_wchar
*right
)
2948 TRACE("%s %p\n", debugstr_w(left
), right
);
2950 MSVCP_basic_string_wchar_ctor_cstr(ret
, left
);
2951 MSVCP_basic_string_wchar_append(ret
, right
);
2955 /* ??$?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 */
2956 /* ??$?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 */
2957 /* ??$?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 */
2958 /* ??$?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 */
2959 /* ??Hstd@@YA?AV?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@0@ABV10@0@Z */
2960 /* ??Hstd@@YA?AV?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@0@AEBV10@0@Z */
2961 /* ??Hstd@@YA?AV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@0@ABV10@0@Z */
2962 basic_string_wchar
* __cdecl
MSVCP_basic_string_wchar_concatenate(basic_string_wchar
*ret
,
2963 const basic_string_wchar
*left
, const basic_string_wchar
*right
)
2965 TRACE("%p %p\n", left
, right
);
2967 MSVCP_basic_string_wchar_copy_ctor(ret
, left
);
2968 MSVCP_basic_string_wchar_append(ret
, right
);
2972 /* ??$?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 */
2973 /* ??$?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 */
2974 /* ??$?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 */
2975 /* ??$?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 */
2976 /* ??Hstd@@YA?AV?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@0@ABV10@G@Z */
2977 /* ??Hstd@@YA?AV?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@0@AEBV10@G@Z */
2978 /* ??Hstd@@YA?AV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@0@ABV10@_W@Z */
2979 basic_string_wchar
* __cdecl
MSVCP_basic_string_wchar_concatenate_bstr_ch(
2980 basic_string_wchar
*ret
, const basic_string_wchar
*left
, wchar_t right
)
2982 TRACE("%p %c\n", left
, right
);
2984 MSVCP_basic_string_wchar_copy_ctor(ret
, left
);
2985 MSVCP_basic_string_wchar_append_ch(ret
, right
);
2989 /* ??$?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 */
2990 /* ??$?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 */
2991 /* ??$?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 */
2992 /* ??$?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 */
2993 /* ??Hstd@@YA?AV?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@0@GABV10@@Z */
2994 /* ??Hstd@@YA?AV?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@0@GAEBV10@@Z */
2995 /* ??Hstd@@YA?AV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@0@_WABV10@@Z */
2996 basic_string_wchar
* __cdecl
MSVCP_basic_string_wchar_concatenate_ch_bstr(
2997 basic_string_wchar
* ret
, wchar_t left
, const basic_string_wchar
*right
)
2999 TRACE("%c %p\n", left
, right
);
3001 MSVCP_basic_string_wchar_ctor_cstr_len(ret
, &left
, 1);
3002 MSVCP_basic_string_wchar_append(ret
, right
);
3006 /* ?compare@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEHIIPB_WI@Z */
3007 /* ?compare@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBAH_K0PEB_W0@Z */
3008 /* ?compare@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEHIIPBGI@Z */
3009 /* ?compare@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBAH_K0PEBG0@Z */
3010 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_compare_substr_cstr_len
, 20)
3011 int __thiscall
MSVCP_basic_string_wchar_compare_substr_cstr_len(
3012 const basic_string_wchar
*this, MSVCP_size_t pos
, MSVCP_size_t num
,
3013 const wchar_t *str
, MSVCP_size_t count
)
3017 TRACE("%p %lu %lu %s %lu\n", this, pos
, num
, debugstr_wn(str
, count
), count
);
3019 if(this->size
< pos
)
3020 MSVCP__String_base_Xran();
3022 if(num
> this->size
-pos
)
3023 num
= this->size
-pos
;
3025 ans
= MSVCP_char_traits_wchar_compare(basic_string_wchar_const_ptr(this)+pos
,
3026 str
, num
>count
? count
: num
);
3032 else if(num
< count
)
3037 /* ?compare@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEHIIPB_W@Z */
3038 /* ?compare@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBAH_K0PEB_W@Z */
3039 /* ?compare@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEHIIPBG@Z */
3040 /* ?compare@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBAH_K0PEBG@Z */
3041 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_compare_substr_cstr
, 16)
3042 int __thiscall
MSVCP_basic_string_wchar_compare_substr_cstr(const basic_string_wchar
*this,
3043 MSVCP_size_t pos
, MSVCP_size_t num
, const wchar_t *str
)
3045 return MSVCP_basic_string_wchar_compare_substr_cstr_len(this, pos
, num
,
3046 str
, MSVCP_char_traits_wchar_length(str
));
3049 /* ?compare@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEHPB_W@Z */
3050 /* ?compare@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBAHPEB_W@Z */
3051 /* ?compare@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEHPBG@Z */
3052 /* ?compare@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBAHPEBG@Z */
3053 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_compare_cstr
, 8)
3054 int __thiscall
MSVCP_basic_string_wchar_compare_cstr(
3055 const basic_string_wchar
*this, const wchar_t *str
)
3057 return MSVCP_basic_string_wchar_compare_substr_cstr_len(this, 0, this->size
,
3058 str
, MSVCP_char_traits_wchar_length(str
));
3061 /* ?compare@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEHIIABV12@II@Z */
3062 /* ?compare@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBAH_K0AEBV12@00@Z */
3063 /* ?compare@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEHIIABV12@II@Z */
3064 /* ?compare@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBAH_K0AEBV12@00@Z */
3065 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_compare_substr_substr
, 24)
3066 int __thiscall
MSVCP_basic_string_wchar_compare_substr_substr(
3067 const basic_string_wchar
*this, MSVCP_size_t pos
, MSVCP_size_t num
,
3068 const basic_string_wchar
*compare
, MSVCP_size_t off
, MSVCP_size_t count
)
3070 TRACE("%p %lu %lu %p %lu %lu\n", this, pos
, num
, compare
, off
, count
);
3072 if(compare
->size
< off
)
3073 MSVCP__String_base_Xran();
3075 if(count
> compare
->size
-off
)
3076 count
= compare
->size
-off
;
3078 return MSVCP_basic_string_wchar_compare_substr_cstr_len(this, pos
, num
,
3079 basic_string_wchar_const_ptr(compare
)+off
, count
);
3082 /* ?compare@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEHIIABV12@@Z */
3083 /* ?compare@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBAH_K0AEBV12@@Z */
3084 /* ?compare@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEHIIABV12@@Z */
3085 /* ?compare@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBAH_K0AEBV12@@Z */
3086 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_compare_substr
, 16)
3087 int __thiscall
MSVCP_basic_string_wchar_compare_substr(
3088 const basic_string_wchar
*this, MSVCP_size_t pos
, MSVCP_size_t num
,
3089 const basic_string_wchar
*compare
)
3091 return MSVCP_basic_string_wchar_compare_substr_cstr_len(this, pos
, num
,
3092 basic_string_wchar_const_ptr(compare
), compare
->size
);
3095 /* ?compare@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEHABV12@@Z */
3096 /* ?compare@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBAHAEBV12@@Z */
3097 /* ?compare@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEHABV12@@Z */
3098 /* ?compare@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBAHAEBV12@@Z */
3099 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_compare
, 8)
3100 int __thiscall
MSVCP_basic_string_wchar_compare(
3101 const basic_string_wchar
*this, const basic_string_wchar
*compare
)
3103 return MSVCP_basic_string_wchar_compare_substr_cstr_len(this, 0, this->size
,
3104 basic_string_wchar_const_ptr(compare
), compare
->size
);
3107 /* ??$?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 */
3108 /* ??$?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 */
3109 /* ??$?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 */
3110 /* ??$?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 */
3111 /* ??8std@@YA_NABV?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@0@0@Z */
3112 /* ??8std@@YA_NAEBV?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@0@0@Z */
3113 /* ??8std@@YA_NABV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@0@0@Z */
3114 MSVCP_bool __cdecl
MSVCP_basic_string_wchar_equal(
3115 const basic_string_wchar
*left
, const basic_string_wchar
*right
)
3117 return MSVCP_basic_string_wchar_compare(left
, right
) == 0;
3120 /* ??$?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 */
3121 /* ??$?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 */
3122 /* ??$?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 */
3123 /* ??$?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 */
3124 /* ??8std@@YA_NABV?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@0@PBG@Z */
3125 /* ??8std@@YA_NAEBV?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@0@PEBG@Z */
3126 /* ??8std@@YA_NABV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@0@PB_W@Z */
3127 MSVCP_bool __cdecl
MSVCP_basic_string_wchar_equal_str_cstr(
3128 const basic_string_wchar
*left
, const wchar_t *right
)
3130 return MSVCP_basic_string_wchar_compare_cstr(left
, right
) == 0;
3133 /* ??$?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 */
3134 /* ??$?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 */
3135 /* ??$?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 */
3136 /* ??$?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 */
3137 /* ??8std@@YA_NPBGABV?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@0@@Z */
3138 /* ??8std@@YA_NPB_WABV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@0@@Z */
3139 MSVCP_bool __cdecl
MSVCP_basic_string_wchar_equal_cstr_str(
3140 const wchar_t *left
, const basic_string_wchar
*right
)
3142 return MSVCP_basic_string_wchar_compare_cstr(right
, left
) == 0;
3145 /* ??$?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 */
3146 /* ??$?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 */
3147 /* ??$?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 */
3148 /* ??$?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 */
3149 /* ??9std@@YA_NABV?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@0@0@Z */
3150 /* ??9std@@YA_NAEBV?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@0@0@Z */
3151 /* ??9std@@YA_NABV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@0@0@Z */
3152 MSVCP_bool __cdecl
MSVCP_basic_string_wchar_not_equal(
3153 const basic_string_wchar
*left
, const basic_string_wchar
*right
)
3155 return MSVCP_basic_string_wchar_compare(left
, right
) != 0;
3158 /* ??$?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 */
3159 /* ??$?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 */
3160 /* ??$?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 */
3161 /* ??$?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 */
3162 /* ??9std@@YA_NABV?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@0@PBG@Z */
3163 /* ??9std@@YA_NAEBV?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@0@PEBG@Z */
3164 /* ??9std@@YA_NABV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@0@PB_W@Z */
3165 MSVCP_bool __cdecl
MSVCP_basic_string_wchar_not_equal_str_cstr(
3166 const basic_string_wchar
*left
, const wchar_t *right
)
3168 return MSVCP_basic_string_wchar_compare_cstr(left
, right
) != 0;
3171 /* ??$?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 */
3172 /* ??$?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 */
3173 /* ??$?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 */
3174 /* ??$?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 */
3175 /* ??9std@@YA_NPBGABV?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@0@@Z */
3176 /* ??9std@@YA_NPEBGAEBV?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@0@@Z */
3177 /* ??9std@@YA_NPB_WABV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@0@@Z */
3178 MSVCP_bool __cdecl
MSVCP_basic_string_wchar_not_equal_cstr_str(
3179 const wchar_t *left
, const basic_string_wchar
*right
)
3181 return MSVCP_basic_string_wchar_compare_cstr(right
, left
) != 0;
3184 /* ??$?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 */
3185 /* ??$?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 */
3186 /* ??$?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 */
3187 /* ??$?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 */
3188 MSVCP_bool __cdecl
MSVCP_basic_string_wchar_lower(
3189 const basic_string_wchar
*left
, const basic_string_wchar
*right
)
3191 return MSVCP_basic_string_wchar_compare(left
, right
) < 0;
3194 /* ??$?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 */
3195 /* ??$?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 */
3196 /* ??$?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 */
3197 /* ??$?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 */
3198 MSVCP_bool __cdecl
MSVCP_basic_string_wchar_lower_bstr_cstr(
3199 const basic_string_wchar
*left
, const wchar_t *right
)
3201 return MSVCP_basic_string_wchar_compare_cstr(left
, right
) < 0;
3204 /* ??$?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 */
3205 /* ??$?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 */
3206 /* ??$?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 */
3207 /* ??$?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 */
3208 MSVCP_bool __cdecl
MSVCP_basic_string_wchar_lower_cstr_bstr(
3209 const wchar_t *left
, const basic_string_wchar
*right
)
3211 return MSVCP_basic_string_wchar_compare_cstr(right
, left
) > 0;
3214 /* ??$?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 */
3215 /* ??$?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 */
3216 /* ??$?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 */
3217 /* ??$?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 */
3218 MSVCP_bool __cdecl
MSVCP_basic_string_wchar_leq(
3219 const basic_string_wchar
*left
, const basic_string_wchar
*right
)
3221 return MSVCP_basic_string_wchar_compare(left
, right
) <= 0;
3224 /* ??$?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 */
3225 /* ??$?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 */
3226 /* ??$?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 */
3227 /* ??$?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 */
3228 MSVCP_bool __cdecl
MSVCP_basic_string_wchar_leq_bstr_cstr(
3229 const basic_string_wchar
*left
, const wchar_t *right
)
3231 return MSVCP_basic_string_wchar_compare_cstr(left
, right
) <= 0;
3234 /* ??$?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 */
3235 /* ??$?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 */
3236 /* ??$?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 */
3237 /* ??$?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 */
3238 MSVCP_bool __cdecl
MSVCP_basic_string_wchar_leq_cstr_bstr(
3239 const wchar_t *left
, const basic_string_wchar
*right
)
3241 return MSVCP_basic_string_wchar_compare_cstr(right
, left
) >= 0;
3244 /* ??$?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 */
3245 /* ??$?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 */
3246 /* ??$?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 */
3247 /* ??$?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 */
3248 MSVCP_bool __cdecl
MSVCP_basic_string_wchar_greater(
3249 const basic_string_wchar
*left
, const basic_string_wchar
*right
)
3251 return MSVCP_basic_string_wchar_compare(left
, right
) > 0;
3254 /* ??$?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 */
3255 /* ??$?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 */
3256 /* ??$?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 */
3257 /* ??$?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 */
3258 MSVCP_bool __cdecl
MSVCP_basic_string_wchar_greater_bstr_cstr(
3259 const basic_string_wchar
*left
, const wchar_t *right
)
3261 return MSVCP_basic_string_wchar_compare_cstr(left
, right
) > 0;
3264 /* ??$?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 */
3265 /* ??$?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 */
3266 /* ??$?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 */
3267 /* ??$?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 */
3268 MSVCP_bool __cdecl
MSVCP_basic_string_wchar_greater_cstr_bstr(
3269 const wchar_t *left
, const basic_string_wchar
*right
)
3271 return MSVCP_basic_string_wchar_compare_cstr(right
, left
) < 0;
3274 /* ??$?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 */
3275 /* ??$?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 */
3276 /* ??$?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 */
3277 /* ??$?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 */
3278 MSVCP_bool __cdecl
MSVCP_basic_string_wchar_geq(
3279 const basic_string_wchar
*left
, const basic_string_wchar
*right
)
3281 return MSVCP_basic_string_wchar_compare(left
, right
) >= 0;
3284 /* ??$?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 */
3285 /* ??$?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 */
3286 /* ??$?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 */
3287 /* ??$?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 */
3288 MSVCP_bool __cdecl
MSVCP_basic_string_wchar_geq_bstr_cstr(
3289 const basic_string_wchar
*left
, const wchar_t *right
)
3291 return MSVCP_basic_string_wchar_compare_cstr(left
, right
) >= 0;
3294 /* ??$?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 */
3295 /* ??$?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 */
3296 /* ??$?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 */
3297 /* ??$?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 */
3298 MSVCP_bool __cdecl
MSVCP_basic_string_wchar_geq_cstr_bstr(
3299 const wchar_t *left
, const basic_string_wchar
*right
)
3301 return MSVCP_basic_string_wchar_compare_cstr(right
, left
) <= 0;
3304 /* ?find@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEIPB_WII@Z */
3305 /* ?find@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBA_KPEB_W_K1@Z */
3306 /* ?find@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEIPBGII@Z */
3307 /* ?find@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBA_KPEBG_K1@Z */
3308 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_find_cstr_substr
, 16)
3309 MSVCP_size_t __thiscall
MSVCP_basic_string_wchar_find_cstr_substr(
3310 const basic_string_wchar
*this, const wchar_t *find
, MSVCP_size_t pos
, MSVCP_size_t len
)
3312 const wchar_t *p
, *end
;
3314 TRACE("%p %s %lu %lu\n", this, debugstr_wn(find
, len
), pos
, len
);
3316 if(len
==0 && pos
<=this->size
)
3318 if(pos
>=this->size
|| len
>this->size
)
3319 return MSVCP_basic_string_wchar_npos
;
3321 end
= basic_string_wchar_const_ptr(this)+this->size
-len
+1;
3322 for(p
=basic_string_wchar_const_ptr(this)+pos
; p
<end
; p
++) {
3323 p
= MSVCP_char_traits_wchar_find(p
, end
-p
, find
);
3327 if(!MSVCP_char_traits_wchar_compare(p
, find
, len
))
3328 return p
-basic_string_wchar_const_ptr(this);
3331 return MSVCP_basic_string_wchar_npos
;
3334 /* ?find@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEIPB_WI@Z */
3335 /* ?find@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBA_KPEB_W_K@Z */
3336 /* ?find@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEIPBGI@Z */
3337 /* ?find@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBA_KPEBG_K@Z */
3338 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_find_cstr_off
, 12)
3339 MSVCP_size_t __thiscall
MSVCP_basic_string_wchar_find_cstr_off(
3340 const basic_string_wchar
*this, const wchar_t *find
, MSVCP_size_t pos
)
3342 return MSVCP_basic_string_wchar_find_cstr_substr(this, find
, pos
,
3343 MSVCP_char_traits_wchar_length(find
));
3346 /* ?find@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEIABV12@I@Z */
3347 /* ?find@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBA_KAEBV12@_K@Z */
3348 /* ?find@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEIABV12@I@Z */
3349 /* ?find@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBA_KAEBV12@_K@Z */
3350 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_find_off
, 12)
3351 MSVCP_size_t __thiscall
MSVCP_basic_string_wchar_find_off(
3352 const basic_string_wchar
*this, const basic_string_wchar
*find
, MSVCP_size_t off
)
3354 return MSVCP_basic_string_wchar_find_cstr_substr(this,
3355 basic_string_wchar_const_ptr(find
), off
, find
->size
);
3358 /* ?find@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEI_WI@Z */
3359 /* ?find@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBA_K_W_K@Z */
3360 /* ?find@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEIGI@Z */
3361 /* ?find@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBA_KG_K@Z */
3362 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_find_ch
, 12)
3363 MSVCP_size_t __thiscall
MSVCP_basic_string_wchar_find_ch(
3364 const basic_string_wchar
*this, wchar_t ch
, MSVCP_size_t pos
)
3366 return MSVCP_basic_string_wchar_find_cstr_substr(this, &ch
, pos
, 1);
3369 /* ?rfind@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEIPB_WII@Z */
3370 /* ?rfind@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBA_KPEB_W_K1@Z */
3371 /* ?rfind@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEIPBGII@Z */
3372 /* ?rfind@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBA_KPEBG_K1@Z */
3373 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_rfind_cstr_substr
, 16)
3374 MSVCP_size_t __thiscall
MSVCP_basic_string_wchar_rfind_cstr_substr(
3375 const basic_string_wchar
*this, const wchar_t *find
, MSVCP_size_t pos
, MSVCP_size_t len
)
3377 const wchar_t *p
, *end
;
3379 TRACE("%p %s %lu %lu\n", this, debugstr_wn(find
, len
), pos
, len
);
3382 return pos
<this->size
? pos
: this->size
;
3384 if(len
> this->size
)
3385 return MSVCP_basic_string_wchar_npos
;
3387 if(pos
> this->size
-len
+1)
3388 pos
= this->size
-len
+1;
3389 end
= basic_string_wchar_const_ptr(this);
3390 for(p
=end
+pos
; p
>=end
; p
--) {
3391 if(*p
==*find
&& !MSVCP_char_traits_wchar_compare(p
, find
, len
))
3392 return p
-basic_string_wchar_const_ptr(this);
3395 return MSVCP_basic_string_wchar_npos
;
3398 /* ?rfind@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEIPB_WI@Z */
3399 /* ?rfind@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBA_KPEB_W_K@Z */
3400 /* ?rfind@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEIPBGI@Z */
3401 /* ?rfind@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBA_KPEBG_K@Z */
3402 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_rfind_cstr_off
, 12)
3403 MSVCP_size_t __thiscall
MSVCP_basic_string_wchar_rfind_cstr_off(
3404 const basic_string_wchar
*this, const wchar_t *find
, MSVCP_size_t pos
)
3406 return MSVCP_basic_string_wchar_rfind_cstr_substr(this, find
, pos
,
3407 MSVCP_char_traits_wchar_length(find
));
3410 /* ?rfind@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEIABV12@I@Z */
3411 /* ?rfind@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBA_KAEBV12@_K@Z */
3412 /* ?rfind@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEIABV12@I@Z */
3413 /* ?rfind@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBA_KAEBV12@_K@Z */
3414 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_rfind_off
, 12)
3415 MSVCP_size_t __thiscall
MSVCP_basic_string_wchar_rfind_off(
3416 const basic_string_wchar
*this, const basic_string_wchar
*find
, MSVCP_size_t off
)
3418 return MSVCP_basic_string_wchar_rfind_cstr_substr(this,
3419 basic_string_wchar_const_ptr(find
), off
, find
->size
);
3422 /* ?rfind@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEI_WI@Z */
3423 /* ?rfind@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBA_K_W_K@Z */
3424 /* ?rfind@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEIGI@Z */
3425 /* ?rfind@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBA_KG_K@Z */
3426 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_rfind_ch
, 12)
3427 MSVCP_size_t __thiscall
MSVCP_basic_string_wchar_rfind_ch(
3428 const basic_string_wchar
*this, wchar_t ch
, MSVCP_size_t pos
)
3430 return MSVCP_basic_string_wchar_rfind_cstr_substr(this, &ch
, pos
, 1);
3433 /* ?find_first_of@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEIPB_WII@Z */
3434 /* ?find_first_of@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBA_KPEB_W_K1@Z */
3435 /* ?find_first_of@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEIPBGII@Z */
3436 /* ?find_first_of@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBA_KPEBG_K1@Z */
3437 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_find_first_of_cstr_substr
, 16)
3438 MSVCP_size_t __thiscall
MSVCP_basic_string_wchar_find_first_of_cstr_substr(
3439 const basic_string_wchar
*this, const wchar_t *find
, MSVCP_size_t off
, MSVCP_size_t len
)
3441 const wchar_t *p
, *end
;
3443 TRACE("%p %p %lu %lu\n", this, find
, off
, len
);
3445 if(len
>0 && off
<this->size
) {
3446 end
= basic_string_wchar_const_ptr(this)+this->size
;
3447 for(p
=basic_string_wchar_const_ptr(this)+off
; p
<end
; p
++)
3448 if(MSVCP_char_traits_wchar_find(find
, len
, p
))
3449 return p
-basic_string_wchar_const_ptr(this);
3452 return MSVCP_basic_string_wchar_npos
;
3455 /* ?find_first_of@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEIABV12@I@Z */
3456 /* ?find_first_of@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBA_KAEBV12@_K@Z */
3457 /* ?find_first_of@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEIABV12@I@Z */
3458 /* ?find_first_of@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBA_KAEBV12@_K@Z */
3459 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_find_first_of
, 12)
3460 MSVCP_size_t __thiscall
MSVCP_basic_string_wchar_find_first_of(
3461 const basic_string_wchar
*this, const basic_string_wchar
*find
, MSVCP_size_t off
)
3463 return MSVCP_basic_string_wchar_find_first_of_cstr_substr(this,
3464 basic_string_wchar_const_ptr(find
), off
, find
->size
);
3467 /* ?find_first_of@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEIPB_WI@Z */
3468 /* ?find_first_of@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBA_KPEB_W_K@Z */
3469 /* ?find_first_of@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEIPBGI@Z */
3470 /* ?find_first_of@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBA_KPEBG_K@Z */
3471 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_find_first_of_cstr
, 12)
3472 MSVCP_size_t __thiscall
MSVCP_basic_string_wchar_find_first_of_cstr(
3473 const basic_string_wchar
*this, const wchar_t *find
, MSVCP_size_t off
)
3475 return MSVCP_basic_string_wchar_find_first_of_cstr_substr(
3476 this, find
, off
, MSVCP_char_traits_wchar_length(find
));
3479 /* ?find_first_of@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEI_WI@Z */
3480 /* ?find_first_of@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBA_K_W_K@Z */
3481 /* ?find_first_of@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEIGI@Z */
3482 /* ?find_first_of@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBA_KG_K@Z */
3483 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_find_first_of_ch
, 12)
3484 MSVCP_size_t __thiscall
MSVCP_basic_string_wchar_find_first_of_ch(
3485 const basic_string_wchar
*this, wchar_t ch
, MSVCP_size_t off
)
3487 return MSVCP_basic_string_wchar_find_first_of_cstr_substr(this, &ch
, off
, 1);
3490 /* ?find_first_not_of@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEIPB_WII@Z */
3491 /* ?find_first_not_of@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBA_KPEB_W_K1@Z */
3492 /* ?find_first_not_of@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEIPBGII@Z */
3493 /* ?find_first_not_of@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBA_KPEBG_K1@Z */
3494 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_find_first_not_of_cstr_substr
, 16)
3495 MSVCP_size_t __thiscall
MSVCP_basic_string_wchar_find_first_not_of_cstr_substr(
3496 const basic_string_wchar
*this, const wchar_t *find
, MSVCP_size_t off
, MSVCP_size_t len
)
3498 const wchar_t *p
, *end
;
3500 TRACE("%p %p %lu %lu\n", this, find
, off
, len
);
3502 if(off
<this->size
) {
3503 end
= basic_string_wchar_const_ptr(this)+this->size
;
3504 for(p
=basic_string_wchar_const_ptr(this)+off
; p
<end
; p
++)
3505 if(!MSVCP_char_traits_wchar_find(find
, len
, p
))
3506 return p
-basic_string_wchar_const_ptr(this);
3509 return MSVCP_basic_string_wchar_npos
;
3512 /* ?find_first_not_of@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEIABV12@I@Z */
3513 /* ?find_first_not_of@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBA_KAEBV12@_K@Z */
3514 /* ?find_first_not_of@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEIABV12@I@Z */
3515 /* ?find_first_not_of@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBA_KAEBV12@_K@Z */
3516 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_find_first_not_of
, 12)
3517 MSVCP_size_t __thiscall
MSVCP_basic_string_wchar_find_first_not_of(
3518 const basic_string_wchar
*this, const basic_string_wchar
*find
, MSVCP_size_t off
)
3520 return MSVCP_basic_string_wchar_find_first_not_of_cstr_substr(this,
3521 basic_string_wchar_const_ptr(find
), off
, find
->size
);
3524 /* ?find_first_not_of@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEIPB_WI@Z */
3525 /* ?find_first_not_of@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBA_KPEB_W_K@Z */
3526 /* ?find_first_not_of@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEIPBGI@Z */
3527 /* ?find_first_not_of@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBA_KPEBG_K@Z */
3528 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_find_first_not_of_cstr
, 12)
3529 MSVCP_size_t __thiscall
MSVCP_basic_string_wchar_find_first_not_of_cstr(
3530 const basic_string_wchar
*this, const wchar_t *find
, MSVCP_size_t off
)
3532 return MSVCP_basic_string_wchar_find_first_not_of_cstr_substr(
3533 this, find
, off
, MSVCP_char_traits_wchar_length(find
));
3536 /* ?find_first_not_of@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEI_WI@Z */
3537 /* ?find_first_not_of@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBA_K_W_K@Z */
3538 /* ?find_first_not_of@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEIGI@Z */
3539 /* ?find_first_not_of@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBA_KG_K@Z */
3540 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_find_first_not_of_ch
, 12)
3541 MSVCP_size_t __thiscall
MSVCP_basic_string_wchar_find_first_not_of_ch(
3542 const basic_string_wchar
*this, wchar_t ch
, MSVCP_size_t off
)
3544 return MSVCP_basic_string_wchar_find_first_not_of_cstr_substr(this, &ch
, off
, 1);
3547 /* ?find_last_of@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEIPB_WII@Z */
3548 /* ?find_last_of@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBA_KPEB_W_K1@Z */
3549 /* ?find_last_of@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEIPBGII@Z */
3550 /* ?find_last_of@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBA_KPEBG_K1@Z */
3551 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_find_last_of_cstr_substr
, 16)
3552 MSVCP_size_t __thiscall
MSVCP_basic_string_wchar_find_last_of_cstr_substr(
3553 const basic_string_wchar
*this, const wchar_t *find
, MSVCP_size_t off
, MSVCP_size_t len
)
3555 const wchar_t *p
, *beg
;
3557 TRACE("%p %p %lu %lu\n", this, find
, off
, len
);
3560 if(len
>0 && this->size
>0) {
3561 if(off
>= this->size
)
3564 beg
= basic_string_wchar_const_ptr(this);
3565 for(p
=beg
+off
; p
>=beg
; p
--)
3566 if(MSVCP_char_traits_wchar_find(find
, len
, p
))
3570 return MSVCP_basic_string_wchar_npos
;
3573 /* ?find_last_of@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEIABV12@I@Z */
3574 /* ?find_last_of@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBA_KAEBV12@_K@Z */
3575 /* ?find_last_of@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEIABV12@I@Z */
3576 /* ?find_last_of@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBA_KAEBV12@_K@Z */
3577 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_find_last_of
, 12)
3578 MSVCP_size_t __thiscall
MSVCP_basic_string_wchar_find_last_of(
3579 const basic_string_wchar
*this, const basic_string_wchar
*find
, MSVCP_size_t off
)
3581 return MSVCP_basic_string_wchar_find_last_of_cstr_substr(this,
3582 basic_string_wchar_const_ptr(find
), off
, find
->size
);
3585 /* ?find_last_of@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEIPB_WI@Z */
3586 /* ?find_last_of@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBA_KPEB_W_K@Z */
3587 /* ?find_last_of@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEIPBGI@Z */
3588 /* ?find_last_of@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBA_KPEBG_K@Z */
3589 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_find_last_of_cstr
, 12)
3590 MSVCP_size_t __thiscall
MSVCP_basic_string_wchar_find_last_of_cstr(
3591 const basic_string_wchar
*this, const wchar_t *find
, MSVCP_size_t off
)
3593 return MSVCP_basic_string_wchar_find_last_of_cstr_substr(
3594 this, find
, off
, MSVCP_char_traits_wchar_length(find
));
3597 /* ?find_last_of@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEI_WI@Z */
3598 /* ?find_last_of@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBA_K_W_K@Z */
3599 /* ?find_last_of@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEIGI@Z */
3600 /* ?find_last_of@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBA_KG_K@Z */
3601 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_find_last_of_ch
, 12)
3602 MSVCP_size_t __thiscall
MSVCP_basic_string_wchar_find_last_of_ch(
3603 const basic_string_wchar
*this, wchar_t ch
, MSVCP_size_t off
)
3605 return MSVCP_basic_string_wchar_find_last_of_cstr_substr(this, &ch
, off
, 1);
3608 /* ?find_last_not_of@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEIPB_WII@Z */
3609 /* ?find_last_not_of@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBA_KPEB_W_K1@Z */
3610 /* ?find_last_not_of@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEIPBGII@Z */
3611 /* ?find_last_not_of@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBA_KPEBG_K1@Z */
3612 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_find_last_not_of_cstr_substr
, 16)
3613 MSVCP_size_t __thiscall
MSVCP_basic_string_wchar_find_last_not_of_cstr_substr(
3614 const basic_string_wchar
*this, const wchar_t *find
, MSVCP_size_t off
, MSVCP_size_t len
)
3616 const wchar_t *p
, *beg
;
3618 TRACE("%p %p %lu %lu\n", this, find
, off
, len
);
3621 if(off
>= this->size
)
3624 beg
= basic_string_wchar_const_ptr(this);
3625 for(p
=beg
+off
; p
>=beg
; p
--)
3626 if(!MSVCP_char_traits_wchar_find(find
, len
, p
))
3630 return MSVCP_basic_string_wchar_npos
;
3633 /* ?find_last_not_of@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEIABV12@I@Z */
3634 /* ?find_last_not_of@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBA_KAEBV12@_K@Z */
3635 /* ?find_last_not_of@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEIABV12@I@Z */
3636 /* ?find_last_not_of@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBA_KAEBV12@_K@Z */
3637 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_find_last_not_of
, 12)
3638 MSVCP_size_t __thiscall
MSVCP_basic_string_wchar_find_last_not_of(
3639 const basic_string_wchar
*this, const basic_string_wchar
*find
, MSVCP_size_t off
)
3641 return MSVCP_basic_string_wchar_find_last_not_of_cstr_substr(this,
3642 basic_string_wchar_const_ptr(find
), off
, find
->size
);
3645 /* ?find_last_not_of@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEIPB_WI@Z */
3646 /* ?find_last_not_of@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBA_KPEB_W_K@Z */
3647 /* ?find_last_not_of@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEIPBGI@Z */
3648 /* ?find_last_not_of@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBA_KPEBG_K@Z */
3649 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_find_last_not_of_cstr
, 12)
3650 MSVCP_size_t __thiscall
MSVCP_basic_string_wchar_find_last_not_of_cstr(
3651 const basic_string_wchar
*this, const wchar_t *find
, MSVCP_size_t off
)
3653 return MSVCP_basic_string_wchar_find_last_not_of_cstr_substr(
3654 this, find
, off
, MSVCP_char_traits_wchar_length(find
));
3657 /* ?find_last_not_of@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEI_WI@Z */
3658 /* ?find_last_not_of@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBA_K_W_K@Z */
3659 /* ?find_last_not_of@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEIGI@Z */
3660 /* ?find_last_not_of@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBA_KG_K@Z */
3661 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_find_last_not_of_ch
, 12)
3662 MSVCP_size_t __thiscall
MSVCP_basic_string_wchar_find_last_not_of_ch(
3663 const basic_string_wchar
*this, wchar_t ch
, MSVCP_size_t off
)
3665 return MSVCP_basic_string_wchar_find_last_not_of_cstr_substr(this, &ch
, off
, 1);
3668 /* ?replace@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV12@IIPB_WI@Z */
3669 /* ?replace@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAAEAV12@_K0PEB_W0@Z */
3670 /* ?replace@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV12@IIPBGI@Z */
3671 /* ?replace@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAAEAV12@_K0PEBG0@Z */
3672 DEFINE_THISCALL_WRAPPER(basic_string_wchar_replace_cstr_len
, 20)
3673 basic_string_wchar
* __thiscall
basic_string_wchar_replace_cstr_len(basic_string_wchar
*this,
3674 MSVCP_size_t off
, MSVCP_size_t len
, const wchar_t *str
, MSVCP_size_t str_len
)
3676 MSVCP_size_t inside_pos
= -1;
3677 wchar_t *ptr
= basic_string_wchar_ptr(this);
3679 TRACE("%p %ld %ld %p %ld\n", this, off
, len
, str
, str_len
);
3681 if(this->size
< off
)
3682 MSVCP__String_base_Xran();
3684 if(len
> this->size
-off
)
3685 len
= this->size
-off
;
3687 if(MSVCP_basic_string_wchar_npos
-str_len
<= this->size
-len
)
3688 MSVCP__String_base_Xlen();
3690 if(basic_string_wchar_inside(this, str
))
3691 inside_pos
= str
-ptr
;
3694 basic_string_wchar_grow(this, this->size
-len
+str_len
, FALSE
);
3695 ptr
= basic_string_wchar_ptr(this);
3698 if(inside_pos
== -1) {
3699 memmove(ptr
+off
+str_len
, ptr
+off
+len
, (this->size
-off
-len
)*sizeof(wchar_t));
3700 memcpy(ptr
+off
, str
, str_len
*sizeof(wchar_t));
3701 } else if(len
>= str_len
) {
3702 memmove(ptr
+off
, ptr
+inside_pos
, str_len
*sizeof(wchar_t));
3703 memmove(ptr
+off
+str_len
, ptr
+off
+len
, (this->size
-off
-len
)*sizeof(wchar_t));
3707 memmove(ptr
+off
+str_len
, ptr
+off
+len
, (this->size
-off
-len
)*sizeof(wchar_t));
3709 if(inside_pos
< off
+len
) {
3710 size
= off
+len
-inside_pos
;
3713 memmove(ptr
+off
, ptr
+inside_pos
, size
*sizeof(wchar_t));
3719 memmove(ptr
+off
+size
, ptr
+off
+str_len
, (str_len
-size
)*sizeof(wchar_t));
3722 basic_string_wchar_eos(this, this->size
-len
+str_len
);
3726 /* ?replace@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV12@IIPB_W@Z */
3727 /* ?replace@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAAEAV12@_K0PEB_W@Z */
3728 /* ?replace@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV12@IIPBG@Z */
3729 /* ?replace@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAAEAV12@_K0PEBG@Z */
3730 DEFINE_THISCALL_WRAPPER(basic_string_wchar_replace_cstr
, 16)
3731 basic_string_wchar
* __thiscall
basic_string_wchar_replace_cstr(basic_string_wchar
*this,
3732 MSVCP_size_t off
, MSVCP_size_t len
, const wchar_t *str
)
3734 return basic_string_wchar_replace_cstr_len(this, off
, len
, str
,
3735 MSVCP_char_traits_wchar_length(str
));
3738 /* ?replace@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV12@IIABV12@II@Z */
3739 /* ?replace@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAAEAV12@_K0AEBV12@00@Z */
3740 /* ?replace@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV12@IIABV12@II@Z */
3741 /* ?replace@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAAEAV12@_K0AEBV12@00@Z */
3742 DEFINE_THISCALL_WRAPPER(basic_string_wchar_replace_substr
, 24)
3743 basic_string_wchar
* __thiscall
basic_string_wchar_replace_substr(basic_string_wchar
*this, MSVCP_size_t off
,
3744 MSVCP_size_t len
, const basic_string_wchar
*str
, MSVCP_size_t str_off
, MSVCP_size_t str_len
)
3746 if(str
->size
< str_off
)
3747 MSVCP__String_base_Xran();
3749 if(str_len
> str
->size
-str_off
)
3750 str_len
= str
->size
-str_off
;
3752 return basic_string_wchar_replace_cstr_len(this, off
, len
,
3753 basic_string_wchar_const_ptr(str
)+str_off
, str_len
);
3756 /* ?replace@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV12@IIABV12@@Z */
3757 /* ?replace@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAAEAV12@_K0AEBV12@@Z */
3758 /* ?replace@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV12@IIABV12@@Z */
3759 /* ?replace@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAAEAV12@_K0AEBV12@@Z */
3760 DEFINE_THISCALL_WRAPPER(basic_string_wchar_replace
, 16)
3761 basic_string_wchar
* __thiscall
basic_string_wchar_replace(basic_string_wchar
*this,
3762 MSVCP_size_t off
, MSVCP_size_t len
, const basic_string_wchar
*str
)
3764 return basic_string_wchar_replace_cstr_len(this, off
, len
,
3765 basic_string_wchar_const_ptr(str
), str
->size
);
3768 /* ?replace@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV12@III_W@Z */
3769 /* ?replace@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAAEAV12@_K00_W@Z */
3770 /* ?replace@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV12@IIIG@Z */
3771 /* ?replace@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAAEAV12@_K00G@Z */
3772 DEFINE_THISCALL_WRAPPER(basic_string_wchar_replace_ch
, 20)
3773 basic_string_wchar
* __thiscall
basic_string_wchar_replace_ch(basic_string_wchar
*this,
3774 MSVCP_size_t off
, MSVCP_size_t len
, MSVCP_size_t count
, wchar_t ch
)
3776 wchar_t *ptr
= basic_string_wchar_ptr(this);
3778 TRACE("%p %ld %ld %ld %c\n", this, off
, len
, count
, ch
);
3780 if(this->size
< off
)
3781 MSVCP__String_base_Xran();
3783 if(len
> this->size
-off
)
3784 len
= this->size
-off
;
3786 if(MSVCP_basic_string_wchar_npos
-count
<= this->size
-len
)
3787 MSVCP__String_base_Xlen();
3790 basic_string_wchar_grow(this, this->size
-len
+count
, FALSE
);
3791 ptr
= basic_string_wchar_ptr(this);
3794 memmove(ptr
+off
+count
, ptr
+off
+len
, (this->size
-off
-len
)*sizeof(wchar_t));
3795 MSVCP_char_traits_wchar_assignn(ptr
+off
, count
, ch
);
3796 basic_string_wchar_eos(this, this->size
-len
+count
);
3801 /* ?insert@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV12@IABV12@@Z */
3802 /* ?insert@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAAEAV12@_KAEBV12@@Z */
3803 /* ?insert@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV12@IABV12@@Z */
3804 /* ?insert@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAAEAV12@_KAEBV12@@Z */
3805 DEFINE_THISCALL_WRAPPER(basic_string_wchar_insert
, 12)
3806 basic_string_wchar
* __thiscall
basic_string_wchar_insert(basic_string_wchar
*this,
3807 MSVCP_size_t off
, const basic_string_wchar
*str
)
3809 return basic_string_wchar_replace(this, off
, 0, str
);
3812 /* ?insert@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV12@IABV12@II@Z */
3813 /* ?insert@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAAEAV12@_KAEBV12@00@Z */
3814 /* ?insert@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV12@IABV12@II@Z */
3815 /* ?insert@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAAEAV12@_KAEBV12@00@Z */
3816 DEFINE_THISCALL_WRAPPER(basic_string_wchar_insert_substr
, 20)
3817 basic_string_wchar
* __thiscall
basic_string_wchar_insert_substr(
3818 basic_string_wchar
*this, MSVCP_size_t off
, const basic_string_wchar
*str
,
3819 MSVCP_size_t str_off
, MSVCP_size_t str_count
)
3821 return basic_string_wchar_replace_substr(this, off
, 0, str
, str_off
, str_count
);
3824 /* ?insert@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV12@IPB_W@Z */
3825 /* ?insert@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAAEAV12@_KPEB_W@Z */
3826 /* ?insert@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV12@IPBG@Z */
3827 /* ?insert@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAAEAV12@_KPEBG@Z */
3828 DEFINE_THISCALL_WRAPPER(basic_string_wchar_insert_cstr
, 12)
3829 basic_string_wchar
* __thiscall
basic_string_wchar_insert_cstr(
3830 basic_string_wchar
*this, MSVCP_size_t off
, const wchar_t *str
)
3832 return basic_string_wchar_replace_cstr(this, off
, 0, str
);
3835 /* ?insert@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV12@IPB_WI@Z */
3836 /* ?insert@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAAEAV12@_KPEB_W0@Z */
3837 /* ?insert@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV12@IPBGI@Z */
3838 /* ?insert@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAAEAV12@_KPEBG0@Z */
3839 DEFINE_THISCALL_WRAPPER(basic_string_wchar_insert_cstr_len
, 16)
3840 basic_string_wchar
* __thiscall
basic_string_wchar_insert_cstr_len(basic_string_wchar
*this,
3841 MSVCP_size_t off
, const wchar_t *str
, MSVCP_size_t str_len
)
3843 return basic_string_wchar_replace_cstr_len(this, off
, 0, str
, str_len
);
3846 /* ?insert@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV12@II_W@Z */
3847 /* ?insert@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAAEAV12@_K0_W@Z */
3848 /* ?insert@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV12@IIG@Z */
3849 /* ?insert@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAAEAV12@_K0G@Z */
3850 DEFINE_THISCALL_WRAPPER(basic_string_wchar_insert_chn
, 16)
3851 basic_string_wchar
* __thiscall
basic_string_wchar_insert_chn(basic_string_wchar
*this,
3852 MSVCP_size_t off
, MSVCP_size_t count
, wchar_t ch
)
3854 return basic_string_wchar_replace_ch(this, off
, 0, count
, ch
);
3857 /* ??A?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAA_WI@Z */
3858 /* ??A?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAAEA_W_K@Z */
3859 /* ??A?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAGI@Z */
3860 /* ??A?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAAEAG_K@Z */
3861 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_operator_at
, 8)
3862 wchar_t* __thiscall
MSVCP_basic_string_wchar_operator_at(
3863 basic_string_wchar
*this, MSVCP_size_t pos
)
3865 TRACE("%p %lu\n", this, pos
);
3867 assert(this->size
>= pos
);
3868 return basic_string_wchar_ptr(this)+pos
;
3871 /* ??A?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEAB_WI@Z */
3872 /* ??A?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBAAEB_W_K@Z */
3873 /* ??A?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEABGI@Z */
3874 /* ??A?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBAAEBG_K@Z */
3875 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_const_operator_at
, 8)
3876 const wchar_t* __thiscall
MSVCP_basic_string_wchar_const_operator_at(
3877 const basic_string_wchar
*this, MSVCP_size_t pos
)
3879 TRACE("%p %lu\n", this, pos
);
3881 assert(this->size
>= pos
);
3882 return basic_string_wchar_const_ptr(this)+pos
;
3885 /* ??A?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAA_WU_Size_type_nosscl@01@@Z */
3886 /* ??A?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAAEA_WU_Size_type_nosscl@01@@Z */
3887 /* ??A?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAGU_Size_type_nosscl@01@@Z */
3888 /* ??A?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAAEAGU_Size_type_nosscl@01@@Z */
3889 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_operator_at_noverify
, 8)
3890 wchar_t* __thiscall
MSVCP_basic_string_wchar_operator_at_noverify(
3891 basic_string_wchar
*this, size_t_noverify pos
)
3893 TRACE("%p %lu\n", this, pos
.val
);
3894 return basic_string_wchar_ptr(this)+pos
.val
;
3897 /* ??A?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEAB_WU_Size_type_nosscl@01@@Z */
3898 /* ??A?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBAAEB_WU_Size_type_nosscl@01@@Z */
3899 /* ??A?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEABGU_Size_type_nosscl@01@@Z */
3900 /* ??A?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBAAEBGU_Size_type_nosscl@01@@Z */
3901 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_operator_const_at_noverify
, 8)
3902 const wchar_t* __thiscall
MSVCP_basic_string_wchar_operator_const_at_noverify(
3903 const basic_string_wchar
*this, size_t_noverify pos
)
3905 TRACE("%p %lu\n", this, pos
.val
);
3906 return basic_string_wchar_const_ptr(this)+pos
.val
;
3909 /* ?at@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAA_WI@Z */
3910 /* ?at@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAAEA_W_K@Z */
3911 /* ?at@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAGI@Z */
3912 /* ?at@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAAEAG_K@Z */
3913 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_at
, 8)
3914 wchar_t* __thiscall
MSVCP_basic_string_wchar_at(
3915 basic_string_wchar
*this, MSVCP_size_t pos
)
3917 TRACE("%p %lu\n", this, pos
);
3919 if(this->size
<= pos
)
3920 MSVCP__String_base_Xran();
3922 return basic_string_wchar_ptr(this)+pos
;
3925 /* ?at@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEAB_WI@Z */
3926 /* ?at@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBAAEB_W_K@Z */
3927 /* ?at@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEABGI@Z */
3928 /* ?at@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBAAEBG_K@Z */
3929 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_const_at
, 8)
3930 const wchar_t* __thiscall
MSVCP_basic_string_wchar_const_at(
3931 const basic_string_wchar
*this, MSVCP_size_t pos
)
3933 TRACE("%p %lu\n", this, pos
);
3935 if(this->size
<= pos
)
3936 MSVCP__String_base_Xran();
3938 return basic_string_wchar_const_ptr(this)+pos
;
3941 /* ?resize@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEXI_W@Z */
3942 /* ?resize@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAX_K_W@Z */
3943 /* ?resize@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEXIG@Z */
3944 /* ?resize@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAX_KG@Z */
3945 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_resize_ch
, 12)
3946 void __thiscall
MSVCP_basic_string_wchar_resize_ch(
3947 basic_string_wchar
*this, MSVCP_size_t size
, wchar_t ch
)
3949 TRACE("%p %lu %c\n", this, size
, ch
);
3951 if(size
<= this->size
)
3952 MSVCP_basic_string_wchar_erase(this, size
, this->size
);
3954 MSVCP_basic_string_wchar_append_len_ch(this, size
-this->size
, ch
);
3957 /* ?resize@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEXI@Z */
3958 /* ?resize@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAX_K@Z */
3959 /* ?resize@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEXI@Z */
3960 /* ?resize@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAX_K@Z */
3961 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_resize
, 8)
3962 void __thiscall
MSVCP_basic_string_wchar_resize(
3963 basic_string_wchar
*this, MSVCP_size_t size
)
3965 MSVCP_basic_string_wchar_resize_ch(this, size
, '\0');
3968 /* ?clear@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEXXZ */
3969 /* ?clear@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAXXZ */
3970 /* ?clear@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEXXZ */
3971 /* ?clear@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAXXZ */
3972 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_clear
, 4)
3973 void __thiscall
MSVCP_basic_string_wchar_clear(basic_string_wchar
*this)
3975 basic_string_wchar_eos(this, 0);
3978 /* _String_val class */
3979 /* ??_F?$_String_val@DV?$allocator@D@std@@@std@@QAEXXZ */
3980 /* ??_F?$_String_val@DV?$allocator@D@std@@@std@@QEAAXXZ */
3981 /* ??_F?$_String_val@GV?$allocator@G@std@@@std@@QAEXXZ */
3982 /* ??_F?$_String_val@GV?$allocator@G@std@@@std@@QEAAXXZ */
3983 /* ??_F?$_String_val@_WV?$allocator@_W@std@@@std@@QAEXXZ */
3984 /* ??_F?$_String_val@_WV?$allocator@_W@std@@@std@@QEAAXXZ */
3985 DEFINE_THISCALL_WRAPPER(_String_val_ctor
, 4)
3986 void* __thiscall
_String_val_ctor(void *this)
3988 TRACE("%p\n", this);
3992 /* ??0?$_String_val@DV?$allocator@D@std@@@std@@IAE@V?$allocator@D@1@@Z */
3993 /* ??0?$_String_val@DV?$allocator@D@std@@@std@@IEAA@V?$allocator@D@1@@Z */
3994 /* ??0?$_String_val@GV?$allocator@G@std@@@std@@IAE@V?$allocator@G@1@@Z */
3995 /* ??0?$_String_val@GV?$allocator@G@std@@@std@@IEAA@V?$allocator@G@1@@Z */
3996 /* ??0?$_String_val@_WV?$allocator@_W@std@@@std@@IAE@V?$allocator@_W@1@@Z */
3997 /* ??0?$_String_val@_WV?$allocator@_W@std@@@std@@IEAA@V?$allocator@_W@1@@Z */
3998 /* ??0?$_String_val@DV?$allocator@D@std@@@std@@QAE@ABV01@@Z */
3999 /* ??0?$_String_val@DV?$allocator@D@std@@@std@@QEAA@AEBV01@@Z */
4000 /* ??0?$_String_val@GV?$allocator@G@std@@@std@@QAE@ABV01@@Z */
4001 /* ??0?$_String_val@GV?$allocator@G@std@@@std@@QEAA@AEBV01@@Z */
4002 /* ??0?$_String_val@_WV?$allocator@_W@std@@@std@@QAE@ABV01@@Z */
4003 /* ??0?$_String_val@_WV?$allocator@_W@std@@@std@@QEAA@AEBV01@@Z */
4004 /* ??4?$_String_val@DV?$allocator@D@std@@@std@@QAEAAV01@ABV01@@Z */
4005 /* ??4?$_String_val@DV?$allocator@D@std@@@std@@QEAAAEAV01@AEBV01@@Z */
4006 /* ??4?$_String_val@GV?$allocator@G@std@@@std@@QAEAAV01@ABV01@@Z */
4007 /* ??4?$_String_val@GV?$allocator@G@std@@@std@@QEAAAEAV01@AEBV01@@Z */
4008 /* ??4?$_String_val@_WV?$allocator@_W@std@@@std@@QAEAAV01@ABV01@@Z */
4009 /* ??4?$_String_val@_WV?$allocator@_W@std@@@std@@QEAAAEAV01@AEBV01@@Z */
4010 /* ??4?$_String_val@DV?$allocator@D@std@@@std@@QAEAAV01@ABV01@@Z */
4011 DEFINE_THISCALL_WRAPPER(_String_val_null_ctor
, 8)
4012 void* __thiscall
_String_val_null_ctor(void *this, const void *misc
)
4014 TRACE("%p %p\n", this, misc
);
4018 #if _MSVCP_VER < 80 /* old iterator functions */
4022 } basic_string_char_iterator
;
4026 } basic_string_wchar_iterator
;
4028 /* ?_Pdif@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@KAIVconst_iterator@12@0@Z */
4029 /* ?_Pdif@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@CAIV?$_Ptrit@DHPBDABDPADAAD@2@0@Z */
4030 MSVCP_size_t __cdecl
basic_string_char__Pdif(basic_string_char_iterator i1
, basic_string_char_iterator i2
)
4032 TRACE("(%p %p)\n", i1
.pos
, i2
.pos
);
4033 return !i1
.pos
? 0 : i1
.pos
-i2
.pos
;
4036 /* ?erase@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE?AViterator@12@V312@0@Z */
4037 /* ?erase@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE?AV?$_Ptrit@DHPADAADPADAAD@2@V32@0@Z */
4038 DEFINE_THISCALL_WRAPPER(basic_string_char_erase_iter_range
, 16)
4039 basic_string_char_iterator
* __thiscall
basic_string_char_erase_iter_range(basic_string_char
*this,
4040 basic_string_char_iterator
*ret
, basic_string_char_iterator beg
, basic_string_char_iterator end
)
4044 ret
->pos
= basic_string_char_ptr(this);
4045 off
= basic_string_char__Pdif(beg
, *ret
);
4047 MSVCP_basic_string_char_erase(this, off
, basic_string_char__Pdif(end
, beg
));
4049 ret
->pos
= basic_string_char_ptr(this)+off
;
4053 /* ?erase@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE?AViterator@12@V312@@Z */
4054 /* ?erase@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE?AV?$_Ptrit@DHPADAADPADAAD@2@V32@@Z */
4055 DEFINE_THISCALL_WRAPPER(basic_string_char_erase_iter
, 12)
4056 basic_string_char_iterator
* __thiscall
basic_string_char_erase_iter(basic_string_char
*this,
4057 basic_string_char_iterator
*ret
, basic_string_char_iterator pos
)
4061 ret
->pos
= basic_string_char_ptr(this);
4062 off
= basic_string_char__Pdif(pos
, *ret
);
4064 MSVCP_basic_string_char_erase(this, off
, 1);
4066 ret
->pos
= basic_string_char_ptr(this)+off
;
4070 /* ?assign@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@Vconst_iterator@12@0@Z */
4071 /* ?assign@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@V?$_Ptrit@DHPBDABDPADAAD@2@0@Z */
4072 DEFINE_THISCALL_WRAPPER(basic_string_char_assign_iter
, 12)
4073 basic_string_char
* __thiscall
basic_string_char_assign_iter(basic_string_char
*this,
4074 basic_string_char_iterator beg
, basic_string_char_iterator end
)
4076 return MSVCP_basic_string_char_assign_ptr_ptr(this, beg
.pos
, end
.pos
);
4079 /* ??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@Vconst_iterator@01@0@Z */
4080 /* ??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@V?$_Ptrit@DHPBDABDPADAAD@1@0@Z */
4081 DEFINE_THISCALL_WRAPPER(basic_string_char_ctor_iter
, 12)
4082 basic_string_char
* __thiscall
basic_string_char_ctor_iter(basic_string_char
*this,
4083 basic_string_char_iterator beg
, basic_string_char_iterator end
)
4085 return MSVCP_basic_string_char_ctor_cstr_len(this, beg
.pos
, end
.pos
-beg
.pos
);
4088 /* ?append@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@Vconst_iterator@12@0@Z */
4089 /* ?append@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@V?$_Ptrit@DHPBDABDPADAAD@2@0@Z */
4090 DEFINE_THISCALL_WRAPPER(basic_string_char_append_iter
, 12)
4091 basic_string_char
* __thiscall
basic_string_char_append_iter(basic_string_char
*this,
4092 basic_string_char_iterator beg
, basic_string_char_iterator end
)
4094 return basic_string_char_replace_cstr_len(this, this->size
, 0, beg
.pos
, end
.pos
-beg
.pos
);
4097 /* ?replace@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@Viterator@12@0Vconst_iterator@12@1@Z */
4098 /* ?replace@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@V?$_Ptrit@DHPADAADPADAAD@2@0V?$_Ptrit@DHPBDABDPADAAD@2@1@Z */
4099 DEFINE_THISCALL_WRAPPER(basic_string_char_replace_iter_iter
, 20)
4100 basic_string_char
* __thiscall
basic_string_char_replace_iter_iter(basic_string_char
*this,
4101 basic_string_char_iterator beg
, basic_string_char_iterator end
,
4102 basic_string_char_iterator rbeg
, basic_string_char_iterator rend
)
4104 return basic_string_char_replace_cstr_len(this, beg
.pos
-basic_string_char_ptr(this),
4105 end
.pos
-beg
.pos
, rbeg
.pos
, rend
.pos
-rbeg
.pos
);
4108 /* ?replace@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@Viterator@12@0ABV12@@Z */
4109 /* ?replace@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@V?$_Ptrit@DHPADAADPADAAD@2@0ABV12@@Z */
4110 DEFINE_THISCALL_WRAPPER(basic_string_char_replace_iter_bstr
, 16)
4111 basic_string_char
* __thiscall
basic_string_char_replace_iter_bstr(basic_string_char
*this,
4112 basic_string_char_iterator beg
, basic_string_char_iterator end
, const basic_string_char
*str
)
4114 return basic_string_char_replace_cstr_len(this, beg
.pos
-basic_string_char_ptr(this),
4115 end
.pos
-beg
.pos
, basic_string_char_const_ptr(str
), str
->size
);
4118 /* ?replace@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@Viterator@12@0ID@Z */
4119 /* ?replace@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@V?$_Ptrit@DHPADAADPADAAD@2@0ID@Z */
4120 DEFINE_THISCALL_WRAPPER(basic_string_char_replace_iter_ch
, 20)
4121 basic_string_char
* __thiscall
basic_string_char_replace_iter_ch(basic_string_char
*this,
4122 basic_string_char_iterator beg
, basic_string_char_iterator end
, MSVCP_size_t count
, char ch
)
4124 /* TODO: add more efficient implementation */
4125 MSVCP_size_t off
= beg
.pos
-basic_string_char_ptr(this);
4127 basic_string_char_replace_cstr_len(this, off
, end
.pos
-beg
.pos
, NULL
, 0);
4129 basic_string_char_replace_cstr_len(this, off
, 0, &ch
, 1);
4133 /* ?replace@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@Viterator@12@0PBD1@Z */
4134 /* ?replace@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@V?$_Ptrit@DHPADAADPADAAD@2@0PBD1@Z */
4135 DEFINE_THISCALL_WRAPPER(basic_string_char_replace_iter_beg_end
, 20)
4136 basic_string_char
* __thiscall
basic_string_char_replace_iter_beg_end(basic_string_char
*this,
4137 basic_string_char_iterator beg
, basic_string_char_iterator end
, const char *rbeg
, const char *rend
)
4139 return basic_string_char_replace_cstr_len(this, beg
.pos
-basic_string_char_ptr(this),
4140 end
.pos
-beg
.pos
, rbeg
, rend
-rbeg
);
4143 /* ?replace@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@Viterator@12@0PBD@Z */
4144 /* ?replace@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@V?$_Ptrit@DHPADAADPADAAD@2@0PBD@Z */
4145 DEFINE_THISCALL_WRAPPER(basic_string_char_replace_iter_cstr
, 16)
4146 basic_string_char
* __thiscall
basic_string_char_replace_iter_cstr(basic_string_char
*this,
4147 basic_string_char_iterator beg
, basic_string_char_iterator end
, const char *str
)
4149 return basic_string_char_replace_cstr_len(this, beg
.pos
-basic_string_char_ptr(this),
4150 end
.pos
-beg
.pos
, str
, strlen(str
));
4153 /* ?replace@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@Viterator@12@0PBDI@Z */
4154 /* ?replace@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@V?$_Ptrit@DHPADAADPADAAD@2@0PBDI@Z */
4155 DEFINE_THISCALL_WRAPPER(basic_string_char_replace_iter_cstr_len
, 20)
4156 basic_string_char
* __thiscall
basic_string_char_replace_iter_cstr_len(basic_string_char
*this,
4157 basic_string_char_iterator beg
, basic_string_char_iterator end
, const char *str
, MSVCP_size_t len
)
4159 return basic_string_char_replace_cstr_len(this, beg
.pos
-basic_string_char_ptr(this),
4160 end
.pos
-beg
.pos
, str
, len
);
4163 /* ?insert@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEXViterator@12@ID@Z */
4164 /* ?insert@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEXV?$_Ptrit@DHPADAADPADAAD@2@ID@Z */
4165 DEFINE_THISCALL_WRAPPER(basic_string_char_insert_iter_chn
, 16)
4166 void __thiscall
basic_string_char_insert_iter_chn(basic_string_char
*this,
4167 basic_string_char_iterator where
, MSVCP_size_t count
, char ch
)
4169 basic_string_char_iterator iter
= { basic_string_char_ptr(this) };
4170 MSVCP_size_t off
= basic_string_char__Pdif(where
, iter
);
4172 basic_string_char_insert_chn(this, off
, count
, ch
);
4175 /* ?insert@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE?AViterator@12@V312@D@Z */
4176 /* ?insert@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE?AV?$_Ptrit@DHPADAADPADAAD@2@V32@D@Z */
4177 DEFINE_THISCALL_WRAPPER(basic_string_char_insert_iter_ch
, 16)
4178 basic_string_char_iterator
* __thiscall
basic_string_char_insert_iter_ch(basic_string_char
*this,
4179 basic_string_char_iterator
*ret
, basic_string_char_iterator where
, char ch
)
4183 ret
->pos
= basic_string_char_ptr(this);
4184 off
= basic_string_char__Pdif(where
, *ret
);
4186 basic_string_char_insert_chn(this, off
, 1, ch
);
4187 ret
->pos
= basic_string_char_ptr(this)+off
;
4191 /* ?insert@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE?AViterator@12@V312@@Z */
4192 /* ?insert@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE?AV?$_Ptrit@DHPADAADPADAAD@2@V32@@Z */
4193 DEFINE_THISCALL_WRAPPER(basic_string_char_insert_iter_null
, 12)
4194 basic_string_char_iterator
* __thiscall
basic_string_char_insert_iter_null(basic_string_char
*this,
4195 basic_string_char_iterator
*ret
, basic_string_char_iterator where
)
4197 return basic_string_char_insert_iter_ch(this, ret
, where
, 0);
4200 /* ?begin@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE?AViterator@12@XZ */
4201 /* ?begin@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBE?AVconst_iterator@12@XZ */
4202 /* ?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 */
4203 /* ?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 */
4204 /* ?begin@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE?AV?$_Ptrit@DHPADAADPADAAD@2@XZ */
4205 /* ?begin@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBE?AV?$_Ptrit@DHPBDABDPADAAD@2@XZ */
4206 /* ?rend@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE?AV?$reverse_iterator@V?$_Ptrit@DHPADAADPADAAD@std@@@2@XZ */
4207 /* ?rend@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBE?AV?$reverse_iterator@V?$_Ptrit@DHPBDABDPADAAD@std@@@2@XZ */
4208 DEFINE_THISCALL_WRAPPER(basic_string_char_begin
, 8)
4209 basic_string_char_iterator
* __thiscall
basic_string_char_begin(
4210 basic_string_char
*this, basic_string_char_iterator
*ret
)
4212 ret
->pos
= basic_string_char_ptr(this);
4216 /* ?end@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE?AViterator@12@XZ */
4217 /* ?end@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBE?AVconst_iterator@12@XZ */
4218 /* ?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 */
4219 /* ?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 */
4220 /* ?end@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE?AV?$_Ptrit@DHPADAADPADAAD@2@XZ */
4221 /* ?end@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBE?AV?$_Ptrit@DHPBDABDPADAAD@2@XZ */
4222 /* ?rbegin@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE?AV?$reverse_iterator@V?$_Ptrit@DHPADAADPADAAD@std@@@2@XZ */
4223 /* ?rbegin@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBE?AV?$reverse_iterator@V?$_Ptrit@DHPBDABDPADAAD@std@@@2@XZ */
4224 DEFINE_THISCALL_WRAPPER(basic_string_char_end
, 8)
4225 basic_string_char_iterator
* __thiscall
basic_string_char_end(
4226 basic_string_char
*this, basic_string_char_iterator
*ret
)
4228 ret
->pos
= basic_string_char_ptr(this)+this->size
;
4232 /* ?_Pdif@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@KAIVconst_iterator@12@0@Z */
4233 /* ?_Pdif@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@KAIVconst_iterator@12@0@Z */
4234 /* ?_Pdif@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@CAIV?$_Ptrit@_WHPB_WAB_WPA_WAA_W@2@0@Z */
4235 /* ?_Pdif@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@CAIV?$_Ptrit@GHPBGABGPAGAAG@2@0@Z */
4236 MSVCP_size_t __cdecl
basic_string_wchar__Pdif(basic_string_wchar_iterator i1
, basic_string_wchar_iterator i2
)
4238 TRACE("(%p %p)\n", i1
.pos
, i2
.pos
);
4239 return !i1
.pos
? 0 : i1
.pos
-i2
.pos
;
4242 /* ?erase@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE?AViterator@12@V312@0@Z */
4243 /* ?erase@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAE?AViterator@12@V312@0@Z */
4244 /* ?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 */
4245 /* ?erase@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAE?AV?$_Ptrit@GHPAGAAGPAGAAG@2@V32@0@Z */
4246 DEFINE_THISCALL_WRAPPER(basic_string_wchar_erase_iter_range
, 16)
4247 basic_string_wchar_iterator
* __thiscall
basic_string_wchar_erase_iter_range(basic_string_wchar
*this,
4248 basic_string_wchar_iterator
*ret
, basic_string_wchar_iterator beg
, basic_string_wchar_iterator end
)
4252 ret
->pos
= basic_string_wchar_ptr(this);
4253 off
= basic_string_wchar__Pdif(beg
, *ret
);
4255 MSVCP_basic_string_wchar_erase(this, off
, basic_string_wchar__Pdif(end
, beg
));
4257 ret
->pos
= basic_string_wchar_ptr(this)+off
;
4261 /* ?erase@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE?AViterator@12@V312@@Z */
4262 /* ?erase@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAE?AViterator@12@V312@@Z */
4263 /* ?erase@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE?AV?$_Ptrit@_WHPA_WAA_WPA_WAA_W@2@V32@@Z */
4264 /* ?erase@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAE?AV?$_Ptrit@GHPAGAAGPAGAAG@2@V32@@Z */
4265 DEFINE_THISCALL_WRAPPER(basic_string_wchar_erase_iter
, 12)
4266 basic_string_wchar_iterator
* __thiscall
basic_string_wchar_erase_iter(basic_string_wchar
*this,
4267 basic_string_wchar_iterator
*ret
, basic_string_wchar_iterator pos
)
4271 ret
->pos
= basic_string_wchar_ptr(this);
4272 off
= basic_string_wchar__Pdif(pos
, *ret
);
4274 MSVCP_basic_string_wchar_erase(this, off
, 1);
4276 ret
->pos
= basic_string_wchar_ptr(this)+off
;
4280 /* ?assign@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV12@Vconst_iterator@12@0@Z */
4281 /* ?assign@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV12@Vconst_iterator@12@0@Z */
4282 /* ?assign@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV12@V?$_Ptrit@_WHPB_WAB_WPA_WAA_W@2@0@Z */
4283 /* ?assign@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV12@V?$_Ptrit@GHPBGABGPAGAAG@2@0@Z */
4284 DEFINE_THISCALL_WRAPPER(basic_string_wchar_assign_iter
, 12)
4285 basic_string_wchar
* __thiscall
basic_string_wchar_assign_iter(basic_string_wchar
*this,
4286 basic_string_wchar_iterator beg
, basic_string_wchar_iterator end
)
4288 return MSVCP_basic_string_wchar_assign_ptr_ptr(this, beg
.pos
, end
.pos
);
4291 /* ??0?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE@Vconst_iterator@01@0@Z */
4292 /* ??0?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAE@Vconst_iterator@01@0@Z */
4293 /* ??0?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE@V?$_Ptrit@_WHPB_WAB_WPA_WAA_W@1@0@Z */
4294 /* ??0?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAE@V?$_Ptrit@GHPBGABGPAGAAG@1@0@Z */
4295 DEFINE_THISCALL_WRAPPER(basic_string_wchar_ctor_iter
, 12)
4296 basic_string_wchar
* __thiscall
basic_string_wchar_ctor_iter(basic_string_wchar
*this,
4297 basic_string_wchar_iterator beg
, basic_string_wchar_iterator end
)
4299 return MSVCP_basic_string_wchar_ctor_cstr_len(this, beg
.pos
, end
.pos
-beg
.pos
);
4302 /* ?append@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV12@Vconst_iterator@12@0@Z */
4303 /* ?append@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV12@Vconst_iterator@12@0@Z */
4304 /* ?append@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV12@V?$_Ptrit@_WHPB_WAB_WPA_WAA_W@2@0@Z */
4305 /* ?append@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV12@V?$_Ptrit@GHPBGABGPAGAAG@2@0@Z */
4306 DEFINE_THISCALL_WRAPPER(basic_string_wchar_append_iter
, 12)
4307 basic_string_wchar
* __thiscall
basic_string_wchar_append_iter(basic_string_wchar
*this,
4308 basic_string_wchar_iterator beg
, basic_string_wchar_iterator end
)
4310 return basic_string_wchar_replace_cstr_len(this, this->size
, 0, beg
.pos
, end
.pos
-beg
.pos
);
4313 /* ?replace@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV12@Viterator@12@0Vconst_iterator@12@1@Z */
4314 /* ?replace@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV12@Viterator@12@0Vconst_iterator@12@1@Z */
4315 /* ?replace@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV12@V?$_Ptrit@GHPAGAAGPAGAAG@2@0V?$_Ptrit@GHPBGABGPAGAAG@2@1@Z */
4316 /* ?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 */
4317 DEFINE_THISCALL_WRAPPER(basic_string_wchar_replace_iter_iter
, 20)
4318 basic_string_wchar
* __thiscall
basic_string_wchar_replace_iter_iter(basic_string_wchar
*this,
4319 basic_string_wchar_iterator beg
, basic_string_wchar_iterator end
,
4320 basic_string_wchar_iterator rbeg
, basic_string_wchar_iterator rend
)
4322 return basic_string_wchar_replace_cstr_len(this, beg
.pos
-basic_string_wchar_ptr(this),
4323 end
.pos
-beg
.pos
, rbeg
.pos
, rend
.pos
-rbeg
.pos
);
4326 /* ?replace@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV12@Viterator@12@0ABV12@@Z */
4327 /* ?replace@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV12@Viterator@12@0ABV12@@Z */
4328 /* ?replace@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV12@V?$_Ptrit@GHPAGAAGPAGAAG@2@0ABV12@@Z */
4329 /* ?replace@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV12@V?$_Ptrit@_WHPA_WAA_WPA_WAA_W@2@0ABV12@@Z */
4330 DEFINE_THISCALL_WRAPPER(basic_string_wchar_replace_iter_bstr
, 16)
4331 basic_string_wchar
* __thiscall
basic_string_wchar_replace_iter_bstr(basic_string_wchar
*this,
4332 basic_string_wchar_iterator beg
, basic_string_wchar_iterator end
, basic_string_wchar
*str
)
4334 return basic_string_wchar_replace_cstr_len(this, beg
.pos
-basic_string_wchar_ptr(this),
4335 end
.pos
-beg
.pos
, basic_string_wchar_ptr(str
), str
->size
);
4338 /* ?replace@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV12@Viterator@12@0IG@Z */
4339 /* ?replace@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV12@Viterator@12@0I_W@Z */
4340 /* ?replace@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV12@V?$_Ptrit@GHPAGAAGPAGAAG@2@0IG@Z */
4341 /* ?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 */
4342 DEFINE_THISCALL_WRAPPER(basic_string_wchar_replace_iter_ch
, 20)
4343 basic_string_wchar
* __thiscall
basic_string_wchar_replace_iter_ch(basic_string_wchar
*this,
4344 basic_string_wchar_iterator beg
, basic_string_wchar_iterator end
, MSVCP_size_t count
, wchar_t ch
)
4346 /* TODO: add more efficient implementation */
4347 MSVCP_size_t off
= beg
.pos
-basic_string_wchar_ptr(this);
4349 basic_string_wchar_replace_cstr_len(this, off
, end
.pos
-beg
.pos
, NULL
, 0);
4351 basic_string_wchar_replace_cstr_len(this, off
, 0, &ch
, 1);
4355 /* ?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 */
4356 /* ?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 */
4357 static basic_string_wchar
* basic_string_wchar_replace_iter_ptr_ptr(basic_string_wchar
*this,
4358 basic_string_wchar_iterator beg
, basic_string_wchar_iterator end
,
4359 const wchar_t *res_beg
, const wchar_t *res_end
)
4361 basic_string_wchar_iterator begin
= { basic_string_wchar_ptr(this) };
4362 return basic_string_wchar_replace_cstr_len(this, basic_string_wchar__Pdif(beg
, begin
),
4363 basic_string_wchar__Pdif(end
, beg
), res_beg
, res_end
-res_beg
);
4366 /* ?replace@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV12@Viterator@12@0PBG1@Z */
4367 /* ?replace@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV12@Viterator@12@0PB_W1@Z */
4368 /* ?replace@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV12@V?$_Ptrit@GHPAGAAGPAGAAG@2@0PBG1@Z */
4369 /* ?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 */
4370 DEFINE_THISCALL_WRAPPER(basic_string_wchar_replace_iter_beg_end
, 20)
4371 basic_string_wchar
* __thiscall
basic_string_wchar_replace_iter_beg_end(basic_string_wchar
*this,
4372 basic_string_wchar_iterator beg
, basic_string_wchar_iterator end
,
4373 const wchar_t *rbeg
, const wchar_t *rend
)
4375 return basic_string_wchar_replace_cstr_len(this, beg
.pos
-basic_string_wchar_ptr(this),
4376 end
.pos
-beg
.pos
, rbeg
, rend
-rbeg
);
4379 /* ?replace@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV12@Viterator@12@0PBG@Z */
4380 /* ?replace@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV12@Viterator@12@0PB_W@Z */
4381 /* ?replace@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV12@V?$_Ptrit@GHPAGAAGPAGAAG@2@0PBG@Z */
4382 /* ?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 */
4383 DEFINE_THISCALL_WRAPPER(basic_string_wchar_replace_iter_cstr
, 16)
4384 basic_string_wchar
* __thiscall
basic_string_wchar_replace_iter_cstr(basic_string_wchar
*this,
4385 basic_string_wchar_iterator beg
, basic_string_wchar_iterator end
, const wchar_t *str
)
4387 return basic_string_wchar_replace_cstr_len(this, beg
.pos
-basic_string_wchar_ptr(this),
4388 end
.pos
-beg
.pos
, str
, wcslen(str
));
4391 /* ?replace@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV12@Viterator@12@0PBGI@Z */
4392 /* ?replace@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV12@Viterator@12@0PB_WI@Z */
4393 /* ?replace@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV12@V?$_Ptrit@GHPAGAAGPAGAAG@2@0PBGI@Z */
4394 /* ?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 */
4395 DEFINE_THISCALL_WRAPPER(basic_string_wchar_replace_iter_cstr_len
, 20)
4396 basic_string_wchar
* __thiscall
basic_string_wchar_replace_iter_cstr_len(basic_string_wchar
*this,
4397 basic_string_wchar_iterator beg
, basic_string_wchar_iterator end
,
4398 const wchar_t *str
, MSVCP_size_t len
)
4400 return basic_string_wchar_replace_cstr_len(this, beg
.pos
-basic_string_wchar_ptr(this),
4401 end
.pos
-beg
.pos
, str
, len
);
4404 /* ?insert@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEXViterator@12@I_W@Z */
4405 /* ?insert@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEXViterator@12@IG@Z */
4406 /* ?insert@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEXV?$_Ptrit@_WHPA_WAA_WPA_WAA_W@2@I_W@Z */
4407 /* ?insert@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEXV?$_Ptrit@GHPAGAAGPAGAAG@2@IG@Z */
4408 DEFINE_THISCALL_WRAPPER(basic_string_wchar_insert_iter_chn
, 16)
4409 void __thiscall
basic_string_wchar_insert_iter_chn(basic_string_wchar
*this,
4410 basic_string_wchar_iterator where
, MSVCP_size_t count
, wchar_t ch
)
4412 basic_string_wchar_iterator iter
= { basic_string_wchar_ptr(this) };
4413 MSVCP_size_t off
= basic_string_wchar__Pdif(where
, iter
);
4415 basic_string_wchar_insert_chn(this, off
, count
, ch
);
4418 /* ?insert@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE?AViterator@12@V312@_W@Z */
4419 /* ?insert@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAE?AViterator@12@V312@G@Z */
4420 /* ?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 */
4421 /* ?insert@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAE?AV?$_Ptrit@GHPAGAAGPAGAAG@2@V32@G@Z */
4422 DEFINE_THISCALL_WRAPPER(basic_string_wchar_insert_iter_ch
, 16)
4423 basic_string_wchar_iterator
* __thiscall
basic_string_wchar_insert_iter_ch(basic_string_wchar
*this,
4424 basic_string_wchar_iterator
*ret
, basic_string_wchar_iterator where
, wchar_t ch
)
4428 ret
->pos
= basic_string_wchar_ptr(this);
4429 off
= basic_string_wchar__Pdif(where
, *ret
);
4431 basic_string_wchar_insert_chn(this, off
, 1, ch
);
4432 ret
->pos
= basic_string_wchar_ptr(this)+off
;
4436 /* ?insert@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE?AViterator@12@V312@@Z */
4437 /* ?insert@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAE?AViterator@12@V312@@Z */
4438 /* ?insert@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE?AV?$_Ptrit@_WHPA_WAA_WPA_WAA_W@2@V32@@Z */
4439 /* ?insert@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAE?AV?$_Ptrit@GHPAGAAGPAGAAG@2@V32@@Z */
4440 DEFINE_THISCALL_WRAPPER(basic_string_wchar_insert_iter_null
, 12)
4441 basic_string_wchar_iterator
* __thiscall
basic_string_wchar_insert_iter_null(basic_string_wchar
*this,
4442 basic_string_wchar_iterator
*ret
, basic_string_wchar_iterator where
)
4444 return basic_string_wchar_insert_iter_ch(this, ret
, where
, 0);
4447 /* ?insert@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEXViterator@12@PB_W1@Z */
4448 /* ?insert@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEXViterator@12@PBG1@Z */
4449 /* ?insert@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEXV?$_Ptrit@_WHPA_WAA_WPA_WAA_W@2@PB_W1@Z */
4450 /* ?insert@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEXV?$_Ptrit@GHPAGAAGPAGAAG@2@PBG1@Z */
4451 DEFINE_THISCALL_WRAPPER(basic_string_wchar_insert_iter_ptr_ptr
, 16)
4452 void __thiscall
basic_string_wchar_insert_iter_ptr_ptr(basic_string_wchar
*this,
4453 basic_string_wchar_iterator where
, const wchar_t *beg
, const wchar_t *end
)
4455 basic_string_wchar_replace_iter_ptr_ptr(this, where
, where
, beg
, end
);
4458 /* ?insert@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEXViterator@12@Vconst_iterator@12@1@Z */
4459 /* ?insert@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEXViterator@12@Vconst_iterator@12@1@Z */
4460 /* ?insert@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEXViterator@12@Vconst_iterator@12@1@Z */
4461 /* ?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 */
4462 /* ?insert@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEXV?$_Ptrit@GHPAGAAGPAGAAG@2@V?$_Ptrit@GHPBGABGPAGAAG@2@1@Z */
4463 DEFINE_THISCALL_WRAPPER(basic_string_wchar_insert_iter_beg_end
, 16)
4464 void __thiscall
basic_string_wchar_insert_iter_beg_end(basic_string_wchar
*this,
4465 basic_string_wchar_iterator where
, basic_string_wchar_iterator beg
, basic_string_wchar_iterator end
)
4467 basic_string_wchar_replace_iter_ptr_ptr(this, where
, where
, beg
.pos
, end
.pos
);
4470 /* ?begin@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAE?AViterator@12@XZ */
4471 /* ?begin@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBE?AVconst_iterator@12@XZ */
4472 /* ?begin@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE?AViterator@12@XZ */
4473 /* ?begin@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBE?AVconst_iterator@12@XZ */
4474 /* ?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 */
4475 /* ?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 */
4476 /* ?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 */
4477 /* ?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 */
4478 /* ?begin@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAE?AV?$_Ptrit@GHPAGAAGPAGAAG@2@XZ */
4479 /* ?begin@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBE?AV?$_Ptrit@GHPBGABGPAGAAG@2@XZ */
4480 /* ?begin@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE?AV?$_Ptrit@_WHPA_WAA_WPA_WAA_W@2@XZ */
4481 /* ?begin@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBE?AV?$_Ptrit@_WHPB_WAB_WPA_WAA_W@2@XZ */
4482 /* ?rend@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAE?AV?$reverse_iterator@V?$_Ptrit@GHPAGAAGPAGAAG@std@@@2@XZ */
4483 /* ?rend@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBE?AV?$reverse_iterator@V?$_Ptrit@GHPBGABGPAGAAG@std@@@2@XZ */
4484 /* ?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 */
4485 /* ?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 */
4486 DEFINE_THISCALL_WRAPPER(basic_string_wchar_begin
, 8)
4487 basic_string_wchar_iterator
* __thiscall
basic_string_wchar_begin(
4488 basic_string_wchar
*this, basic_string_wchar_iterator
*ret
)
4490 ret
->pos
= basic_string_wchar_ptr(this);
4494 /* ?end@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAE?AViterator@12@XZ */
4495 /* ?end@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBE?AVconst_iterator@12@XZ */
4496 /* ?end@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE?AViterator@12@XZ */
4497 /* ?end@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBE?AVconst_iterator@12@XZ */
4498 /* ?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 */
4499 /* ?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 */
4500 /* ?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 */
4501 /* ?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 */
4502 /* ?end@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAE?AV?$_Ptrit@GHPAGAAGPAGAAG@2@XZ */
4503 /* ?end@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBE?AV?$_Ptrit@GHPBGABGPAGAAG@2@XZ */
4504 /* ?end@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE?AV?$_Ptrit@_WHPA_WAA_WPA_WAA_W@2@XZ */
4505 /* ?end@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBE?AV?$_Ptrit@_WHPB_WAB_WPA_WAA_W@2@XZ */
4506 /* ?rbegin@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAE?AV?$reverse_iterator@V?$_Ptrit@GHPAGAAGPAGAAG@std@@@2@XZ */
4507 /* ?rbegin@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBE?AV?$reverse_iterator@V?$_Ptrit@GHPBGABGPAGAAG@std@@@2@XZ */
4508 /* ?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 */
4509 /* ?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 */
4510 DEFINE_THISCALL_WRAPPER(basic_string_wchar_end
, 8)
4511 basic_string_wchar_iterator
* __thiscall
basic_string_wchar_end(
4512 basic_string_wchar
*this, basic_string_wchar_iterator
*ret
)
4514 ret
->pos
= basic_string_wchar_ptr(this)+this->size
;
4518 #else /* _MSVCP_VER >= 80, new iterator functions */
4520 /* _String_iterator<char> and _String_const_iterator<char> class */
4522 basic_string_char
*bstr
;
4524 } String_iterator_char
;
4527 #if _MSVCP_VER == 80
4530 const basic_string_char
*bstr
;
4532 } String_reverse_iterator_char
;
4535 basic_string_wchar
*bstr
;
4537 } String_iterator_wchar
;
4540 #if _MSVCP_VER == 80
4543 const basic_string_wchar
*bstr
;
4545 } String_reverse_iterator_wchar
;
4547 /* ?_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 */
4548 /* ?_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 */
4549 MSVCP_size_t __cdecl
MSVCP_basic_string_char_Pdif(String_iterator_char i1
, String_iterator_char i2
)
4551 TRACE("(%p %p) (%p %p)\n", i1
.bstr
, i1
.pos
, i2
.bstr
, i2
.pos
);
4553 if((!i1
.bstr
&& i1
.pos
) || i1
.bstr
!=i2
.bstr
) {
4554 _invalid_parameter(NULL
, NULL
, NULL
, 0, 0);
4558 return !i1
.pos
? 0 : i1
.pos
-i2
.pos
;
4561 /* ?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 */
4562 /* ?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 */
4563 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_erase_iter_range
, 24)
4564 String_iterator_char
* __thiscall
MSVCP_basic_string_char_erase_iter_range(basic_string_char
*this,
4565 String_iterator_char
*ret
, String_iterator_char beg
, String_iterator_char end
)
4570 ret
->pos
= basic_string_char_ptr(this);
4571 off
= MSVCP_basic_string_char_Pdif(beg
, *ret
);
4573 MSVCP_basic_string_char_erase(this, off
, MSVCP_basic_string_char_Pdif(end
, beg
));
4576 ret
->pos
= basic_string_char_ptr(this)+off
;
4580 /* ?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 */
4581 /* ?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 */
4582 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_erase_iter
, 16)
4583 String_iterator_char
* __thiscall
MSVCP_basic_string_char_erase_iter(basic_string_char
*this,
4584 String_iterator_char
*ret
, String_iterator_char pos
)
4589 ret
->pos
= basic_string_char_ptr(this);
4590 off
= MSVCP_basic_string_char_Pdif(pos
, *ret
);
4592 MSVCP_basic_string_char_erase(this, off
, 1);
4595 ret
->pos
= basic_string_char_ptr(this)+off
;
4599 /* ?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 */
4600 /* ?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 */
4601 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_assign_iter
, 20)
4602 basic_string_char
* __thiscall
MSVCP_basic_string_char_assign_iter(basic_string_char
*this,
4603 String_iterator_char beg
, String_iterator_char end
)
4605 return MSVCP_basic_string_char_assign_ptr_ptr(this, beg
.pos
, end
.pos
);
4608 /* ??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 */
4609 /* ??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 */
4610 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_ctor_iter
, 20)
4611 basic_string_char
* __thiscall
MSVCP_basic_string_char_ctor_iter(basic_string_char
*this,
4612 String_iterator_char beg
, String_iterator_char end
)
4614 return MSVCP_basic_string_char_ctor_cstr_len(this, beg
.pos
, end
.pos
-beg
.pos
);
4617 /* ?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 */
4618 /* ?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 */
4619 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_append_iter
, 20)
4620 basic_string_char
* __thiscall
MSVCP_basic_string_char_append_iter(
4621 basic_string_char
*this, String_iterator_char beg
, String_iterator_char end
)
4623 return MSVCP_basic_string_char_append_cstr_len(this, beg
.pos
, end
.pos
-beg
.pos
);
4626 /* ?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 */
4627 /* ?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 */
4628 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_replace_iter_iter
, 36)
4629 basic_string_char
* __thiscall
MSVCP_basic_string_char_replace_iter_iter(basic_string_char
*this,
4630 String_iterator_char beg
, String_iterator_char end
,
4631 String_iterator_char res_beg
, String_iterator_char res_end
)
4633 String_iterator_char begin
= { this, basic_string_char_ptr(this) };
4634 return basic_string_char_replace_cstr_len(this,
4635 MSVCP_basic_string_char_Pdif(beg
, begin
), MSVCP_basic_string_char_Pdif(end
, beg
),
4636 res_beg
.pos
, MSVCP_basic_string_char_Pdif(res_end
, res_beg
));
4639 /* ?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 */
4640 /* ?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 */
4641 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_replace_iter_bstr
, 24)
4642 basic_string_char
* __thiscall
MSVCP_basic_string_char_replace_iter_bstr(basic_string_char
*this,
4643 String_iterator_char beg
, String_iterator_char end
, const basic_string_char
*str
)
4645 String_iterator_char begin
= { this, basic_string_char_ptr(this) };
4646 return basic_string_char_replace(this, MSVCP_basic_string_char_Pdif(beg
, begin
),
4647 MSVCP_basic_string_char_Pdif(end
, beg
), str
);
4650 /* ?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 */
4651 /* ?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 */
4652 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_replace_iter_ch
, 28)
4653 basic_string_char
* __thiscall
MSVCP_basic_string_char_replace_iter_ch(basic_string_char
*this,
4654 String_iterator_char beg
, String_iterator_char end
, MSVCP_size_t count
, char ch
)
4656 String_iterator_char begin
= { this, basic_string_char_ptr(this) };
4657 return basic_string_char_replace_ch(this, MSVCP_basic_string_char_Pdif(beg
, begin
),
4658 MSVCP_basic_string_char_Pdif(end
, beg
), count
, ch
);
4661 /* ?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 */
4662 /* ?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 */
4663 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_replace_iter_ptr_ptr
, 28)
4664 basic_string_char
* __thiscall
MSVCP_basic_string_char_replace_iter_ptr_ptr(basic_string_char
*this,
4665 String_iterator_char beg
, String_iterator_char end
,
4666 const char *res_beg
, const char *res_end
)
4668 String_iterator_char begin
= { this, basic_string_char_ptr(this) };
4669 return basic_string_char_replace_cstr_len(this, MSVCP_basic_string_char_Pdif(beg
, begin
),
4670 MSVCP_basic_string_char_Pdif(end
, beg
), res_beg
, res_end
-res_beg
);
4673 /* ?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 */
4674 /* ?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 */
4675 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_replace_iter_cstr
, 24)
4676 basic_string_char
* __thiscall
MSVCP_basic_string_char_replace_iter_cstr(basic_string_char
*this,
4677 String_iterator_char beg
, String_iterator_char end
, const char *str
)
4679 String_iterator_char begin
= { this, basic_string_char_ptr(this) };
4680 return basic_string_char_replace_cstr(this, MSVCP_basic_string_char_Pdif(beg
, begin
),
4681 MSVCP_basic_string_char_Pdif(end
, beg
), str
);
4684 /* ?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 */
4685 /* ?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 */
4686 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_replace_iter_cstr_len
, 28)
4687 basic_string_char
* __thiscall
MSVCP_basic_string_char_replace_iter_cstr_len(basic_string_char
*this,
4688 String_iterator_char beg
, String_iterator_char end
, const char *str
, MSVCP_size_t len
)
4690 String_iterator_char begin
= { this, basic_string_char_ptr(this) };
4691 return basic_string_char_replace_cstr_len(this, MSVCP_basic_string_char_Pdif(beg
, begin
),
4692 MSVCP_basic_string_char_Pdif(end
, beg
), str
, len
);
4695 /* ?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 */
4696 /* ?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 */
4697 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_insert_iter_chn
, 20)
4698 void __thiscall
MSVCP_basic_string_char_insert_iter_chn(basic_string_char
*this,
4699 String_iterator_char where
, MSVCP_size_t count
, char ch
)
4701 String_iterator_char iter
= { this, basic_string_char_ptr(this) };
4702 MSVCP_size_t off
= MSVCP_basic_string_char_Pdif(where
, iter
);
4704 basic_string_char_insert_chn(this, off
, count
, ch
);
4707 /* ?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 */
4708 /* ?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 */
4709 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_insert_iter_ch
, 20)
4710 String_iterator_char
* __thiscall
MSVCP_basic_string_char_insert_iter_ch(basic_string_char
*this,
4711 String_iterator_char
*ret
, String_iterator_char where
, char ch
)
4716 ret
->pos
= basic_string_char_ptr(this);
4717 off
= MSVCP_basic_string_char_Pdif(where
, *ret
);
4719 basic_string_char_insert_chn(this, off
, 1, ch
);
4720 ret
->pos
= basic_string_char_ptr(this)+off
;
4724 /* ?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 */
4725 /* ?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 */
4726 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_insert_iter_null
, 16)
4727 String_iterator_char
* __thiscall
MSVCP_basic_string_char_insert_iter_null(basic_string_char
*this,
4728 String_iterator_char
*ret
, String_iterator_char where
)
4730 return MSVCP_basic_string_char_insert_iter_ch(this, ret
, where
, 0);
4733 /* ?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 */
4734 /* ?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 */
4735 DEFINE_THISCALL_WRAPPER(basic_string_char_insert_iter_beg_end
, 28)
4736 void __thiscall
basic_string_char_insert_iter_beg_end(basic_string_char
*this,
4737 String_iterator_char where
, String_iterator_char beg
, String_iterator_char end
)
4739 MSVCP_basic_string_char_replace_iter_iter(this, where
, where
, beg
, end
);
4742 /* ?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 */
4743 /* ?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 */
4744 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_insert_iter_ptr_ptr
, 20)
4745 void __thiscall
MSVCP_basic_string_char_insert_iter_ptr_ptr(basic_string_char
*this,
4746 String_iterator_char where
, const char *beg
, const char *end
)
4748 MSVCP_basic_string_char_replace_iter_ptr_ptr(this, where
, where
, beg
, end
);
4751 /* ?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 */
4752 /* ?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 */
4753 /* ?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 */
4754 /* ?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 */
4755 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_begin
, 8)
4756 String_iterator_char
* __thiscall
MSVCP_basic_string_char_begin(
4757 basic_string_char
*this, String_iterator_char
*ret
)
4759 TRACE("%p\n", this);
4762 ret
->pos
= basic_string_char_const_ptr(this);
4766 /* ?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 */
4767 /* ?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 */
4768 /* ?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 */
4769 /* ?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 */
4770 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_end
, 8)
4771 String_iterator_char
* __thiscall
MSVCP_basic_string_char_end(
4772 basic_string_char
*this, String_iterator_char
*ret
)
4774 TRACE("%p\n", this);
4777 ret
->pos
= basic_string_char_const_ptr(this)+this->size
;
4781 /* ?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 */
4782 /* ?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 */
4783 /* ?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 */
4784 /* ?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 */
4785 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_rbegin
, 8)
4786 String_reverse_iterator_char
* __thiscall
MSVCP_basic_string_char_rbegin(
4787 basic_string_char
*this, String_reverse_iterator_char
*ret
)
4789 TRACE("%p\n", this);
4791 #if _MSVCP_VER == 80
4795 ret
->pos
= basic_string_char_const_ptr(this)+this->size
;
4799 /* ?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 */
4800 /* ?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 */
4801 /* ?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 */
4802 /* ?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 */
4803 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_rend
, 8)
4804 String_reverse_iterator_char
* __thiscall
MSVCP_basic_string_char_rend(
4805 basic_string_char
*this, String_reverse_iterator_char
*ret
)
4807 TRACE("%p\n", this);
4809 #if _MSVCP_VER == 80
4813 ret
->pos
= basic_string_char_const_ptr(this);
4817 /* ?_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 */
4818 /* ?_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 */
4819 /* ?_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 */
4820 /* ?_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 */
4821 MSVCP_size_t __cdecl
MSVCP_basic_string_wchar_Pdif(String_iterator_wchar i1
, String_iterator_wchar i2
)
4823 TRACE("(%p %p) (%p %p)\n", i1
.bstr
, i1
.pos
, i2
.bstr
, i2
.pos
);
4825 if((!i1
.bstr
&& i1
.pos
) || i1
.bstr
!=i2
.bstr
) {
4826 _invalid_parameter(NULL
, NULL
, NULL
, 0, 0);
4830 return !i1
.pos
? 0 : i1
.pos
-i2
.pos
;
4833 /* ?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 */
4834 /* ?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 */
4835 /* ?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 */
4836 /* ?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 */
4837 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_erase_iter_range
, 24)
4838 String_iterator_wchar
* __thiscall
MSVCP_basic_string_wchar_erase_iter_range(basic_string_wchar
*this,
4839 String_iterator_wchar
*ret
, String_iterator_wchar beg
, String_iterator_wchar end
)
4844 ret
->pos
= basic_string_wchar_ptr(this);
4845 off
= MSVCP_basic_string_wchar_Pdif(beg
, *ret
);
4847 MSVCP_basic_string_wchar_erase(this, off
, MSVCP_basic_string_wchar_Pdif(end
, beg
));
4850 ret
->pos
= basic_string_wchar_ptr(this)+off
;
4854 /* ?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 */
4855 /* ?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 */
4856 /* ?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 */
4857 /* ?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 */
4858 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_erase_iter
, 16)
4859 String_iterator_wchar
* __thiscall
MSVCP_basic_string_wchar_erase_iter(basic_string_wchar
*this,
4860 String_iterator_wchar
*ret
, String_iterator_wchar pos
)
4865 ret
->pos
= basic_string_wchar_ptr(this);
4866 off
= MSVCP_basic_string_wchar_Pdif(pos
, *ret
);
4868 MSVCP_basic_string_wchar_erase(this, off
, 1);
4871 ret
->pos
= basic_string_wchar_ptr(this)+off
;
4875 /* ?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 */
4876 /* ?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 */
4877 /* ?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 */
4878 /* ?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 */
4879 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_assign_iter
, 20)
4880 basic_string_wchar
* __thiscall
MSVCP_basic_string_wchar_assign_iter(basic_string_wchar
*this,
4881 String_iterator_wchar beg
, String_iterator_wchar end
)
4883 return MSVCP_basic_string_wchar_assign_ptr_ptr(this, beg
.pos
, end
.pos
);
4886 /* ??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 */
4887 /* ??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 */
4888 /* ??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 */
4889 /* ??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 */
4890 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_ctor_iter
, 20)
4891 basic_string_wchar
* __thiscall
MSVCP_basic_string_wchar_ctor_iter(basic_string_wchar
*this,
4892 String_iterator_wchar beg
, String_iterator_wchar end
)
4894 return MSVCP_basic_string_wchar_ctor_cstr_len(this, beg
.pos
, end
.pos
-beg
.pos
);
4897 /* ?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 */
4898 /* ?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 */
4899 /* ?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 */
4900 /* ?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 */
4901 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_append_iter
, 20)
4902 basic_string_wchar
* __thiscall
MSVCP_basic_string_wchar_append_iter(
4903 basic_string_wchar
*this, String_iterator_wchar beg
, String_iterator_wchar end
)
4905 return MSVCP_basic_string_wchar_append_cstr_len(this, beg
.pos
, end
.pos
-beg
.pos
);
4908 /* ?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 */
4909 /* ?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 */
4910 /* ?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 */
4911 /* ?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 */
4912 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_replace_iter_iter
, 36)
4913 basic_string_wchar
* __thiscall
MSVCP_basic_string_wchar_replace_iter_iter(basic_string_wchar
*this,
4914 String_iterator_wchar beg
, String_iterator_wchar end
,
4915 String_iterator_wchar res_beg
, String_iterator_wchar res_end
)
4917 String_iterator_wchar begin
= { this, basic_string_wchar_ptr(this) };
4918 return basic_string_wchar_replace_cstr_len(this,
4919 MSVCP_basic_string_wchar_Pdif(beg
, begin
), MSVCP_basic_string_wchar_Pdif(end
, beg
),
4920 res_beg
.pos
, MSVCP_basic_string_wchar_Pdif(res_end
, res_beg
));
4923 /* ?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 */
4924 /* ?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 */
4925 /* ?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 */
4926 /* ?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 */
4927 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_replace_iter_bstr
, 24)
4928 basic_string_wchar
* __thiscall
MSVCP_basic_string_wchar_replace_iter_bstr(basic_string_wchar
*this,
4929 String_iterator_wchar beg
, String_iterator_wchar end
, const basic_string_wchar
*str
)
4931 String_iterator_wchar begin
= { this, basic_string_wchar_ptr(this) };
4932 return basic_string_wchar_replace(this, MSVCP_basic_string_wchar_Pdif(beg
, begin
),
4933 MSVCP_basic_string_wchar_Pdif(end
, beg
), str
);
4936 /* ?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 */
4937 /* ?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 */
4938 /* ?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 */
4939 /* ?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 */
4940 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_replace_iter_ch
, 28)
4941 basic_string_wchar
* __thiscall
MSVCP_basic_string_wchar_replace_iter_ch(basic_string_wchar
*this,
4942 String_iterator_wchar beg
, String_iterator_wchar end
, MSVCP_size_t count
, wchar_t ch
)
4944 String_iterator_wchar begin
= { this, basic_string_wchar_ptr(this) };
4945 return basic_string_wchar_replace_ch(this, MSVCP_basic_string_wchar_Pdif(beg
, begin
),
4946 MSVCP_basic_string_wchar_Pdif(end
, beg
), count
, ch
);
4949 /* ?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 */
4950 /* ?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 */
4951 /* ?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 */
4952 /* ?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 */
4953 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_replace_iter_ptr_ptr
, 28)
4954 basic_string_wchar
* __thiscall
MSVCP_basic_string_wchar_replace_iter_ptr_ptr(basic_string_wchar
*this,
4955 String_iterator_wchar beg
, String_iterator_wchar end
,
4956 const wchar_t *res_beg
, const wchar_t *res_end
)
4958 String_iterator_wchar begin
= { this, basic_string_wchar_ptr(this) };
4959 return basic_string_wchar_replace_cstr_len(this, MSVCP_basic_string_wchar_Pdif(beg
, begin
),
4960 MSVCP_basic_string_wchar_Pdif(end
, beg
), res_beg
, res_end
-res_beg
);
4963 /* ?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 */
4964 /* ?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 */
4965 /* ?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 */
4966 /* ?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 */
4967 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_replace_iter_cstr
, 24)
4968 basic_string_wchar
* __thiscall
MSVCP_basic_string_wchar_replace_iter_cstr(basic_string_wchar
*this,
4969 String_iterator_wchar beg
, String_iterator_wchar end
, const wchar_t *str
)
4971 String_iterator_wchar begin
= { this, basic_string_wchar_ptr(this) };
4972 return basic_string_wchar_replace_cstr(this, MSVCP_basic_string_wchar_Pdif(beg
, begin
),
4973 MSVCP_basic_string_wchar_Pdif(end
, beg
), str
);
4976 /* ?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 */
4977 /* ?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 */
4978 /* ?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 */
4979 /* ?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 */
4980 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_replace_iter_cstr_len
, 28)
4981 basic_string_wchar
* __thiscall
MSVCP_basic_string_wchar_replace_iter_cstr_len(basic_string_wchar
*this,
4982 String_iterator_wchar beg
, String_iterator_wchar end
, const wchar_t *str
, MSVCP_size_t len
)
4984 String_iterator_wchar begin
= { this, basic_string_wchar_ptr(this) };
4985 return basic_string_wchar_replace_cstr_len(this, MSVCP_basic_string_wchar_Pdif(beg
, begin
),
4986 MSVCP_basic_string_wchar_Pdif(end
, beg
), str
, len
);
4989 /* ?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 */
4990 /* ?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 */
4991 /* ?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 */
4992 /* ?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 */
4993 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_insert_iter_chn
, 20)
4994 void __thiscall
MSVCP_basic_string_wchar_insert_iter_chn(basic_string_wchar
*this,
4995 String_iterator_wchar where
, MSVCP_size_t count
, wchar_t ch
)
4997 String_iterator_wchar iter
= { this, basic_string_wchar_ptr(this) };
4998 MSVCP_size_t off
= MSVCP_basic_string_wchar_Pdif(where
, iter
);
5000 basic_string_wchar_insert_chn(this, off
, count
, ch
);
5003 /* ?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 */
5004 /* ?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 */
5005 /* ?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 */
5006 /* ?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 */
5007 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_insert_iter_ch
, 20)
5008 String_iterator_wchar
* __thiscall
MSVCP_basic_string_wchar_insert_iter_ch(basic_string_wchar
*this,
5009 String_iterator_wchar
*ret
, String_iterator_wchar where
, wchar_t ch
)
5014 ret
->pos
= basic_string_wchar_ptr(this);
5015 off
= MSVCP_basic_string_wchar_Pdif(where
, *ret
);
5017 basic_string_wchar_insert_chn(this, off
, 1, ch
);
5018 ret
->pos
= basic_string_wchar_ptr(this)+off
;
5022 /* ?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 */
5023 /* ?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 */
5024 /* ?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 */
5025 /* ?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 */
5026 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_insert_iter_null
, 16)
5027 String_iterator_wchar
* __thiscall
MSVCP_basic_string_wchar_insert_iter_null(basic_string_wchar
*this,
5028 String_iterator_wchar
*ret
, String_iterator_wchar where
)
5030 return MSVCP_basic_string_wchar_insert_iter_ch(this, ret
, where
, 0);
5033 /* ?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 */
5034 /* ?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 */
5035 /* ?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 */
5036 /* ?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 */
5037 DEFINE_THISCALL_WRAPPER(basic_string_wchar_insert_iter_beg_end
, 28)
5038 void __thiscall
basic_string_wchar_insert_iter_beg_end(basic_string_wchar
*this,
5039 String_iterator_wchar where
, String_iterator_wchar beg
, String_iterator_wchar end
)
5041 MSVCP_basic_string_wchar_replace_iter_iter(this, where
, where
, beg
, end
);
5044 /* ?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 */
5045 /* ?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 */
5046 /* ?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 */
5047 /* ?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 */
5048 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_insert_iter_ptr_ptr
, 20)
5049 void __thiscall
MSVCP_basic_string_wchar_insert_iter_ptr_ptr(basic_string_wchar
*this,
5050 String_iterator_wchar where
, const wchar_t *beg
, const wchar_t *end
)
5052 MSVCP_basic_string_wchar_replace_iter_ptr_ptr(this, where
, where
, beg
, end
);
5055 /* ?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 */
5056 /* ?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 */
5057 /* ?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 */
5058 /* ?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 */
5059 /* ?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 */
5060 /* ?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 */
5061 /* ?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 */
5062 /* ?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 */
5063 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_begin
, 8)
5064 String_iterator_wchar
* __thiscall
MSVCP_basic_string_wchar_begin(
5065 basic_string_wchar
*this, String_iterator_wchar
*ret
)
5067 TRACE("%p\n", this);
5070 ret
->pos
= basic_string_wchar_const_ptr(this);
5074 /* ?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 */
5075 /* ?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 */
5076 /* ?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 */
5077 /* ?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 */
5078 /* ?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 */
5079 /* ?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 */
5080 /* ?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 */
5081 /* ?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 */
5082 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_end
, 8)
5083 String_iterator_wchar
* __thiscall
MSVCP_basic_string_wchar_end(
5084 basic_string_wchar
*this, String_iterator_wchar
*ret
)
5086 TRACE("%p\n", this);
5089 ret
->pos
= basic_string_wchar_const_ptr(this)+this->size
;
5093 /* ?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 */
5094 /* ?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 */
5095 /* ?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 */
5096 /* ?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 */
5097 /* ?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 */
5098 /* ?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 */
5099 /* ?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 */
5100 /* ?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 */
5101 /* ?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 */
5102 /* ?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 */
5103 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_rbegin
, 8)
5104 String_reverse_iterator_wchar
* __thiscall
MSVCP_basic_string_wchar_rbegin(
5105 basic_string_wchar
*this, String_reverse_iterator_wchar
*ret
)
5107 TRACE("%p\n", this);
5109 #if _MSVCP_VER == 80
5113 ret
->pos
= basic_string_wchar_const_ptr(this)+this->size
;
5117 /* ?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 */
5118 /* ?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 */
5119 /* ?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 */
5120 /* ?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 */
5121 /* ?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 */
5122 /* ?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 */
5123 /* ?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 */
5124 /* ?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 */
5125 /* ?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 */
5126 /* ?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 */
5127 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_rend
, 8)
5128 String_reverse_iterator_wchar
* __thiscall
MSVCP_basic_string_wchar_rend(
5129 basic_string_wchar
*this, String_reverse_iterator_wchar
*ret
)
5131 TRACE("%p\n", this);
5133 #if _MSVCP_VER == 80
5137 ret
->pos
= basic_string_wchar_const_ptr(this);
5141 #endif /* _MSVCP_VER < 80 */