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
26 #include "wine/debug.h"
27 WINE_DEFAULT_DEBUG_CHANNEL(msvcp
);
30 #define STRING_ALLOCATOR(this) ((this)->allocator)
31 #elif _MSVCP_VER == 100
32 #define STRING_ALLOCATOR(this) (&(this)->allocator)
34 #define STRING_ALLOCATOR(this) NULL
37 /* size_t_noverify structure */
47 /* char_traits<char> */
48 /* ?assign@?$char_traits@D@std@@SAXAADABD@Z */
49 /* ?assign@?$char_traits@D@std@@SAXAEADAEBD@Z */
50 void CDECL
MSVCP_char_traits_char_assign(char *ch
, const char *assign
)
55 /* ?eq@?$char_traits@D@std@@SA_NABD0@Z */
56 /* ?eq@?$char_traits@D@std@@SA_NAEBD0@Z */
57 bool CDECL
MSVCP_char_traits_char_eq(const char *ch1
, const char *ch2
)
62 /* ?lt@?$char_traits@D@std@@SA_NABD0@Z */
63 /* ?lt@?$char_traits@D@std@@SA_NAEBD0@Z */
64 bool CDECL
MSVCP_char_traits_lt(const char *ch1
, const char *ch2
)
69 /* ?compare@?$char_traits@D@std@@SAHPBD0I@Z */
70 /* ?compare@?$char_traits@D@std@@SAHPEBD0_K@Z */
71 int CDECL
MSVCP_char_traits_char_compare(
72 const char *s1
, const char *s2
, size_t count
)
74 int ret
= memcmp(s1
, s2
, count
);
75 return (ret
>0 ? 1 : (ret
<0 ? -1 : 0));
78 /* ?length@?$char_traits@D@std@@SAIPBD@Z */
79 /* ?length@?$char_traits@D@std@@SA_KPEBD@Z */
80 size_t CDECL
MSVCP_char_traits_char_length(const char *str
)
85 /* ?_Copy_s@?$char_traits@D@std@@SAPADPADIPBDI@Z */
86 /* ?_Copy_s@?$char_traits@D@std@@SAPEADPEAD_KPEBD1@Z */
87 char* CDECL
MSVCP_char_traits_char__Copy_s(char *dest
,
88 size_t size
, const char *src
, size_t count
)
90 memcpy_s(dest
, size
, src
, count
);
94 /* ?copy@?$char_traits@D@std@@SAPADPADPBDI@Z */
95 /* ?copy@?$char_traits@D@std@@SAPEADPEADPEBD_K@Z */
96 char* CDECL
MSVCP_char_traits_char_copy(
97 char *dest
, const char *src
, size_t count
)
99 return MSVCP_char_traits_char__Copy_s(dest
, count
, src
, count
);
102 /* ?find@?$char_traits@D@std@@SAPBDPBDIABD@Z */
103 /* ?find@?$char_traits@D@std@@SAPEBDPEBD_KAEBD@Z */
104 const char * CDECL
MSVCP_char_traits_char_find(
105 const char *str
, size_t range
, const char *c
)
107 return memchr(str
, *c
, range
);
110 /* ?_Move_s@?$char_traits@D@std@@SAPADPADIPBDI@Z */
111 /* ?_Move_s@?$char_traits@D@std@@SAPEADPEAD_KPEBD1@Z */
112 char* CDECL
MSVCP_char_traits_char__Move_s(char *dest
,
113 size_t size
, const char *src
, size_t count
)
115 memmove_s(dest
, size
, src
, count
);
119 /* ?move@?$char_traits@D@std@@SAPADPADPBDI@Z */
120 /* ?move@?$char_traits@D@std@@SAPEADPEADPEBD_K@Z */
121 char* CDECL
MSVCP_char_traits_char_move(
122 char *dest
, const char *src
, size_t count
)
124 return MSVCP_char_traits_char__Move_s(dest
, count
, src
, count
);
127 /* ?assign@?$char_traits@D@std@@SAPADPADID@Z */
128 /* ?assign@?$char_traits@D@std@@SAPEADPEAD_KD@Z */
129 char* CDECL
MSVCP_char_traits_char_assignn(char *str
, size_t num
, char c
)
131 return memset(str
, c
, num
);
134 /* ?to_char_type@?$char_traits@D@std@@SADABH@Z */
135 /* ?to_char_type@?$char_traits@D@std@@SADAEBH@Z */
136 char CDECL
MSVCP_char_traits_char_to_char_type(const int *i
)
141 /* ?to_int_type@?$char_traits@D@std@@SAHABD@Z */
142 /* ?to_int_type@?$char_traits@D@std@@SAHAEBD@Z */
143 int CDECL
MSVCP_char_traits_char_to_int_type(const char *ch
)
145 return (unsigned char)*ch
;
148 /* ?eq_int_type@?$char_traits@D@std@@SA_NABH0@Z */
149 /* ?eq_int_type@?$char_traits@D@std@@SA_NAEBH0@Z */
150 bool CDECL
MSVCP_char_traits_char_eq_int_type(const int *i1
, const int *i2
)
155 /* ?eof@?$char_traits@D@std@@SAHXZ */
156 int CDECL
MSVCP_char_traits_char_eof(void)
161 /* ?not_eof@?$char_traits@D@std@@SAHABH@Z */
162 /* ?not_eof@?$char_traits@D@std@@SAHAEBH@Z */
163 int CDECL
MSVCP_char_traits_char_not_eof(int *in
)
165 return (*in
==EOF
? !EOF
: *in
);
169 /* char_traits<wchar_t> */
170 /* ?assign@?$char_traits@_W@std@@SAXAA_WAB_W@Z */
171 /* ?assign@?$char_traits@_W@std@@SAXAEA_WAEB_W@Z */
172 void CDECL
MSVCP_char_traits_wchar_assign(wchar_t *ch
,
173 const wchar_t *assign
)
178 /* ?eq@?$char_traits@_W@std@@SA_NAB_W0@Z */
179 /* ?eq@?$char_traits@_W@std@@SA_NAEB_W0@Z */
180 bool CDECL
MSVCP_char_traits_wchar_eq(wchar_t *ch1
, wchar_t *ch2
)
185 /* ?lt@?$char_traits@_W@std@@SA_NAB_W0@Z */
186 /* ?lt@?$char_traits@_W@std@@SA_NAEB_W0@Z */
187 bool CDECL
MSVCP_char_traits_wchar_lt(const wchar_t *ch1
,
193 /* ?compare@?$char_traits@_W@std@@SAHPB_W0I@Z */
194 /* ?compare@?$char_traits@_W@std@@SAHPEB_W0_K@Z */
195 int CDECL
MSVCP_char_traits_wchar_compare(const wchar_t *s1
,
196 const wchar_t *s2
, size_t count
)
198 int ret
= memcmp(s1
, s2
, count
* sizeof(wchar_t));
199 return (ret
>0 ? 1 : (ret
<0 ? -1 : 0));
202 /* ?length@?$char_traits@_W@std@@SAIPB_W@Z */
203 /* ?length@?$char_traits@_W@std@@SA_KPEB_W@Z */
204 size_t CDECL
MSVCP_char_traits_wchar_length(const wchar_t *str
)
206 return wcslen((WCHAR
*)str
);
209 /* ?_Copy_s@?$char_traits@_W@std@@SAPA_WPA_WIPB_WI@Z */
210 /* ?_Copy_s@?$char_traits@_W@std@@SAPEA_WPEA_W_KPEB_W1@Z */
211 wchar_t* CDECL
MSVCP_char_traits_wchar__Copy_s(wchar_t *dest
,
212 size_t size
, const wchar_t *src
, size_t count
)
214 memcpy_s(dest
, size
* sizeof(wchar_t), src
, count
* sizeof(wchar_t));
218 /* ?copy@?$char_traits@_W@std@@SAPA_WPA_WPB_WI@Z */
219 /* ?copy@?$char_traits@_W@std@@SAPEA_WPEA_WPEB_W_K@Z */
220 wchar_t* CDECL
MSVCP_char_traits_wchar_copy(wchar_t *dest
,
221 const wchar_t *src
, size_t count
)
223 return MSVCP_char_traits_wchar__Copy_s(dest
, count
, src
, count
);
226 /* ?find@?$char_traits@_W@std@@SAPB_WPB_WIAB_W@Z */
227 /* ?find@?$char_traits@_W@std@@SAPEB_WPEB_W_KAEB_W@Z */
228 const wchar_t* CDECL
MSVCP_char_traits_wchar_find(
229 const wchar_t *str
, size_t range
, const wchar_t *c
)
233 for(i
=0; i
<range
; i
++)
240 /* ?_Move_s@?$char_traits@_W@std@@SAPA_WPA_WIPB_WI@Z */
241 /* ?_Move_s@?$char_traits@_W@std@@SAPEA_WPEA_W_KPEB_W1@Z */
242 wchar_t* CDECL
MSVCP_char_traits_wchar__Move_s(wchar_t *dest
,
243 size_t size
, const wchar_t *src
, size_t count
)
245 memmove_s(dest
, size
* sizeof(wchar_t), src
, count
* sizeof(wchar_t));
249 /* ?move@?$char_traits@_W@std@@SAPA_WPA_WPB_WI@Z */
250 /* ?move@?$char_traits@_W@std@@SAPEA_WPEA_WPEB_W_K@Z */
251 wchar_t* CDECL
MSVCP_char_traits_wchar_move(wchar_t *dest
,
252 const wchar_t *src
, size_t count
)
254 return MSVCP_char_traits_wchar__Move_s(dest
, count
, src
, count
);
257 /* ?assign@?$char_traits@_W@std@@SAPA_WPA_WI_W@Z */
258 /* ?assign@?$char_traits@_W@std@@SAPEA_WPEA_W_K_W@Z */
259 wchar_t* CDECL
MSVCP_char_traits_wchar_assignn(wchar_t *str
,
260 size_t num
, wchar_t c
)
270 /* ?to_char_type@?$char_traits@_W@std@@SA_WABG@Z */
271 /* ?to_char_type@?$char_traits@_W@std@@SA_WAEBG@Z */
272 wchar_t CDECL
MSVCP_char_traits_wchar_to_char_type(const unsigned short *i
)
277 /* ?to_int_type@?$char_traits@_W@std@@SAGAB_W@Z */
278 /* ?to_int_type@?$char_traits@_W@std@@SAGAEB_W@Z */
279 unsigned short CDECL
MSVCP_char_traits_wchar_to_int_type(const wchar_t *ch
)
284 /* ?eq_int_type@?$char_traits@_W@std@@SA_NABG0@Z */
285 /* ?eq_int_type@?$char_traits@_W@std@@SA_NAEBG0@Z */
286 bool CDECL
MSVCP_char_traits_wchar_eq_int_tpe(const unsigned short *i1
,
287 const unsigned short *i2
)
292 /* ?eof@?$char_traits@_W@std@@SAGXZ */
293 unsigned short CDECL
MSVCP_char_traits_wchar_eof(void)
298 /* ?not_eof@?$char_traits@_W@std@@SAGABG@Z */
299 /* ?not_eof@?$char_traits@_W@std@@SAGAEBG@Z */
300 unsigned short CDECL
MSVCP_char_traits_wchar_not_eof(const unsigned short *in
)
302 return (*in
==WEOF
? !WEOF
: *in
);
306 /* char_traits<unsigned short> */
307 /* ?assign@?$char_traits@G@std@@SAXAAGABG@Z */
308 /* ?assign@?$char_traits@G@std@@SAXAEAGAEBG@Z */
309 void CDECL
MSVCP_char_traits_short_assign(unsigned short *ch
,
310 const unsigned short *assign
)
315 /* ?eq@?$char_traits@G@std@@SA_NABG0@Z */
316 /* ?eq@?$char_traits@G@std@@SA_NAEBG0@Z */
317 bool CDECL
MSVCP_char_traits_short_eq(const unsigned short *ch1
,
318 const unsigned short *ch2
)
323 /* ?lt@?$char_traits@G@std@@SA_NABG0@Z */
324 /* ?lt@?$char_traits@G@std@@SA_NAEBG0@Z */
325 bool CDECL
MSVCP_char_traits_short_lt(const unsigned short *ch1
,
326 const unsigned short *ch2
)
331 /* ?compare@?$char_traits@G@std@@SAHPBG0I@Z */
332 /* ?compare@?$char_traits@G@std@@SAHPEBG0_K@Z */
333 int CDECL
MSVCP_char_traits_short_compare(const unsigned short *s1
,
334 const unsigned short *s2
, size_t count
)
338 for(i
=0; i
<count
; i
++)
340 return (s1
[i
] < s2
[i
] ? -1 : 1);
345 /* ?length@?$char_traits@G@std@@SAIPBG@Z */
346 /* ?length@?$char_traits@G@std@@SA_KPEBG@Z */
347 size_t CDECL
MSVCP_char_traits_short_length(const unsigned short *str
)
351 for(len
=0; str
[len
]; len
++);
356 /* ?_Copy_s@?$char_traits@G@std@@SAPAGPAGIPBGI@Z */
357 /* ?_Copy_s@?$char_traits@G@std@@SAPEAGPEAG_KPEBG1@Z */
358 unsigned short * CDECL
MSVCP_char_traits_short__Copy_s(unsigned short *dest
,
359 size_t size
, const unsigned short *src
, size_t count
)
361 memcpy_s(dest
, size
* sizeof(unsigned short), src
, count
* sizeof(unsigned short));
365 /* ?copy@?$char_traits@G@std@@SAPAGPAGPBGI@Z */
366 /* ?copy@?$char_traits@G@std@@SAPEAGPEAGPEBG_K@Z */
367 unsigned short* CDECL
MSVCP_char_traits_short_copy(unsigned short *dest
,
368 const unsigned short *src
, size_t count
)
370 return MSVCP_char_traits_short__Copy_s(dest
, count
, src
, count
);
373 /* ?find@?$char_traits@G@std@@SAPBGPBGIABG@Z */
374 /* ?find@?$char_traits@G@std@@SAPEBGPEBG_KAEBG@Z */
375 const unsigned short* CDECL
MSVCP_char_traits_short_find(
376 const unsigned short *str
, size_t range
, const unsigned short *c
)
380 for(i
=0; i
<range
; i
++)
387 /* ?_Move_s@?$char_traits@G@std@@SAPAGPAGIPBGI@Z */
388 /* ?_Move_s@?$char_traits@G@std@@SAPEAGPEAG_KPEBG1@Z */
389 unsigned short* CDECL
MSVCP_char_traits_short__Move_s(unsigned short *dest
,
390 size_t size
, const unsigned short *src
, size_t count
)
392 memmove_s(dest
, size
* sizeof(unsigned short), src
, count
* sizeof(unsigned short));
396 /* ?move@?$char_traits@G@std@@SAPAGPAGPBGI@Z */
397 /* ?move@?$char_traits@G@std@@SAPEAGPEAGPEBG_K@Z */
398 unsigned short* CDECL
MSVCP_char_traits_short_move(unsigned short *dest
,
399 const unsigned short *src
, size_t count
)
401 return MSVCP_char_traits_short__Move_s(dest
, count
, src
, count
);
404 /* ?assign@?$char_traits@G@std@@SAPAGPAGIG@Z */
405 /* ?assign@?$char_traits@G@std@@SAPEAGPEAG_KG@Z */
406 unsigned short* CDECL
MSVCP_char_traits_short_assignn(unsigned short *str
,
407 size_t num
, unsigned short c
)
417 /* ?to_char_type@?$char_traits@G@std@@SAGABG@Z */
418 /* ?to_char_type@?$char_traits@G@std@@SAGAEBG@Z */
419 unsigned short CDECL
MSVCP_char_traits_short_to_char_type(const unsigned short *i
)
424 /* ?to_int_type@?$char_traits@G@std@@SAGABG@Z */
425 /* ?to_int_type@?$char_traits@G@std@@SAGAEBG@Z */
426 unsigned short CDECL
MSVCP_char_traits_short_to_int_type(const unsigned short *ch
)
431 /* ?eq_int_type@?$char_traits@G@std@@SA_NABG0@Z */
432 /* ?eq_int_type@?$char_traits@G@std@@SA_NAEBG0@Z */
433 bool CDECL
MSVCP_char_traits_short_eq_int_type(unsigned short *i1
,
439 /* ?eof@?$char_traits@G@std@@SAGXZ */
440 unsigned short CDECL
MSVCP_char_traits_short_eof(void)
445 /* ?not_eof@?$char_traits@G@std@@SAGABG@Z */
446 /* ?not_eof@?$char_traits@G@std@@SAGAEBG@Z */
447 unsigned short CDECL
MSVCP_char_traits_short_not_eof(const unsigned short *in
)
449 return (*in
==(unsigned short)-1 ? 0 : *in
);
454 /* ?_Xlen@_String_base@std@@SAXXZ */
455 void CDECL
MSVCP__String_base_Xlen(void)
458 _Xlength_error("string too long");
461 /* ?_Xlen@_String_base@std@@QBEXXZ */
462 DEFINE_THISCALL_WRAPPER(_String_base__Xlen
, 4)
463 void __thiscall
_String_base__Xlen(const void/*_String_base*/ *this)
465 MSVCP__String_base_Xlen();
468 /* ?_Xran@_String_base@std@@SAXXZ */
469 void CDECL
MSVCP__String_base_Xran(void)
472 _Xout_of_range("invalid string position");
475 /* ?_Xran@_String_base@std@@QBEXXZ */
476 DEFINE_THISCALL_WRAPPER(_String_base__Xran
, 4)
477 void __thiscall
_String_base__Xran(const void/*_String_base*/ *this)
479 MSVCP__String_base_Xran();
482 /* ?_Xinvarg@_String_base@std@@SAXXZ */
483 void CDECL
MSVCP__String_base_Xinvarg(void)
486 _Xinvalid_argument("invalid string argument");
490 /* basic_string<char, char_traits<char>, allocator<char>> */
491 /* ?npos@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@2IB */
492 /* ?npos@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@2_KB */
493 const size_t MSVCP_basic_string_char_npos
= -1;
495 /* ?_Myptr@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IAEPADXZ */
496 /* ?_Myptr@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IEAAPEADXZ */
497 DEFINE_THISCALL_WRAPPER(basic_string_char_ptr
, 4)
498 char* __thiscall
basic_string_char_ptr(basic_string_char
*this)
500 if(this->res
< BUF_SIZE_CHAR
)
501 return this->data
.buf
;
502 return this->data
.ptr
;
505 /* ?_Myptr@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IBEPBDXZ */
506 /* ?_Myptr@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IEBAPEBDXZ */
507 DEFINE_THISCALL_WRAPPER(basic_string_char_const_ptr
, 4)
508 const char* __thiscall
basic_string_char_const_ptr(const basic_string_char
*this)
510 if(this->res
< BUF_SIZE_CHAR
)
511 return this->data
.buf
;
512 return this->data
.ptr
;
515 /* ?_Eos@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IAEXI@Z */
516 /* ?_Eos@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IEAAX_K@Z */
517 DEFINE_THISCALL_WRAPPER(basic_string_char_eos
, 8)
518 void __thiscall
basic_string_char_eos(basic_string_char
*this, size_t len
)
520 static const char nullbyte
= '\0';
523 MSVCP_char_traits_char_assign(basic_string_char_ptr(this)+len
, &nullbyte
);
526 /* ?_Inside@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IAE_NPBD@Z */
527 /* ?_Inside@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IEAA_NPEBD@Z */
528 DEFINE_THISCALL_WRAPPER(basic_string_char_inside
, 8)
529 bool __thiscall
basic_string_char_inside(
530 basic_string_char
*this, const char *ptr
)
532 char *cstr
= basic_string_char_ptr(this);
534 return ptr
>=cstr
&& ptr
<cstr
+this->size
;
537 /* ?_Tidy@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IAEX_NI@Z */
538 /* ?_Tidy@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IEAAX_N_K@Z */
539 DEFINE_THISCALL_WRAPPER(basic_string_char_tidy
, 12)
540 void __thiscall
basic_string_char_tidy(basic_string_char
*this,
541 bool built
, size_t new_size
)
543 if(built
&& BUF_SIZE_CHAR
<=this->res
) {
544 char *ptr
= this->data
.ptr
;
547 MSVCP_char_traits_char__Copy_s(this->data
.buf
, BUF_SIZE_CHAR
, ptr
, new_size
);
548 MSVCP_allocator_char_deallocate(STRING_ALLOCATOR(this), ptr
, this->res
+1);
551 this->res
= BUF_SIZE_CHAR
-1;
552 basic_string_char_eos(this, new_size
);
555 /* Exported only from msvcp60/70 */
556 /* ?_Tidy@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@AAEX_N@Z */
557 /* ?_Tidy@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@AEAAX_N@Z */
558 DEFINE_THISCALL_WRAPPER(basic_string_char_tidy_built
, 8)
559 void __thiscall
basic_string_char_tidy_built(basic_string_char
*this, bool built
)
561 basic_string_char_tidy(this, built
, 0);
564 /* ?_Grow@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IAE_NI_N@Z */
565 /* ?_Grow@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IEAA_N_K_N@Z */
566 DEFINE_THISCALL_WRAPPER(basic_string_char_grow
, 12)
567 bool __thiscall
basic_string_char_grow(
568 basic_string_char
*this, size_t new_size
, bool trim
)
570 if(this->res
< new_size
) {
571 size_t new_res
= new_size
, len
= this->size
;
576 if(new_res
/3 < this->res
/2)
577 new_res
= this->res
+ this->res
/2;
579 ptr
= MSVCP_allocator_char_allocate(STRING_ALLOCATOR(this), new_res
+1);
581 ptr
= MSVCP_allocator_char_allocate(STRING_ALLOCATOR(this), new_size
+1);
585 ERR("Out of memory\n");
586 basic_string_char_tidy(this, TRUE
, 0);
590 MSVCP_char_traits_char__Copy_s(ptr
, new_size
,
591 basic_string_char_ptr(this), this->size
);
592 basic_string_char_tidy(this, TRUE
, 0);
593 this->data
.ptr
= ptr
;
594 this->res
= new_size
;
595 basic_string_char_eos(this, len
);
596 } else if(trim
&& new_size
< BUF_SIZE_CHAR
)
597 basic_string_char_tidy(this, TRUE
,
598 new_size
<this->size
? new_size
: this->size
);
599 else if(new_size
== 0)
600 basic_string_char_eos(this, 0);
605 /* ?_Copy@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IAEXII@Z */
606 /* ?_Copy@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IEAAX_K0@Z */
607 DEFINE_THISCALL_WRAPPER(basic_string_char__Copy
, 12)
608 void __thiscall
basic_string_char__Copy(basic_string_char
*this,
609 size_t new_size
, size_t copy_len
)
611 TRACE("%p %Iu %Iu\n", this, new_size
, copy_len
);
613 if(!basic_string_char_grow(this, new_size
, FALSE
))
615 basic_string_char_eos(this, copy_len
);
618 /* ?get_allocator@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBE?AV?$allocator@D@2@XZ */
619 /* ?get_allocator@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA?AV?$allocator@D@2@XZ */
620 DEFINE_THISCALL_WRAPPER(basic_string_char_get_allocator
, 8)
621 allocator
* __thiscall
basic_string_char_get_allocator(const basic_string_char
*this, allocator
*ret
)
627 /* ?erase@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@II@Z */
628 /* ?erase@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAAEAV12@_K0@Z */
629 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_erase
, 12)
630 basic_string_char
* __thiscall
MSVCP_basic_string_char_erase(
631 basic_string_char
*this, size_t pos
, size_t len
)
633 TRACE("%p %Iu %Iu\n", this, pos
, len
);
636 MSVCP__String_base_Xran();
638 if(len
> this->size
-pos
)
639 len
= this->size
-pos
;
642 MSVCP_char_traits_char__Move_s(basic_string_char_ptr(this)+pos
,
643 this->res
-pos
, basic_string_char_ptr(this)+pos
+len
,
645 basic_string_char_eos(this, this->size
-len
);
651 /* ?assign@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@ABV12@II@Z */
652 /* ?assign@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAAEAV12@AEBV12@_K1@Z */
653 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_assign_substr
, 16)
654 basic_string_char
* __thiscall
MSVCP_basic_string_char_assign_substr(
655 basic_string_char
*this, const basic_string_char
*assign
,
656 size_t pos
, size_t len
)
658 TRACE("%p %p %Iu %Iu\n", this, assign
, pos
, len
);
660 if(assign
->size
< pos
)
661 MSVCP__String_base_Xran();
663 if(len
> assign
->size
-pos
)
664 len
= assign
->size
-pos
;
667 MSVCP_basic_string_char_erase(this, pos
+len
, MSVCP_basic_string_char_npos
);
668 MSVCP_basic_string_char_erase(this, 0, pos
);
669 } else if(basic_string_char_grow(this, len
, FALSE
)) {
670 MSVCP_char_traits_char__Copy_s(basic_string_char_ptr(this),
671 this->res
, basic_string_char_const_ptr(assign
)+pos
, len
);
672 basic_string_char_eos(this, len
);
678 /* ?assign@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@ABV12@@Z */
679 /* ?assign@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAAEAV12@AEBV12@@Z */
680 /* ??4?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV01@ABV01@@Z */
681 /* ??4?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAAEAV01@AEBV01@@Z */
682 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_assign
, 8)
683 basic_string_char
* __thiscall
MSVCP_basic_string_char_assign(
684 basic_string_char
*this, const basic_string_char
*assign
)
686 return MSVCP_basic_string_char_assign_substr(this, assign
,
687 0, MSVCP_basic_string_char_npos
);
690 /* ?assign@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@PBDI@Z */
691 /* ?assign@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAAEAV12@PEBD_K@Z */
692 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_assign_cstr_len
, 12)
693 basic_string_char
* __thiscall
MSVCP_basic_string_char_assign_cstr_len(
694 basic_string_char
*this, const char *str
, size_t len
)
696 TRACE("%p %s %Iu\n", this, debugstr_an(str
, len
), len
);
698 if(basic_string_char_inside(this, str
))
699 return MSVCP_basic_string_char_assign_substr(this, this,
700 str
-basic_string_char_ptr(this), len
);
701 else if(basic_string_char_grow(this, len
, FALSE
)) {
702 MSVCP_char_traits_char__Copy_s(basic_string_char_ptr(this),
703 this->res
, str
, len
);
704 basic_string_char_eos(this, len
);
710 /* ??4?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV01@D@Z */
711 /* ??4?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAAEAV01@D@Z */
712 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_assign_ch
, 8)
713 basic_string_char
* __thiscall
MSVCP_basic_string_char_assign_ch(
714 basic_string_char
*this, char ch
)
716 return MSVCP_basic_string_char_assign_cstr_len(this, &ch
, 1);
719 /* ?assign@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@PBD@Z */
720 /* ?assign@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAAEAV12@PEBD@Z */
721 /* ??4?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV01@PBD@Z */
722 /* ??4?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAAEAV01@PEBD@Z */
723 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_assign_cstr
, 8)
724 basic_string_char
* __thiscall
MSVCP_basic_string_char_assign_cstr(
725 basic_string_char
*this, const char *str
)
727 return MSVCP_basic_string_char_assign_cstr_len(this, str
,
728 MSVCP_char_traits_char_length(str
));
731 /* ?assign@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@ID@Z */
732 /* ?assign@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAAEAV12@_KD@Z */
733 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_assignn
, 12)
734 basic_string_char
* __thiscall
MSVCP_basic_string_char_assignn(
735 basic_string_char
*this, size_t count
, char ch
)
737 TRACE("%p %Iu %c\n", this, count
, ch
);
739 basic_string_char_grow(this, count
, FALSE
);
740 MSVCP_char_traits_char_assignn(basic_string_char_ptr(this), count
, ch
);
741 basic_string_char_eos(this, count
);
745 /* ?assign@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@PBD0@Z */
746 /* ?assign@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAAEAV12@PEBD0@Z */
747 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_assign_ptr_ptr
, 12)
748 basic_string_char
* __thiscall
MSVCP_basic_string_char_assign_ptr_ptr(
749 basic_string_char
*this, const char *first
, const char *last
)
751 return MSVCP_basic_string_char_assign_cstr_len(this, first
, last
-first
);
754 /* ?_Chassign@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IAEXIID@Z */
755 /* ?_Chassign@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IEAAX_K0D@Z */
756 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_Chassign
, 16)
757 void __thiscall
MSVCP_basic_string_char_Chassign(basic_string_char
*this,
758 size_t off
, size_t count
, char ch
)
760 TRACE("%p %Iu %Iu %c\n", this, off
, count
, ch
);
761 MSVCP_char_traits_char_assignn(basic_string_char_ptr(this)+off
, count
, ch
);
764 /* ?_Copy_s@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEIPADIII@Z */
765 /* ?_Copy_s@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA_KPEAD_K11@Z */
766 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_Copy_s
, 20)
767 size_t __thiscall
MSVCP_basic_string_char_Copy_s(const basic_string_char
*this,
768 char *dest
, size_t size
, size_t count
, size_t off
)
770 TRACE("%p %p %Iu %Iu %Iu\n", this, dest
, size
, count
, off
);
773 MSVCP__String_base_Xran();
775 if(count
> this->size
-off
)
776 count
= this->size
-off
;
778 MSVCP_char_traits_char__Copy_s(dest
, size
,
779 basic_string_char_const_ptr(this)+off
, count
);
783 /* ?copy@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEIPADII@Z */
784 /* ?copy@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA_KPEAD_K1@Z */
785 DEFINE_THISCALL_WRAPPER(basic_string_char_copy
, 16)
786 size_t __thiscall
basic_string_char_copy(const basic_string_char
*this,
787 char *dest
, size_t count
, size_t off
)
789 return MSVCP_basic_string_char_Copy_s(this, dest
, count
, count
, off
);
792 /* ?c_str@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEPBDXZ */
793 /* ?c_str@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBAPEBDXZ */
794 /* ?data@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEPBDXZ */
795 /* ?data@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBAPEBDXZ */
796 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_c_str
, 4)
797 const char* __thiscall
MSVCP_basic_string_char_c_str(const basic_string_char
*this)
800 return basic_string_char_const_ptr(this);
803 /* ?capacity@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEIXZ */
804 /* ?capacity@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA_KXZ */
805 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_capacity
, 4)
806 size_t __thiscall
MSVCP_basic_string_char_capacity(basic_string_char
*this)
812 /* ?reserve@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEXI@Z */
813 /* ?reserve@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAX_K@Z */
814 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_reserve
, 8)
815 void __thiscall
MSVCP_basic_string_char_reserve(basic_string_char
*this, size_t size
)
819 TRACE("%p %Iu\n", this, size
);
825 if(basic_string_char_grow(this, size
, TRUE
))
826 basic_string_char_eos(this, len
);
829 /* ??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@XZ */
830 /* ??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAA@XZ */
831 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_ctor
, 4)
832 basic_string_char
* __thiscall
MSVCP_basic_string_char_ctor(basic_string_char
*this)
836 basic_string_char_tidy(this, FALSE
, 0);
840 /* ??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@ABV01@@Z */
841 /* ??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAA@AEBV01@@Z */
842 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_copy_ctor
, 8)
843 basic_string_char
* __thiscall
MSVCP_basic_string_char_copy_ctor(
844 basic_string_char
*this, const basic_string_char
*copy
)
846 TRACE("%p %p\n", this, copy
);
848 basic_string_char_tidy(this, FALSE
, 0);
849 MSVCP_basic_string_char_assign(this, copy
);
853 /* ??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@PBD@Z */
854 /* ??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAA@PEBD@Z */
855 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_ctor_cstr
, 8)
856 basic_string_char
* __thiscall
MSVCP_basic_string_char_ctor_cstr(
857 basic_string_char
*this, const char *str
)
859 TRACE("%p %s\n", this, debugstr_a(str
));
861 basic_string_char_tidy(this, FALSE
, 0);
862 MSVCP_basic_string_char_assign_cstr(this, str
);
866 /* ??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@PBDABV?$allocator@D@1@@Z */
867 /* ??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAA@PEBDAEBV?$allocator@D@1@@Z */
868 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_ctor_cstr_alloc
, 12)
869 basic_string_char
* __thiscall
MSVCP_basic_string_char_ctor_cstr_alloc(
870 basic_string_char
*this, const char *str
, const void *alloc
)
872 return MSVCP_basic_string_char_ctor_cstr(this, str
);
875 /* ??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@PBDI@Z */
876 /* ??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAA@PEBD_K@Z */
877 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_ctor_cstr_len
, 12)
878 basic_string_char
* __thiscall
MSVCP_basic_string_char_ctor_cstr_len(
879 basic_string_char
*this, const char *str
, size_t len
)
881 TRACE("%p %s %Iu\n", this, debugstr_an(str
, len
), len
);
883 basic_string_char_tidy(this, FALSE
, 0);
884 MSVCP_basic_string_char_assign_cstr_len(this, str
, len
);
888 /* ??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@PBDIABV?$allocator@D@1@@Z */
889 /* ??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAA@PEBD_KAEBV?$allocator@D@1@@Z */
890 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_ctor_cstr_len_alloc
, 16)
891 basic_string_char
* __thiscall
MSVCP_basic_string_char_ctor_cstr_len_alloc(
892 basic_string_char
*this, const char *str
, size_t len
, const void *alloc
)
894 return MSVCP_basic_string_char_ctor_cstr_len(this, str
, len
);
897 /* ??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@ABV01@II@Z */
898 /* ??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAA@AEBV01@_K1@Z */
899 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_ctor_substr
, 16)
900 basic_string_char
* __thiscall
MSVCP_basic_string_char_ctor_substr(
901 basic_string_char
*this, const basic_string_char
*assign
,
902 size_t pos
, size_t len
)
904 TRACE("%p %p %Iu %Iu\n", this, assign
, pos
, len
);
906 basic_string_char_tidy(this, FALSE
, 0);
907 MSVCP_basic_string_char_assign_substr(this, assign
, pos
, len
);
911 /* ??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@ABV01@IIABV?$allocator@D@1@@Z */
912 /* ??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAA@AEBV01@_K1AEBV?$allocator@D@1@@Z */
913 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_ctor_substr_alloc
, 20)
914 basic_string_char
* __thiscall
MSVCP_basic_string_char_ctor_substr_alloc(
915 basic_string_char
*this, const basic_string_char
*assign
,
916 size_t pos
, size_t len
, const void *alloc
)
918 return MSVCP_basic_string_char_ctor_substr(this, assign
, pos
, len
);
921 /* ??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@ABV?$allocator@D@1@@Z */
922 /* ??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAA@AEBV?$allocator@D@1@@Z */
923 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_ctor_alloc
, 8)
924 basic_string_char
* __thiscall
MSVCP_basic_string_char_ctor_alloc(
925 basic_string_char
*this, const void *alloc
)
927 TRACE("%p %p\n", this, alloc
);
929 basic_string_char_tidy(this, FALSE
, 0);
933 /* ??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@ID@Z */
934 /* ??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAA@_KD@Z */
935 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_ctor_ch
, 12)
936 basic_string_char
* __thiscall
MSVCP_basic_string_char_ctor_ch(basic_string_char
*this,
937 size_t count
, char ch
)
939 TRACE("%p %Iu %c\n", this, count
, ch
);
941 basic_string_char_tidy(this, FALSE
, 0);
942 MSVCP_basic_string_char_assignn(this, count
, ch
);
946 /* ??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@IDABV?$allocator@D@1@@Z */
947 /* ??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAA@_KDAEBV?$allocator@D@1@@Z */
948 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_ctor_ch_alloc
, 16)
949 basic_string_char
* __thiscall
MSVCP_basic_string_char_ctor_ch_alloc(basic_string_char
*this,
950 size_t count
, char ch
, const void *alloc
)
952 return MSVCP_basic_string_char_ctor_ch(this, count
, ch
);
955 /* ??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@PBD0@Z */
956 /* ??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAA@PEBD0@Z */
957 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_ctor_ptr_ptr
, 12)
958 basic_string_char
* __thiscall
MSVCP_basic_string_char_ctor_ptr_ptr(basic_string_char
*this,
959 const char *first
, const char *last
)
961 return MSVCP_basic_string_char_ctor_cstr_len(this, first
, last
-first
);
964 /* ??1?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@XZ */
965 /* ??1?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAA@XZ */
966 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_dtor
, 4)
967 void* __thiscall
MSVCP_basic_string_char_dtor(basic_string_char
*this)
970 basic_string_char_tidy(this, TRUE
, 0);
971 return NULL
; /* FEAR 1 installer expects EAX set to 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 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 size_t __thiscall
basic_string_char_max_size(const basic_string_char
*this)
991 return MSVCP_allocator_char_max_size(STRING_ALLOCATOR(this))-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 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 size_t size
= this->size
;
1011 const 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
, size_t off
, size_t len
)
1031 TRACE("%p %Iu %Iu\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
, size_t offset
, size_t count
)
1043 TRACE("%p %p %Iu %Iu\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
, size_t count
)
1081 TRACE("%p %s %Iu\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, size_t count
, char ch
)
1126 TRACE("%p %Iu %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, size_t pos
, size_t num
,
1225 const char *str
, size_t count
)
1229 TRACE("%p %Iu %Iu %s %Iu\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 size_t pos
, 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, size_t pos
, size_t num
,
1274 const basic_string_char
*compare
, size_t off
, size_t count
)
1276 TRACE("%p %Iu %Iu %p %Iu %Iu\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, size_t pos
, 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 size_t __thiscall
MSVCP_basic_string_char_find_cstr_substr(
1468 const basic_string_char
*this, const char *find
, size_t pos
, size_t len
)
1470 const char *p
, *end
;
1472 TRACE("%p %s %Iu %Iu\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 size_t __thiscall
MSVCP_basic_string_char_find_cstr_off(
1496 const basic_string_char
*this, const char *find
, 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 size_t __thiscall
MSVCP_basic_string_char_find_off(
1506 const basic_string_char
*this, const basic_string_char
*find
, 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 size_t __thiscall
MSVCP_basic_string_char_find_ch(
1516 const basic_string_char
*this, char ch
, 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 size_t __thiscall
MSVCP_basic_string_char_rfind_cstr_substr(
1525 const basic_string_char
*this, const char *find
, size_t pos
, size_t len
)
1527 const char *p
, *end
;
1529 TRACE("%p %s %Iu %Iu\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
)
1538 pos
= this->size
-len
;
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 size_t __thiscall
MSVCP_basic_string_char_rfind_cstr_off(
1552 const basic_string_char
*this, const char *find
, 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 size_t __thiscall
MSVCP_basic_string_char_rfind_off(
1562 const basic_string_char
*this, const basic_string_char
*find
, 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 size_t __thiscall
MSVCP_basic_string_char_rfind_ch(
1572 const basic_string_char
*this, char ch
, 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 size_t __thiscall
MSVCP_basic_string_char_find_first_of_cstr_substr(
1581 const basic_string_char
*this, const char *find
, size_t off
, size_t len
)
1583 const char *p
, *end
;
1585 TRACE("%p %p %Iu %Iu\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 size_t __thiscall
MSVCP_basic_string_char_find_first_of(
1601 const basic_string_char
*this, const basic_string_char
*find
, 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 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 if(str
!= this->str
) {
1639 _Yarn_char__Tidy(this);
1642 size_t len
= strlen(str
);
1644 this->str
= operator_new((len
+1)*sizeof(char));
1645 memcpy(this->str
, str
, (len
+1)*sizeof(char));
1651 /* ??0?$_Yarn@D@std@@QAE@PBD@Z */
1652 /* ??0?$_Yarn@D@std@@QEAA@PEBD@Z */
1653 DEFINE_THISCALL_WRAPPER(_Yarn_char_ctor_cstr
, 8)
1654 _Yarn_char
* __thiscall
_Yarn_char_ctor_cstr(_Yarn_char
*this, const char *str
)
1656 TRACE("(%p %p)\n", this, str
);
1658 _Yarn_char_ctor(this);
1659 return _Yarn_char_op_assign_cstr(this, str
);
1662 /* ??4?$_Yarn@D@std@@QAEAAV01@ABV01@@Z */
1663 /* ??4?$_Yarn@D@std@@QEAAAEAV01@AEBV01@@Z */
1664 DEFINE_THISCALL_WRAPPER(_Yarn_char_op_assign
, 8)
1665 _Yarn_char
* __thiscall
_Yarn_char_op_assign(_Yarn_char
*this, const _Yarn_char
*rhs
)
1667 TRACE("(%p %p)\n", this, rhs
);
1669 return _Yarn_char_op_assign_cstr(this, rhs
->str
);
1672 /* ??0?$_Yarn@D@std@@QAE@ABV01@@Z */
1673 /* ??0?$_Yarn@D@std@@QEAA@AEBV01@@Z */
1674 DEFINE_THISCALL_WRAPPER(_Yarn_char_copy_ctor
, 8)
1675 _Yarn_char
* __thiscall
_Yarn_char_copy_ctor(_Yarn_char
*this, const _Yarn_char
*copy
)
1677 TRACE("(%p %p)\n", this, copy
);
1679 _Yarn_char_ctor(this);
1680 return _Yarn_char_op_assign(this, copy
);
1683 /* ??1?$_Yarn@D@std@@QAE@XZ */
1684 /* ??1?$_Yarn@D@std@@QEAA@XZ */
1685 DEFINE_THISCALL_WRAPPER(_Yarn_char_dtor
, 4)
1686 void __thiscall
_Yarn_char_dtor(_Yarn_char
*this)
1688 TRACE("(%p)\n", this);
1689 _Yarn_char__Tidy(this);
1692 /* ?_C_str@?$_Yarn@D@std@@QBEPBDXZ */
1693 /* ?_C_str@?$_Yarn@D@std@@QEBAPEBDXZ */
1694 /* ?c_str@?$_Yarn@D@std@@QBEPBDXZ */
1695 /* ?c_str@?$_Yarn@D@std@@QEBAPEBDXZ */
1696 DEFINE_THISCALL_WRAPPER(_Yarn_char_c_str
, 4)
1697 const char* __thiscall
_Yarn_char_c_str(const _Yarn_char
*this)
1699 TRACE("(%p)\n", this);
1700 return this->str
? this->str
: &this->null_str
;
1703 /* ?_Empty@?$_Yarn@D@std@@QBE_NXZ */
1704 /* ?_Empty@?$_Yarn@D@std@@QEBA_NXZ */
1705 /* ?empty@?$_Yarn@D@std@@QBE_NXZ */
1706 /* ?empty@?$_Yarn@D@std@@QEBA_NXZ */
1707 DEFINE_THISCALL_WRAPPER(_Yarn_char_empty
, 4)
1708 bool __thiscall
_Yarn_char_empty(const _Yarn_char
*this)
1710 TRACE("(%p)\n", this);
1714 /* ??0?$_Yarn@_W@std@@QAE@XZ */
1715 /* ??0?$_Yarn@_W@std@@QEAA@XZ */
1716 DEFINE_THISCALL_WRAPPER(_Yarn_wchar_ctor
, 4)
1717 _Yarn_wchar
* __thiscall
_Yarn_wchar_ctor(_Yarn_wchar
*this)
1719 TRACE("(%p)\n", this);
1722 this->null_str
= '\0';
1726 /* ?_Tidy@?$_Yarn@_W@std@@AAEXXZ */
1727 /* ?_Tidy@?$_Yarn@_W@std@@AEAAXXZ */
1728 DEFINE_THISCALL_WRAPPER(_Yarn_wchar__Tidy
, 4)
1729 void __thiscall
_Yarn_wchar__Tidy(_Yarn_wchar
*this)
1731 TRACE("(%p)\n", this);
1734 operator_delete(this->str
);
1738 /* ??1?$_Yarn@_W@std@@QAE@XZ */
1739 /* ??1?$_Yarn@_W@std@@QEAA@XZ */
1740 DEFINE_THISCALL_WRAPPER(_Yarn_wchar_dtor
, 4)
1741 void __thiscall
_Yarn_wchar_dtor(_Yarn_wchar
*this)
1743 TRACE("(%p)\n", this);
1744 _Yarn_wchar__Tidy(this);
1747 /* ??4?$_Yarn@_W@std@@QAEAAV01@PB_W@Z */
1748 /* ??4?$_Yarn@_W@std@@QEAAAEAV01@PEB_W@Z */
1749 DEFINE_THISCALL_WRAPPER(_Yarn_wchar_op_assign_cstr
, 8)
1750 _Yarn_wchar
* __thiscall
_Yarn_wchar_op_assign_cstr(_Yarn_wchar
*this, const wchar_t *str
)
1752 TRACE("(%p %p)\n", this, str
);
1754 if(str
!= this->str
) {
1755 _Yarn_wchar__Tidy(this);
1758 size_t len
= wcslen(str
);
1760 this->str
= operator_new((len
+1)*sizeof(wchar_t));
1761 memcpy(this->str
, str
, (len
+1)*sizeof(wchar_t));
1767 /* ?_C_str@?$_Yarn@_W@std@@QBEPB_WXZ */
1768 /* ?_C_str@?$_Yarn@_W@std@@QEBAPEB_WXZ */
1769 DEFINE_THISCALL_WRAPPER(_Yarn_wchar__C_str
, 4)
1770 const wchar_t* __thiscall
_Yarn_wchar__C_str(const _Yarn_wchar
*this)
1772 TRACE("(%p)\n", this);
1773 return this->str
? this->str
: &this->null_str
;
1776 /* ?_Empty@?$_Yarn@_W@std@@QBE_NXZ */
1777 /* ?_Empty@?$_Yarn@_W@std@@QEBA_NXZ */
1778 DEFINE_THISCALL_WRAPPER(_Yarn_wchar__Empty
, 4)
1779 bool __thiscall
_Yarn_wchar__Empty(const _Yarn_wchar
*this)
1781 TRACE("(%p)\n", this);
1785 /* ?find_first_of@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEIPBDI@Z */
1786 /* ?find_first_of@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA_KPEBD_K@Z */
1787 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_find_first_of_cstr
, 12)
1788 size_t __thiscall
MSVCP_basic_string_char_find_first_of_cstr(
1789 const basic_string_char
*this, const char *find
, size_t off
)
1791 return MSVCP_basic_string_char_find_first_of_cstr_substr(
1792 this, find
, off
, MSVCP_char_traits_char_length(find
));
1795 /* ?find_first_of@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEIDI@Z */
1796 /* ?find_first_of@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA_KD_K@Z */
1797 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_find_first_of_ch
, 12)
1798 size_t __thiscall
MSVCP_basic_string_char_find_first_of_ch(
1799 const basic_string_char
*this, char ch
, size_t off
)
1801 return MSVCP_basic_string_char_find_first_of_cstr_substr(this, &ch
, off
, 1);
1804 /* ?find_first_not_of@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEIPBDII@Z */
1805 /* ?find_first_not_of@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA_KPEBD_K1@Z */
1806 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_find_first_not_of_cstr_substr
, 16)
1807 size_t __thiscall
MSVCP_basic_string_char_find_first_not_of_cstr_substr(
1808 const basic_string_char
*this, const char *find
, size_t off
, size_t len
)
1810 const char *p
, *end
;
1812 TRACE("%p %p %Iu %Iu\n", this, find
, off
, len
);
1814 if(off
<this->size
) {
1815 end
= basic_string_char_const_ptr(this)+this->size
;
1816 for(p
=basic_string_char_const_ptr(this)+off
; p
<end
; p
++)
1817 if(!MSVCP_char_traits_char_find(find
, len
, p
))
1818 return p
-basic_string_char_const_ptr(this);
1821 return MSVCP_basic_string_char_npos
;
1824 /* ?find_first_not_of@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEIABV12@I@Z */
1825 /* ?find_first_not_of@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA_KAEBV12@_K@Z */
1826 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_find_first_not_of
, 12)
1827 size_t __thiscall
MSVCP_basic_string_char_find_first_not_of(
1828 const basic_string_char
*this, const basic_string_char
*find
, size_t off
)
1830 return MSVCP_basic_string_char_find_first_not_of_cstr_substr(this,
1831 basic_string_char_const_ptr(find
), off
, find
->size
);
1834 /* ?find_first_not_of@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEIPBDI@Z */
1835 /* ?find_first_not_of@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA_KPEBD_K@Z */
1836 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_find_first_not_of_cstr
, 12)
1837 size_t __thiscall
MSVCP_basic_string_char_find_first_not_of_cstr(
1838 const basic_string_char
*this, const char *find
, size_t off
)
1840 return MSVCP_basic_string_char_find_first_not_of_cstr_substr(
1841 this, find
, off
, MSVCP_char_traits_char_length(find
));
1844 /* ?find_first_not_of@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEIDI@Z */
1845 /* ?find_first_not_of@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA_KD_K@Z */
1846 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_find_first_not_of_ch
, 12)
1847 size_t __thiscall
MSVCP_basic_string_char_find_first_not_of_ch(
1848 const basic_string_char
*this, char ch
, size_t off
)
1850 return MSVCP_basic_string_char_find_first_not_of_cstr_substr(this, &ch
, off
, 1);
1853 /* ?find_last_of@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEIPBDII@Z */
1854 /* ?find_last_of@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA_KPEBD_K1@Z */
1855 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_find_last_of_cstr_substr
, 16)
1856 size_t __thiscall
MSVCP_basic_string_char_find_last_of_cstr_substr(
1857 const basic_string_char
*this, const char *find
, size_t off
, size_t len
)
1859 const char *p
, *beg
;
1861 TRACE("%p %p %Iu %Iu\n", this, find
, off
, len
);
1863 if(len
>0 && this->size
>0) {
1864 if(off
>= this->size
)
1867 beg
= basic_string_char_const_ptr(this);
1868 for(p
=beg
+off
; p
>=beg
; p
--)
1869 if(MSVCP_char_traits_char_find(find
, len
, p
))
1873 return MSVCP_basic_string_char_npos
;
1876 /* ?find_last_of@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEIABV12@I@Z */
1877 /* ?find_last_of@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA_KAEBV12@_K@Z */
1878 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_find_last_of
, 12)
1879 size_t __thiscall
MSVCP_basic_string_char_find_last_of(
1880 const basic_string_char
*this, const basic_string_char
*find
, size_t off
)
1882 return MSVCP_basic_string_char_find_last_of_cstr_substr(this,
1883 basic_string_char_const_ptr(find
), off
, find
->size
);
1886 /* ?find_last_of@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEIPBDI@Z */
1887 /* ?find_last_of@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA_KPEBD_K@Z */
1888 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_find_last_of_cstr
, 12)
1889 size_t __thiscall
MSVCP_basic_string_char_find_last_of_cstr(
1890 const basic_string_char
*this, const char *find
, size_t off
)
1892 return MSVCP_basic_string_char_find_last_of_cstr_substr(
1893 this, find
, off
, MSVCP_char_traits_char_length(find
));
1896 /* ?find_last_of@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEIDI@Z */
1897 /* ?find_last_of@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA_KD_K@Z */
1898 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_find_last_of_ch
, 12)
1899 size_t __thiscall
MSVCP_basic_string_char_find_last_of_ch(
1900 const basic_string_char
*this, char ch
, size_t off
)
1902 return MSVCP_basic_string_char_find_last_of_cstr_substr(this, &ch
, off
, 1);
1905 /* ?find_last_not_of@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEIPBDII@Z */
1906 /* ?find_last_not_of@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA_KPEBD_K1@Z */
1907 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_find_last_not_of_cstr_substr
, 16)
1908 size_t __thiscall
MSVCP_basic_string_char_find_last_not_of_cstr_substr(
1909 const basic_string_char
*this, const char *find
, size_t off
, size_t len
)
1911 const char *p
, *beg
;
1913 TRACE("%p %p %Iu %Iu\n", this, find
, off
, len
);
1916 if(off
>= this->size
)
1919 beg
= basic_string_char_const_ptr(this);
1920 for(p
=beg
+off
; p
>=beg
; p
--)
1921 if(!MSVCP_char_traits_char_find(find
, len
, p
))
1925 return MSVCP_basic_string_char_npos
;
1928 /* ?find_last_not_of@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEIABV12@I@Z */
1929 /* ?find_last_not_of@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA_KAEBV12@_K@Z */
1930 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_find_last_not_of
, 12)
1931 size_t __thiscall
MSVCP_basic_string_char_find_last_not_of(
1932 const basic_string_char
*this, const basic_string_char
*find
, size_t off
)
1934 return MSVCP_basic_string_char_find_last_not_of_cstr_substr(this,
1935 basic_string_char_const_ptr(find
), off
, find
->size
);
1938 /* ?find_last_not_of@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEIPBDI@Z */
1939 /* ?find_last_not_of@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA_KPEBD_K@Z */
1940 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_find_last_not_of_cstr
, 12)
1941 size_t __thiscall
MSVCP_basic_string_char_find_last_not_of_cstr(
1942 const basic_string_char
*this, const char *find
, size_t off
)
1944 return MSVCP_basic_string_char_find_last_not_of_cstr_substr(
1945 this, find
, off
, MSVCP_char_traits_char_length(find
));
1948 /* ?find_last_not_of@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEIDI@Z */
1949 /* ?find_last_not_of@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA_KD_K@Z */
1950 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_find_last_not_of_ch
, 12)
1951 size_t __thiscall
MSVCP_basic_string_char_find_last_not_of_ch(
1952 const basic_string_char
*this, char ch
, size_t off
)
1954 return MSVCP_basic_string_char_find_last_not_of_cstr_substr(this, &ch
, off
, 1);
1957 /* ??A?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAADI@Z */
1958 /* ??A?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAAEAD_K@Z */
1959 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_operator_at
, 8)
1960 char* __thiscall
MSVCP_basic_string_char_operator_at(
1961 basic_string_char
*this, size_t pos
)
1963 TRACE("%p %Iu\n", this, pos
);
1965 #if _MSVCP_VER >= 80
1966 if (this->size
< pos
)
1967 _invalid_parameter(NULL
, NULL
, NULL
, 0, 0);
1970 return basic_string_char_ptr(this)+pos
;
1973 /* ??A?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEABDI@Z */
1974 /* ??A?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBAAEBD_K@Z */
1975 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_const_operator_at
, 8)
1976 const char* __thiscall
MSVCP_basic_string_char_const_operator_at(
1977 const basic_string_char
*this, size_t pos
)
1979 TRACE("%p %Iu\n", this, pos
);
1981 #if _MSVCP_VER >= 80
1982 if (this->size
< pos
)
1983 _invalid_parameter(NULL
, NULL
, NULL
, 0, 0);
1986 return basic_string_char_const_ptr(this)+pos
;
1989 /* ??A?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAADU_Size_type_nosscl@01@@Z */
1990 /* ??A?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAAEADU_Size_type_nosscl@01@@Z */
1991 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_operator_at_noverify
, 8)
1992 char* __thiscall
MSVCP_basic_string_char_operator_at_noverify(
1993 basic_string_char
*this, size_t_noverify pos
)
1995 TRACE("%p %Iu\n", this, pos
.val
);
1996 return basic_string_char_ptr(this)+pos
.val
;
1999 /* ??A?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEABDU_Size_type_nosscl@01@@Z */
2000 /* ??A?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBAAEBDU_Size_type_nosscl@01@@Z */
2001 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_operator_const_at_noverify
, 8)
2002 const char* __thiscall
MSVCP_basic_string_char_operator_const_at_noverify(
2003 const basic_string_char
*this, size_t_noverify pos
)
2005 TRACE("%p %Iu\n", this, pos
.val
);
2006 return basic_string_char_const_ptr(this)+pos
.val
;
2009 /* ?at@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAADI@Z */
2010 /* ?at@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAAEAD_K@Z */
2011 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_at
, 8)
2012 char* __thiscall
MSVCP_basic_string_char_at(
2013 basic_string_char
*this, size_t pos
)
2015 TRACE("%p %Iu\n", this, pos
);
2017 if(this->size
<= pos
)
2018 MSVCP__String_base_Xran();
2020 return basic_string_char_ptr(this)+pos
;
2023 /* ?at@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEABDI@Z */
2024 /* ?at@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBAAEBD_K@Z */
2025 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_const_at
, 8)
2026 const char* __thiscall
MSVCP_basic_string_char_const_at(
2027 const basic_string_char
*this, size_t pos
)
2029 TRACE("%p %Iu\n", this, pos
);
2031 if(this->size
<= pos
)
2032 MSVCP__String_base_Xran();
2034 return basic_string_char_const_ptr(this)+pos
;
2037 /* ?replace@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@IIPBDI@Z */
2038 /* ?replace@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAAEAV12@_K0PEBD0@Z */
2039 DEFINE_THISCALL_WRAPPER(basic_string_char_replace_cstr_len
, 20)
2040 basic_string_char
* __thiscall
basic_string_char_replace_cstr_len(basic_string_char
*this,
2041 size_t off
, size_t len
, const char *str
, size_t str_len
)
2043 size_t inside_pos
= -1;
2044 char *ptr
= basic_string_char_ptr(this);
2046 TRACE("%p %Iu %Iu %p %Iu\n", this, off
, len
, str
, str_len
);
2048 if(this->size
< off
)
2049 MSVCP__String_base_Xran();
2051 if(len
> this->size
-off
)
2052 len
= this->size
-off
;
2054 if(MSVCP_basic_string_char_npos
-str_len
<= this->size
-len
)
2055 MSVCP__String_base_Xlen();
2057 if(basic_string_char_inside(this, str
))
2058 inside_pos
= str
-ptr
;
2061 basic_string_char_grow(this, this->size
-len
+str_len
, FALSE
);
2062 ptr
= basic_string_char_ptr(this);
2065 if(inside_pos
== -1) {
2066 memmove(ptr
+off
+str_len
, ptr
+off
+len
, (this->size
-off
-len
)*sizeof(char));
2067 memcpy(ptr
+off
, str
, str_len
*sizeof(char));
2068 } else if(len
>= str_len
) {
2069 memmove(ptr
+off
, ptr
+inside_pos
, str_len
*sizeof(char));
2070 memmove(ptr
+off
+str_len
, ptr
+off
+len
, (this->size
-off
-len
)*sizeof(char));
2074 memmove(ptr
+off
+str_len
, ptr
+off
+len
, (this->size
-off
-len
)*sizeof(char));
2076 if(inside_pos
< off
+len
) {
2077 size
= off
+len
-inside_pos
;
2080 memmove(ptr
+off
, ptr
+inside_pos
, size
*sizeof(char));
2086 memmove(ptr
+off
+size
, ptr
+off
+str_len
, (str_len
-size
)*sizeof(char));
2089 basic_string_char_eos(this, this->size
-len
+str_len
);
2093 /* ?replace@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@IIPBD@Z */
2094 /* ?replace@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAAEAV12@_K0PEBD@Z */
2095 DEFINE_THISCALL_WRAPPER(basic_string_char_replace_cstr
, 16)
2096 basic_string_char
* __thiscall
basic_string_char_replace_cstr(basic_string_char
*this,
2097 size_t off
, size_t len
, const char *str
)
2099 return basic_string_char_replace_cstr_len(this, off
, len
, str
,
2100 MSVCP_char_traits_char_length(str
));
2103 /* ?replace@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@IIABV12@II@Z */
2104 /* ?replace@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAAEAV12@_K0AEBV12@00@Z */
2105 DEFINE_THISCALL_WRAPPER(basic_string_char_replace_substr
, 24)
2106 basic_string_char
* __thiscall
basic_string_char_replace_substr(basic_string_char
*this, size_t off
,
2107 size_t len
, const basic_string_char
*str
, size_t str_off
, size_t str_len
)
2109 if(str
->size
< str_off
)
2110 MSVCP__String_base_Xran();
2112 if(str_len
> str
->size
-str_off
)
2113 str_len
= str
->size
-str_off
;
2115 return basic_string_char_replace_cstr_len(this, off
, len
,
2116 basic_string_char_const_ptr(str
)+str_off
, str_len
);
2119 /* ?replace@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@IIABV12@@Z */
2120 /* ?replace@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAAEAV12@_K0AEBV12@@Z */
2121 DEFINE_THISCALL_WRAPPER(basic_string_char_replace
, 16)
2122 basic_string_char
* __thiscall
basic_string_char_replace(basic_string_char
*this,
2123 size_t off
, size_t len
, const basic_string_char
*str
)
2125 return basic_string_char_replace_cstr_len(this, off
, len
,
2126 basic_string_char_const_ptr(str
), str
->size
);
2129 /* ?replace@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@IIID@Z */
2130 /* ?replace@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAAEAV12@_K00D@Z */
2131 DEFINE_THISCALL_WRAPPER(basic_string_char_replace_ch
, 20)
2132 basic_string_char
* __thiscall
basic_string_char_replace_ch(basic_string_char
*this,
2133 size_t off
, size_t len
, size_t count
, char ch
)
2135 char *ptr
= basic_string_char_ptr(this);
2137 TRACE("%p %Iu %Iu %Iu %c\n", this, off
, len
, count
, ch
);
2139 if(this->size
< off
)
2140 MSVCP__String_base_Xran();
2142 if(len
> this->size
-off
)
2143 len
= this->size
-off
;
2145 if(MSVCP_basic_string_char_npos
-count
<= this->size
-len
)
2146 MSVCP__String_base_Xlen();
2149 basic_string_char_grow(this, this->size
-len
+count
, FALSE
);
2150 ptr
= basic_string_char_ptr(this);
2153 memmove(ptr
+off
+count
, ptr
+off
+len
, (this->size
-off
-len
)*sizeof(char));
2154 MSVCP_char_traits_char_assignn(ptr
+off
, count
, ch
);
2155 basic_string_char_eos(this, this->size
-len
+count
);
2160 /* ?insert@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@IABV12@@Z */
2161 /* ?insert@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAAEAV12@_KAEBV12@@Z */
2162 DEFINE_THISCALL_WRAPPER(basic_string_char_insert
, 12)
2163 basic_string_char
* __thiscall
basic_string_char_insert(basic_string_char
*this,
2164 size_t off
, const basic_string_char
*str
)
2166 return basic_string_char_replace(this, off
, 0, str
);
2169 /* ?insert@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@IABV12@II@Z */
2170 /* ?insert@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAAEAV12@_KAEBV12@00@Z */
2171 DEFINE_THISCALL_WRAPPER(basic_string_char_insert_substr
, 20)
2172 basic_string_char
* __thiscall
basic_string_char_insert_substr(
2173 basic_string_char
*this, size_t off
, const basic_string_char
*str
,
2174 size_t str_off
, size_t str_count
)
2176 return basic_string_char_replace_substr(this, off
, 0, str
, str_off
, str_count
);
2179 /* ?insert@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@IPBD@Z */
2180 /* ?insert@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAAEAV12@_KPEBD@Z */
2181 DEFINE_THISCALL_WRAPPER(basic_string_char_insert_cstr
, 12)
2182 basic_string_char
* __thiscall
basic_string_char_insert_cstr(
2183 basic_string_char
*this, size_t off
, const char *str
)
2185 return basic_string_char_replace_cstr(this, off
, 0, str
);
2188 /* ?insert@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@IPBDI@Z */
2189 /* ?insert@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAAEAV12@_KPEBD0@Z */
2190 DEFINE_THISCALL_WRAPPER(basic_string_char_insert_cstr_len
, 16)
2191 basic_string_char
* __thiscall
basic_string_char_insert_cstr_len(basic_string_char
*this,
2192 size_t off
, const char *str
, size_t str_len
)
2194 return basic_string_char_replace_cstr_len(this, off
, 0, str
, str_len
);
2197 /* ?insert@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@IID@Z */
2198 /* ?insert@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAAEAV12@_K0D@Z */
2199 DEFINE_THISCALL_WRAPPER(basic_string_char_insert_chn
, 16)
2200 basic_string_char
* __thiscall
basic_string_char_insert_chn(basic_string_char
*this,
2201 size_t off
, size_t count
, char ch
)
2203 return basic_string_char_replace_ch(this, off
, 0, count
, ch
);
2206 /* ?resize@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEXID@Z */
2207 /* ?resize@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAX_KD@Z */
2208 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_resize_ch
, 12)
2209 void __thiscall
MSVCP_basic_string_char_resize_ch(
2210 basic_string_char
*this, size_t size
, char ch
)
2212 TRACE("%p %Iu %c\n", this, size
, ch
);
2214 if(size
<= this->size
)
2215 MSVCP_basic_string_char_erase(this, size
, this->size
);
2217 MSVCP_basic_string_char_append_len_ch(this, size
-this->size
, ch
);
2220 /* ?resize@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEXI@Z */
2221 /* ?resize@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAX_K@Z */
2222 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_resize
, 8)
2223 void __thiscall
MSVCP_basic_string_char_resize(
2224 basic_string_char
*this, size_t size
)
2226 MSVCP_basic_string_char_resize_ch(this, size
, '\0');
2229 /* ?clear@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEXXZ */
2230 /* ?clear@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAXXZ */
2231 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_clear
, 4)
2232 void __thiscall
MSVCP_basic_string_char_clear(basic_string_char
*this)
2234 basic_string_char_eos(this, 0);
2237 /* basic_string<wchar_t, char_traits<wchar_t>, allocator<wchar_t>> */
2238 /* basic_string<unsigned short, char_traits<unsigned short>, allocator<unsigned short>> */
2239 /* ?npos@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@2IB */
2240 /* ?npos@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@2_KB */
2241 /* ?npos@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@2IB */
2242 /* ?npos@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@2_KB */
2243 const size_t MSVCP_basic_string_wchar_npos
= -1;
2245 /* ?_Myptr@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@IAEPA_WXZ */
2246 /* ?_Myptr@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@IEAAPEA_WXZ */
2247 /* ?_Myptr@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@IAEPAGXZ */
2248 /* ?_Myptr@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@IEAAPEAGXZ */
2249 DEFINE_THISCALL_WRAPPER(basic_string_wchar_ptr
, 4)
2250 wchar_t* __thiscall
basic_string_wchar_ptr(basic_string_wchar
*this)
2252 if(this->res
< BUF_SIZE_WCHAR
)
2253 return this->data
.buf
;
2254 return this->data
.ptr
;
2257 /* ?_Myptr@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@IBEPB_WXZ */
2258 /* ?_Myptr@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@IEBAPEB_WXZ */
2259 /* ?_Myptr@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@IBEPBGXZ */
2260 /* ?_Myptr@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@IEBAPEBGXZ */
2261 DEFINE_THISCALL_WRAPPER(basic_string_wchar_const_ptr
, 4)
2262 const wchar_t* __thiscall
basic_string_wchar_const_ptr(const basic_string_wchar
*this)
2264 if(this->res
< BUF_SIZE_WCHAR
)
2265 return this->data
.buf
;
2266 return this->data
.ptr
;
2269 /* ?_Eos@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@IAEXI@Z */
2270 /* ?_Eos@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@IEAAX_K@Z */
2271 /* ?_Eos@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@IAEXI@Z */
2272 /* ?_Eos@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@IEAAX_K@Z */
2273 DEFINE_THISCALL_WRAPPER(basic_string_wchar_eos
, 8)
2274 void __thiscall
basic_string_wchar_eos(basic_string_wchar
*this, size_t len
)
2277 MSVCP_char_traits_wchar_assign(basic_string_wchar_ptr(this)+len
, L
"");
2280 /* ?_Inside@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@IAE_NPB_W@Z */
2281 /* ?_Inside@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@IEAA_NPEB_W@Z */
2282 /* ?_Inside@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@IAE_NPBG@Z */
2283 /* ?_Inside@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@IEAA_NPEBG@Z */
2284 DEFINE_THISCALL_WRAPPER(basic_string_wchar_inside
, 8)
2285 bool __thiscall
basic_string_wchar_inside(
2286 basic_string_wchar
*this, const wchar_t *ptr
)
2288 wchar_t *cstr
= basic_string_wchar_ptr(this);
2290 return ptr
>=cstr
&& ptr
<cstr
+this->size
;
2293 /* ?_Tidy@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@IAEX_NI@Z */
2294 /* ?_Tidy@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@IEAAX_N_K@Z */
2295 /* ?_Tidy@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@IAEX_NI@Z */
2296 /* ?_Tidy@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@IEAAX_N_K@Z */
2297 DEFINE_THISCALL_WRAPPER(basic_string_wchar_tidy
, 12)
2298 void __thiscall
basic_string_wchar_tidy(basic_string_wchar
*this,
2299 bool built
, size_t new_size
)
2301 if(built
&& BUF_SIZE_WCHAR
<=this->res
) {
2302 wchar_t *ptr
= this->data
.ptr
;
2305 MSVCP_char_traits_wchar__Copy_s(this->data
.buf
, BUF_SIZE_WCHAR
, ptr
, new_size
);
2306 MSVCP_allocator_wchar_deallocate(STRING_ALLOCATOR(this), ptr
, this->res
+1);
2309 this->res
= BUF_SIZE_WCHAR
-1;
2310 basic_string_wchar_eos(this, new_size
);
2313 /* ?_Grow@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@IAE_NI_N@Z */
2314 /* ?_Grow@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@IEAA_N_K_N@Z */
2315 /* ?_Grow@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@IAE_NI_N@Z */
2316 /* ?_Grow@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@IEAA_N_K_N@Z */
2317 DEFINE_THISCALL_WRAPPER(basic_string_wchar_grow
, 12)
2318 bool __thiscall
basic_string_wchar_grow(
2319 basic_string_wchar
*this, size_t new_size
, bool trim
)
2321 if(this->res
< new_size
) {
2322 size_t new_res
= new_size
, len
= this->size
;
2327 if(new_res
/3 < this->res
/2)
2328 new_res
= this->res
+ this->res
/2;
2330 ptr
= MSVCP_allocator_wchar_allocate(STRING_ALLOCATOR(this), new_res
+1);
2332 ptr
= MSVCP_allocator_wchar_allocate(STRING_ALLOCATOR(this), new_size
+1);
2336 ERR("Out of memory\n");
2337 basic_string_wchar_tidy(this, TRUE
, 0);
2341 MSVCP_char_traits_wchar__Copy_s(ptr
, new_size
,
2342 basic_string_wchar_ptr(this), this->size
);
2343 basic_string_wchar_tidy(this, TRUE
, 0);
2344 this->data
.ptr
= ptr
;
2345 this->res
= new_size
;
2346 basic_string_wchar_eos(this, len
);
2347 } else if(trim
&& new_size
< BUF_SIZE_WCHAR
)
2348 basic_string_wchar_tidy(this, TRUE
,
2349 new_size
<this->size
? new_size
: this->size
);
2350 else if(new_size
== 0)
2351 basic_string_wchar_eos(this, 0);
2353 return (new_size
>0);
2356 /* ?_Copy@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@IAEXII@Z */
2357 /* ?_Copy@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@IEAAX_K0@Z */
2358 /* ?_Copy@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@IAEXII@Z */
2359 /* ?_Copy@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@IEAAX_K0@Z */
2360 DEFINE_THISCALL_WRAPPER(basic_string_wchar__Copy
, 12)
2361 void __thiscall
basic_string_wchar__Copy(basic_string_wchar
*this,
2362 size_t new_size
, size_t copy_len
)
2364 TRACE("%p %Iu %Iu\n", this, new_size
, copy_len
);
2366 if(!basic_string_wchar_grow(this, new_size
, FALSE
))
2368 basic_string_wchar_eos(this, copy_len
);
2371 /* ?get_allocator@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBE?AV?$allocator@_W@2@XZ */
2372 /* ?get_allocator@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBA?AV?$allocator@_W@2@XZ */
2373 /* ?get_allocator@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBE?AV?$allocator@G@2@XZ */
2374 /* ?get_allocator@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBA?AV?$allocator@G@2@XZ */
2375 DEFINE_THISCALL_WRAPPER(basic_string_wchar_get_allocator
, 8)
2376 allocator
* __thiscall
basic_string_wchar_get_allocator(const basic_string_wchar
*this, allocator
*ret
)
2378 TRACE("%p\n", this);
2382 /* ?erase@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV12@II@Z */
2383 /* ?erase@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAAEAV12@_K0@Z */
2384 /* ?erase@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV12@II@Z */
2385 /* ?erase@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAAEAV12@_K0@Z */
2386 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_erase
, 12)
2387 basic_string_wchar
* __thiscall
MSVCP_basic_string_wchar_erase(
2388 basic_string_wchar
*this, size_t pos
, size_t len
)
2390 TRACE("%p %Iu %Iu\n", this, pos
, len
);
2392 if(pos
> this->size
)
2393 MSVCP__String_base_Xran();
2395 if(len
> this->size
-pos
)
2396 len
= this->size
-pos
;
2399 MSVCP_char_traits_wchar__Move_s(basic_string_wchar_ptr(this)+pos
,
2400 this->res
-pos
, basic_string_wchar_ptr(this)+pos
+len
,
2401 this->size
-pos
-len
);
2402 basic_string_wchar_eos(this, this->size
-len
);
2408 /* ?assign@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV12@ABV12@II@Z */
2409 /* ?assign@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAAEAV12@AEBV12@_K1@Z */
2410 /* ?assign@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV12@ABV12@II@Z */
2411 /* ?assign@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAAEAV12@AEBV12@_K1@Z */
2412 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_assign_substr
, 16)
2413 basic_string_wchar
* __thiscall
MSVCP_basic_string_wchar_assign_substr(
2414 basic_string_wchar
*this, const basic_string_wchar
*assign
,
2415 size_t pos
, size_t len
)
2417 TRACE("%p %p %Iu %Iu\n", this, assign
, pos
, len
);
2419 if(assign
->size
< pos
)
2420 MSVCP__String_base_Xran();
2422 if(len
> assign
->size
-pos
)
2423 len
= assign
->size
-pos
;
2425 if(this == assign
) {
2426 MSVCP_basic_string_wchar_erase(this, pos
+len
, MSVCP_basic_string_wchar_npos
);
2427 MSVCP_basic_string_wchar_erase(this, 0, pos
);
2428 } else if(basic_string_wchar_grow(this, len
, FALSE
)) {
2429 MSVCP_char_traits_wchar__Copy_s(basic_string_wchar_ptr(this),
2430 this->res
, basic_string_wchar_const_ptr(assign
)+pos
, len
);
2431 basic_string_wchar_eos(this, len
);
2437 /* ?assign@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV12@ABV12@@Z */
2438 /* ?assign@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAAEAV12@AEBV12@@Z */
2439 /* ??4?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV01@ABV01@@Z */
2440 /* ??4?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAAEAV01@AEBV01@@Z */
2441 /* ?assign@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV12@ABV12@@Z */
2442 /* ?assign@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAAEAV12@AEBV12@@Z */
2443 /* ??4?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV01@ABV01@@Z */
2444 /* ??4?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAAEAV01@AEBV01@@Z */
2445 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_assign
, 8)
2446 basic_string_wchar
* __thiscall
MSVCP_basic_string_wchar_assign(
2447 basic_string_wchar
*this, const basic_string_wchar
*assign
)
2449 return MSVCP_basic_string_wchar_assign_substr(this, assign
,
2450 0, MSVCP_basic_string_wchar_npos
);
2453 /* ?assign@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV12@PB_WI@Z */
2454 /* ?assign@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAAEAV12@PEB_W_K@Z */
2455 /* ?assign@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV12@PBGI@Z */
2456 /* ?assign@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAAEAV12@PEBG_K@Z */
2457 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_assign_cstr_len
, 12)
2458 basic_string_wchar
* __thiscall
MSVCP_basic_string_wchar_assign_cstr_len(
2459 basic_string_wchar
*this, const wchar_t *str
, size_t len
)
2461 TRACE("%p %s %Iu\n", this, debugstr_wn(str
, len
), len
);
2463 if(basic_string_wchar_inside(this, str
))
2464 return MSVCP_basic_string_wchar_assign_substr(this, this,
2465 str
-basic_string_wchar_ptr(this), len
);
2466 else if(basic_string_wchar_grow(this, len
, FALSE
)) {
2467 MSVCP_char_traits_wchar__Copy_s(basic_string_wchar_ptr(this),
2468 this->res
, str
, len
);
2469 basic_string_wchar_eos(this, len
);
2475 /* ??4?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV01@_W@Z */
2476 /* ??4?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAAEAV01@_W@Z */
2477 /* ??4?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV01@G@Z */
2478 /* ??4?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAAEAV01@G@Z */
2479 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_assign_ch
, 8)
2480 basic_string_wchar
* __thiscall
MSVCP_basic_string_wchar_assign_ch(
2481 basic_string_wchar
*this, wchar_t ch
)
2483 return MSVCP_basic_string_wchar_assign_cstr_len(this, &ch
, 1);
2486 /* ?assign@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV12@PB_W@Z */
2487 /* ?assign@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAAEAV12@PEB_W@Z */
2488 /* ??4?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV01@PB_W@Z */
2489 /* ??4?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAAEAV01@PEB_W@Z */
2490 /* ?assign@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV12@PBG@Z */
2491 /* ?assign@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAAEAV12@PEBG@Z */
2492 /* ??4?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV01@PBG@Z */
2493 /* ??4?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAAEAV01@PEBG@Z */
2494 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_assign_cstr
, 8)
2495 basic_string_wchar
* __thiscall
MSVCP_basic_string_wchar_assign_cstr(
2496 basic_string_wchar
*this, const wchar_t *str
)
2498 return MSVCP_basic_string_wchar_assign_cstr_len(this, str
,
2499 MSVCP_char_traits_wchar_length(str
));
2502 /* ?assign@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV12@I_W@Z */
2503 /* ?assign@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAAEAV12@_K_W@Z */
2504 /* ?assign@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV12@IG@Z */
2505 /* ?assign@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAAEAV12@_KG@Z */
2506 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_assignn
, 12)
2507 basic_string_wchar
* __thiscall
MSVCP_basic_string_wchar_assignn(
2508 basic_string_wchar
*this, size_t count
, wchar_t ch
)
2510 TRACE("%p %Iu %c\n", this, count
, ch
);
2512 basic_string_wchar_grow(this, count
, FALSE
);
2513 MSVCP_char_traits_wchar_assignn(basic_string_wchar_ptr(this), count
, ch
);
2514 basic_string_wchar_eos(this, count
);
2518 /* ?assign@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV12@PB_W0@Z */
2519 /* ?assign@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAAEAV12@PEB_W0@Z */
2520 /* ?assign@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV12@PBG0@Z */
2521 /* ?assign@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAAEAV12@PEBG0@Z */
2522 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_assign_ptr_ptr
, 12)
2523 basic_string_wchar
* __thiscall
MSVCP_basic_string_wchar_assign_ptr_ptr(
2524 basic_string_wchar
*this, const wchar_t *first
, const wchar_t *last
)
2526 return MSVCP_basic_string_wchar_assign_cstr_len(this, first
, last
-first
);
2529 /* ?_Chassign@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@IAEXII_W@Z */
2530 /* ?_Chassign@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@IEAAX_K0_W@Z */
2531 /* ?_Chassign@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@IAEXIIG@Z */
2532 /* ?_Chassign@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@IEAAX_K0G@Z */
2533 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_Chassign
, 16)
2534 void __thiscall
MSVCP_basic_string_wchar_Chassign(basic_string_wchar
*this,
2535 size_t off
, size_t count
, wchar_t ch
)
2537 TRACE("%p %Iu %Iu %c\n", this, off
, count
, ch
);
2538 MSVCP_char_traits_wchar_assignn(basic_string_wchar_ptr(this)+off
, count
, ch
);
2541 /* ?_Copy_s@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEIPA_WIII@Z */
2542 /* ?_Copy_s@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBA_KPEA_W_K11@Z */
2543 /* ?_Copy_s@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEIPAGIII@Z */
2544 /* ?_Copy_s@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBA_KPEAG_K11@Z */
2545 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_Copy_s
, 20)
2546 size_t __thiscall
MSVCP_basic_string_wchar_Copy_s(const basic_string_wchar
*this,
2547 wchar_t *dest
, size_t size
, size_t count
, size_t off
)
2549 TRACE("%p %p %Iu %Iu %Iu\n", this, dest
, size
, count
, off
);
2551 if(this->size
< off
)
2552 MSVCP__String_base_Xran();
2554 if(count
> this->size
-off
)
2555 count
= this->size
-off
;
2557 MSVCP_char_traits_wchar__Copy_s(dest
, size
,
2558 basic_string_wchar_const_ptr(this)+off
, count
);
2562 /* ?copy@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEIPA_WII@Z */
2563 /* ?copy@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBA_KPEA_W_K1@Z */
2564 /* ?copy@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEIPAGII@Z */
2565 /* ?copy@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBA_KPEAG_K1@Z */
2566 DEFINE_THISCALL_WRAPPER(basic_string_wchar_copy
, 16)
2567 size_t __thiscall
basic_string_wchar_copy(const basic_string_wchar
*this,
2568 wchar_t *dest
, size_t count
, size_t off
)
2570 return MSVCP_basic_string_wchar_Copy_s(this, dest
, count
, count
, off
);
2573 /* ?c_str@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEPB_WXZ */
2574 /* ?c_str@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBAPEB_WXZ */
2575 /* ?data@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEPB_WXZ */
2576 /* ?data@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBAPEB_WXZ */
2577 /* ?c_str@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEPBGXZ */
2578 /* ?c_str@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBAPEBGXZ */
2579 /* ?data@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEPBGXZ */
2580 /* ?data@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBAPEBGXZ */
2581 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_c_str
, 4)
2582 const wchar_t* __thiscall
MSVCP_basic_string_wchar_c_str(const basic_string_wchar
*this)
2584 TRACE("%p\n", this);
2585 return basic_string_wchar_const_ptr(this);
2588 /* ?capacity@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEIXZ */
2589 /* ?capacity@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBA_KXZ */
2590 /* ?capacity@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEIXZ */
2591 /* ?capacity@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBA_KXZ */
2592 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_capacity
, 4)
2593 size_t __thiscall
MSVCP_basic_string_wchar_capacity(basic_string_wchar
*this)
2595 TRACE("%p\n", this);
2599 /* ?reserve@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEXI@Z */
2600 /* ?reserve@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAX_K@Z */
2601 /* ?reserve@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEXI@Z */
2602 /* ?reserve@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAX_K@Z */
2603 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_reserve
, 8)
2604 void __thiscall
MSVCP_basic_string_wchar_reserve(basic_string_wchar
*this, size_t size
)
2608 TRACE("%p %Iu\n", this, size
);
2614 if(basic_string_wchar_grow(this, size
, TRUE
))
2615 basic_string_wchar_eos(this, len
);
2618 /* ??0?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE@XZ */
2619 /* ??0?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAA@XZ */
2620 /* ??0?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAE@XZ */
2621 /* ??0?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAA@XZ */
2622 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_ctor
, 4)
2623 basic_string_wchar
* __thiscall
MSVCP_basic_string_wchar_ctor(basic_string_wchar
*this)
2625 TRACE("%p\n", this);
2627 basic_string_wchar_tidy(this, FALSE
, 0);
2631 /* ??0?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE@ABV01@@Z */
2632 /* ??0?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAA@AEBV01@@Z */
2633 /* ??0?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAE@ABV01@@Z */
2634 /* ??0?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAA@AEBV01@@Z */
2635 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_copy_ctor
, 8)
2636 basic_string_wchar
* __thiscall
MSVCP_basic_string_wchar_copy_ctor(
2637 basic_string_wchar
*this, const basic_string_wchar
*copy
)
2639 TRACE("%p %p\n", this, copy
);
2641 basic_string_wchar_tidy(this, FALSE
, 0);
2642 MSVCP_basic_string_wchar_assign(this, copy
);
2646 /* ??0?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE@PB_W@Z */
2647 /* ??0?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAA@PEB_W@Z */
2648 /* ??0?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAE@PBG@Z */
2649 /* ??0?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAA@PEBG@Z */
2650 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_ctor_cstr
, 8)
2651 basic_string_wchar
* __thiscall
MSVCP_basic_string_wchar_ctor_cstr(
2652 basic_string_wchar
*this, const wchar_t *str
)
2654 TRACE("%p %s\n", this, debugstr_w(str
));
2656 basic_string_wchar_tidy(this, FALSE
, 0);
2657 MSVCP_basic_string_wchar_assign_cstr(this, str
);
2661 /* ??0?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE@PB_WABV?$allocator@_W@1@@Z */
2662 /* ??0?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAA@PEB_WAEBV?$allocator@_W@1@@Z */
2663 /* ??0?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAE@PBGABV?$allocator@G@1@@Z */
2664 /* ??0?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAA@PEBGAEBV?$allocator@G@1@@Z */
2665 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_ctor_cstr_alloc
, 12)
2666 basic_string_wchar
* __thiscall
MSVCP_basic_string_wchar_ctor_cstr_alloc(
2667 basic_string_wchar
*this, const wchar_t *str
, const void *alloc
)
2669 return MSVCP_basic_string_wchar_ctor_cstr(this, str
);
2672 /* ??0?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE@PB_WI@Z */
2673 /* ??0?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAA@PEB_W_K@Z */
2674 /* ??0?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAE@PBGI@Z */
2675 /* ??0?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAA@PEBG_K@Z */
2676 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_ctor_cstr_len
, 12)
2677 basic_string_wchar
* __thiscall
MSVCP_basic_string_wchar_ctor_cstr_len(
2678 basic_string_wchar
*this, const wchar_t *str
, size_t len
)
2680 TRACE("%p %s %Iu\n", this, debugstr_wn(str
, len
), len
);
2682 basic_string_wchar_tidy(this, FALSE
, 0);
2683 MSVCP_basic_string_wchar_assign_cstr_len(this, str
, len
);
2687 /* ??0?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE@PB_WIABV?$allocator@_W@1@@Z */
2688 /* ??0?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAA@PEB_W_KAEBV?$allocator@_W@1@@Z */
2689 /* ??0?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAE@PBGIABV?$allocator@G@1@@Z */
2690 /* ??0?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAA@PEBG_KAEBV?$allocator@G@1@@Z */
2691 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_ctor_cstr_len_alloc
, 16)
2692 basic_string_wchar
* __thiscall
MSVCP_basic_string_wchar_ctor_cstr_len_alloc(
2693 basic_string_wchar
*this, const wchar_t *str
, size_t len
, const void *alloc
)
2695 return MSVCP_basic_string_wchar_ctor_cstr_len(this, str
, len
);
2698 /* ??0?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE@ABV01@II@Z */
2699 /* ??0?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAA@AEBV01@_K1@Z */
2700 /* ??0?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAE@ABV01@II@Z */
2701 /* ??0?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAA@AEBV01@_K1@Z */
2702 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_ctor_substr
, 16)
2703 basic_string_wchar
* __thiscall
MSVCP_basic_string_wchar_ctor_substr(
2704 basic_string_wchar
*this, const basic_string_wchar
*assign
,
2705 size_t pos
, size_t len
)
2707 TRACE("%p %p %Iu %Iu\n", this, assign
, pos
, len
);
2709 basic_string_wchar_tidy(this, FALSE
, 0);
2710 MSVCP_basic_string_wchar_assign_substr(this, assign
, pos
, len
);
2714 /* ??0?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE@ABV01@IIABV?$allocator@_W@1@@Z */
2715 /* ??0?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAA@AEBV01@_K1AEBV?$allocator@_W@1@@Z */
2716 /* ??0?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAE@ABV01@IIABV?$allocator@G@1@@Z */
2717 /* ??0?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAA@AEBV01@_K1AEBV?$allocator@G@1@@Z */
2718 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_ctor_substr_alloc
, 20)
2719 basic_string_wchar
* __thiscall
MSVCP_basic_string_wchar_ctor_substr_alloc(
2720 basic_string_wchar
*this, const basic_string_wchar
*assign
,
2721 size_t pos
, size_t len
, const void *alloc
)
2723 return MSVCP_basic_string_wchar_ctor_substr(this, assign
, pos
, len
);
2726 /* ??0?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE@ABV?$allocator@_W@1@@Z */
2727 /* ??0?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAA@AEBV?$allocator@_W@1@@Z */
2728 /* ??0?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAE@ABV?$allocator@G@1@@Z */
2729 /* ??0?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAA@AEBV?$allocator@G@1@@Z */
2730 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_ctor_alloc
, 8)
2731 basic_string_wchar
* __thiscall
MSVCP_basic_string_wchar_ctor_alloc(
2732 basic_string_wchar
*this, const void *alloc
)
2734 TRACE("%p %p\n", this, alloc
);
2736 basic_string_wchar_tidy(this, FALSE
, 0);
2740 /* ??0?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE@I_W@Z */
2741 /* ??0?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAA@_K_W@Z */
2742 /* ??0?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAE@IG@Z */
2743 /* ??0?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAA@_KG@Z */
2744 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_ctor_ch
, 12)
2745 basic_string_wchar
* __thiscall
MSVCP_basic_string_wchar_ctor_ch(basic_string_wchar
*this,
2746 size_t count
, wchar_t ch
)
2748 TRACE("%p %Iu %c\n", this, count
, ch
);
2750 basic_string_wchar_tidy(this, FALSE
, 0);
2751 MSVCP_basic_string_wchar_assignn(this, count
, ch
);
2755 /* ??0?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE@I_WABV?$allocator@_W@1@@Z */
2756 /* ??0?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAA@_K_WAEBV?$allocator@_W@1@@Z */
2757 /* ??0?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAE@IGABV?$allocator@G@1@@Z */
2758 /* ??0?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAA@_KGAEBV?$allocator@G@1@@Z */
2759 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_ctor_ch_alloc
, 16)
2760 basic_string_wchar
* __thiscall
MSVCP_basic_string_wchar_ctor_ch_alloc(basic_string_wchar
*this,
2761 size_t count
, wchar_t ch
, const void *alloc
)
2763 return MSVCP_basic_string_wchar_ctor_ch(this, count
, ch
);
2766 /* ??0?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE@PB_W0@Z */
2767 /* ??0?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAA@PEB_W0@Z */
2768 /* ??0?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAE@PBG0@Z */
2769 /* ??0?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAA@PEBG0@Z */
2770 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_ctor_ptr_ptr
, 12)
2771 basic_string_wchar
* __thiscall
MSVCP_basic_string_wchar_ctor_ptr_ptr(basic_string_wchar
*this,
2772 const wchar_t *first
, const wchar_t *last
)
2774 return MSVCP_basic_string_wchar_ctor_cstr_len(this, first
, last
-first
);
2777 /* ??1?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE@XZ */
2778 /* ??1?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAA@XZ */
2779 /* ??1?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAE@XZ */
2780 /* ??1?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAA@XZ */
2781 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_dtor
, 4)
2782 void* __thiscall
MSVCP_basic_string_wchar_dtor(basic_string_wchar
*this)
2784 TRACE("%p\n", this);
2785 basic_string_wchar_tidy(this, TRUE
, 0);
2786 return NULL
; /* FEAR 1 installer expects EAX set to 0 */
2789 /* ?size@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEIXZ */
2790 /* ?size@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBA_KXZ */
2791 /* ?length@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEIXZ */
2792 /* ?length@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBA_KXZ */
2793 /* ?size@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEIXZ */
2794 /* ?size@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBA_KXZ */
2795 /* ?length@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEIXZ */
2796 /* ?length@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBA_KXZ */
2797 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_length
, 4)
2798 size_t __thiscall
MSVCP_basic_string_wchar_length(const basic_string_wchar
*this)
2800 TRACE("%p\n", this);
2804 /* ?max_size@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEIXZ */
2805 /* ?max_size@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBA_KXZ */
2806 /* ?max_size@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEIXZ */
2807 /* ?max_size@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBA_KXZ */
2808 DEFINE_THISCALL_WRAPPER(basic_string_wchar_max_size
, 4)
2809 size_t __thiscall
basic_string_wchar_max_size(const basic_string_wchar
*this)
2811 TRACE("%p\n", this);
2812 return MSVCP_allocator_wchar_max_size(STRING_ALLOCATOR(this))-1;
2815 /* ?empty@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBE_NXZ */
2816 /* ?empty@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBA_NXZ */
2817 /* ?empty@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBE_NXZ */
2818 /* ?empty@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBA_NXZ */
2819 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_empty
, 4)
2820 bool __thiscall
MSVCP_basic_string_wchar_empty(basic_string_wchar
*this)
2822 TRACE("%p\n", this);
2823 return this->size
== 0;
2826 /* ?swap@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEXAAV12@@Z */
2827 /* ?swap@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAXAEAV12@@Z */
2828 /* ?swap@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEXAAV12@@Z */
2829 /* ?swap@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAXAEAV12@@Z */
2830 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_swap
, 8)
2831 void __thiscall
MSVCP_basic_string_wchar_swap(basic_string_wchar
*this, basic_string_wchar
*str
)
2834 char tmp
[sizeof(this->data
)];
2835 const size_t size
= this->size
;
2836 const size_t res
= this->res
;
2838 memcpy(tmp
, this->data
.buf
, sizeof(this->data
));
2839 memcpy(this->data
.buf
, str
->data
.buf
, sizeof(this->data
));
2840 memcpy(str
->data
.buf
, tmp
, sizeof(this->data
));
2842 this->size
= str
->size
;
2843 this->res
= str
->res
;
2850 /* ?substr@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBE?AV12@II@Z */
2851 /* ?substr@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBA?AV12@_K0@Z */
2852 /* ?substr@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBE?AV12@II@Z */
2853 /* ?substr@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBA?AV12@_K0@Z */
2854 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_substr
, 16)
2855 basic_string_wchar
* __thiscall
MSVCP_basic_string_wchar_substr(basic_string_wchar
*this,
2856 basic_string_wchar
*ret
, size_t off
, size_t len
)
2858 TRACE("%p %Iu %Iu\n", this, off
, len
);
2860 MSVCP_basic_string_wchar_ctor_substr(ret
, this, off
, len
);
2864 /* ?append@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV12@ABV12@II@Z */
2865 /* ?append@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAAEAV12@AEBV12@_K1@Z */
2866 /* ?append@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV12@ABV12@II@Z */
2867 /* ?append@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAAEAV12@AEBV12@_K1@Z */
2868 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_append_substr
, 16)
2869 basic_string_wchar
* __thiscall
MSVCP_basic_string_wchar_append_substr(basic_string_wchar
*this,
2870 const basic_string_wchar
*append
, size_t offset
, size_t count
)
2872 TRACE("%p %p %Iu %Iu\n", this, append
, offset
, count
);
2874 if(append
->size
< offset
)
2875 MSVCP__String_base_Xran();
2877 if(count
> append
->size
-offset
)
2878 count
= append
->size
-offset
;
2880 if(MSVCP_basic_string_wchar_npos
-this->size
<=count
|| this->size
+count
<this->size
)
2881 MSVCP__String_base_Xlen();
2883 if(basic_string_wchar_grow(this, this->size
+count
, FALSE
)) {
2884 MSVCP_char_traits_wchar__Copy_s(basic_string_wchar_ptr(this)+this->size
,
2885 this->res
-this->size
, basic_string_wchar_const_ptr(append
)+offset
, count
);
2886 basic_string_wchar_eos(this, this->size
+count
);
2892 /* ?append@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV12@ABV12@@Z */
2893 /* ?append@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAAEAV12@AEBV12@@Z */
2894 /* ??Y?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV01@ABV01@@Z */
2895 /* ??Y?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAAEAV01@AEBV01@@Z */
2896 /* ?append@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV12@ABV12@@Z */
2897 /* ?append@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAAEAV12@AEBV12@@Z */
2898 /* ??Y?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV01@ABV01@@Z */
2899 /* ??Y?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAAEAV01@AEBV01@@Z */
2900 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_append
, 8)
2901 basic_string_wchar
* __thiscall
MSVCP_basic_string_wchar_append(
2902 basic_string_wchar
*this, const basic_string_wchar
*append
)
2904 return MSVCP_basic_string_wchar_append_substr(this, append
,
2905 0, MSVCP_basic_string_wchar_npos
);
2908 /* ?append@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV12@PB_WI@Z */
2909 /* ?append@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAAEAV12@PEB_W_K@Z */
2910 /* ?append@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV12@PBGI@Z */
2911 /* ?append@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAAEAV12@PEBG_K@Z */
2912 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_append_cstr_len
, 12)
2913 basic_string_wchar
* __thiscall
MSVCP_basic_string_wchar_append_cstr_len(
2914 basic_string_wchar
*this, const wchar_t *append
, size_t count
)
2916 TRACE("%p %s %Iu\n", this, debugstr_wn(append
, count
), count
);
2918 if(basic_string_wchar_inside(this, append
))
2919 return MSVCP_basic_string_wchar_append_substr(this, this,
2920 append
-basic_string_wchar_ptr(this), count
);
2922 if(MSVCP_basic_string_wchar_npos
-this->size
<=count
|| this->size
+count
<this->size
)
2923 MSVCP__String_base_Xlen();
2925 if(basic_string_wchar_grow(this, this->size
+count
, FALSE
)) {
2926 MSVCP_char_traits_wchar__Copy_s(basic_string_wchar_ptr(this)+this->size
,
2927 this->res
-this->size
, append
, count
);
2928 basic_string_wchar_eos(this, this->size
+count
);
2934 /* ?append@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV12@PB_W@Z */
2935 /* ?append@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAAEAV12@PEB_W@Z */
2936 /* ??Y?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV01@PB_W@Z */
2937 /* ??Y?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAAEAV01@PEB_W@Z */
2938 /* ?append@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV12@PBG@Z */
2939 /* ?append@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAAEAV12@PEBG@Z */
2940 /* ??Y?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV01@PBG@Z */
2941 /* ??Y?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAAEAV01@PEBG@Z */
2942 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_append_cstr
, 8)
2943 basic_string_wchar
* __thiscall
MSVCP_basic_string_wchar_append_cstr(
2944 basic_string_wchar
*this, const wchar_t *append
)
2946 return MSVCP_basic_string_wchar_append_cstr_len(this, append
,
2947 MSVCP_char_traits_wchar_length(append
));
2950 /* ?append@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV12@PB_W0@Z */
2951 /* ?append@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAAEAV12@PEB_W0@Z */
2952 /* ?append@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV12@PBG0@Z */
2953 /* ?append@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAAEAV12@PEBG0@Z */
2954 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_append_beg_end
, 12)
2955 basic_string_wchar
* __thiscall
MSVCP_basic_string_wchar_append_beg_end(
2956 basic_string_wchar
*this, const wchar_t *beg
, const wchar_t *end
)
2958 return MSVCP_basic_string_wchar_append_cstr_len(this, beg
, end
-beg
);
2961 /* ?append@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV12@I_W@Z */
2962 /* ?append@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAAEAV12@_K_W@Z */
2963 /* ?append@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV12@IG@Z */
2964 /* ?append@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAAEAV12@_KG@Z */
2965 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_append_len_ch
, 12)
2966 basic_string_wchar
* __thiscall
MSVCP_basic_string_wchar_append_len_ch(
2967 basic_string_wchar
*this, size_t count
, wchar_t ch
)
2969 TRACE("%p %Iu %c\n", this, count
, ch
);
2971 if(MSVCP_basic_string_wchar_npos
-this->size
<= count
)
2972 MSVCP__String_base_Xlen();
2974 if(basic_string_wchar_grow(this, this->size
+count
, FALSE
)) {
2975 MSVCP_char_traits_wchar_assignn(basic_string_wchar_ptr(this)+this->size
, count
, ch
);
2976 basic_string_wchar_eos(this, this->size
+count
);
2982 /* ??Y?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV01@_W@Z */
2983 /* ??Y?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAAEAV01@_W@Z */
2984 /* ?push_back@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEX_W@Z */
2985 /* ?push_back@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAX_W@Z */
2986 /* ??Y?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV01@G@Z */
2987 /* ??Y?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAAEAV01@G@Z */
2988 /* ?push_back@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEXG@Z */
2989 /* ?push_back@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAXG@Z */
2990 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_append_ch
, 8)
2991 basic_string_wchar
* __thiscall
MSVCP_basic_string_wchar_append_ch(
2992 basic_string_wchar
*this, wchar_t ch
)
2994 return MSVCP_basic_string_wchar_append_len_ch(this, 1, ch
);
2997 /* ??$?H_WU?$char_traits@_W@std@@V?$allocator@_W@1@@std@@YA?AV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@0@ABV10@PB_W@Z */
2998 /* ??$?H_WU?$char_traits@_W@std@@V?$allocator@_W@1@@std@@YA?AV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@0@AEBV10@PEB_W@Z */
2999 /* ??$?HGU?$char_traits@G@std@@V?$allocator@G@1@@std@@YA?AV?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@0@ABV10@PBG@Z */
3000 /* ??$?HGU?$char_traits@G@std@@V?$allocator@G@1@@std@@YA?AV?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@0@AEBV10@PEBG@Z */
3001 /* ??Hstd@@YA?AV?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@0@ABV10@PBG@Z */
3002 /* ??Hstd@@YA?AV?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@0@AEBV10@PEBG@Z */
3003 /* ??Hstd@@YA?AV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@0@ABV10@PB_W@Z */
3004 basic_string_wchar
* __cdecl
MSVCP_basic_string_wchar_concatenate_bstr_cstr(basic_string_wchar
*ret
,
3005 const basic_string_wchar
*left
, const wchar_t *right
)
3007 TRACE("%p %s\n", left
, debugstr_w(right
));
3009 MSVCP_basic_string_wchar_copy_ctor(ret
, left
);
3010 MSVCP_basic_string_wchar_append_cstr(ret
, right
);
3014 /* ??$?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 */
3015 /* ??$?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 */
3016 /* ??$?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 */
3017 /* ??$?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 */
3018 /* ??Hstd@@YA?AV?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@0@PBGABV10@@Z */
3019 /* ??Hstd@@YA?AV?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@0@PEBGAEBV10@@Z */
3020 /* ??Hstd@@YA?AV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@0@PB_WABV10@@Z */
3021 basic_string_wchar
* __cdecl
MSVCP_basic_string_wchar_concatenate_cstr_bstr(basic_string_wchar
*ret
,
3022 const wchar_t *left
, const basic_string_wchar
*right
)
3024 TRACE("%s %p\n", debugstr_w(left
), right
);
3026 MSVCP_basic_string_wchar_ctor_cstr(ret
, left
);
3027 MSVCP_basic_string_wchar_append(ret
, right
);
3031 /* ??$?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 */
3032 /* ??$?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 */
3033 /* ??$?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 */
3034 /* ??$?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 */
3035 /* ??Hstd@@YA?AV?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@0@ABV10@0@Z */
3036 /* ??Hstd@@YA?AV?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@0@AEBV10@0@Z */
3037 /* ??Hstd@@YA?AV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@0@ABV10@0@Z */
3038 basic_string_wchar
* __cdecl
MSVCP_basic_string_wchar_concatenate(basic_string_wchar
*ret
,
3039 const basic_string_wchar
*left
, const basic_string_wchar
*right
)
3041 TRACE("%p %p\n", left
, right
);
3043 MSVCP_basic_string_wchar_copy_ctor(ret
, left
);
3044 MSVCP_basic_string_wchar_append(ret
, right
);
3048 /* ??$?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 */
3049 /* ??$?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 */
3050 /* ??$?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 */
3051 /* ??$?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 */
3052 /* ??Hstd@@YA?AV?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@0@ABV10@G@Z */
3053 /* ??Hstd@@YA?AV?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@0@AEBV10@G@Z */
3054 /* ??Hstd@@YA?AV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@0@ABV10@_W@Z */
3055 basic_string_wchar
* __cdecl
MSVCP_basic_string_wchar_concatenate_bstr_ch(
3056 basic_string_wchar
*ret
, const basic_string_wchar
*left
, wchar_t right
)
3058 TRACE("%p %c\n", left
, right
);
3060 MSVCP_basic_string_wchar_copy_ctor(ret
, left
);
3061 MSVCP_basic_string_wchar_append_ch(ret
, right
);
3065 /* ??$?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 */
3066 /* ??$?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 */
3067 /* ??$?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 */
3068 /* ??$?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 */
3069 /* ??Hstd@@YA?AV?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@0@GABV10@@Z */
3070 /* ??Hstd@@YA?AV?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@0@GAEBV10@@Z */
3071 /* ??Hstd@@YA?AV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@0@_WABV10@@Z */
3072 basic_string_wchar
* __cdecl
MSVCP_basic_string_wchar_concatenate_ch_bstr(
3073 basic_string_wchar
* ret
, wchar_t left
, const basic_string_wchar
*right
)
3075 TRACE("%c %p\n", left
, right
);
3077 MSVCP_basic_string_wchar_ctor_cstr_len(ret
, &left
, 1);
3078 MSVCP_basic_string_wchar_append(ret
, right
);
3082 /* ?compare@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEHIIPB_WI@Z */
3083 /* ?compare@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBAH_K0PEB_W0@Z */
3084 /* ?compare@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEHIIPBGI@Z */
3085 /* ?compare@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBAH_K0PEBG0@Z */
3086 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_compare_substr_cstr_len
, 20)
3087 int __thiscall
MSVCP_basic_string_wchar_compare_substr_cstr_len(
3088 const basic_string_wchar
*this, size_t pos
, size_t num
,
3089 const wchar_t *str
, size_t count
)
3093 TRACE("%p %Iu %Iu %s %Iu\n", this, pos
, num
, debugstr_wn(str
, count
), count
);
3095 if(this->size
< pos
)
3096 MSVCP__String_base_Xran();
3098 if(num
> this->size
-pos
)
3099 num
= this->size
-pos
;
3101 ans
= MSVCP_char_traits_wchar_compare(basic_string_wchar_const_ptr(this)+pos
,
3102 str
, num
>count
? count
: num
);
3108 else if(num
< count
)
3113 /* ?compare@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEHIIPB_W@Z */
3114 /* ?compare@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBAH_K0PEB_W@Z */
3115 /* ?compare@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEHIIPBG@Z */
3116 /* ?compare@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBAH_K0PEBG@Z */
3117 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_compare_substr_cstr
, 16)
3118 int __thiscall
MSVCP_basic_string_wchar_compare_substr_cstr(const basic_string_wchar
*this,
3119 size_t pos
, size_t num
, const wchar_t *str
)
3121 return MSVCP_basic_string_wchar_compare_substr_cstr_len(this, pos
, num
,
3122 str
, MSVCP_char_traits_wchar_length(str
));
3125 /* ?compare@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEHPB_W@Z */
3126 /* ?compare@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBAHPEB_W@Z */
3127 /* ?compare@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEHPBG@Z */
3128 /* ?compare@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBAHPEBG@Z */
3129 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_compare_cstr
, 8)
3130 int __thiscall
MSVCP_basic_string_wchar_compare_cstr(
3131 const basic_string_wchar
*this, const wchar_t *str
)
3133 return MSVCP_basic_string_wchar_compare_substr_cstr_len(this, 0, this->size
,
3134 str
, MSVCP_char_traits_wchar_length(str
));
3137 /* ?compare@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEHIIABV12@II@Z */
3138 /* ?compare@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBAH_K0AEBV12@00@Z */
3139 /* ?compare@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEHIIABV12@II@Z */
3140 /* ?compare@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBAH_K0AEBV12@00@Z */
3141 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_compare_substr_substr
, 24)
3142 int __thiscall
MSVCP_basic_string_wchar_compare_substr_substr(
3143 const basic_string_wchar
*this, size_t pos
, size_t num
,
3144 const basic_string_wchar
*compare
, size_t off
, size_t count
)
3146 TRACE("%p %Iu %Iu %p %Iu %Iu\n", this, pos
, num
, compare
, off
, count
);
3148 if(compare
->size
< off
)
3149 MSVCP__String_base_Xran();
3151 if(count
> compare
->size
-off
)
3152 count
= compare
->size
-off
;
3154 return MSVCP_basic_string_wchar_compare_substr_cstr_len(this, pos
, num
,
3155 basic_string_wchar_const_ptr(compare
)+off
, count
);
3158 /* ?compare@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEHIIABV12@@Z */
3159 /* ?compare@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBAH_K0AEBV12@@Z */
3160 /* ?compare@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEHIIABV12@@Z */
3161 /* ?compare@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBAH_K0AEBV12@@Z */
3162 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_compare_substr
, 16)
3163 int __thiscall
MSVCP_basic_string_wchar_compare_substr(
3164 const basic_string_wchar
*this, size_t pos
, size_t num
,
3165 const basic_string_wchar
*compare
)
3167 return MSVCP_basic_string_wchar_compare_substr_cstr_len(this, pos
, num
,
3168 basic_string_wchar_const_ptr(compare
), compare
->size
);
3171 /* ?compare@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEHABV12@@Z */
3172 /* ?compare@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBAHAEBV12@@Z */
3173 /* ?compare@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEHABV12@@Z */
3174 /* ?compare@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBAHAEBV12@@Z */
3175 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_compare
, 8)
3176 int __thiscall
MSVCP_basic_string_wchar_compare(
3177 const basic_string_wchar
*this, const basic_string_wchar
*compare
)
3179 return MSVCP_basic_string_wchar_compare_substr_cstr_len(this, 0, this->size
,
3180 basic_string_wchar_const_ptr(compare
), compare
->size
);
3183 /* ??$?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 */
3184 /* ??$?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 */
3185 /* ??$?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 */
3186 /* ??$?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 */
3187 /* ??8std@@YA_NABV?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@0@0@Z */
3188 /* ??8std@@YA_NAEBV?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@0@0@Z */
3189 /* ??8std@@YA_NABV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@0@0@Z */
3190 bool __cdecl
MSVCP_basic_string_wchar_equal(
3191 const basic_string_wchar
*left
, const basic_string_wchar
*right
)
3193 return MSVCP_basic_string_wchar_compare(left
, right
) == 0;
3196 /* ??$?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 */
3197 /* ??$?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 */
3198 /* ??$?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 */
3199 /* ??$?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 */
3200 /* ??8std@@YA_NABV?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@0@PBG@Z */
3201 /* ??8std@@YA_NAEBV?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@0@PEBG@Z */
3202 /* ??8std@@YA_NABV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@0@PB_W@Z */
3203 bool __cdecl
MSVCP_basic_string_wchar_equal_str_cstr(
3204 const basic_string_wchar
*left
, const wchar_t *right
)
3206 return MSVCP_basic_string_wchar_compare_cstr(left
, right
) == 0;
3209 /* ??$?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 */
3210 /* ??$?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 */
3211 /* ??$?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 */
3212 /* ??$?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 */
3213 /* ??8std@@YA_NPBGABV?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@0@@Z */
3214 /* ??8std@@YA_NPB_WABV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@0@@Z */
3215 bool __cdecl
MSVCP_basic_string_wchar_equal_cstr_str(
3216 const wchar_t *left
, const basic_string_wchar
*right
)
3218 return MSVCP_basic_string_wchar_compare_cstr(right
, left
) == 0;
3221 /* ??$?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 */
3222 /* ??$?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 */
3223 /* ??$?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 */
3224 /* ??$?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 */
3225 /* ??9std@@YA_NABV?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@0@0@Z */
3226 /* ??9std@@YA_NAEBV?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@0@0@Z */
3227 /* ??9std@@YA_NABV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@0@0@Z */
3228 bool __cdecl
MSVCP_basic_string_wchar_not_equal(
3229 const basic_string_wchar
*left
, const basic_string_wchar
*right
)
3231 return MSVCP_basic_string_wchar_compare(left
, right
) != 0;
3234 /* ??$?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 */
3235 /* ??$?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 */
3236 /* ??$?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 */
3237 /* ??$?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 */
3238 /* ??9std@@YA_NABV?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@0@PBG@Z */
3239 /* ??9std@@YA_NAEBV?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@0@PEBG@Z */
3240 /* ??9std@@YA_NABV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@0@PB_W@Z */
3241 bool __cdecl
MSVCP_basic_string_wchar_not_equal_str_cstr(
3242 const basic_string_wchar
*left
, const wchar_t *right
)
3244 return MSVCP_basic_string_wchar_compare_cstr(left
, right
) != 0;
3247 /* ??$?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 */
3248 /* ??$?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 */
3249 /* ??$?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 */
3250 /* ??$?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 */
3251 /* ??9std@@YA_NPBGABV?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@0@@Z */
3252 /* ??9std@@YA_NPEBGAEBV?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@0@@Z */
3253 /* ??9std@@YA_NPB_WABV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@0@@Z */
3254 bool __cdecl
MSVCP_basic_string_wchar_not_equal_cstr_str(
3255 const wchar_t *left
, const basic_string_wchar
*right
)
3257 return MSVCP_basic_string_wchar_compare_cstr(right
, left
) != 0;
3260 /* ??$?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 */
3261 /* ??$?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 */
3262 /* ??$?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 */
3263 /* ??$?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 */
3264 bool __cdecl
MSVCP_basic_string_wchar_lower(
3265 const basic_string_wchar
*left
, const basic_string_wchar
*right
)
3267 return MSVCP_basic_string_wchar_compare(left
, right
) < 0;
3270 /* ??$?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 */
3271 /* ??$?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 */
3272 /* ??$?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 */
3273 /* ??$?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 */
3274 bool __cdecl
MSVCP_basic_string_wchar_lower_bstr_cstr(
3275 const basic_string_wchar
*left
, const wchar_t *right
)
3277 return MSVCP_basic_string_wchar_compare_cstr(left
, right
) < 0;
3280 /* ??$?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 */
3281 /* ??$?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 */
3282 /* ??$?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 */
3283 /* ??$?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 */
3284 bool __cdecl
MSVCP_basic_string_wchar_lower_cstr_bstr(
3285 const wchar_t *left
, const basic_string_wchar
*right
)
3287 return MSVCP_basic_string_wchar_compare_cstr(right
, left
) > 0;
3290 /* ??$?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 */
3291 /* ??$?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 */
3292 /* ??$?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 */
3293 /* ??$?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 */
3294 bool __cdecl
MSVCP_basic_string_wchar_leq(
3295 const basic_string_wchar
*left
, const basic_string_wchar
*right
)
3297 return MSVCP_basic_string_wchar_compare(left
, right
) <= 0;
3300 /* ??$?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 */
3301 /* ??$?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 */
3302 /* ??$?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 */
3303 /* ??$?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 */
3304 bool __cdecl
MSVCP_basic_string_wchar_leq_bstr_cstr(
3305 const basic_string_wchar
*left
, const wchar_t *right
)
3307 return MSVCP_basic_string_wchar_compare_cstr(left
, right
) <= 0;
3310 /* ??$?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 */
3311 /* ??$?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 */
3312 /* ??$?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 */
3313 /* ??$?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 */
3314 bool __cdecl
MSVCP_basic_string_wchar_leq_cstr_bstr(
3315 const wchar_t *left
, const basic_string_wchar
*right
)
3317 return MSVCP_basic_string_wchar_compare_cstr(right
, left
) >= 0;
3320 /* ??$?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 */
3321 /* ??$?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 */
3322 /* ??$?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 */
3323 /* ??$?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 */
3324 bool __cdecl
MSVCP_basic_string_wchar_greater(
3325 const basic_string_wchar
*left
, const basic_string_wchar
*right
)
3327 return MSVCP_basic_string_wchar_compare(left
, right
) > 0;
3330 /* ??$?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 */
3331 /* ??$?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 */
3332 /* ??$?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 */
3333 /* ??$?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 */
3334 bool __cdecl
MSVCP_basic_string_wchar_greater_bstr_cstr(
3335 const basic_string_wchar
*left
, const wchar_t *right
)
3337 return MSVCP_basic_string_wchar_compare_cstr(left
, right
) > 0;
3340 /* ??$?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 */
3341 /* ??$?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 */
3342 /* ??$?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 */
3343 /* ??$?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 */
3344 bool __cdecl
MSVCP_basic_string_wchar_greater_cstr_bstr(
3345 const wchar_t *left
, const basic_string_wchar
*right
)
3347 return MSVCP_basic_string_wchar_compare_cstr(right
, left
) < 0;
3350 /* ??$?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 */
3351 /* ??$?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 */
3352 /* ??$?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 */
3353 /* ??$?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 */
3354 bool __cdecl
MSVCP_basic_string_wchar_geq(
3355 const basic_string_wchar
*left
, const basic_string_wchar
*right
)
3357 return MSVCP_basic_string_wchar_compare(left
, right
) >= 0;
3360 /* ??$?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 */
3361 /* ??$?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 */
3362 /* ??$?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 */
3363 /* ??$?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 */
3364 bool __cdecl
MSVCP_basic_string_wchar_geq_bstr_cstr(
3365 const basic_string_wchar
*left
, const wchar_t *right
)
3367 return MSVCP_basic_string_wchar_compare_cstr(left
, right
) >= 0;
3370 /* ??$?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 */
3371 /* ??$?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 */
3372 /* ??$?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 */
3373 /* ??$?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 */
3374 bool __cdecl
MSVCP_basic_string_wchar_geq_cstr_bstr(
3375 const wchar_t *left
, const basic_string_wchar
*right
)
3377 return MSVCP_basic_string_wchar_compare_cstr(right
, left
) <= 0;
3380 /* ?find@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEIPB_WII@Z */
3381 /* ?find@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBA_KPEB_W_K1@Z */
3382 /* ?find@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEIPBGII@Z */
3383 /* ?find@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBA_KPEBG_K1@Z */
3384 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_find_cstr_substr
, 16)
3385 size_t __thiscall
MSVCP_basic_string_wchar_find_cstr_substr(
3386 const basic_string_wchar
*this, const wchar_t *find
, size_t pos
, size_t len
)
3388 const wchar_t *p
, *end
;
3390 TRACE("%p %s %Iu %Iu\n", this, debugstr_wn(find
, len
), pos
, len
);
3392 if(len
==0 && pos
<=this->size
)
3394 if(pos
>=this->size
|| len
>this->size
)
3395 return MSVCP_basic_string_wchar_npos
;
3397 end
= basic_string_wchar_const_ptr(this)+this->size
-len
+1;
3398 for(p
=basic_string_wchar_const_ptr(this)+pos
; p
<end
; p
++) {
3399 p
= MSVCP_char_traits_wchar_find(p
, end
-p
, find
);
3403 if(!MSVCP_char_traits_wchar_compare(p
, find
, len
))
3404 return p
-basic_string_wchar_const_ptr(this);
3407 return MSVCP_basic_string_wchar_npos
;
3410 /* ?find@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEIPB_WI@Z */
3411 /* ?find@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBA_KPEB_W_K@Z */
3412 /* ?find@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEIPBGI@Z */
3413 /* ?find@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBA_KPEBG_K@Z */
3414 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_find_cstr_off
, 12)
3415 size_t __thiscall
MSVCP_basic_string_wchar_find_cstr_off(
3416 const basic_string_wchar
*this, const wchar_t *find
, size_t pos
)
3418 return MSVCP_basic_string_wchar_find_cstr_substr(this, find
, pos
,
3419 MSVCP_char_traits_wchar_length(find
));
3422 /* ?find@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEIABV12@I@Z */
3423 /* ?find@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBA_KAEBV12@_K@Z */
3424 /* ?find@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEIABV12@I@Z */
3425 /* ?find@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBA_KAEBV12@_K@Z */
3426 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_find_off
, 12)
3427 size_t __thiscall
MSVCP_basic_string_wchar_find_off(
3428 const basic_string_wchar
*this, const basic_string_wchar
*find
, size_t off
)
3430 return MSVCP_basic_string_wchar_find_cstr_substr(this,
3431 basic_string_wchar_const_ptr(find
), off
, find
->size
);
3434 /* ?find@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEI_WI@Z */
3435 /* ?find@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBA_K_W_K@Z */
3436 /* ?find@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEIGI@Z */
3437 /* ?find@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBA_KG_K@Z */
3438 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_find_ch
, 12)
3439 size_t __thiscall
MSVCP_basic_string_wchar_find_ch(
3440 const basic_string_wchar
*this, wchar_t ch
, size_t pos
)
3442 return MSVCP_basic_string_wchar_find_cstr_substr(this, &ch
, pos
, 1);
3445 /* ?rfind@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEIPB_WII@Z */
3446 /* ?rfind@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBA_KPEB_W_K1@Z */
3447 /* ?rfind@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEIPBGII@Z */
3448 /* ?rfind@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBA_KPEBG_K1@Z */
3449 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_rfind_cstr_substr
, 16)
3450 size_t __thiscall
MSVCP_basic_string_wchar_rfind_cstr_substr(
3451 const basic_string_wchar
*this, const wchar_t *find
, size_t pos
, size_t len
)
3453 const wchar_t *p
, *end
;
3455 TRACE("%p %s %Iu %Iu\n", this, debugstr_wn(find
, len
), pos
, len
);
3458 return pos
<this->size
? pos
: this->size
;
3460 if(len
> this->size
)
3461 return MSVCP_basic_string_wchar_npos
;
3463 if(pos
> this->size
-len
)
3464 pos
= this->size
-len
;
3465 end
= basic_string_wchar_const_ptr(this);
3466 for(p
=end
+pos
; p
>=end
; p
--) {
3467 if(*p
==*find
&& !MSVCP_char_traits_wchar_compare(p
, find
, len
))
3468 return p
-basic_string_wchar_const_ptr(this);
3471 return MSVCP_basic_string_wchar_npos
;
3474 /* ?rfind@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEIPB_WI@Z */
3475 /* ?rfind@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBA_KPEB_W_K@Z */
3476 /* ?rfind@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEIPBGI@Z */
3477 /* ?rfind@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBA_KPEBG_K@Z */
3478 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_rfind_cstr_off
, 12)
3479 size_t __thiscall
MSVCP_basic_string_wchar_rfind_cstr_off(
3480 const basic_string_wchar
*this, const wchar_t *find
, size_t pos
)
3482 return MSVCP_basic_string_wchar_rfind_cstr_substr(this, find
, pos
,
3483 MSVCP_char_traits_wchar_length(find
));
3486 /* ?rfind@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEIABV12@I@Z */
3487 /* ?rfind@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBA_KAEBV12@_K@Z */
3488 /* ?rfind@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEIABV12@I@Z */
3489 /* ?rfind@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBA_KAEBV12@_K@Z */
3490 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_rfind_off
, 12)
3491 size_t __thiscall
MSVCP_basic_string_wchar_rfind_off(
3492 const basic_string_wchar
*this, const basic_string_wchar
*find
, size_t off
)
3494 return MSVCP_basic_string_wchar_rfind_cstr_substr(this,
3495 basic_string_wchar_const_ptr(find
), off
, find
->size
);
3498 /* ?rfind@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEI_WI@Z */
3499 /* ?rfind@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBA_K_W_K@Z */
3500 /* ?rfind@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEIGI@Z */
3501 /* ?rfind@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBA_KG_K@Z */
3502 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_rfind_ch
, 12)
3503 size_t __thiscall
MSVCP_basic_string_wchar_rfind_ch(
3504 const basic_string_wchar
*this, wchar_t ch
, size_t pos
)
3506 return MSVCP_basic_string_wchar_rfind_cstr_substr(this, &ch
, pos
, 1);
3509 /* ?find_first_of@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEIPB_WII@Z */
3510 /* ?find_first_of@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBA_KPEB_W_K1@Z */
3511 /* ?find_first_of@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEIPBGII@Z */
3512 /* ?find_first_of@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBA_KPEBG_K1@Z */
3513 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_find_first_of_cstr_substr
, 16)
3514 size_t __thiscall
MSVCP_basic_string_wchar_find_first_of_cstr_substr(
3515 const basic_string_wchar
*this, const wchar_t *find
, size_t off
, size_t len
)
3517 const wchar_t *p
, *end
;
3519 TRACE("%p %p %Iu %Iu\n", this, find
, off
, len
);
3521 if(len
>0 && off
<this->size
) {
3522 end
= basic_string_wchar_const_ptr(this)+this->size
;
3523 for(p
=basic_string_wchar_const_ptr(this)+off
; p
<end
; p
++)
3524 if(MSVCP_char_traits_wchar_find(find
, len
, p
))
3525 return p
-basic_string_wchar_const_ptr(this);
3528 return MSVCP_basic_string_wchar_npos
;
3531 /* ?find_first_of@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEIABV12@I@Z */
3532 /* ?find_first_of@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBA_KAEBV12@_K@Z */
3533 /* ?find_first_of@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEIABV12@I@Z */
3534 /* ?find_first_of@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBA_KAEBV12@_K@Z */
3535 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_find_first_of
, 12)
3536 size_t __thiscall
MSVCP_basic_string_wchar_find_first_of(
3537 const basic_string_wchar
*this, const basic_string_wchar
*find
, size_t off
)
3539 return MSVCP_basic_string_wchar_find_first_of_cstr_substr(this,
3540 basic_string_wchar_const_ptr(find
), off
, find
->size
);
3543 /* ?find_first_of@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEIPB_WI@Z */
3544 /* ?find_first_of@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBA_KPEB_W_K@Z */
3545 /* ?find_first_of@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEIPBGI@Z */
3546 /* ?find_first_of@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBA_KPEBG_K@Z */
3547 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_find_first_of_cstr
, 12)
3548 size_t __thiscall
MSVCP_basic_string_wchar_find_first_of_cstr(
3549 const basic_string_wchar
*this, const wchar_t *find
, size_t off
)
3551 return MSVCP_basic_string_wchar_find_first_of_cstr_substr(
3552 this, find
, off
, MSVCP_char_traits_wchar_length(find
));
3555 /* ?find_first_of@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEI_WI@Z */
3556 /* ?find_first_of@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBA_K_W_K@Z */
3557 /* ?find_first_of@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEIGI@Z */
3558 /* ?find_first_of@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBA_KG_K@Z */
3559 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_find_first_of_ch
, 12)
3560 size_t __thiscall
MSVCP_basic_string_wchar_find_first_of_ch(
3561 const basic_string_wchar
*this, wchar_t ch
, size_t off
)
3563 return MSVCP_basic_string_wchar_find_first_of_cstr_substr(this, &ch
, off
, 1);
3566 /* ?find_first_not_of@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEIPB_WII@Z */
3567 /* ?find_first_not_of@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBA_KPEB_W_K1@Z */
3568 /* ?find_first_not_of@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEIPBGII@Z */
3569 /* ?find_first_not_of@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBA_KPEBG_K1@Z */
3570 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_find_first_not_of_cstr_substr
, 16)
3571 size_t __thiscall
MSVCP_basic_string_wchar_find_first_not_of_cstr_substr(
3572 const basic_string_wchar
*this, const wchar_t *find
, size_t off
, size_t len
)
3574 const wchar_t *p
, *end
;
3576 TRACE("%p %p %Iu %Iu\n", this, find
, off
, len
);
3578 if(off
<this->size
) {
3579 end
= basic_string_wchar_const_ptr(this)+this->size
;
3580 for(p
=basic_string_wchar_const_ptr(this)+off
; p
<end
; p
++)
3581 if(!MSVCP_char_traits_wchar_find(find
, len
, p
))
3582 return p
-basic_string_wchar_const_ptr(this);
3585 return MSVCP_basic_string_wchar_npos
;
3588 /* ?find_first_not_of@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEIABV12@I@Z */
3589 /* ?find_first_not_of@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBA_KAEBV12@_K@Z */
3590 /* ?find_first_not_of@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEIABV12@I@Z */
3591 /* ?find_first_not_of@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBA_KAEBV12@_K@Z */
3592 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_find_first_not_of
, 12)
3593 size_t __thiscall
MSVCP_basic_string_wchar_find_first_not_of(
3594 const basic_string_wchar
*this, const basic_string_wchar
*find
, size_t off
)
3596 return MSVCP_basic_string_wchar_find_first_not_of_cstr_substr(this,
3597 basic_string_wchar_const_ptr(find
), off
, find
->size
);
3600 /* ?find_first_not_of@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEIPB_WI@Z */
3601 /* ?find_first_not_of@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBA_KPEB_W_K@Z */
3602 /* ?find_first_not_of@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEIPBGI@Z */
3603 /* ?find_first_not_of@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBA_KPEBG_K@Z */
3604 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_find_first_not_of_cstr
, 12)
3605 size_t __thiscall
MSVCP_basic_string_wchar_find_first_not_of_cstr(
3606 const basic_string_wchar
*this, const wchar_t *find
, size_t off
)
3608 return MSVCP_basic_string_wchar_find_first_not_of_cstr_substr(
3609 this, find
, off
, MSVCP_char_traits_wchar_length(find
));
3612 /* ?find_first_not_of@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEI_WI@Z */
3613 /* ?find_first_not_of@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBA_K_W_K@Z */
3614 /* ?find_first_not_of@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEIGI@Z */
3615 /* ?find_first_not_of@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBA_KG_K@Z */
3616 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_find_first_not_of_ch
, 12)
3617 size_t __thiscall
MSVCP_basic_string_wchar_find_first_not_of_ch(
3618 const basic_string_wchar
*this, wchar_t ch
, size_t off
)
3620 return MSVCP_basic_string_wchar_find_first_not_of_cstr_substr(this, &ch
, off
, 1);
3623 /* ?find_last_of@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEIPB_WII@Z */
3624 /* ?find_last_of@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBA_KPEB_W_K1@Z */
3625 /* ?find_last_of@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEIPBGII@Z */
3626 /* ?find_last_of@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBA_KPEBG_K1@Z */
3627 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_find_last_of_cstr_substr
, 16)
3628 size_t __thiscall
MSVCP_basic_string_wchar_find_last_of_cstr_substr(
3629 const basic_string_wchar
*this, const wchar_t *find
, size_t off
, size_t len
)
3631 const wchar_t *p
, *beg
;
3633 TRACE("%p %p %Iu %Iu\n", this, find
, off
, len
);
3636 if(len
>0 && this->size
>0) {
3637 if(off
>= this->size
)
3640 beg
= basic_string_wchar_const_ptr(this);
3641 for(p
=beg
+off
; p
>=beg
; p
--)
3642 if(MSVCP_char_traits_wchar_find(find
, len
, p
))
3646 return MSVCP_basic_string_wchar_npos
;
3649 /* ?find_last_of@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEIABV12@I@Z */
3650 /* ?find_last_of@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBA_KAEBV12@_K@Z */
3651 /* ?find_last_of@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEIABV12@I@Z */
3652 /* ?find_last_of@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBA_KAEBV12@_K@Z */
3653 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_find_last_of
, 12)
3654 size_t __thiscall
MSVCP_basic_string_wchar_find_last_of(
3655 const basic_string_wchar
*this, const basic_string_wchar
*find
, size_t off
)
3657 return MSVCP_basic_string_wchar_find_last_of_cstr_substr(this,
3658 basic_string_wchar_const_ptr(find
), off
, find
->size
);
3661 /* ?find_last_of@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEIPB_WI@Z */
3662 /* ?find_last_of@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBA_KPEB_W_K@Z */
3663 /* ?find_last_of@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEIPBGI@Z */
3664 /* ?find_last_of@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBA_KPEBG_K@Z */
3665 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_find_last_of_cstr
, 12)
3666 size_t __thiscall
MSVCP_basic_string_wchar_find_last_of_cstr(
3667 const basic_string_wchar
*this, const wchar_t *find
, size_t off
)
3669 return MSVCP_basic_string_wchar_find_last_of_cstr_substr(
3670 this, find
, off
, MSVCP_char_traits_wchar_length(find
));
3673 /* ?find_last_of@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEI_WI@Z */
3674 /* ?find_last_of@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBA_K_W_K@Z */
3675 /* ?find_last_of@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEIGI@Z */
3676 /* ?find_last_of@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBA_KG_K@Z */
3677 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_find_last_of_ch
, 12)
3678 size_t __thiscall
MSVCP_basic_string_wchar_find_last_of_ch(
3679 const basic_string_wchar
*this, wchar_t ch
, size_t off
)
3681 return MSVCP_basic_string_wchar_find_last_of_cstr_substr(this, &ch
, off
, 1);
3684 /* ?find_last_not_of@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEIPB_WII@Z */
3685 /* ?find_last_not_of@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBA_KPEB_W_K1@Z */
3686 /* ?find_last_not_of@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEIPBGII@Z */
3687 /* ?find_last_not_of@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBA_KPEBG_K1@Z */
3688 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_find_last_not_of_cstr_substr
, 16)
3689 size_t __thiscall
MSVCP_basic_string_wchar_find_last_not_of_cstr_substr(
3690 const basic_string_wchar
*this, const wchar_t *find
, size_t off
, size_t len
)
3692 const wchar_t *p
, *beg
;
3694 TRACE("%p %p %Iu %Iu\n", this, find
, off
, len
);
3697 if(off
>= this->size
)
3700 beg
= basic_string_wchar_const_ptr(this);
3701 for(p
=beg
+off
; p
>=beg
; p
--)
3702 if(!MSVCP_char_traits_wchar_find(find
, len
, p
))
3706 return MSVCP_basic_string_wchar_npos
;
3709 /* ?find_last_not_of@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEIABV12@I@Z */
3710 /* ?find_last_not_of@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBA_KAEBV12@_K@Z */
3711 /* ?find_last_not_of@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEIABV12@I@Z */
3712 /* ?find_last_not_of@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBA_KAEBV12@_K@Z */
3713 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_find_last_not_of
, 12)
3714 size_t __thiscall
MSVCP_basic_string_wchar_find_last_not_of(
3715 const basic_string_wchar
*this, const basic_string_wchar
*find
, size_t off
)
3717 return MSVCP_basic_string_wchar_find_last_not_of_cstr_substr(this,
3718 basic_string_wchar_const_ptr(find
), off
, find
->size
);
3721 /* ?find_last_not_of@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEIPB_WI@Z */
3722 /* ?find_last_not_of@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBA_KPEB_W_K@Z */
3723 /* ?find_last_not_of@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEIPBGI@Z */
3724 /* ?find_last_not_of@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBA_KPEBG_K@Z */
3725 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_find_last_not_of_cstr
, 12)
3726 size_t __thiscall
MSVCP_basic_string_wchar_find_last_not_of_cstr(
3727 const basic_string_wchar
*this, const wchar_t *find
, size_t off
)
3729 return MSVCP_basic_string_wchar_find_last_not_of_cstr_substr(
3730 this, find
, off
, MSVCP_char_traits_wchar_length(find
));
3733 /* ?find_last_not_of@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEI_WI@Z */
3734 /* ?find_last_not_of@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBA_K_W_K@Z */
3735 /* ?find_last_not_of@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEIGI@Z */
3736 /* ?find_last_not_of@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBA_KG_K@Z */
3737 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_find_last_not_of_ch
, 12)
3738 size_t __thiscall
MSVCP_basic_string_wchar_find_last_not_of_ch(
3739 const basic_string_wchar
*this, wchar_t ch
, size_t off
)
3741 return MSVCP_basic_string_wchar_find_last_not_of_cstr_substr(this, &ch
, off
, 1);
3744 /* ?replace@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV12@IIPB_WI@Z */
3745 /* ?replace@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAAEAV12@_K0PEB_W0@Z */
3746 /* ?replace@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV12@IIPBGI@Z */
3747 /* ?replace@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAAEAV12@_K0PEBG0@Z */
3748 DEFINE_THISCALL_WRAPPER(basic_string_wchar_replace_cstr_len
, 20)
3749 basic_string_wchar
* __thiscall
basic_string_wchar_replace_cstr_len(basic_string_wchar
*this,
3750 size_t off
, size_t len
, const wchar_t *str
, size_t str_len
)
3752 size_t inside_pos
= -1;
3753 wchar_t *ptr
= basic_string_wchar_ptr(this);
3755 TRACE("%p %Iu %Iu %p %Iu\n", this, off
, len
, str
, str_len
);
3757 if(this->size
< off
)
3758 MSVCP__String_base_Xran();
3760 if(len
> this->size
-off
)
3761 len
= this->size
-off
;
3763 if(MSVCP_basic_string_wchar_npos
-str_len
<= this->size
-len
)
3764 MSVCP__String_base_Xlen();
3766 if(basic_string_wchar_inside(this, str
))
3767 inside_pos
= str
-ptr
;
3770 basic_string_wchar_grow(this, this->size
-len
+str_len
, FALSE
);
3771 ptr
= basic_string_wchar_ptr(this);
3774 if(inside_pos
== -1) {
3775 memmove(ptr
+off
+str_len
, ptr
+off
+len
, (this->size
-off
-len
)*sizeof(wchar_t));
3776 memcpy(ptr
+off
, str
, str_len
*sizeof(wchar_t));
3777 } else if(len
>= str_len
) {
3778 memmove(ptr
+off
, ptr
+inside_pos
, str_len
*sizeof(wchar_t));
3779 memmove(ptr
+off
+str_len
, ptr
+off
+len
, (this->size
-off
-len
)*sizeof(wchar_t));
3783 memmove(ptr
+off
+str_len
, ptr
+off
+len
, (this->size
-off
-len
)*sizeof(wchar_t));
3785 if(inside_pos
< off
+len
) {
3786 size
= off
+len
-inside_pos
;
3789 memmove(ptr
+off
, ptr
+inside_pos
, size
*sizeof(wchar_t));
3795 memmove(ptr
+off
+size
, ptr
+off
+str_len
, (str_len
-size
)*sizeof(wchar_t));
3798 basic_string_wchar_eos(this, this->size
-len
+str_len
);
3802 /* ?replace@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV12@IIPB_W@Z */
3803 /* ?replace@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAAEAV12@_K0PEB_W@Z */
3804 /* ?replace@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV12@IIPBG@Z */
3805 /* ?replace@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAAEAV12@_K0PEBG@Z */
3806 DEFINE_THISCALL_WRAPPER(basic_string_wchar_replace_cstr
, 16)
3807 basic_string_wchar
* __thiscall
basic_string_wchar_replace_cstr(basic_string_wchar
*this,
3808 size_t off
, size_t len
, const wchar_t *str
)
3810 return basic_string_wchar_replace_cstr_len(this, off
, len
, str
,
3811 MSVCP_char_traits_wchar_length(str
));
3814 /* ?replace@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV12@IIABV12@II@Z */
3815 /* ?replace@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAAEAV12@_K0AEBV12@00@Z */
3816 /* ?replace@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV12@IIABV12@II@Z */
3817 /* ?replace@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAAEAV12@_K0AEBV12@00@Z */
3818 DEFINE_THISCALL_WRAPPER(basic_string_wchar_replace_substr
, 24)
3819 basic_string_wchar
* __thiscall
basic_string_wchar_replace_substr(basic_string_wchar
*this, size_t off
,
3820 size_t len
, const basic_string_wchar
*str
, size_t str_off
, size_t str_len
)
3822 if(str
->size
< str_off
)
3823 MSVCP__String_base_Xran();
3825 if(str_len
> str
->size
-str_off
)
3826 str_len
= str
->size
-str_off
;
3828 return basic_string_wchar_replace_cstr_len(this, off
, len
,
3829 basic_string_wchar_const_ptr(str
)+str_off
, str_len
);
3832 /* ?replace@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV12@IIABV12@@Z */
3833 /* ?replace@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAAEAV12@_K0AEBV12@@Z */
3834 /* ?replace@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV12@IIABV12@@Z */
3835 /* ?replace@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAAEAV12@_K0AEBV12@@Z */
3836 DEFINE_THISCALL_WRAPPER(basic_string_wchar_replace
, 16)
3837 basic_string_wchar
* __thiscall
basic_string_wchar_replace(basic_string_wchar
*this,
3838 size_t off
, size_t len
, const basic_string_wchar
*str
)
3840 return basic_string_wchar_replace_cstr_len(this, off
, len
,
3841 basic_string_wchar_const_ptr(str
), str
->size
);
3844 /* ?replace@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV12@III_W@Z */
3845 /* ?replace@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAAEAV12@_K00_W@Z */
3846 /* ?replace@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV12@IIIG@Z */
3847 /* ?replace@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAAEAV12@_K00G@Z */
3848 DEFINE_THISCALL_WRAPPER(basic_string_wchar_replace_ch
, 20)
3849 basic_string_wchar
* __thiscall
basic_string_wchar_replace_ch(basic_string_wchar
*this,
3850 size_t off
, size_t len
, size_t count
, wchar_t ch
)
3852 wchar_t *ptr
= basic_string_wchar_ptr(this);
3854 TRACE("%p %Iu %Iu %Iu %c\n", this, off
, len
, count
, ch
);
3856 if(this->size
< off
)
3857 MSVCP__String_base_Xran();
3859 if(len
> this->size
-off
)
3860 len
= this->size
-off
;
3862 if(MSVCP_basic_string_wchar_npos
-count
<= this->size
-len
)
3863 MSVCP__String_base_Xlen();
3866 basic_string_wchar_grow(this, this->size
-len
+count
, FALSE
);
3867 ptr
= basic_string_wchar_ptr(this);
3870 memmove(ptr
+off
+count
, ptr
+off
+len
, (this->size
-off
-len
)*sizeof(wchar_t));
3871 MSVCP_char_traits_wchar_assignn(ptr
+off
, count
, ch
);
3872 basic_string_wchar_eos(this, this->size
-len
+count
);
3877 /* ?insert@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV12@IABV12@@Z */
3878 /* ?insert@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAAEAV12@_KAEBV12@@Z */
3879 /* ?insert@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV12@IABV12@@Z */
3880 /* ?insert@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAAEAV12@_KAEBV12@@Z */
3881 DEFINE_THISCALL_WRAPPER(basic_string_wchar_insert
, 12)
3882 basic_string_wchar
* __thiscall
basic_string_wchar_insert(basic_string_wchar
*this,
3883 size_t off
, const basic_string_wchar
*str
)
3885 return basic_string_wchar_replace(this, off
, 0, str
);
3888 /* ?insert@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV12@IABV12@II@Z */
3889 /* ?insert@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAAEAV12@_KAEBV12@00@Z */
3890 /* ?insert@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV12@IABV12@II@Z */
3891 /* ?insert@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAAEAV12@_KAEBV12@00@Z */
3892 DEFINE_THISCALL_WRAPPER(basic_string_wchar_insert_substr
, 20)
3893 basic_string_wchar
* __thiscall
basic_string_wchar_insert_substr(
3894 basic_string_wchar
*this, size_t off
, const basic_string_wchar
*str
,
3895 size_t str_off
, size_t str_count
)
3897 return basic_string_wchar_replace_substr(this, off
, 0, str
, str_off
, str_count
);
3900 /* ?insert@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV12@IPB_W@Z */
3901 /* ?insert@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAAEAV12@_KPEB_W@Z */
3902 /* ?insert@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV12@IPBG@Z */
3903 /* ?insert@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAAEAV12@_KPEBG@Z */
3904 DEFINE_THISCALL_WRAPPER(basic_string_wchar_insert_cstr
, 12)
3905 basic_string_wchar
* __thiscall
basic_string_wchar_insert_cstr(
3906 basic_string_wchar
*this, size_t off
, const wchar_t *str
)
3908 return basic_string_wchar_replace_cstr(this, off
, 0, str
);
3911 /* ?insert@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV12@IPB_WI@Z */
3912 /* ?insert@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAAEAV12@_KPEB_W0@Z */
3913 /* ?insert@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV12@IPBGI@Z */
3914 /* ?insert@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAAEAV12@_KPEBG0@Z */
3915 DEFINE_THISCALL_WRAPPER(basic_string_wchar_insert_cstr_len
, 16)
3916 basic_string_wchar
* __thiscall
basic_string_wchar_insert_cstr_len(basic_string_wchar
*this,
3917 size_t off
, const wchar_t *str
, size_t str_len
)
3919 return basic_string_wchar_replace_cstr_len(this, off
, 0, str
, str_len
);
3922 /* ?insert@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV12@II_W@Z */
3923 /* ?insert@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAAEAV12@_K0_W@Z */
3924 /* ?insert@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV12@IIG@Z */
3925 /* ?insert@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAAEAV12@_K0G@Z */
3926 DEFINE_THISCALL_WRAPPER(basic_string_wchar_insert_chn
, 16)
3927 basic_string_wchar
* __thiscall
basic_string_wchar_insert_chn(basic_string_wchar
*this,
3928 size_t off
, size_t count
, wchar_t ch
)
3930 return basic_string_wchar_replace_ch(this, off
, 0, count
, ch
);
3933 /* ??A?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAA_WI@Z */
3934 /* ??A?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAAEA_W_K@Z */
3935 /* ??A?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAGI@Z */
3936 /* ??A?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAAEAG_K@Z */
3937 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_operator_at
, 8)
3938 wchar_t* __thiscall
MSVCP_basic_string_wchar_operator_at(
3939 basic_string_wchar
*this, size_t pos
)
3941 TRACE("%p %Iu\n", this, pos
);
3943 #if _MSVCP_VER >= 80
3944 if (this->size
< pos
)
3945 _invalid_parameter(NULL
, NULL
, NULL
, 0, 0);
3948 return basic_string_wchar_ptr(this)+pos
;
3951 /* ??A?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEAB_WI@Z */
3952 /* ??A?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBAAEB_W_K@Z */
3953 /* ??A?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEABGI@Z */
3954 /* ??A?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBAAEBG_K@Z */
3955 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_const_operator_at
, 8)
3956 const wchar_t* __thiscall
MSVCP_basic_string_wchar_const_operator_at(
3957 const basic_string_wchar
*this, size_t pos
)
3959 TRACE("%p %Iu\n", this, pos
);
3961 #if _MSVCP_VER >= 80
3962 if (this->size
< pos
)
3963 _invalid_parameter(NULL
, NULL
, NULL
, 0, 0);
3966 return basic_string_wchar_const_ptr(this)+pos
;
3969 /* ??A?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAA_WU_Size_type_nosscl@01@@Z */
3970 /* ??A?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAAEA_WU_Size_type_nosscl@01@@Z */
3971 /* ??A?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAGU_Size_type_nosscl@01@@Z */
3972 /* ??A?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAAEAGU_Size_type_nosscl@01@@Z */
3973 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_operator_at_noverify
, 8)
3974 wchar_t* __thiscall
MSVCP_basic_string_wchar_operator_at_noverify(
3975 basic_string_wchar
*this, size_t_noverify pos
)
3977 TRACE("%p %Iu\n", this, pos
.val
);
3978 return basic_string_wchar_ptr(this)+pos
.val
;
3981 /* ??A?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEAB_WU_Size_type_nosscl@01@@Z */
3982 /* ??A?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBAAEB_WU_Size_type_nosscl@01@@Z */
3983 /* ??A?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEABGU_Size_type_nosscl@01@@Z */
3984 /* ??A?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBAAEBGU_Size_type_nosscl@01@@Z */
3985 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_operator_const_at_noverify
, 8)
3986 const wchar_t* __thiscall
MSVCP_basic_string_wchar_operator_const_at_noverify(
3987 const basic_string_wchar
*this, size_t_noverify pos
)
3989 TRACE("%p %Iu\n", this, pos
.val
);
3990 return basic_string_wchar_const_ptr(this)+pos
.val
;
3993 /* ?at@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAA_WI@Z */
3994 /* ?at@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAAEA_W_K@Z */
3995 /* ?at@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAGI@Z */
3996 /* ?at@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAAEAG_K@Z */
3997 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_at
, 8)
3998 wchar_t* __thiscall
MSVCP_basic_string_wchar_at(
3999 basic_string_wchar
*this, size_t pos
)
4001 TRACE("%p %Iu\n", this, pos
);
4003 if(this->size
<= pos
)
4004 MSVCP__String_base_Xran();
4006 return basic_string_wchar_ptr(this)+pos
;
4009 /* ?at@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEAB_WI@Z */
4010 /* ?at@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBAAEB_W_K@Z */
4011 /* ?at@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEABGI@Z */
4012 /* ?at@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBAAEBG_K@Z */
4013 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_const_at
, 8)
4014 const wchar_t* __thiscall
MSVCP_basic_string_wchar_const_at(
4015 const basic_string_wchar
*this, size_t pos
)
4017 TRACE("%p %Iu\n", this, pos
);
4019 if(this->size
<= pos
)
4020 MSVCP__String_base_Xran();
4022 return basic_string_wchar_const_ptr(this)+pos
;
4025 /* ?resize@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEXI_W@Z */
4026 /* ?resize@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAX_K_W@Z */
4027 /* ?resize@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEXIG@Z */
4028 /* ?resize@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAX_KG@Z */
4029 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_resize_ch
, 12)
4030 void __thiscall
MSVCP_basic_string_wchar_resize_ch(
4031 basic_string_wchar
*this, size_t size
, wchar_t ch
)
4033 TRACE("%p %Iu %c\n", this, size
, ch
);
4035 if(size
<= this->size
)
4036 MSVCP_basic_string_wchar_erase(this, size
, this->size
);
4038 MSVCP_basic_string_wchar_append_len_ch(this, size
-this->size
, ch
);
4041 /* ?resize@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEXI@Z */
4042 /* ?resize@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAX_K@Z */
4043 /* ?resize@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEXI@Z */
4044 /* ?resize@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAX_K@Z */
4045 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_resize
, 8)
4046 void __thiscall
MSVCP_basic_string_wchar_resize(
4047 basic_string_wchar
*this, size_t size
)
4049 MSVCP_basic_string_wchar_resize_ch(this, size
, '\0');
4052 /* ?clear@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEXXZ */
4053 /* ?clear@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAXXZ */
4054 /* ?clear@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEXXZ */
4055 /* ?clear@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAXXZ */
4056 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_clear
, 4)
4057 void __thiscall
MSVCP_basic_string_wchar_clear(basic_string_wchar
*this)
4059 basic_string_wchar_eos(this, 0);
4062 /* _String_val class */
4063 /* ??_F?$_String_val@DV?$allocator@D@std@@@std@@QAEXXZ */
4064 /* ??_F?$_String_val@DV?$allocator@D@std@@@std@@QEAAXXZ */
4065 /* ??_F?$_String_val@GV?$allocator@G@std@@@std@@QAEXXZ */
4066 /* ??_F?$_String_val@GV?$allocator@G@std@@@std@@QEAAXXZ */
4067 /* ??_F?$_String_val@_WV?$allocator@_W@std@@@std@@QAEXXZ */
4068 /* ??_F?$_String_val@_WV?$allocator@_W@std@@@std@@QEAAXXZ */
4069 DEFINE_THISCALL_WRAPPER(_String_val_ctor
, 4)
4070 void* __thiscall
_String_val_ctor(void *this)
4072 TRACE("%p\n", this);
4076 /* ??0?$_String_val@DV?$allocator@D@std@@@std@@IAE@V?$allocator@D@1@@Z */
4077 /* ??0?$_String_val@DV?$allocator@D@std@@@std@@IEAA@V?$allocator@D@1@@Z */
4078 /* ??0?$_String_val@GV?$allocator@G@std@@@std@@IAE@V?$allocator@G@1@@Z */
4079 /* ??0?$_String_val@GV?$allocator@G@std@@@std@@IEAA@V?$allocator@G@1@@Z */
4080 /* ??0?$_String_val@_WV?$allocator@_W@std@@@std@@IAE@V?$allocator@_W@1@@Z */
4081 /* ??0?$_String_val@_WV?$allocator@_W@std@@@std@@IEAA@V?$allocator@_W@1@@Z */
4082 /* ??0?$_String_val@DV?$allocator@D@std@@@std@@QAE@ABV01@@Z */
4083 /* ??0?$_String_val@DV?$allocator@D@std@@@std@@QEAA@AEBV01@@Z */
4084 /* ??0?$_String_val@GV?$allocator@G@std@@@std@@QAE@ABV01@@Z */
4085 /* ??0?$_String_val@GV?$allocator@G@std@@@std@@QEAA@AEBV01@@Z */
4086 /* ??0?$_String_val@_WV?$allocator@_W@std@@@std@@QAE@ABV01@@Z */
4087 /* ??0?$_String_val@_WV?$allocator@_W@std@@@std@@QEAA@AEBV01@@Z */
4088 /* ??4?$_String_val@DV?$allocator@D@std@@@std@@QAEAAV01@ABV01@@Z */
4089 /* ??4?$_String_val@DV?$allocator@D@std@@@std@@QEAAAEAV01@AEBV01@@Z */
4090 /* ??4?$_String_val@GV?$allocator@G@std@@@std@@QAEAAV01@ABV01@@Z */
4091 /* ??4?$_String_val@GV?$allocator@G@std@@@std@@QEAAAEAV01@AEBV01@@Z */
4092 /* ??4?$_String_val@_WV?$allocator@_W@std@@@std@@QAEAAV01@ABV01@@Z */
4093 /* ??4?$_String_val@_WV?$allocator@_W@std@@@std@@QEAAAEAV01@AEBV01@@Z */
4094 /* ??4?$_String_val@DV?$allocator@D@std@@@std@@QAEAAV01@ABV01@@Z */
4095 DEFINE_THISCALL_WRAPPER(_String_val_null_ctor
, 8)
4096 void* __thiscall
_String_val_null_ctor(void *this, const void *misc
)
4098 TRACE("%p %p\n", this, misc
);
4102 #if _MSVCP_VER < 80 /* old iterator functions */
4106 } basic_string_char_iterator
;
4110 } basic_string_wchar_iterator
;
4112 /* ?_Pdif@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@KAIVconst_iterator@12@0@Z */
4113 /* ?_Pdif@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@CAIV?$_Ptrit@DHPBDABDPADAAD@2@0@Z */
4114 size_t __cdecl
basic_string_char__Pdif(basic_string_char_iterator i1
, basic_string_char_iterator i2
)
4116 TRACE("(%p %p)\n", i1
.pos
, i2
.pos
);
4117 return !i1
.pos
? 0 : i1
.pos
-i2
.pos
;
4120 /* ?erase@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE?AViterator@12@V312@0@Z */
4121 /* ?erase@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE?AV?$_Ptrit@DHPADAADPADAAD@2@V32@0@Z */
4122 DEFINE_THISCALL_WRAPPER(basic_string_char_erase_iter_range
, 16)
4123 basic_string_char_iterator
* __thiscall
basic_string_char_erase_iter_range(basic_string_char
*this,
4124 basic_string_char_iterator
*ret
, basic_string_char_iterator beg
, basic_string_char_iterator end
)
4128 ret
->pos
= basic_string_char_ptr(this);
4129 off
= basic_string_char__Pdif(beg
, *ret
);
4131 MSVCP_basic_string_char_erase(this, off
, basic_string_char__Pdif(end
, beg
));
4133 ret
->pos
= basic_string_char_ptr(this)+off
;
4137 /* ?erase@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE?AViterator@12@V312@@Z */
4138 /* ?erase@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE?AV?$_Ptrit@DHPADAADPADAAD@2@V32@@Z */
4139 DEFINE_THISCALL_WRAPPER(basic_string_char_erase_iter
, 12)
4140 basic_string_char_iterator
* __thiscall
basic_string_char_erase_iter(basic_string_char
*this,
4141 basic_string_char_iterator
*ret
, basic_string_char_iterator pos
)
4145 ret
->pos
= basic_string_char_ptr(this);
4146 off
= basic_string_char__Pdif(pos
, *ret
);
4148 MSVCP_basic_string_char_erase(this, off
, 1);
4150 ret
->pos
= basic_string_char_ptr(this)+off
;
4154 /* ?assign@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@Vconst_iterator@12@0@Z */
4155 /* ?assign@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@V?$_Ptrit@DHPBDABDPADAAD@2@0@Z */
4156 DEFINE_THISCALL_WRAPPER(basic_string_char_assign_iter
, 12)
4157 basic_string_char
* __thiscall
basic_string_char_assign_iter(basic_string_char
*this,
4158 basic_string_char_iterator beg
, basic_string_char_iterator end
)
4160 return MSVCP_basic_string_char_assign_ptr_ptr(this, beg
.pos
, end
.pos
);
4163 /* ??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@Vconst_iterator@01@0@Z */
4164 /* ??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@V?$_Ptrit@DHPBDABDPADAAD@1@0@Z */
4165 DEFINE_THISCALL_WRAPPER(basic_string_char_ctor_iter
, 12)
4166 basic_string_char
* __thiscall
basic_string_char_ctor_iter(basic_string_char
*this,
4167 basic_string_char_iterator beg
, basic_string_char_iterator end
)
4169 return MSVCP_basic_string_char_ctor_cstr_len(this, beg
.pos
, end
.pos
-beg
.pos
);
4172 /* ?append@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@Vconst_iterator@12@0@Z */
4173 /* ?append@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@V?$_Ptrit@DHPBDABDPADAAD@2@0@Z */
4174 DEFINE_THISCALL_WRAPPER(basic_string_char_append_iter
, 12)
4175 basic_string_char
* __thiscall
basic_string_char_append_iter(basic_string_char
*this,
4176 basic_string_char_iterator beg
, basic_string_char_iterator end
)
4178 return basic_string_char_replace_cstr_len(this, this->size
, 0, beg
.pos
, end
.pos
-beg
.pos
);
4181 /* ?replace@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@Viterator@12@0Vconst_iterator@12@1@Z */
4182 /* ?replace@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@V?$_Ptrit@DHPADAADPADAAD@2@0V?$_Ptrit@DHPBDABDPADAAD@2@1@Z */
4183 DEFINE_THISCALL_WRAPPER(basic_string_char_replace_iter_iter
, 20)
4184 basic_string_char
* __thiscall
basic_string_char_replace_iter_iter(basic_string_char
*this,
4185 basic_string_char_iterator beg
, basic_string_char_iterator end
,
4186 basic_string_char_iterator rbeg
, basic_string_char_iterator rend
)
4188 return basic_string_char_replace_cstr_len(this, beg
.pos
-basic_string_char_ptr(this),
4189 end
.pos
-beg
.pos
, rbeg
.pos
, rend
.pos
-rbeg
.pos
);
4192 /* ?replace@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@Viterator@12@0ABV12@@Z */
4193 /* ?replace@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@V?$_Ptrit@DHPADAADPADAAD@2@0ABV12@@Z */
4194 DEFINE_THISCALL_WRAPPER(basic_string_char_replace_iter_bstr
, 16)
4195 basic_string_char
* __thiscall
basic_string_char_replace_iter_bstr(basic_string_char
*this,
4196 basic_string_char_iterator beg
, basic_string_char_iterator end
, const basic_string_char
*str
)
4198 return basic_string_char_replace_cstr_len(this, beg
.pos
-basic_string_char_ptr(this),
4199 end
.pos
-beg
.pos
, basic_string_char_const_ptr(str
), str
->size
);
4202 /* ?replace@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@Viterator@12@0ID@Z */
4203 /* ?replace@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@V?$_Ptrit@DHPADAADPADAAD@2@0ID@Z */
4204 DEFINE_THISCALL_WRAPPER(basic_string_char_replace_iter_ch
, 20)
4205 basic_string_char
* __thiscall
basic_string_char_replace_iter_ch(basic_string_char
*this,
4206 basic_string_char_iterator beg
, basic_string_char_iterator end
, size_t count
, char ch
)
4208 /* TODO: add more efficient implementation */
4209 size_t off
= beg
.pos
-basic_string_char_ptr(this);
4211 basic_string_char_replace_cstr_len(this, off
, end
.pos
-beg
.pos
, NULL
, 0);
4213 basic_string_char_replace_cstr_len(this, off
, 0, &ch
, 1);
4217 static basic_string_char
* basic_string_char_replace_iter_ptr_ptr(basic_string_char
*this,
4218 basic_string_char_iterator beg
, basic_string_char_iterator end
,
4219 const char *res_beg
, const char *res_end
)
4221 basic_string_char_iterator begin
= { basic_string_char_ptr(this) };
4222 return basic_string_char_replace_cstr_len(this, basic_string_char__Pdif(beg
, begin
),
4223 basic_string_char__Pdif(end
, beg
), res_beg
, res_end
-res_beg
);
4226 /* ?replace@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@Viterator@12@0PBD1@Z */
4227 /* ?replace@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@V?$_Ptrit@DHPADAADPADAAD@2@0PBD1@Z */
4228 DEFINE_THISCALL_WRAPPER(basic_string_char_replace_iter_beg_end
, 20)
4229 basic_string_char
* __thiscall
basic_string_char_replace_iter_beg_end(basic_string_char
*this,
4230 basic_string_char_iterator beg
, basic_string_char_iterator end
, const char *rbeg
, const char *rend
)
4232 return basic_string_char_replace_cstr_len(this, beg
.pos
-basic_string_char_ptr(this),
4233 end
.pos
-beg
.pos
, rbeg
, rend
-rbeg
);
4236 /* ?replace@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@Viterator@12@0PBD@Z */
4237 /* ?replace@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@V?$_Ptrit@DHPADAADPADAAD@2@0PBD@Z */
4238 DEFINE_THISCALL_WRAPPER(basic_string_char_replace_iter_cstr
, 16)
4239 basic_string_char
* __thiscall
basic_string_char_replace_iter_cstr(basic_string_char
*this,
4240 basic_string_char_iterator beg
, basic_string_char_iterator end
, const char *str
)
4242 return basic_string_char_replace_cstr_len(this, beg
.pos
-basic_string_char_ptr(this),
4243 end
.pos
-beg
.pos
, str
, strlen(str
));
4246 /* ?replace@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@Viterator@12@0PBDI@Z */
4247 /* ?replace@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@V?$_Ptrit@DHPADAADPADAAD@2@0PBDI@Z */
4248 DEFINE_THISCALL_WRAPPER(basic_string_char_replace_iter_cstr_len
, 20)
4249 basic_string_char
* __thiscall
basic_string_char_replace_iter_cstr_len(basic_string_char
*this,
4250 basic_string_char_iterator beg
, basic_string_char_iterator end
, const char *str
, size_t len
)
4252 return basic_string_char_replace_cstr_len(this, beg
.pos
-basic_string_char_ptr(this),
4253 end
.pos
-beg
.pos
, str
, len
);
4256 /* ?insert@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEXViterator@12@ID@Z */
4257 /* ?insert@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEXV?$_Ptrit@DHPADAADPADAAD@2@ID@Z */
4258 DEFINE_THISCALL_WRAPPER(basic_string_char_insert_iter_chn
, 16)
4259 void __thiscall
basic_string_char_insert_iter_chn(basic_string_char
*this,
4260 basic_string_char_iterator where
, size_t count
, char ch
)
4262 basic_string_char_iterator iter
= { basic_string_char_ptr(this) };
4263 size_t off
= basic_string_char__Pdif(where
, iter
);
4265 basic_string_char_insert_chn(this, off
, count
, ch
);
4268 /* ?insert@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE?AViterator@12@V312@D@Z */
4269 /* ?insert@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE?AV?$_Ptrit@DHPADAADPADAAD@2@V32@D@Z */
4270 DEFINE_THISCALL_WRAPPER(basic_string_char_insert_iter_ch
, 16)
4271 basic_string_char_iterator
* __thiscall
basic_string_char_insert_iter_ch(basic_string_char
*this,
4272 basic_string_char_iterator
*ret
, basic_string_char_iterator where
, char ch
)
4276 ret
->pos
= basic_string_char_ptr(this);
4277 off
= basic_string_char__Pdif(where
, *ret
);
4279 basic_string_char_insert_chn(this, off
, 1, ch
);
4280 ret
->pos
= basic_string_char_ptr(this)+off
;
4284 /* ?insert@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE?AViterator@12@V312@@Z */
4285 /* ?insert@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE?AV?$_Ptrit@DHPADAADPADAAD@2@V32@@Z */
4286 DEFINE_THISCALL_WRAPPER(basic_string_char_insert_iter_null
, 12)
4287 basic_string_char_iterator
* __thiscall
basic_string_char_insert_iter_null(basic_string_char
*this,
4288 basic_string_char_iterator
*ret
, basic_string_char_iterator where
)
4290 return basic_string_char_insert_iter_ch(this, ret
, where
, 0);
4293 /* ?insert@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEXViterator@12@PBD1@Z */
4294 DEFINE_THISCALL_WRAPPER(basic_string_char_insert_iter_ptr_ptr
, 16)
4295 void __thiscall
basic_string_char_insert_iter_ptr_ptr(basic_string_char
*this,
4296 basic_string_char_iterator where
, const char *beg
, const char *end
)
4298 basic_string_char_replace_iter_ptr_ptr(this, where
, where
, beg
, end
);
4301 /* ?insert@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEXViterator@12@PBD1@Z */
4302 DEFINE_THISCALL_WRAPPER(basic_string_char_insert_iter_beg_end
, 16)
4303 void __thiscall
basic_string_char_insert_iter_beg_end(basic_string_char
*this,
4304 basic_string_char_iterator where
, basic_string_char_iterator beg
, basic_string_char_iterator end
)
4306 basic_string_char_replace_iter_ptr_ptr(this, where
, where
, beg
.pos
, end
.pos
);
4309 /* ?begin@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE?AViterator@12@XZ */
4310 /* ?begin@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBE?AVconst_iterator@12@XZ */
4311 /* ?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 */
4312 /* ?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 */
4313 /* ?begin@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE?AV?$_Ptrit@DHPADAADPADAAD@2@XZ */
4314 /* ?begin@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBE?AV?$_Ptrit@DHPBDABDPADAAD@2@XZ */
4315 /* ?rend@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE?AV?$reverse_iterator@V?$_Ptrit@DHPADAADPADAAD@std@@@2@XZ */
4316 /* ?rend@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBE?AV?$reverse_iterator@V?$_Ptrit@DHPBDABDPADAAD@std@@@2@XZ */
4317 DEFINE_THISCALL_WRAPPER(basic_string_char_begin
, 8)
4318 basic_string_char_iterator
* __thiscall
basic_string_char_begin(
4319 basic_string_char
*this, basic_string_char_iterator
*ret
)
4321 ret
->pos
= basic_string_char_ptr(this);
4325 /* ?end@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE?AViterator@12@XZ */
4326 /* ?end@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBE?AVconst_iterator@12@XZ */
4327 /* ?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 */
4328 /* ?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 */
4329 /* ?end@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE?AV?$_Ptrit@DHPADAADPADAAD@2@XZ */
4330 /* ?end@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBE?AV?$_Ptrit@DHPBDABDPADAAD@2@XZ */
4331 /* ?rbegin@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE?AV?$reverse_iterator@V?$_Ptrit@DHPADAADPADAAD@std@@@2@XZ */
4332 /* ?rbegin@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBE?AV?$reverse_iterator@V?$_Ptrit@DHPBDABDPADAAD@std@@@2@XZ */
4333 DEFINE_THISCALL_WRAPPER(basic_string_char_end
, 8)
4334 basic_string_char_iterator
* __thiscall
basic_string_char_end(
4335 basic_string_char
*this, basic_string_char_iterator
*ret
)
4337 ret
->pos
= basic_string_char_ptr(this)+this->size
;
4341 /* ?_Pdif@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@KAIVconst_iterator@12@0@Z */
4342 /* ?_Pdif@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@KAIVconst_iterator@12@0@Z */
4343 /* ?_Pdif@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@CAIV?$_Ptrit@_WHPB_WAB_WPA_WAA_W@2@0@Z */
4344 /* ?_Pdif@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@CAIV?$_Ptrit@GHPBGABGPAGAAG@2@0@Z */
4345 size_t __cdecl
basic_string_wchar__Pdif(basic_string_wchar_iterator i1
, basic_string_wchar_iterator i2
)
4347 TRACE("(%p %p)\n", i1
.pos
, i2
.pos
);
4348 return !i1
.pos
? 0 : i1
.pos
-i2
.pos
;
4351 /* ?erase@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE?AViterator@12@V312@0@Z */
4352 /* ?erase@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAE?AViterator@12@V312@0@Z */
4353 /* ?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 */
4354 /* ?erase@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAE?AV?$_Ptrit@GHPAGAAGPAGAAG@2@V32@0@Z */
4355 DEFINE_THISCALL_WRAPPER(basic_string_wchar_erase_iter_range
, 16)
4356 basic_string_wchar_iterator
* __thiscall
basic_string_wchar_erase_iter_range(basic_string_wchar
*this,
4357 basic_string_wchar_iterator
*ret
, basic_string_wchar_iterator beg
, basic_string_wchar_iterator end
)
4361 ret
->pos
= basic_string_wchar_ptr(this);
4362 off
= basic_string_wchar__Pdif(beg
, *ret
);
4364 MSVCP_basic_string_wchar_erase(this, off
, basic_string_wchar__Pdif(end
, beg
));
4366 ret
->pos
= basic_string_wchar_ptr(this)+off
;
4370 /* ?erase@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE?AViterator@12@V312@@Z */
4371 /* ?erase@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAE?AViterator@12@V312@@Z */
4372 /* ?erase@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE?AV?$_Ptrit@_WHPA_WAA_WPA_WAA_W@2@V32@@Z */
4373 /* ?erase@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAE?AV?$_Ptrit@GHPAGAAGPAGAAG@2@V32@@Z */
4374 DEFINE_THISCALL_WRAPPER(basic_string_wchar_erase_iter
, 12)
4375 basic_string_wchar_iterator
* __thiscall
basic_string_wchar_erase_iter(basic_string_wchar
*this,
4376 basic_string_wchar_iterator
*ret
, basic_string_wchar_iterator pos
)
4380 ret
->pos
= basic_string_wchar_ptr(this);
4381 off
= basic_string_wchar__Pdif(pos
, *ret
);
4383 MSVCP_basic_string_wchar_erase(this, off
, 1);
4385 ret
->pos
= basic_string_wchar_ptr(this)+off
;
4389 /* ?assign@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV12@Vconst_iterator@12@0@Z */
4390 /* ?assign@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV12@Vconst_iterator@12@0@Z */
4391 /* ?assign@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV12@V?$_Ptrit@_WHPB_WAB_WPA_WAA_W@2@0@Z */
4392 /* ?assign@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV12@V?$_Ptrit@GHPBGABGPAGAAG@2@0@Z */
4393 DEFINE_THISCALL_WRAPPER(basic_string_wchar_assign_iter
, 12)
4394 basic_string_wchar
* __thiscall
basic_string_wchar_assign_iter(basic_string_wchar
*this,
4395 basic_string_wchar_iterator beg
, basic_string_wchar_iterator end
)
4397 return MSVCP_basic_string_wchar_assign_ptr_ptr(this, beg
.pos
, end
.pos
);
4400 /* ??0?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE@Vconst_iterator@01@0@Z */
4401 /* ??0?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAE@Vconst_iterator@01@0@Z */
4402 /* ??0?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE@V?$_Ptrit@_WHPB_WAB_WPA_WAA_W@1@0@Z */
4403 /* ??0?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAE@V?$_Ptrit@GHPBGABGPAGAAG@1@0@Z */
4404 DEFINE_THISCALL_WRAPPER(basic_string_wchar_ctor_iter
, 12)
4405 basic_string_wchar
* __thiscall
basic_string_wchar_ctor_iter(basic_string_wchar
*this,
4406 basic_string_wchar_iterator beg
, basic_string_wchar_iterator end
)
4408 return MSVCP_basic_string_wchar_ctor_cstr_len(this, beg
.pos
, end
.pos
-beg
.pos
);
4411 /* ?append@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV12@Vconst_iterator@12@0@Z */
4412 /* ?append@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV12@Vconst_iterator@12@0@Z */
4413 /* ?append@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV12@V?$_Ptrit@_WHPB_WAB_WPA_WAA_W@2@0@Z */
4414 /* ?append@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV12@V?$_Ptrit@GHPBGABGPAGAAG@2@0@Z */
4415 DEFINE_THISCALL_WRAPPER(basic_string_wchar_append_iter
, 12)
4416 basic_string_wchar
* __thiscall
basic_string_wchar_append_iter(basic_string_wchar
*this,
4417 basic_string_wchar_iterator beg
, basic_string_wchar_iterator end
)
4419 return basic_string_wchar_replace_cstr_len(this, this->size
, 0, beg
.pos
, end
.pos
-beg
.pos
);
4422 /* ?replace@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV12@Viterator@12@0Vconst_iterator@12@1@Z */
4423 /* ?replace@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV12@Viterator@12@0Vconst_iterator@12@1@Z */
4424 /* ?replace@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV12@V?$_Ptrit@GHPAGAAGPAGAAG@2@0V?$_Ptrit@GHPBGABGPAGAAG@2@1@Z */
4425 /* ?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 */
4426 DEFINE_THISCALL_WRAPPER(basic_string_wchar_replace_iter_iter
, 20)
4427 basic_string_wchar
* __thiscall
basic_string_wchar_replace_iter_iter(basic_string_wchar
*this,
4428 basic_string_wchar_iterator beg
, basic_string_wchar_iterator end
,
4429 basic_string_wchar_iterator rbeg
, basic_string_wchar_iterator rend
)
4431 return basic_string_wchar_replace_cstr_len(this, beg
.pos
-basic_string_wchar_ptr(this),
4432 end
.pos
-beg
.pos
, rbeg
.pos
, rend
.pos
-rbeg
.pos
);
4435 /* ?replace@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV12@Viterator@12@0ABV12@@Z */
4436 /* ?replace@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV12@Viterator@12@0ABV12@@Z */
4437 /* ?replace@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV12@V?$_Ptrit@GHPAGAAGPAGAAG@2@0ABV12@@Z */
4438 /* ?replace@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV12@V?$_Ptrit@_WHPA_WAA_WPA_WAA_W@2@0ABV12@@Z */
4439 DEFINE_THISCALL_WRAPPER(basic_string_wchar_replace_iter_bstr
, 16)
4440 basic_string_wchar
* __thiscall
basic_string_wchar_replace_iter_bstr(basic_string_wchar
*this,
4441 basic_string_wchar_iterator beg
, basic_string_wchar_iterator end
, basic_string_wchar
*str
)
4443 return basic_string_wchar_replace_cstr_len(this, beg
.pos
-basic_string_wchar_ptr(this),
4444 end
.pos
-beg
.pos
, basic_string_wchar_ptr(str
), str
->size
);
4447 /* ?replace@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV12@Viterator@12@0IG@Z */
4448 /* ?replace@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV12@Viterator@12@0I_W@Z */
4449 /* ?replace@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV12@V?$_Ptrit@GHPAGAAGPAGAAG@2@0IG@Z */
4450 /* ?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 */
4451 DEFINE_THISCALL_WRAPPER(basic_string_wchar_replace_iter_ch
, 20)
4452 basic_string_wchar
* __thiscall
basic_string_wchar_replace_iter_ch(basic_string_wchar
*this,
4453 basic_string_wchar_iterator beg
, basic_string_wchar_iterator end
, size_t count
, wchar_t ch
)
4455 /* TODO: add more efficient implementation */
4456 size_t off
= beg
.pos
-basic_string_wchar_ptr(this);
4458 basic_string_wchar_replace_cstr_len(this, off
, end
.pos
-beg
.pos
, NULL
, 0);
4460 basic_string_wchar_replace_cstr_len(this, off
, 0, &ch
, 1);
4464 static basic_string_wchar
* basic_string_wchar_replace_iter_ptr_ptr(basic_string_wchar
*this,
4465 basic_string_wchar_iterator beg
, basic_string_wchar_iterator end
,
4466 const wchar_t *res_beg
, const wchar_t *res_end
)
4468 basic_string_wchar_iterator begin
= { basic_string_wchar_ptr(this) };
4469 return basic_string_wchar_replace_cstr_len(this, basic_string_wchar__Pdif(beg
, begin
),
4470 basic_string_wchar__Pdif(end
, beg
), res_beg
, res_end
-res_beg
);
4473 /* ?replace@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV12@Viterator@12@0PBG1@Z */
4474 /* ?replace@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV12@Viterator@12@0PB_W1@Z */
4475 /* ?replace@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV12@V?$_Ptrit@GHPAGAAGPAGAAG@2@0PBG1@Z */
4476 /* ?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 */
4477 DEFINE_THISCALL_WRAPPER(basic_string_wchar_replace_iter_beg_end
, 20)
4478 basic_string_wchar
* __thiscall
basic_string_wchar_replace_iter_beg_end(basic_string_wchar
*this,
4479 basic_string_wchar_iterator beg
, basic_string_wchar_iterator end
,
4480 const wchar_t *rbeg
, const wchar_t *rend
)
4482 return basic_string_wchar_replace_cstr_len(this, beg
.pos
-basic_string_wchar_ptr(this),
4483 end
.pos
-beg
.pos
, rbeg
, rend
-rbeg
);
4486 /* ?replace@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV12@Viterator@12@0PBG@Z */
4487 /* ?replace@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV12@Viterator@12@0PB_W@Z */
4488 /* ?replace@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV12@V?$_Ptrit@GHPAGAAGPAGAAG@2@0PBG@Z */
4489 /* ?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 */
4490 DEFINE_THISCALL_WRAPPER(basic_string_wchar_replace_iter_cstr
, 16)
4491 basic_string_wchar
* __thiscall
basic_string_wchar_replace_iter_cstr(basic_string_wchar
*this,
4492 basic_string_wchar_iterator beg
, basic_string_wchar_iterator end
, const wchar_t *str
)
4494 return basic_string_wchar_replace_cstr_len(this, beg
.pos
-basic_string_wchar_ptr(this),
4495 end
.pos
-beg
.pos
, str
, wcslen(str
));
4498 /* ?replace@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV12@Viterator@12@0PBGI@Z */
4499 /* ?replace@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV12@Viterator@12@0PB_WI@Z */
4500 /* ?replace@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV12@V?$_Ptrit@GHPAGAAGPAGAAG@2@0PBGI@Z */
4501 /* ?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 */
4502 DEFINE_THISCALL_WRAPPER(basic_string_wchar_replace_iter_cstr_len
, 20)
4503 basic_string_wchar
* __thiscall
basic_string_wchar_replace_iter_cstr_len(basic_string_wchar
*this,
4504 basic_string_wchar_iterator beg
, basic_string_wchar_iterator end
,
4505 const wchar_t *str
, size_t len
)
4507 return basic_string_wchar_replace_cstr_len(this, beg
.pos
-basic_string_wchar_ptr(this),
4508 end
.pos
-beg
.pos
, str
, len
);
4511 /* ?insert@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEXViterator@12@I_W@Z */
4512 /* ?insert@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEXViterator@12@IG@Z */
4513 /* ?insert@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEXV?$_Ptrit@_WHPA_WAA_WPA_WAA_W@2@I_W@Z */
4514 /* ?insert@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEXV?$_Ptrit@GHPAGAAGPAGAAG@2@IG@Z */
4515 DEFINE_THISCALL_WRAPPER(basic_string_wchar_insert_iter_chn
, 16)
4516 void __thiscall
basic_string_wchar_insert_iter_chn(basic_string_wchar
*this,
4517 basic_string_wchar_iterator where
, size_t count
, wchar_t ch
)
4519 basic_string_wchar_iterator iter
= { basic_string_wchar_ptr(this) };
4520 size_t off
= basic_string_wchar__Pdif(where
, iter
);
4522 basic_string_wchar_insert_chn(this, off
, count
, ch
);
4525 /* ?insert@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE?AViterator@12@V312@_W@Z */
4526 /* ?insert@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAE?AViterator@12@V312@G@Z */
4527 /* ?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 */
4528 /* ?insert@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAE?AV?$_Ptrit@GHPAGAAGPAGAAG@2@V32@G@Z */
4529 DEFINE_THISCALL_WRAPPER(basic_string_wchar_insert_iter_ch
, 16)
4530 basic_string_wchar_iterator
* __thiscall
basic_string_wchar_insert_iter_ch(basic_string_wchar
*this,
4531 basic_string_wchar_iterator
*ret
, basic_string_wchar_iterator where
, wchar_t ch
)
4535 ret
->pos
= basic_string_wchar_ptr(this);
4536 off
= basic_string_wchar__Pdif(where
, *ret
);
4538 basic_string_wchar_insert_chn(this, off
, 1, ch
);
4539 ret
->pos
= basic_string_wchar_ptr(this)+off
;
4543 /* ?insert@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE?AViterator@12@V312@@Z */
4544 /* ?insert@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAE?AViterator@12@V312@@Z */
4545 /* ?insert@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE?AV?$_Ptrit@_WHPA_WAA_WPA_WAA_W@2@V32@@Z */
4546 /* ?insert@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAE?AV?$_Ptrit@GHPAGAAGPAGAAG@2@V32@@Z */
4547 DEFINE_THISCALL_WRAPPER(basic_string_wchar_insert_iter_null
, 12)
4548 basic_string_wchar_iterator
* __thiscall
basic_string_wchar_insert_iter_null(basic_string_wchar
*this,
4549 basic_string_wchar_iterator
*ret
, basic_string_wchar_iterator where
)
4551 return basic_string_wchar_insert_iter_ch(this, ret
, where
, 0);
4554 /* ?insert@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEXViterator@12@PB_W1@Z */
4555 /* ?insert@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEXViterator@12@PBG1@Z */
4556 /* ?insert@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEXV?$_Ptrit@_WHPA_WAA_WPA_WAA_W@2@PB_W1@Z */
4557 /* ?insert@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEXV?$_Ptrit@GHPAGAAGPAGAAG@2@PBG1@Z */
4558 DEFINE_THISCALL_WRAPPER(basic_string_wchar_insert_iter_ptr_ptr
, 16)
4559 void __thiscall
basic_string_wchar_insert_iter_ptr_ptr(basic_string_wchar
*this,
4560 basic_string_wchar_iterator where
, const wchar_t *beg
, const wchar_t *end
)
4562 basic_string_wchar_replace_iter_ptr_ptr(this, where
, where
, beg
, end
);
4565 /* ?insert@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEXViterator@12@Vconst_iterator@12@1@Z */
4566 /* ?insert@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEXViterator@12@Vconst_iterator@12@1@Z */
4567 /* ?insert@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEXViterator@12@Vconst_iterator@12@1@Z */
4568 /* ?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 */
4569 /* ?insert@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEXV?$_Ptrit@GHPAGAAGPAGAAG@2@V?$_Ptrit@GHPBGABGPAGAAG@2@1@Z */
4570 DEFINE_THISCALL_WRAPPER(basic_string_wchar_insert_iter_beg_end
, 16)
4571 void __thiscall
basic_string_wchar_insert_iter_beg_end(basic_string_wchar
*this,
4572 basic_string_wchar_iterator where
, basic_string_wchar_iterator beg
, basic_string_wchar_iterator end
)
4574 basic_string_wchar_replace_iter_ptr_ptr(this, where
, where
, beg
.pos
, end
.pos
);
4577 /* ?begin@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAE?AViterator@12@XZ */
4578 /* ?begin@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBE?AVconst_iterator@12@XZ */
4579 /* ?begin@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE?AViterator@12@XZ */
4580 /* ?begin@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBE?AVconst_iterator@12@XZ */
4581 /* ?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 */
4582 /* ?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 */
4583 /* ?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 */
4584 /* ?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 */
4585 /* ?begin@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAE?AV?$_Ptrit@GHPAGAAGPAGAAG@2@XZ */
4586 /* ?begin@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBE?AV?$_Ptrit@GHPBGABGPAGAAG@2@XZ */
4587 /* ?begin@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE?AV?$_Ptrit@_WHPA_WAA_WPA_WAA_W@2@XZ */
4588 /* ?begin@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBE?AV?$_Ptrit@_WHPB_WAB_WPA_WAA_W@2@XZ */
4589 /* ?rend@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAE?AV?$reverse_iterator@V?$_Ptrit@GHPAGAAGPAGAAG@std@@@2@XZ */
4590 /* ?rend@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBE?AV?$reverse_iterator@V?$_Ptrit@GHPBGABGPAGAAG@std@@@2@XZ */
4591 /* ?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 */
4592 /* ?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 */
4593 DEFINE_THISCALL_WRAPPER(basic_string_wchar_begin
, 8)
4594 basic_string_wchar_iterator
* __thiscall
basic_string_wchar_begin(
4595 basic_string_wchar
*this, basic_string_wchar_iterator
*ret
)
4597 ret
->pos
= basic_string_wchar_ptr(this);
4601 /* ?end@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAE?AViterator@12@XZ */
4602 /* ?end@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBE?AVconst_iterator@12@XZ */
4603 /* ?end@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE?AViterator@12@XZ */
4604 /* ?end@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBE?AVconst_iterator@12@XZ */
4605 /* ?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 */
4606 /* ?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 */
4607 /* ?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 */
4608 /* ?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 */
4609 /* ?end@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAE?AV?$_Ptrit@GHPAGAAGPAGAAG@2@XZ */
4610 /* ?end@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBE?AV?$_Ptrit@GHPBGABGPAGAAG@2@XZ */
4611 /* ?end@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE?AV?$_Ptrit@_WHPA_WAA_WPA_WAA_W@2@XZ */
4612 /* ?end@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBE?AV?$_Ptrit@_WHPB_WAB_WPA_WAA_W@2@XZ */
4613 /* ?rbegin@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAE?AV?$reverse_iterator@V?$_Ptrit@GHPAGAAGPAGAAG@std@@@2@XZ */
4614 /* ?rbegin@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBE?AV?$reverse_iterator@V?$_Ptrit@GHPBGABGPAGAAG@std@@@2@XZ */
4615 /* ?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 */
4616 /* ?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 */
4617 DEFINE_THISCALL_WRAPPER(basic_string_wchar_end
, 8)
4618 basic_string_wchar_iterator
* __thiscall
basic_string_wchar_end(
4619 basic_string_wchar
*this, basic_string_wchar_iterator
*ret
)
4621 ret
->pos
= basic_string_wchar_ptr(this)+this->size
;
4625 #else /* _MSVCP_VER >= 80, new iterator functions */
4627 /* _String_iterator<char> and _String_const_iterator<char> class */
4629 basic_string_char
*bstr
;
4631 } String_iterator_char
;
4634 #if _MSVCP_VER == 80
4637 const basic_string_char
*bstr
;
4639 } String_reverse_iterator_char
;
4642 basic_string_wchar
*bstr
;
4644 } String_iterator_wchar
;
4647 #if _MSVCP_VER == 80
4650 const basic_string_wchar
*bstr
;
4652 } String_reverse_iterator_wchar
;
4654 /* ?_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 */
4655 /* ?_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 */
4656 size_t __cdecl
MSVCP_basic_string_char_Pdif(String_iterator_char i1
, String_iterator_char i2
)
4658 TRACE("(%p %p) (%p %p)\n", i1
.bstr
, i1
.pos
, i2
.bstr
, i2
.pos
);
4660 if((!i1
.bstr
&& i1
.pos
) || i1
.bstr
!=i2
.bstr
) {
4661 _invalid_parameter(NULL
, NULL
, NULL
, 0, 0);
4665 return !i1
.pos
? 0 : i1
.pos
-i2
.pos
;
4668 /* ?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 */
4669 /* ?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 */
4670 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_erase_iter_range
, 24)
4671 String_iterator_char
* __thiscall
MSVCP_basic_string_char_erase_iter_range(basic_string_char
*this,
4672 String_iterator_char
*ret
, String_iterator_char beg
, String_iterator_char end
)
4677 ret
->pos
= basic_string_char_ptr(this);
4678 off
= MSVCP_basic_string_char_Pdif(beg
, *ret
);
4680 MSVCP_basic_string_char_erase(this, off
, MSVCP_basic_string_char_Pdif(end
, beg
));
4683 ret
->pos
= basic_string_char_ptr(this)+off
;
4687 /* ?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 */
4688 /* ?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 */
4689 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_erase_iter
, 16)
4690 String_iterator_char
* __thiscall
MSVCP_basic_string_char_erase_iter(basic_string_char
*this,
4691 String_iterator_char
*ret
, String_iterator_char pos
)
4696 ret
->pos
= basic_string_char_ptr(this);
4697 off
= MSVCP_basic_string_char_Pdif(pos
, *ret
);
4699 MSVCP_basic_string_char_erase(this, off
, 1);
4702 ret
->pos
= basic_string_char_ptr(this)+off
;
4706 /* ?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 */
4707 /* ?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 */
4708 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_assign_iter
, 20)
4709 basic_string_char
* __thiscall
MSVCP_basic_string_char_assign_iter(basic_string_char
*this,
4710 String_iterator_char beg
, String_iterator_char end
)
4712 return MSVCP_basic_string_char_assign_ptr_ptr(this, beg
.pos
, end
.pos
);
4715 /* ??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 */
4716 /* ??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 */
4717 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_ctor_iter
, 20)
4718 basic_string_char
* __thiscall
MSVCP_basic_string_char_ctor_iter(basic_string_char
*this,
4719 String_iterator_char beg
, String_iterator_char end
)
4721 return MSVCP_basic_string_char_ctor_cstr_len(this, beg
.pos
, end
.pos
-beg
.pos
);
4724 /* ?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 */
4725 /* ?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 */
4726 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_append_iter
, 20)
4727 basic_string_char
* __thiscall
MSVCP_basic_string_char_append_iter(
4728 basic_string_char
*this, String_iterator_char beg
, String_iterator_char end
)
4730 return MSVCP_basic_string_char_append_cstr_len(this, beg
.pos
, end
.pos
-beg
.pos
);
4733 /* ?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 */
4734 /* ?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 */
4735 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_replace_iter_iter
, 36)
4736 basic_string_char
* __thiscall
MSVCP_basic_string_char_replace_iter_iter(basic_string_char
*this,
4737 String_iterator_char beg
, String_iterator_char end
,
4738 String_iterator_char res_beg
, String_iterator_char res_end
)
4740 String_iterator_char begin
= { this, basic_string_char_ptr(this) };
4741 return basic_string_char_replace_cstr_len(this,
4742 MSVCP_basic_string_char_Pdif(beg
, begin
), MSVCP_basic_string_char_Pdif(end
, beg
),
4743 res_beg
.pos
, MSVCP_basic_string_char_Pdif(res_end
, res_beg
));
4746 /* ?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 */
4747 /* ?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 */
4748 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_replace_iter_bstr
, 24)
4749 basic_string_char
* __thiscall
MSVCP_basic_string_char_replace_iter_bstr(basic_string_char
*this,
4750 String_iterator_char beg
, String_iterator_char end
, const basic_string_char
*str
)
4752 String_iterator_char begin
= { this, basic_string_char_ptr(this) };
4753 return basic_string_char_replace(this, MSVCP_basic_string_char_Pdif(beg
, begin
),
4754 MSVCP_basic_string_char_Pdif(end
, beg
), str
);
4757 /* ?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 */
4758 /* ?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 */
4759 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_replace_iter_ch
, 28)
4760 basic_string_char
* __thiscall
MSVCP_basic_string_char_replace_iter_ch(basic_string_char
*this,
4761 String_iterator_char beg
, String_iterator_char end
, size_t count
, char ch
)
4763 String_iterator_char begin
= { this, basic_string_char_ptr(this) };
4764 return basic_string_char_replace_ch(this, MSVCP_basic_string_char_Pdif(beg
, begin
),
4765 MSVCP_basic_string_char_Pdif(end
, beg
), count
, ch
);
4768 /* ?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 */
4769 /* ?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 */
4770 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_replace_iter_ptr_ptr
, 28)
4771 basic_string_char
* __thiscall
MSVCP_basic_string_char_replace_iter_ptr_ptr(basic_string_char
*this,
4772 String_iterator_char beg
, String_iterator_char end
,
4773 const char *res_beg
, const char *res_end
)
4775 String_iterator_char begin
= { this, basic_string_char_ptr(this) };
4776 return basic_string_char_replace_cstr_len(this, MSVCP_basic_string_char_Pdif(beg
, begin
),
4777 MSVCP_basic_string_char_Pdif(end
, beg
), res_beg
, res_end
-res_beg
);
4780 /* ?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 */
4781 /* ?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 */
4782 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_replace_iter_cstr
, 24)
4783 basic_string_char
* __thiscall
MSVCP_basic_string_char_replace_iter_cstr(basic_string_char
*this,
4784 String_iterator_char beg
, String_iterator_char end
, const char *str
)
4786 String_iterator_char begin
= { this, basic_string_char_ptr(this) };
4787 return basic_string_char_replace_cstr(this, MSVCP_basic_string_char_Pdif(beg
, begin
),
4788 MSVCP_basic_string_char_Pdif(end
, beg
), str
);
4791 /* ?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 */
4792 /* ?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 */
4793 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_replace_iter_cstr_len
, 28)
4794 basic_string_char
* __thiscall
MSVCP_basic_string_char_replace_iter_cstr_len(basic_string_char
*this,
4795 String_iterator_char beg
, String_iterator_char end
, const char *str
, size_t len
)
4797 String_iterator_char begin
= { this, basic_string_char_ptr(this) };
4798 return basic_string_char_replace_cstr_len(this, MSVCP_basic_string_char_Pdif(beg
, begin
),
4799 MSVCP_basic_string_char_Pdif(end
, beg
), str
, len
);
4802 /* ?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 */
4803 /* ?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 */
4804 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_insert_iter_chn
, 20)
4805 void __thiscall
MSVCP_basic_string_char_insert_iter_chn(basic_string_char
*this,
4806 String_iterator_char where
, size_t count
, char ch
)
4808 String_iterator_char iter
= { this, basic_string_char_ptr(this) };
4809 size_t off
= MSVCP_basic_string_char_Pdif(where
, iter
);
4811 basic_string_char_insert_chn(this, off
, count
, ch
);
4814 /* ?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 */
4815 /* ?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 */
4816 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_insert_iter_ch
, 20)
4817 String_iterator_char
* __thiscall
MSVCP_basic_string_char_insert_iter_ch(basic_string_char
*this,
4818 String_iterator_char
*ret
, String_iterator_char where
, char ch
)
4823 ret
->pos
= basic_string_char_ptr(this);
4824 off
= MSVCP_basic_string_char_Pdif(where
, *ret
);
4826 basic_string_char_insert_chn(this, off
, 1, ch
);
4827 ret
->pos
= basic_string_char_ptr(this)+off
;
4831 /* ?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 */
4832 /* ?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 */
4833 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_insert_iter_null
, 16)
4834 String_iterator_char
* __thiscall
MSVCP_basic_string_char_insert_iter_null(basic_string_char
*this,
4835 String_iterator_char
*ret
, String_iterator_char where
)
4837 return MSVCP_basic_string_char_insert_iter_ch(this, ret
, where
, 0);
4840 /* ?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 */
4841 /* ?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 */
4842 DEFINE_THISCALL_WRAPPER(basic_string_char_insert_iter_beg_end
, 28)
4843 void __thiscall
basic_string_char_insert_iter_beg_end(basic_string_char
*this,
4844 String_iterator_char where
, String_iterator_char beg
, String_iterator_char end
)
4846 MSVCP_basic_string_char_replace_iter_iter(this, where
, where
, beg
, end
);
4849 /* ?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 */
4850 /* ?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 */
4851 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_insert_iter_ptr_ptr
, 20)
4852 void __thiscall
MSVCP_basic_string_char_insert_iter_ptr_ptr(basic_string_char
*this,
4853 String_iterator_char where
, const char *beg
, const char *end
)
4855 MSVCP_basic_string_char_replace_iter_ptr_ptr(this, where
, where
, beg
, end
);
4858 /* ?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 */
4859 /* ?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 */
4860 /* ?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 */
4861 /* ?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 */
4862 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_begin
, 8)
4863 String_iterator_char
* __thiscall
MSVCP_basic_string_char_begin(
4864 basic_string_char
*this, String_iterator_char
*ret
)
4866 TRACE("%p\n", this);
4869 ret
->pos
= basic_string_char_const_ptr(this);
4873 /* ?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 */
4874 /* ?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 */
4875 /* ?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 */
4876 /* ?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 */
4877 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_end
, 8)
4878 String_iterator_char
* __thiscall
MSVCP_basic_string_char_end(
4879 basic_string_char
*this, String_iterator_char
*ret
)
4881 TRACE("%p\n", this);
4884 ret
->pos
= basic_string_char_const_ptr(this)+this->size
;
4888 /* ?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 */
4889 /* ?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 */
4890 /* ?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 */
4891 /* ?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 */
4892 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_rbegin
, 8)
4893 String_reverse_iterator_char
* __thiscall
MSVCP_basic_string_char_rbegin(
4894 basic_string_char
*this, String_reverse_iterator_char
*ret
)
4896 TRACE("%p\n", this);
4898 #if _MSVCP_VER == 80
4902 ret
->pos
= basic_string_char_const_ptr(this)+this->size
;
4906 /* ?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 */
4907 /* ?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 */
4908 /* ?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 */
4909 /* ?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 */
4910 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_rend
, 8)
4911 String_reverse_iterator_char
* __thiscall
MSVCP_basic_string_char_rend(
4912 basic_string_char
*this, String_reverse_iterator_char
*ret
)
4914 TRACE("%p\n", this);
4916 #if _MSVCP_VER == 80
4920 ret
->pos
= basic_string_char_const_ptr(this);
4924 /* ?_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 */
4925 /* ?_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 */
4926 /* ?_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 */
4927 /* ?_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 */
4928 size_t __cdecl
MSVCP_basic_string_wchar_Pdif(String_iterator_wchar i1
, String_iterator_wchar i2
)
4930 TRACE("(%p %p) (%p %p)\n", i1
.bstr
, i1
.pos
, i2
.bstr
, i2
.pos
);
4932 if((!i1
.bstr
&& i1
.pos
) || i1
.bstr
!=i2
.bstr
) {
4933 _invalid_parameter(NULL
, NULL
, NULL
, 0, 0);
4937 return !i1
.pos
? 0 : i1
.pos
-i2
.pos
;
4940 /* ?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 */
4941 /* ?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 */
4942 /* ?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 */
4943 /* ?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 */
4944 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_erase_iter_range
, 24)
4945 String_iterator_wchar
* __thiscall
MSVCP_basic_string_wchar_erase_iter_range(basic_string_wchar
*this,
4946 String_iterator_wchar
*ret
, String_iterator_wchar beg
, String_iterator_wchar end
)
4951 ret
->pos
= basic_string_wchar_ptr(this);
4952 off
= MSVCP_basic_string_wchar_Pdif(beg
, *ret
);
4954 MSVCP_basic_string_wchar_erase(this, off
, MSVCP_basic_string_wchar_Pdif(end
, beg
));
4957 ret
->pos
= basic_string_wchar_ptr(this)+off
;
4961 /* ?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 */
4962 /* ?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 */
4963 /* ?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 */
4964 /* ?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 */
4965 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_erase_iter
, 16)
4966 String_iterator_wchar
* __thiscall
MSVCP_basic_string_wchar_erase_iter(basic_string_wchar
*this,
4967 String_iterator_wchar
*ret
, String_iterator_wchar pos
)
4972 ret
->pos
= basic_string_wchar_ptr(this);
4973 off
= MSVCP_basic_string_wchar_Pdif(pos
, *ret
);
4975 MSVCP_basic_string_wchar_erase(this, off
, 1);
4978 ret
->pos
= basic_string_wchar_ptr(this)+off
;
4982 /* ?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 */
4983 /* ?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 */
4984 /* ?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 */
4985 /* ?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 */
4986 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_assign_iter
, 20)
4987 basic_string_wchar
* __thiscall
MSVCP_basic_string_wchar_assign_iter(basic_string_wchar
*this,
4988 String_iterator_wchar beg
, String_iterator_wchar end
)
4990 return MSVCP_basic_string_wchar_assign_ptr_ptr(this, beg
.pos
, end
.pos
);
4993 /* ??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 */
4994 /* ??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 */
4995 /* ??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 */
4996 /* ??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 */
4997 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_ctor_iter
, 20)
4998 basic_string_wchar
* __thiscall
MSVCP_basic_string_wchar_ctor_iter(basic_string_wchar
*this,
4999 String_iterator_wchar beg
, String_iterator_wchar end
)
5001 return MSVCP_basic_string_wchar_ctor_cstr_len(this, beg
.pos
, end
.pos
-beg
.pos
);
5004 /* ?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 */
5005 /* ?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 */
5006 /* ?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 */
5007 /* ?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 */
5008 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_append_iter
, 20)
5009 basic_string_wchar
* __thiscall
MSVCP_basic_string_wchar_append_iter(
5010 basic_string_wchar
*this, String_iterator_wchar beg
, String_iterator_wchar end
)
5012 return MSVCP_basic_string_wchar_append_cstr_len(this, beg
.pos
, end
.pos
-beg
.pos
);
5015 /* ?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 */
5016 /* ?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 */
5017 /* ?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 */
5018 /* ?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 */
5019 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_replace_iter_iter
, 36)
5020 basic_string_wchar
* __thiscall
MSVCP_basic_string_wchar_replace_iter_iter(basic_string_wchar
*this,
5021 String_iterator_wchar beg
, String_iterator_wchar end
,
5022 String_iterator_wchar res_beg
, String_iterator_wchar res_end
)
5024 String_iterator_wchar begin
= { this, basic_string_wchar_ptr(this) };
5025 return basic_string_wchar_replace_cstr_len(this,
5026 MSVCP_basic_string_wchar_Pdif(beg
, begin
), MSVCP_basic_string_wchar_Pdif(end
, beg
),
5027 res_beg
.pos
, MSVCP_basic_string_wchar_Pdif(res_end
, res_beg
));
5030 /* ?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 */
5031 /* ?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 */
5032 /* ?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 */
5033 /* ?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 */
5034 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_replace_iter_bstr
, 24)
5035 basic_string_wchar
* __thiscall
MSVCP_basic_string_wchar_replace_iter_bstr(basic_string_wchar
*this,
5036 String_iterator_wchar beg
, String_iterator_wchar end
, const basic_string_wchar
*str
)
5038 String_iterator_wchar begin
= { this, basic_string_wchar_ptr(this) };
5039 return basic_string_wchar_replace(this, MSVCP_basic_string_wchar_Pdif(beg
, begin
),
5040 MSVCP_basic_string_wchar_Pdif(end
, beg
), str
);
5043 /* ?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 */
5044 /* ?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 */
5045 /* ?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 */
5046 /* ?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 */
5047 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_replace_iter_ch
, 28)
5048 basic_string_wchar
* __thiscall
MSVCP_basic_string_wchar_replace_iter_ch(basic_string_wchar
*this,
5049 String_iterator_wchar beg
, String_iterator_wchar end
, size_t count
, wchar_t ch
)
5051 String_iterator_wchar begin
= { this, basic_string_wchar_ptr(this) };
5052 return basic_string_wchar_replace_ch(this, MSVCP_basic_string_wchar_Pdif(beg
, begin
),
5053 MSVCP_basic_string_wchar_Pdif(end
, beg
), count
, ch
);
5056 /* ?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 */
5057 /* ?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 */
5058 /* ?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 */
5059 /* ?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 */
5060 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_replace_iter_ptr_ptr
, 28)
5061 basic_string_wchar
* __thiscall
MSVCP_basic_string_wchar_replace_iter_ptr_ptr(basic_string_wchar
*this,
5062 String_iterator_wchar beg
, String_iterator_wchar end
,
5063 const wchar_t *res_beg
, const wchar_t *res_end
)
5065 String_iterator_wchar begin
= { this, basic_string_wchar_ptr(this) };
5066 return basic_string_wchar_replace_cstr_len(this, MSVCP_basic_string_wchar_Pdif(beg
, begin
),
5067 MSVCP_basic_string_wchar_Pdif(end
, beg
), res_beg
, res_end
-res_beg
);
5070 /* ?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 */
5071 /* ?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 */
5072 /* ?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 */
5073 /* ?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 */
5074 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_replace_iter_cstr
, 24)
5075 basic_string_wchar
* __thiscall
MSVCP_basic_string_wchar_replace_iter_cstr(basic_string_wchar
*this,
5076 String_iterator_wchar beg
, String_iterator_wchar end
, const wchar_t *str
)
5078 String_iterator_wchar begin
= { this, basic_string_wchar_ptr(this) };
5079 return basic_string_wchar_replace_cstr(this, MSVCP_basic_string_wchar_Pdif(beg
, begin
),
5080 MSVCP_basic_string_wchar_Pdif(end
, beg
), str
);
5083 /* ?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 */
5084 /* ?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 */
5085 /* ?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 */
5086 /* ?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 */
5087 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_replace_iter_cstr_len
, 28)
5088 basic_string_wchar
* __thiscall
MSVCP_basic_string_wchar_replace_iter_cstr_len(basic_string_wchar
*this,
5089 String_iterator_wchar beg
, String_iterator_wchar end
, const wchar_t *str
, size_t len
)
5091 String_iterator_wchar begin
= { this, basic_string_wchar_ptr(this) };
5092 return basic_string_wchar_replace_cstr_len(this, MSVCP_basic_string_wchar_Pdif(beg
, begin
),
5093 MSVCP_basic_string_wchar_Pdif(end
, beg
), str
, len
);
5096 /* ?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 */
5097 /* ?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 */
5098 /* ?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 */
5099 /* ?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 */
5100 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_insert_iter_chn
, 20)
5101 void __thiscall
MSVCP_basic_string_wchar_insert_iter_chn(basic_string_wchar
*this,
5102 String_iterator_wchar where
, size_t count
, wchar_t ch
)
5104 String_iterator_wchar iter
= { this, basic_string_wchar_ptr(this) };
5105 size_t off
= MSVCP_basic_string_wchar_Pdif(where
, iter
);
5107 basic_string_wchar_insert_chn(this, off
, count
, ch
);
5110 /* ?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 */
5111 /* ?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 */
5112 /* ?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 */
5113 /* ?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 */
5114 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_insert_iter_ch
, 20)
5115 String_iterator_wchar
* __thiscall
MSVCP_basic_string_wchar_insert_iter_ch(basic_string_wchar
*this,
5116 String_iterator_wchar
*ret
, String_iterator_wchar where
, wchar_t ch
)
5121 ret
->pos
= basic_string_wchar_ptr(this);
5122 off
= MSVCP_basic_string_wchar_Pdif(where
, *ret
);
5124 basic_string_wchar_insert_chn(this, off
, 1, ch
);
5125 ret
->pos
= basic_string_wchar_ptr(this)+off
;
5129 /* ?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 */
5130 /* ?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 */
5131 /* ?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 */
5132 /* ?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 */
5133 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_insert_iter_null
, 16)
5134 String_iterator_wchar
* __thiscall
MSVCP_basic_string_wchar_insert_iter_null(basic_string_wchar
*this,
5135 String_iterator_wchar
*ret
, String_iterator_wchar where
)
5137 return MSVCP_basic_string_wchar_insert_iter_ch(this, ret
, where
, 0);
5140 /* ?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 */
5141 /* ?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 */
5142 /* ?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 */
5143 /* ?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 */
5144 DEFINE_THISCALL_WRAPPER(basic_string_wchar_insert_iter_beg_end
, 28)
5145 void __thiscall
basic_string_wchar_insert_iter_beg_end(basic_string_wchar
*this,
5146 String_iterator_wchar where
, String_iterator_wchar beg
, String_iterator_wchar end
)
5148 MSVCP_basic_string_wchar_replace_iter_iter(this, where
, where
, beg
, end
);
5151 /* ?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 */
5152 /* ?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 */
5153 /* ?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 */
5154 /* ?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 */
5155 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_insert_iter_ptr_ptr
, 20)
5156 void __thiscall
MSVCP_basic_string_wchar_insert_iter_ptr_ptr(basic_string_wchar
*this,
5157 String_iterator_wchar where
, const wchar_t *beg
, const wchar_t *end
)
5159 MSVCP_basic_string_wchar_replace_iter_ptr_ptr(this, where
, where
, beg
, end
);
5162 /* ?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 */
5163 /* ?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 */
5164 /* ?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 */
5165 /* ?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 */
5166 /* ?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 */
5167 /* ?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 */
5168 /* ?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 */
5169 /* ?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 */
5170 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_begin
, 8)
5171 String_iterator_wchar
* __thiscall
MSVCP_basic_string_wchar_begin(
5172 basic_string_wchar
*this, String_iterator_wchar
*ret
)
5174 TRACE("%p\n", this);
5177 ret
->pos
= basic_string_wchar_const_ptr(this);
5181 /* ?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 */
5182 /* ?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 */
5183 /* ?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 */
5184 /* ?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 */
5185 /* ?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 */
5186 /* ?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 */
5187 /* ?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 */
5188 /* ?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 */
5189 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_end
, 8)
5190 String_iterator_wchar
* __thiscall
MSVCP_basic_string_wchar_end(
5191 basic_string_wchar
*this, String_iterator_wchar
*ret
)
5193 TRACE("%p\n", this);
5196 ret
->pos
= basic_string_wchar_const_ptr(this)+this->size
;
5200 /* ?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 */
5201 /* ?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 */
5202 /* ?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 */
5203 /* ?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 */
5204 /* ?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 */
5205 /* ?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 */
5206 /* ?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 */
5207 /* ?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 */
5208 /* ?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 */
5209 /* ?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 */
5210 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_rbegin
, 8)
5211 String_reverse_iterator_wchar
* __thiscall
MSVCP_basic_string_wchar_rbegin(
5212 basic_string_wchar
*this, String_reverse_iterator_wchar
*ret
)
5214 TRACE("%p\n", this);
5216 #if _MSVCP_VER == 80
5220 ret
->pos
= basic_string_wchar_const_ptr(this)+this->size
;
5224 /* ?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 */
5225 /* ?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 */
5226 /* ?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 */
5227 /* ?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 */
5228 /* ?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 */
5229 /* ?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 */
5230 /* ?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 */
5231 /* ?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 */
5232 /* ?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 */
5233 /* ?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 */
5234 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_rend
, 8)
5235 String_reverse_iterator_wchar
* __thiscall
MSVCP_basic_string_wchar_rend(
5236 basic_string_wchar
*this, String_reverse_iterator_wchar
*ret
)
5238 TRACE("%p\n", this);
5240 #if _MSVCP_VER == 80
5244 ret
->pos
= basic_string_wchar_const_ptr(this);
5248 #endif /* _MSVCP_VER < 80 */