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 MSVCP_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 MSVCP_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
, MSVCP_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 MSVCP_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 MSVCP_size_t size
, const char *src
, MSVCP_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
, MSVCP_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
, MSVCP_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 MSVCP_size_t size
, const char *src
, MSVCP_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
, MSVCP_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
, MSVCP_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 MSVCP_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 MSVCP_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 MSVCP_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
, MSVCP_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 MSVCP_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 MSVCP_size_t size
, const wchar_t *src
, MSVCP_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
, MSVCP_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
, MSVCP_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 MSVCP_size_t size
, const wchar_t *src
, MSVCP_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
, MSVCP_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 MSVCP_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 MSVCP_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 MSVCP_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 MSVCP_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
, MSVCP_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 MSVCP_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 MSVCP_size_t size
, const unsigned short *src
, MSVCP_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
, MSVCP_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
, MSVCP_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 MSVCP_size_t size
, const unsigned short *src
, MSVCP_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
, MSVCP_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 MSVCP_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 MSVCP_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)
457 static const char msg
[] = "string too long";
460 throw_exception(EXCEPTION_LENGTH_ERROR
, msg
);
463 /* ?_Xlen@_String_base@std@@QBEXXZ */
464 DEFINE_THISCALL_WRAPPER(_String_base__Xlen
, 4)
465 void __thiscall
_String_base__Xlen(const void/*_String_base*/ *this)
467 MSVCP__String_base_Xlen();
470 /* ?_Xran@_String_base@std@@SAXXZ */
471 void CDECL
MSVCP__String_base_Xran(void)
473 static const char msg
[] = "invalid string position";
476 throw_exception(EXCEPTION_OUT_OF_RANGE
, msg
);
479 /* ?_Xran@_String_base@std@@QBEXXZ */
480 DEFINE_THISCALL_WRAPPER(_String_base__Xran
, 4)
481 void __thiscall
_String_base__Xran(const void/*_String_base*/ *this)
483 MSVCP__String_base_Xran();
486 /* ?_Xinvarg@_String_base@std@@SAXXZ */
487 void CDECL
MSVCP__String_base_Xinvarg(void)
489 static const char msg
[] = "invalid string argument";
492 throw_exception(EXCEPTION_INVALID_ARGUMENT
, msg
);
496 /* basic_string<char, char_traits<char>, allocator<char>> */
497 /* ?npos@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@2IB */
498 /* ?npos@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@2_KB */
499 const MSVCP_size_t MSVCP_basic_string_char_npos
= -1;
501 /* ?_Myptr@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IAEPADXZ */
502 /* ?_Myptr@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IEAAPEADXZ */
503 DEFINE_THISCALL_WRAPPER(basic_string_char_ptr
, 4)
504 char* __thiscall
basic_string_char_ptr(basic_string_char
*this)
506 if(this->res
< BUF_SIZE_CHAR
)
507 return this->data
.buf
;
508 return this->data
.ptr
;
511 /* ?_Myptr@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IBEPBDXZ */
512 /* ?_Myptr@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IEBAPEBDXZ */
513 DEFINE_THISCALL_WRAPPER(basic_string_char_const_ptr
, 4)
514 const char* __thiscall
basic_string_char_const_ptr(const basic_string_char
*this)
516 if(this->res
< BUF_SIZE_CHAR
)
517 return this->data
.buf
;
518 return this->data
.ptr
;
521 /* ?_Eos@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IAEXI@Z */
522 /* ?_Eos@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IEAAX_K@Z */
523 DEFINE_THISCALL_WRAPPER(basic_string_char_eos
, 8)
524 void __thiscall
basic_string_char_eos(basic_string_char
*this, MSVCP_size_t len
)
526 static const char nullbyte
= '\0';
529 MSVCP_char_traits_char_assign(basic_string_char_ptr(this)+len
, &nullbyte
);
532 /* ?_Inside@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IAE_NPBD@Z */
533 /* ?_Inside@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IEAA_NPEBD@Z */
534 DEFINE_THISCALL_WRAPPER(basic_string_char_inside
, 8)
535 MSVCP_bool __thiscall
basic_string_char_inside(
536 basic_string_char
*this, const char *ptr
)
538 char *cstr
= basic_string_char_ptr(this);
540 return ptr
>=cstr
&& ptr
<cstr
+this->size
;
543 /* ?_Tidy@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IAEX_NI@Z */
544 /* ?_Tidy@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IEAAX_N_K@Z */
545 DEFINE_THISCALL_WRAPPER(basic_string_char_tidy
, 12)
546 void __thiscall
basic_string_char_tidy(basic_string_char
*this,
547 MSVCP_bool built
, MSVCP_size_t new_size
)
549 if(built
&& BUF_SIZE_CHAR
<=this->res
) {
550 char *ptr
= this->data
.ptr
;
553 MSVCP_char_traits_char__Copy_s(this->data
.buf
, BUF_SIZE_CHAR
, ptr
, new_size
);
554 MSVCP_allocator_char_deallocate(STRING_ALLOCATOR(this), ptr
, this->res
+1);
557 this->res
= BUF_SIZE_CHAR
-1;
558 basic_string_char_eos(this, new_size
);
561 /* Exported only from msvcp60/70 */
562 /* ?_Tidy@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@AAEX_N@Z */
563 /* ?_Tidy@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@AEAAX_N@Z */
564 DEFINE_THISCALL_WRAPPER(basic_string_char_tidy_built
, 8)
565 void __thiscall
basic_string_char_tidy_built(basic_string_char
*this, MSVCP_bool built
)
567 basic_string_char_tidy(this, built
, 0);
570 /* ?_Grow@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IAE_NI_N@Z */
571 /* ?_Grow@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IEAA_N_K_N@Z */
572 DEFINE_THISCALL_WRAPPER(basic_string_char_grow
, 12)
573 MSVCP_bool __thiscall
basic_string_char_grow(
574 basic_string_char
*this, MSVCP_size_t new_size
, MSVCP_bool trim
)
576 if(this->res
< new_size
) {
577 MSVCP_size_t new_res
= new_size
, len
= this->size
;
582 if(new_res
/3 < this->res
/2)
583 new_res
= this->res
+ this->res
/2;
585 ptr
= MSVCP_allocator_char_allocate(STRING_ALLOCATOR(this), new_res
+1);
587 ptr
= MSVCP_allocator_char_allocate(STRING_ALLOCATOR(this), new_size
+1);
591 ERR("Out of memory\n");
592 basic_string_char_tidy(this, TRUE
, 0);
596 MSVCP_char_traits_char__Copy_s(ptr
, new_size
,
597 basic_string_char_ptr(this), this->size
);
598 basic_string_char_tidy(this, TRUE
, 0);
599 this->data
.ptr
= ptr
;
600 this->res
= new_size
;
601 basic_string_char_eos(this, len
);
602 } else if(trim
&& new_size
< BUF_SIZE_CHAR
)
603 basic_string_char_tidy(this, TRUE
,
604 new_size
<this->size
? new_size
: this->size
);
605 else if(new_size
== 0)
606 basic_string_char_eos(this, 0);
611 /* ?_Copy@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IAEXII@Z */
612 /* ?_Copy@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IEAAX_K0@Z */
613 DEFINE_THISCALL_WRAPPER(basic_string_char__Copy
, 12)
614 void __thiscall
basic_string_char__Copy(basic_string_char
*this,
615 MSVCP_size_t new_size
, MSVCP_size_t copy_len
)
617 TRACE("%p %lu %lu\n", this, new_size
, copy_len
);
619 if(!basic_string_char_grow(this, new_size
, FALSE
))
621 basic_string_char_eos(this, copy_len
);
624 /* ?get_allocator@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBE?AV?$allocator@D@2@XZ */
625 /* ?get_allocator@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA?AV?$allocator@D@2@XZ */
626 DEFINE_THISCALL_WRAPPER(basic_string_char_get_allocator
, 8)
627 allocator
* __thiscall
basic_string_char_get_allocator(const basic_string_char
*this, allocator
*ret
)
633 /* ?erase@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@II@Z */
634 /* ?erase@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAAEAV12@_K0@Z */
635 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_erase
, 12)
636 basic_string_char
* __thiscall
MSVCP_basic_string_char_erase(
637 basic_string_char
*this, MSVCP_size_t pos
, MSVCP_size_t len
)
639 TRACE("%p %lu %lu\n", this, pos
, len
);
642 MSVCP__String_base_Xran();
644 if(len
> this->size
-pos
)
645 len
= this->size
-pos
;
648 MSVCP_char_traits_char__Move_s(basic_string_char_ptr(this)+pos
,
649 this->res
-pos
, basic_string_char_ptr(this)+pos
+len
,
651 basic_string_char_eos(this, this->size
-len
);
657 /* ?assign@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@ABV12@II@Z */
658 /* ?assign@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAAEAV12@AEBV12@_K1@Z */
659 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_assign_substr
, 16)
660 basic_string_char
* __thiscall
MSVCP_basic_string_char_assign_substr(
661 basic_string_char
*this, const basic_string_char
*assign
,
662 MSVCP_size_t pos
, MSVCP_size_t len
)
664 TRACE("%p %p %lu %lu\n", this, assign
, pos
, len
);
666 if(assign
->size
< pos
)
667 MSVCP__String_base_Xran();
669 if(len
> assign
->size
-pos
)
670 len
= assign
->size
-pos
;
673 MSVCP_basic_string_char_erase(this, pos
+len
, MSVCP_basic_string_char_npos
);
674 MSVCP_basic_string_char_erase(this, 0, pos
);
675 } else if(basic_string_char_grow(this, len
, FALSE
)) {
676 MSVCP_char_traits_char__Copy_s(basic_string_char_ptr(this),
677 this->res
, basic_string_char_const_ptr(assign
)+pos
, len
);
678 basic_string_char_eos(this, len
);
684 /* ?assign@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@ABV12@@Z */
685 /* ?assign@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAAEAV12@AEBV12@@Z */
686 /* ??4?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV01@ABV01@@Z */
687 /* ??4?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAAEAV01@AEBV01@@Z */
688 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_assign
, 8)
689 basic_string_char
* __thiscall
MSVCP_basic_string_char_assign(
690 basic_string_char
*this, const basic_string_char
*assign
)
692 return MSVCP_basic_string_char_assign_substr(this, assign
,
693 0, MSVCP_basic_string_char_npos
);
696 /* ?assign@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@PBDI@Z */
697 /* ?assign@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAAEAV12@PEBD_K@Z */
698 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_assign_cstr_len
, 12)
699 basic_string_char
* __thiscall
MSVCP_basic_string_char_assign_cstr_len(
700 basic_string_char
*this, const char *str
, MSVCP_size_t len
)
702 TRACE("%p %s %lu\n", this, debugstr_an(str
, len
), len
);
704 if(basic_string_char_inside(this, str
))
705 return MSVCP_basic_string_char_assign_substr(this, this,
706 str
-basic_string_char_ptr(this), len
);
707 else if(basic_string_char_grow(this, len
, FALSE
)) {
708 MSVCP_char_traits_char__Copy_s(basic_string_char_ptr(this),
709 this->res
, str
, len
);
710 basic_string_char_eos(this, len
);
716 /* ??4?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV01@D@Z */
717 /* ??4?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAAEAV01@D@Z */
718 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_assign_ch
, 8)
719 basic_string_char
* __thiscall
MSVCP_basic_string_char_assign_ch(
720 basic_string_char
*this, char ch
)
722 return MSVCP_basic_string_char_assign_cstr_len(this, &ch
, 1);
725 /* ?assign@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@PBD@Z */
726 /* ?assign@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAAEAV12@PEBD@Z */
727 /* ??4?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV01@PBD@Z */
728 /* ??4?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAAEAV01@PEBD@Z */
729 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_assign_cstr
, 8)
730 basic_string_char
* __thiscall
MSVCP_basic_string_char_assign_cstr(
731 basic_string_char
*this, const char *str
)
733 return MSVCP_basic_string_char_assign_cstr_len(this, str
,
734 MSVCP_char_traits_char_length(str
));
737 /* ?assign@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@ID@Z */
738 /* ?assign@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAAEAV12@_KD@Z */
739 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_assignn
, 12)
740 basic_string_char
* __thiscall
MSVCP_basic_string_char_assignn(
741 basic_string_char
*this, MSVCP_size_t count
, char ch
)
743 TRACE("%p %ld %c\n", this, count
, ch
);
745 basic_string_char_grow(this, count
, FALSE
);
746 MSVCP_char_traits_char_assignn(basic_string_char_ptr(this), count
, ch
);
747 basic_string_char_eos(this, count
);
751 /* ?assign@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@PBD0@Z */
752 /* ?assign@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAAEAV12@PEBD0@Z */
753 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_assign_ptr_ptr
, 12)
754 basic_string_char
* __thiscall
MSVCP_basic_string_char_assign_ptr_ptr(
755 basic_string_char
*this, const char *first
, const char *last
)
757 return MSVCP_basic_string_char_assign_cstr_len(this, first
, last
-first
);
760 /* ?_Chassign@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IAEXIID@Z */
761 /* ?_Chassign@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IEAAX_K0D@Z */
762 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_Chassign
, 16)
763 void __thiscall
MSVCP_basic_string_char_Chassign(basic_string_char
*this,
764 MSVCP_size_t off
, MSVCP_size_t count
, char ch
)
766 TRACE("%p %lu %lu %c\n", this, off
, count
, ch
);
767 MSVCP_char_traits_char_assignn(basic_string_char_ptr(this)+off
, count
, ch
);
770 /* ?_Copy_s@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEIPADIII@Z */
771 /* ?_Copy_s@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA_KPEAD_K11@Z */
772 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_Copy_s
, 20)
773 MSVCP_size_t __thiscall
MSVCP_basic_string_char_Copy_s(const basic_string_char
*this,
774 char *dest
, MSVCP_size_t size
, MSVCP_size_t count
, MSVCP_size_t off
)
776 TRACE("%p %p %lu %lu %lu\n", this, dest
, size
, count
, off
);
779 MSVCP__String_base_Xran();
781 if(count
> this->size
-off
)
782 count
= this->size
-off
;
784 MSVCP_char_traits_char__Copy_s(dest
, size
,
785 basic_string_char_const_ptr(this)+off
, count
);
789 /* ?copy@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEIPADII@Z */
790 /* ?copy@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA_KPEAD_K1@Z */
791 DEFINE_THISCALL_WRAPPER(basic_string_char_copy
, 16)
792 MSVCP_size_t __thiscall
basic_string_char_copy(const basic_string_char
*this,
793 char *dest
, MSVCP_size_t count
, MSVCP_size_t off
)
795 return MSVCP_basic_string_char_Copy_s(this, dest
, count
, count
, off
);
798 /* ?c_str@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEPBDXZ */
799 /* ?c_str@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBAPEBDXZ */
800 /* ?data@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEPBDXZ */
801 /* ?data@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBAPEBDXZ */
802 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_c_str
, 4)
803 const char* __thiscall
MSVCP_basic_string_char_c_str(const basic_string_char
*this)
806 return basic_string_char_const_ptr(this);
809 /* ?capacity@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEIXZ */
810 /* ?capacity@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA_KXZ */
811 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_capacity
, 4)
812 MSVCP_size_t __thiscall
MSVCP_basic_string_char_capacity(basic_string_char
*this)
818 /* ?reserve@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEXI@Z */
819 /* ?reserve@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAX_K@Z */
820 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_reserve
, 8)
821 void __thiscall
MSVCP_basic_string_char_reserve(basic_string_char
*this, MSVCP_size_t size
)
825 TRACE("%p %ld\n", this, size
);
831 if(basic_string_char_grow(this, size
, TRUE
))
832 basic_string_char_eos(this, len
);
835 /* ??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@XZ */
836 /* ??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAA@XZ */
837 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_ctor
, 4)
838 basic_string_char
* __thiscall
MSVCP_basic_string_char_ctor(basic_string_char
*this)
842 basic_string_char_tidy(this, FALSE
, 0);
846 /* ??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@ABV01@@Z */
847 /* ??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAA@AEBV01@@Z */
848 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_copy_ctor
, 8)
849 basic_string_char
* __thiscall
MSVCP_basic_string_char_copy_ctor(
850 basic_string_char
*this, const basic_string_char
*copy
)
852 TRACE("%p %p\n", this, copy
);
854 basic_string_char_tidy(this, FALSE
, 0);
855 MSVCP_basic_string_char_assign(this, copy
);
859 /* ??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@PBD@Z */
860 /* ??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAA@PEBD@Z */
861 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_ctor_cstr
, 8)
862 basic_string_char
* __thiscall
MSVCP_basic_string_char_ctor_cstr(
863 basic_string_char
*this, const char *str
)
865 TRACE("%p %s\n", this, debugstr_a(str
));
867 basic_string_char_tidy(this, FALSE
, 0);
868 MSVCP_basic_string_char_assign_cstr(this, str
);
872 /* ??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@PBDABV?$allocator@D@1@@Z */
873 /* ??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAA@PEBDAEBV?$allocator@D@1@@Z */
874 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_ctor_cstr_alloc
, 12)
875 basic_string_char
* __thiscall
MSVCP_basic_string_char_ctor_cstr_alloc(
876 basic_string_char
*this, const char *str
, const void *alloc
)
878 return MSVCP_basic_string_char_ctor_cstr(this, str
);
881 /* ??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@PBDI@Z */
882 /* ??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAA@PEBD_K@Z */
883 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_ctor_cstr_len
, 12)
884 basic_string_char
* __thiscall
MSVCP_basic_string_char_ctor_cstr_len(
885 basic_string_char
*this, const char *str
, MSVCP_size_t len
)
887 TRACE("%p %s %ld\n", this, debugstr_an(str
, len
), len
);
889 basic_string_char_tidy(this, FALSE
, 0);
890 MSVCP_basic_string_char_assign_cstr_len(this, str
, len
);
894 /* ??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@PBDIABV?$allocator@D@1@@Z */
895 /* ??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAA@PEBD_KAEBV?$allocator@D@1@@Z */
896 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_ctor_cstr_len_alloc
, 16)
897 basic_string_char
* __thiscall
MSVCP_basic_string_char_ctor_cstr_len_alloc(
898 basic_string_char
*this, const char *str
, MSVCP_size_t len
, const void *alloc
)
900 return MSVCP_basic_string_char_ctor_cstr_len(this, str
, len
);
903 /* ??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@ABV01@II@Z */
904 /* ??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAA@AEBV01@_K1@Z */
905 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_ctor_substr
, 16)
906 basic_string_char
* __thiscall
MSVCP_basic_string_char_ctor_substr(
907 basic_string_char
*this, const basic_string_char
*assign
,
908 MSVCP_size_t pos
, MSVCP_size_t len
)
910 TRACE("%p %p %lu %lu\n", this, assign
, pos
, len
);
912 basic_string_char_tidy(this, FALSE
, 0);
913 MSVCP_basic_string_char_assign_substr(this, assign
, pos
, len
);
917 /* ??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@ABV01@IIABV?$allocator@D@1@@Z */
918 /* ??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAA@AEBV01@_K1AEBV?$allocator@D@1@@Z */
919 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_ctor_substr_alloc
, 20)
920 basic_string_char
* __thiscall
MSVCP_basic_string_char_ctor_substr_alloc(
921 basic_string_char
*this, const basic_string_char
*assign
,
922 MSVCP_size_t pos
, MSVCP_size_t len
, const void *alloc
)
924 return MSVCP_basic_string_char_ctor_substr(this, assign
, pos
, len
);
927 /* ??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@ABV?$allocator@D@1@@Z */
928 /* ??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAA@AEBV?$allocator@D@1@@Z */
929 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_ctor_alloc
, 8)
930 basic_string_char
* __thiscall
MSVCP_basic_string_char_ctor_alloc(
931 basic_string_char
*this, const void *alloc
)
933 TRACE("%p %p\n", this, alloc
);
935 basic_string_char_tidy(this, FALSE
, 0);
939 /* ??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@ID@Z */
940 /* ??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAA@_KD@Z */
941 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_ctor_ch
, 12)
942 basic_string_char
* __thiscall
MSVCP_basic_string_char_ctor_ch(basic_string_char
*this,
943 MSVCP_size_t count
, char ch
)
945 TRACE("%p %ld %c\n", this, count
, ch
);
947 basic_string_char_tidy(this, FALSE
, 0);
948 MSVCP_basic_string_char_assignn(this, count
, ch
);
952 /* ??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@IDABV?$allocator@D@1@@Z */
953 /* ??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAA@_KDAEBV?$allocator@D@1@@Z */
954 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_ctor_ch_alloc
, 16)
955 basic_string_char
* __thiscall
MSVCP_basic_string_char_ctor_ch_alloc(basic_string_char
*this,
956 MSVCP_size_t count
, char ch
, const void *alloc
)
958 return MSVCP_basic_string_char_ctor_ch(this, count
, ch
);
961 /* ??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@PBD0@Z */
962 /* ??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAA@PEBD0@Z */
963 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_ctor_ptr_ptr
, 12)
964 basic_string_char
* __thiscall
MSVCP_basic_string_char_ctor_ptr_ptr(basic_string_char
*this,
965 const char *first
, const char *last
)
967 return MSVCP_basic_string_char_ctor_cstr_len(this, first
, last
-first
);
970 /* ??1?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@XZ */
971 /* ??1?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAA@XZ */
972 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_dtor
, 4)
973 void* __thiscall
MSVCP_basic_string_char_dtor(basic_string_char
*this)
976 basic_string_char_tidy(this, TRUE
, 0);
977 return NULL
; /* FEAR 1 installer expects EAX set to 0 */
980 /* ?size@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEIXZ */
981 /* ?size@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA_KXZ */
982 /* ?length@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEIXZ */
983 /* ?length@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA_KXZ */
984 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_length
, 4)
985 MSVCP_size_t __thiscall
MSVCP_basic_string_char_length(const basic_string_char
*this)
991 /* ?max_size@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEIXZ */
992 /* ?max_size@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA_KXZ */
993 DEFINE_THISCALL_WRAPPER(basic_string_char_max_size
, 4)
994 MSVCP_size_t __thiscall
basic_string_char_max_size(const basic_string_char
*this)
997 return MSVCP_allocator_char_max_size(STRING_ALLOCATOR(this))-1;
1000 /* ?empty@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBE_NXZ */
1001 /* ?empty@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA_NXZ */
1002 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_empty
, 4)
1003 MSVCP_bool __thiscall
MSVCP_basic_string_char_empty(basic_string_char
*this)
1005 TRACE("%p\n", this);
1006 return this->size
== 0;
1009 /* ?swap@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEXAAV12@@Z */
1010 /* ?swap@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAXAEAV12@@Z */
1011 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_swap
, 8)
1012 void __thiscall
MSVCP_basic_string_char_swap(basic_string_char
*this, basic_string_char
*str
)
1015 char tmp
[sizeof(this->data
)];
1016 const MSVCP_size_t size
= this->size
;
1017 const MSVCP_size_t res
= this->res
;
1019 memcpy(tmp
, this->data
.buf
, sizeof(this->data
));
1020 memcpy(this->data
.buf
, str
->data
.buf
, sizeof(this->data
));
1021 memcpy(str
->data
.buf
, tmp
, sizeof(this->data
));
1023 this->size
= str
->size
;
1024 this->res
= str
->res
;
1031 /* ?substr@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBE?AV12@II@Z */
1032 /* ?substr@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA?AV12@_K0@Z */
1033 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_substr
, 16)
1034 basic_string_char
* __thiscall
MSVCP_basic_string_char_substr(basic_string_char
*this,
1035 basic_string_char
*ret
, MSVCP_size_t off
, MSVCP_size_t len
)
1037 TRACE("%p %lu %lu\n", this, off
, len
);
1039 MSVCP_basic_string_char_ctor_substr(ret
, this, off
, len
);
1043 /* ?append@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@ABV12@II@Z */
1044 /* ?append@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAAEAV12@AEBV12@_K1@Z */
1045 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_append_substr
, 16)
1046 basic_string_char
* __thiscall
MSVCP_basic_string_char_append_substr(basic_string_char
*this,
1047 const basic_string_char
*append
, MSVCP_size_t offset
, MSVCP_size_t count
)
1049 TRACE("%p %p %lu %lu\n", this, append
, offset
, count
);
1051 if(append
->size
< offset
)
1052 MSVCP__String_base_Xran();
1054 if(count
> append
->size
-offset
)
1055 count
= append
->size
-offset
;
1057 if(MSVCP_basic_string_char_npos
-this->size
<=count
|| this->size
+count
<this->size
)
1058 MSVCP__String_base_Xlen();
1060 if(basic_string_char_grow(this, this->size
+count
, FALSE
)) {
1061 MSVCP_char_traits_char__Copy_s(basic_string_char_ptr(this)+this->size
,
1062 this->res
-this->size
, basic_string_char_const_ptr(append
)+offset
, count
);
1063 basic_string_char_eos(this, this->size
+count
);
1069 /* ?append@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@ABV12@@Z */
1070 /* ?append@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAAEAV12@AEBV12@@Z */
1071 /* ??Y?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV01@ABV01@@Z */
1072 /* ??Y?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAAEAV01@AEBV01@@Z */
1073 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_append
, 8)
1074 basic_string_char
* __thiscall
MSVCP_basic_string_char_append(
1075 basic_string_char
*this, const basic_string_char
*append
)
1077 return MSVCP_basic_string_char_append_substr(this, append
,
1078 0, MSVCP_basic_string_char_npos
);
1081 /* ?append@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@PBDI@Z */
1082 /* ?append@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAAEAV12@PEBD_K@Z */
1083 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_append_cstr_len
, 12)
1084 basic_string_char
* __thiscall
MSVCP_basic_string_char_append_cstr_len(
1085 basic_string_char
*this, const char *append
, MSVCP_size_t count
)
1087 TRACE("%p %s %lu\n", this, debugstr_an(append
, count
), count
);
1089 if(basic_string_char_inside(this, append
))
1090 return MSVCP_basic_string_char_append_substr(this, this,
1091 append
-basic_string_char_ptr(this), count
);
1093 if(MSVCP_basic_string_char_npos
-this->size
<=count
|| this->size
+count
<this->size
)
1094 MSVCP__String_base_Xlen();
1096 if(basic_string_char_grow(this, this->size
+count
, FALSE
)) {
1097 MSVCP_char_traits_char__Copy_s(basic_string_char_ptr(this)+this->size
,
1098 this->res
-this->size
, append
, count
);
1099 basic_string_char_eos(this, this->size
+count
);
1105 /* ?append@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@PBD@Z */
1106 /* ?append@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAAEAV12@PEBD@Z */
1107 /* ??Y?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV01@PBD@Z */
1108 /* ??Y?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAAEAV01@PEBD@Z */
1109 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_append_cstr
, 8)
1110 basic_string_char
* __thiscall
MSVCP_basic_string_char_append_cstr(
1111 basic_string_char
*this, const char *append
)
1113 return MSVCP_basic_string_char_append_cstr_len(this, append
,
1114 MSVCP_char_traits_char_length(append
));
1117 /* ?append@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@PBD0@Z */
1118 /* ?append@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAAEAV12@PEBD0@Z */
1119 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_append_beg_end
, 12)
1120 basic_string_char
* __thiscall
MSVCP_basic_string_char_append_beg_end(
1121 basic_string_char
*this, const char *beg
, const char *end
)
1123 return MSVCP_basic_string_char_append_cstr_len(this, beg
, end
-beg
);
1126 /* ?append@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@ID@Z */
1127 /* ?append@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAAEAV12@_KD@Z */
1128 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_append_len_ch
, 12)
1129 basic_string_char
* __thiscall
MSVCP_basic_string_char_append_len_ch(
1130 basic_string_char
*this, MSVCP_size_t count
, char ch
)
1132 TRACE("%p %lu %c\n", this, count
, ch
);
1134 if(MSVCP_basic_string_char_npos
-this->size
<= count
)
1135 MSVCP__String_base_Xlen();
1137 if(basic_string_char_grow(this, this->size
+count
, FALSE
)) {
1138 MSVCP_char_traits_char_assignn(basic_string_char_ptr(this)+this->size
, count
, ch
);
1139 basic_string_char_eos(this, this->size
+count
);
1145 /* ??Y?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV01@D@Z */
1146 /* ??Y?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAAEAV01@D@Z */
1147 /* ?push_back@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEXD@Z */
1148 /* ?push_back@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAXD@Z */
1149 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_append_ch
, 8)
1150 basic_string_char
* __thiscall
MSVCP_basic_string_char_append_ch(
1151 basic_string_char
*this, char ch
)
1153 return MSVCP_basic_string_char_append_len_ch(this, 1, ch
);
1156 /* ??$?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 */
1157 /* ??$?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 */
1158 /* ??Hstd@@YA?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@ABV10@PBD@Z */
1159 /* ??Hstd@@YA?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@AEBV10@PEBD@Z */
1160 basic_string_char
* __cdecl
MSVCP_basic_string_char_concatenate_bstr_cstr(basic_string_char
*ret
,
1161 const basic_string_char
*left
, const char *right
)
1163 TRACE("%p %s\n", left
, debugstr_a(right
));
1165 MSVCP_basic_string_char_copy_ctor(ret
, left
);
1166 MSVCP_basic_string_char_append_cstr(ret
, right
);
1170 /* ??$?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 */
1171 /* ??$?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 */
1172 /* ??Hstd@@YA?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@PBDABV10@@Z */
1173 /* ??Hstd@@YA?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@PEBDAEBV10@@Z */
1174 basic_string_char
* __cdecl
MSVCP_basic_string_char_concatenate_cstr_bstr(basic_string_char
*ret
,
1175 const char *left
, const basic_string_char
*right
)
1177 TRACE("%s %p\n", debugstr_a(left
), right
);
1179 MSVCP_basic_string_char_ctor_cstr(ret
, left
);
1180 MSVCP_basic_string_char_append(ret
, right
);
1184 /* ??$?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 */
1185 /* ??$?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 */
1186 /* ??Hstd@@YA?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@ABV10@0@Z */
1187 /* ??Hstd@@YA?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@AEBV10@0@Z */
1188 basic_string_char
* __cdecl
MSVCP_basic_string_char_concatenate(basic_string_char
*ret
,
1189 const basic_string_char
*left
, const basic_string_char
*right
)
1191 TRACE("%p %p\n", left
, right
);
1193 MSVCP_basic_string_char_copy_ctor(ret
, left
);
1194 MSVCP_basic_string_char_append(ret
, right
);
1198 /* ??$?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 */
1199 /* ??$?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 */
1200 /* ??Hstd@@YA?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@ABV10@D@Z */
1201 /* ??Hstd@@YA?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@AEBV10@D@Z */
1202 basic_string_char
* __cdecl
MSVCP_basic_string_char_concatenate_bstr_ch(basic_string_char
*ret
,
1203 const basic_string_char
*left
, char right
)
1205 TRACE("%p %c\n", left
, right
);
1207 MSVCP_basic_string_char_copy_ctor(ret
, left
);
1208 MSVCP_basic_string_char_append_ch(ret
, right
);
1212 /* ??$?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 */
1213 /* ??$?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 */
1214 /* ??Hstd@@YA?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@DABV10@@Z */
1215 /* ??Hstd@@YA?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@DAEBV10@@Z */
1216 basic_string_char
* __cdecl
MSVCP_basic_string_char_concatenate_ch_bstr(basic_string_char
*ret
,
1217 char left
, const basic_string_char
*right
)
1219 TRACE("%c %p\n", left
, right
);
1221 MSVCP_basic_string_char_ctor_cstr_len(ret
, &left
, 1);
1222 MSVCP_basic_string_char_append(ret
, right
);
1226 /* ?compare@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEHIIPBDI@Z */
1227 /* ?compare@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBAH_K0PEBD0@Z */
1228 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_compare_substr_cstr_len
, 20)
1229 int __thiscall
MSVCP_basic_string_char_compare_substr_cstr_len(
1230 const basic_string_char
*this, MSVCP_size_t pos
, MSVCP_size_t num
,
1231 const char *str
, MSVCP_size_t count
)
1235 TRACE("%p %lu %lu %s %lu\n", this, pos
, num
, debugstr_an(str
, count
), count
);
1237 if(this->size
< pos
)
1238 MSVCP__String_base_Xran();
1240 if(num
> this->size
-pos
)
1241 num
= this->size
-pos
;
1243 ans
= MSVCP_char_traits_char_compare(basic_string_char_const_ptr(this)+pos
,
1244 str
, num
>count
? count
: num
);
1250 else if(num
< count
)
1255 /* ?compare@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEHIIPBD@Z */
1256 /* ?compare@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBAH_K0PEBD@Z */
1257 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_compare_substr_cstr
, 16)
1258 int __thiscall
MSVCP_basic_string_char_compare_substr_cstr(const basic_string_char
*this,
1259 MSVCP_size_t pos
, MSVCP_size_t num
, const char *str
)
1261 return MSVCP_basic_string_char_compare_substr_cstr_len(this, pos
, num
,
1262 str
, MSVCP_char_traits_char_length(str
));
1265 /* ?compare@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEHPBD@Z */
1266 /* ?compare@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBAHPEBD@Z */
1267 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_compare_cstr
, 8)
1268 int __thiscall
MSVCP_basic_string_char_compare_cstr(
1269 const basic_string_char
*this, const char *str
)
1271 return MSVCP_basic_string_char_compare_substr_cstr_len(this, 0, this->size
,
1272 str
, MSVCP_char_traits_char_length(str
));
1275 /* ?compare@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEHIIABV12@II@Z */
1276 /* ?compare@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBAH_K0AEBV12@00@Z */
1277 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_compare_substr_substr
, 24)
1278 int __thiscall
MSVCP_basic_string_char_compare_substr_substr(
1279 const basic_string_char
*this, MSVCP_size_t pos
, MSVCP_size_t num
,
1280 const basic_string_char
*compare
, MSVCP_size_t off
, MSVCP_size_t count
)
1282 TRACE("%p %lu %lu %p %lu %lu\n", this, pos
, num
, compare
, off
, count
);
1284 if(compare
->size
< off
)
1285 MSVCP__String_base_Xran();
1287 if(count
> compare
->size
-off
)
1288 count
= compare
->size
-off
;
1290 return MSVCP_basic_string_char_compare_substr_cstr_len(this, pos
, num
,
1291 basic_string_char_const_ptr(compare
)+off
, count
);
1294 /* ?compare@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEHIIABV12@@Z */
1295 /* ?compare@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBAH_K0AEBV12@@Z */
1296 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_compare_substr
, 16)
1297 int __thiscall
MSVCP_basic_string_char_compare_substr(
1298 const basic_string_char
*this, MSVCP_size_t pos
, MSVCP_size_t num
,
1299 const basic_string_char
*compare
)
1301 return MSVCP_basic_string_char_compare_substr_cstr_len(this, pos
, num
,
1302 basic_string_char_const_ptr(compare
), compare
->size
);
1305 /* ?compare@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEHABV12@@Z */
1306 /* ?compare@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBAHAEBV12@@Z */
1307 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_compare
, 8)
1308 int __thiscall
MSVCP_basic_string_char_compare(
1309 const basic_string_char
*this, const basic_string_char
*compare
)
1311 return MSVCP_basic_string_char_compare_substr_cstr_len(this, 0, this->size
,
1312 basic_string_char_const_ptr(compare
), compare
->size
);
1315 /* ??$?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 */
1316 /* ??$?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 */
1317 /* ??8std@@YA_NABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@0@Z */
1318 /* ??8std@@YA_NAEBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@0@Z */
1319 MSVCP_bool __cdecl
MSVCP_basic_string_char_equal(
1320 const basic_string_char
*left
, const basic_string_char
*right
)
1322 return MSVCP_basic_string_char_compare(left
, right
) == 0;
1325 /* ??$?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 */
1326 /* ??$?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 */
1327 /* ??8std@@YA_NABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@PBD@Z */
1328 /* ??8std@@YA_NAEBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@PEBD@Z */
1329 MSVCP_bool __cdecl
MSVCP_basic_string_char_equal_str_cstr(
1330 const basic_string_char
*left
, const char *right
)
1332 return MSVCP_basic_string_char_compare_cstr(left
, right
) == 0;
1335 /* ??$?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 */
1336 /* ??$?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 */
1337 /* ??8std@@YA_NPBDABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@@Z */
1338 MSVCP_bool __cdecl
MSVCP_basic_string_char_equal_cstr_str(
1339 const char *left
, const basic_string_char
*right
)
1341 return MSVCP_basic_string_char_compare_cstr(right
, left
) == 0;
1344 /* ??$?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 */
1345 /* ??$?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 */
1346 /* ??9std@@YA_NABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@0@Z */
1347 /* ??9std@@YA_NAEBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@0@Z */
1348 MSVCP_bool __cdecl
MSVCP_basic_string_char_not_equal(
1349 const basic_string_char
*left
, const basic_string_char
*right
)
1351 return MSVCP_basic_string_char_compare(left
, right
) != 0;
1354 /* ??$?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 */
1355 /* ??$?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 */
1356 /* ??9std@@YA_NABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@PBD@Z */
1357 /* ??9std@@YA_NAEBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@PEBD@Z */
1358 MSVCP_bool __cdecl
MSVCP_basic_string_char_not_equal_str_cstr(
1359 const basic_string_char
*left
, const char *right
)
1361 return MSVCP_basic_string_char_compare_cstr(left
, right
) != 0;
1364 /* ??$?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 */
1365 /* ??$?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 */
1366 /* ??9std@@YA_NPBDABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@@Z */
1367 /* ??9std@@YA_NPEBDAEBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@@Z */
1368 MSVCP_bool __cdecl
MSVCP_basic_string_char_not_equal_cstr_str(
1369 const char *left
, const basic_string_char
*right
)
1371 return MSVCP_basic_string_char_compare_cstr(right
, left
) != 0;
1374 /* ??$?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 */
1375 /* ??$?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 */
1376 MSVCP_bool __cdecl
MSVCP_basic_string_char_lower(
1377 const basic_string_char
*left
, const basic_string_char
*right
)
1379 return MSVCP_basic_string_char_compare(left
, right
) < 0;
1382 /* ??$?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 */
1383 /* ??$?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 */
1384 MSVCP_bool __cdecl
MSVCP_basic_string_char_lower_bstr_cstr(
1385 const basic_string_char
*left
, const char *right
)
1387 return MSVCP_basic_string_char_compare_cstr(left
, right
) < 0;
1390 /* ??$?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 */
1391 /* ??$?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 */
1392 MSVCP_bool __cdecl
MSVCP_basic_string_char_lower_cstr_bstr(
1393 const char *left
, const basic_string_char
*right
)
1395 return MSVCP_basic_string_char_compare_cstr(right
, left
) > 0;
1398 /* ??$?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 */
1399 /* ??$?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 */
1400 MSVCP_bool __cdecl
MSVCP_basic_string_char_leq(
1401 const basic_string_char
*left
, const basic_string_char
*right
)
1403 return MSVCP_basic_string_char_compare(left
, right
) <= 0;
1406 /* ??$?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 */
1407 /* ??$?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 */
1408 MSVCP_bool __cdecl
MSVCP_basic_string_char_leq_bstr_cstr(
1409 const basic_string_char
*left
, const char *right
)
1411 return MSVCP_basic_string_char_compare_cstr(left
, right
) <= 0;
1414 /* ??$?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 */
1415 /* ??$?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 */
1416 MSVCP_bool __cdecl
MSVCP_basic_string_char_leq_cstr_bstr(
1417 const char *left
, const basic_string_char
*right
)
1419 return MSVCP_basic_string_char_compare_cstr(right
, left
) >= 0;
1422 /* ??$?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 */
1423 /* ??$?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 */
1424 MSVCP_bool __cdecl
MSVCP_basic_string_char_greater(
1425 const basic_string_char
*left
, const basic_string_char
*right
)
1427 return MSVCP_basic_string_char_compare(left
, right
) > 0;
1430 /* ??$?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 */
1431 /* ??$?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 */
1432 MSVCP_bool __cdecl
MSVCP_basic_string_char_greater_bstr_cstr(
1433 const basic_string_char
*left
, const char *right
)
1435 return MSVCP_basic_string_char_compare_cstr(left
, right
) > 0;
1438 /* ??$?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 */
1439 /* ??$?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 */
1440 MSVCP_bool __cdecl
MSVCP_basic_string_char_greater_cstr_bstr(
1441 const char *left
, const basic_string_char
*right
)
1443 return MSVCP_basic_string_char_compare_cstr(right
, left
) < 0;
1446 /* ??$?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 */
1447 /* ??$?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 */
1448 MSVCP_bool __cdecl
MSVCP_basic_string_char_geq(
1449 const basic_string_char
*left
, const basic_string_char
*right
)
1451 return MSVCP_basic_string_char_compare(left
, right
) >= 0;
1454 /* ??$?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 */
1455 /* ??$?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 */
1456 MSVCP_bool __cdecl
MSVCP_basic_string_char_geq_bstr_cstr(
1457 const basic_string_char
*left
, const char *right
)
1459 return MSVCP_basic_string_char_compare_cstr(left
, right
) >= 0;
1462 /* ??$?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 */
1463 /* ??$?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 */
1464 MSVCP_bool __cdecl
MSVCP_basic_string_char_geq_cstr_bstr(
1465 const char *left
, const basic_string_char
*right
)
1467 return MSVCP_basic_string_char_compare_cstr(right
, left
) <= 0;
1470 /* ?find@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEIPBDII@Z */
1471 /* ?find@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA_KPEBD_K1@Z */
1472 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_find_cstr_substr
, 16)
1473 MSVCP_size_t __thiscall
MSVCP_basic_string_char_find_cstr_substr(
1474 const basic_string_char
*this, const char *find
, MSVCP_size_t pos
, MSVCP_size_t len
)
1476 const char *p
, *end
;
1478 TRACE("%p %s %lu %lu\n", this, debugstr_an(find
, len
), pos
, len
);
1480 if(len
==0 && pos
<=this->size
)
1482 if(pos
>=this->size
|| len
>this->size
)
1483 return MSVCP_basic_string_char_npos
;
1485 end
= basic_string_char_const_ptr(this)+this->size
-len
+1;
1486 for(p
=basic_string_char_const_ptr(this)+pos
; p
<end
; p
++) {
1487 p
= MSVCP_char_traits_char_find(p
, end
-p
, find
);
1491 if(!MSVCP_char_traits_char_compare(p
, find
, len
))
1492 return p
-basic_string_char_const_ptr(this);
1495 return MSVCP_basic_string_char_npos
;
1498 /* ?find@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEIPBDI@Z */
1499 /* ?find@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA_KPEBD_K@Z */
1500 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_find_cstr_off
, 12)
1501 MSVCP_size_t __thiscall
MSVCP_basic_string_char_find_cstr_off(
1502 const basic_string_char
*this, const char *find
, MSVCP_size_t pos
)
1504 return MSVCP_basic_string_char_find_cstr_substr(this, find
, pos
,
1505 MSVCP_char_traits_char_length(find
));
1508 /* ?find@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEIABV12@I@Z */
1509 /* ?find@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA_KAEBV12@_K@Z */
1510 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_find_off
, 12)
1511 MSVCP_size_t __thiscall
MSVCP_basic_string_char_find_off(
1512 const basic_string_char
*this, const basic_string_char
*find
, MSVCP_size_t off
)
1514 return MSVCP_basic_string_char_find_cstr_substr(this,
1515 basic_string_char_const_ptr(find
), off
, find
->size
);
1518 /* ?find@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEIDI@Z */
1519 /* ?find@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA_KD_K@Z */
1520 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_find_ch
, 12)
1521 MSVCP_size_t __thiscall
MSVCP_basic_string_char_find_ch(
1522 const basic_string_char
*this, char ch
, MSVCP_size_t pos
)
1524 return MSVCP_basic_string_char_find_cstr_substr(this, &ch
, pos
, 1);
1527 /* ?rfind@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEIPBDII@Z */
1528 /* ?rfind@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA_KPEBD_K1@Z */
1529 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_rfind_cstr_substr
, 16)
1530 MSVCP_size_t __thiscall
MSVCP_basic_string_char_rfind_cstr_substr(
1531 const basic_string_char
*this, const char *find
, MSVCP_size_t pos
, MSVCP_size_t len
)
1533 const char *p
, *end
;
1535 TRACE("%p %s %lu %lu\n", this, debugstr_an(find
, len
), pos
, len
);
1538 return pos
<this->size
? pos
: this->size
;
1540 if(len
> this->size
)
1541 return MSVCP_basic_string_char_npos
;
1543 if(pos
> this->size
-len
)
1544 pos
= this->size
-len
;
1545 end
= basic_string_char_const_ptr(this);
1546 for(p
=end
+pos
; p
>=end
; p
--) {
1547 if(*p
==*find
&& !MSVCP_char_traits_char_compare(p
, find
, len
))
1548 return p
-basic_string_char_const_ptr(this);
1551 return MSVCP_basic_string_char_npos
;
1554 /* ?rfind@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEIPBDI@Z */
1555 /* ?rfind@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA_KPEBD_K@Z */
1556 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_rfind_cstr_off
, 12)
1557 MSVCP_size_t __thiscall
MSVCP_basic_string_char_rfind_cstr_off(
1558 const basic_string_char
*this, const char *find
, MSVCP_size_t pos
)
1560 return MSVCP_basic_string_char_rfind_cstr_substr(this, find
, pos
,
1561 MSVCP_char_traits_char_length(find
));
1564 /* ?rfind@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEIABV12@I@Z */
1565 /* ?rfind@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA_KAEBV12@_K@Z */
1566 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_rfind_off
, 12)
1567 MSVCP_size_t __thiscall
MSVCP_basic_string_char_rfind_off(
1568 const basic_string_char
*this, const basic_string_char
*find
, MSVCP_size_t off
)
1570 return MSVCP_basic_string_char_rfind_cstr_substr(this,
1571 basic_string_char_const_ptr(find
), off
, find
->size
);
1574 /* ?rfind@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEIDI@Z */
1575 /* ?rfind@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA_KD_K@Z */
1576 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_rfind_ch
, 12)
1577 MSVCP_size_t __thiscall
MSVCP_basic_string_char_rfind_ch(
1578 const basic_string_char
*this, char ch
, MSVCP_size_t pos
)
1580 return MSVCP_basic_string_char_rfind_cstr_substr(this, &ch
, pos
, 1);
1583 /* ?find_first_of@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEIPBDII@Z */
1584 /* ?find_first_of@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA_KPEBD_K1@Z */
1585 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_find_first_of_cstr_substr
, 16)
1586 MSVCP_size_t __thiscall
MSVCP_basic_string_char_find_first_of_cstr_substr(
1587 const basic_string_char
*this, const char *find
, MSVCP_size_t off
, MSVCP_size_t len
)
1589 const char *p
, *end
;
1591 TRACE("%p %p %lu %lu\n", this, find
, off
, len
);
1593 if(len
>0 && off
<this->size
) {
1594 end
= basic_string_char_const_ptr(this)+this->size
;
1595 for(p
=basic_string_char_const_ptr(this)+off
; p
<end
; p
++)
1596 if(MSVCP_char_traits_char_find(find
, len
, p
))
1597 return p
-basic_string_char_const_ptr(this);
1600 return MSVCP_basic_string_char_npos
;
1603 /* ?find_first_of@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEIABV12@I@Z */
1604 /* ?find_first_of@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA_KAEBV12@_K@Z */
1605 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_find_first_of
, 12)
1606 MSVCP_size_t __thiscall
MSVCP_basic_string_char_find_first_of(
1607 const basic_string_char
*this, const basic_string_char
*find
, MSVCP_size_t off
)
1609 return MSVCP_basic_string_char_find_first_of_cstr_substr(this,
1610 basic_string_char_const_ptr(find
), off
, find
->size
);
1613 /* ??0?$_Yarn@D@std@@QAE@XZ */
1614 /* ??0?$_Yarn@D@std@@QEAA@XZ */
1615 DEFINE_THISCALL_WRAPPER(_Yarn_char_ctor
, 4)
1616 _Yarn_char
* __thiscall
_Yarn_char_ctor(_Yarn_char
*this)
1618 TRACE("(%p)\n", this);
1621 this->null_str
= '\0';
1625 /* ?_Tidy@?$_Yarn@D@std@@AAEXXZ */
1626 /* ?_Tidy@?$_Yarn@D@std@@AEAAXXZ */
1627 DEFINE_THISCALL_WRAPPER(_Yarn_char__Tidy
, 4)
1628 void __thiscall
_Yarn_char__Tidy(_Yarn_char
*this)
1630 TRACE("(%p)\n", this);
1633 MSVCRT_operator_delete(this->str
);
1637 /* ??4?$_Yarn@D@std@@QAEAAV01@PBD@Z */
1638 /* ??4?$_Yarn@D@std@@QEAAAEAV01@PEBD@Z */
1639 DEFINE_THISCALL_WRAPPER(_Yarn_char_op_assign_cstr
, 8)
1640 _Yarn_char
* __thiscall
_Yarn_char_op_assign_cstr(_Yarn_char
*this, const char *str
)
1642 TRACE("(%p %p)\n", this, str
);
1644 if(str
!= this->str
) {
1645 _Yarn_char__Tidy(this);
1648 MSVCP_size_t len
= strlen(str
);
1650 this->str
= MSVCRT_operator_new((len
+1)*sizeof(char));
1652 ERR("out of memory\n");
1655 memcpy(this->str
, str
, (len
+1)*sizeof(char));
1661 /* ??0?$_Yarn@D@std@@QAE@PBD@Z */
1662 /* ??0?$_Yarn@D@std@@QEAA@PEBD@Z */
1663 DEFINE_THISCALL_WRAPPER(_Yarn_char_ctor_cstr
, 8)
1664 _Yarn_char
* __thiscall
_Yarn_char_ctor_cstr(_Yarn_char
*this, const char *str
)
1666 TRACE("(%p %p)\n", this, str
);
1668 _Yarn_char_ctor(this);
1669 return _Yarn_char_op_assign_cstr(this, str
);
1672 /* ??4?$_Yarn@D@std@@QAEAAV01@ABV01@@Z */
1673 /* ??4?$_Yarn@D@std@@QEAAAEAV01@AEBV01@@Z */
1674 DEFINE_THISCALL_WRAPPER(_Yarn_char_op_assign
, 8)
1675 _Yarn_char
* __thiscall
_Yarn_char_op_assign(_Yarn_char
*this, const _Yarn_char
*rhs
)
1677 TRACE("(%p %p)\n", this, rhs
);
1679 return _Yarn_char_op_assign_cstr(this, rhs
->str
);
1682 /* ??0?$_Yarn@D@std@@QAE@ABV01@@Z */
1683 /* ??0?$_Yarn@D@std@@QEAA@AEBV01@@Z */
1684 DEFINE_THISCALL_WRAPPER(_Yarn_char_copy_ctor
, 8)
1685 _Yarn_char
* __thiscall
_Yarn_char_copy_ctor(_Yarn_char
*this, const _Yarn_char
*copy
)
1687 TRACE("(%p %p)\n", this, copy
);
1689 _Yarn_char_ctor(this);
1690 return _Yarn_char_op_assign(this, copy
);
1693 /* ??1?$_Yarn@D@std@@QAE@XZ */
1694 /* ??1?$_Yarn@D@std@@QEAA@XZ */
1695 DEFINE_THISCALL_WRAPPER(_Yarn_char_dtor
, 4)
1696 void __thiscall
_Yarn_char_dtor(_Yarn_char
*this)
1698 TRACE("(%p)\n", this);
1699 _Yarn_char__Tidy(this);
1702 /* ?_C_str@?$_Yarn@D@std@@QBEPBDXZ */
1703 /* ?_C_str@?$_Yarn@D@std@@QEBAPEBDXZ */
1704 /* ?c_str@?$_Yarn@D@std@@QBEPBDXZ */
1705 /* ?c_str@?$_Yarn@D@std@@QEBAPEBDXZ */
1706 DEFINE_THISCALL_WRAPPER(_Yarn_char_c_str
, 4)
1707 const char* __thiscall
_Yarn_char_c_str(const _Yarn_char
*this)
1709 TRACE("(%p)\n", this);
1710 return this->str
? this->str
: &this->null_str
;
1713 /* ?_Empty@?$_Yarn@D@std@@QBE_NXZ */
1714 /* ?_Empty@?$_Yarn@D@std@@QEBA_NXZ */
1715 /* ?empty@?$_Yarn@D@std@@QBE_NXZ */
1716 /* ?empty@?$_Yarn@D@std@@QEBA_NXZ */
1717 DEFINE_THISCALL_WRAPPER(_Yarn_char_empty
, 4)
1718 MSVCP_bool __thiscall
_Yarn_char_empty(const _Yarn_char
*this)
1720 TRACE("(%p)\n", this);
1724 /* ??0?$_Yarn@_W@std@@QAE@XZ */
1725 /* ??0?$_Yarn@_W@std@@QEAA@XZ */
1726 DEFINE_THISCALL_WRAPPER(_Yarn_wchar_ctor
, 4)
1727 _Yarn_wchar
* __thiscall
_Yarn_wchar_ctor(_Yarn_wchar
*this)
1729 TRACE("(%p)\n", this);
1732 this->null_str
= '\0';
1736 /* ?_Tidy@?$_Yarn@_W@std@@AAEXXZ */
1737 /* ?_Tidy@?$_Yarn@_W@std@@AEAAXXZ */
1738 DEFINE_THISCALL_WRAPPER(_Yarn_wchar__Tidy
, 4)
1739 void __thiscall
_Yarn_wchar__Tidy(_Yarn_wchar
*this)
1741 TRACE("(%p)\n", this);
1744 MSVCRT_operator_delete(this->str
);
1748 /* ??1?$_Yarn@_W@std@@QAE@XZ */
1749 /* ??1?$_Yarn@_W@std@@QEAA@XZ */
1750 DEFINE_THISCALL_WRAPPER(_Yarn_wchar_dtor
, 4)
1751 void __thiscall
_Yarn_wchar_dtor(_Yarn_wchar
*this)
1753 TRACE("(%p)\n", this);
1754 _Yarn_wchar__Tidy(this);
1757 /* ??4?$_Yarn@_W@std@@QAEAAV01@PB_W@Z */
1758 /* ??4?$_Yarn@_W@std@@QEAAAEAV01@PEB_W@Z */
1759 DEFINE_THISCALL_WRAPPER(_Yarn_wchar_op_assign_cstr
, 8)
1760 _Yarn_wchar
* __thiscall
_Yarn_wchar_op_assign_cstr(_Yarn_wchar
*this, const wchar_t *str
)
1762 TRACE("(%p %p)\n", this, str
);
1764 if(str
!= this->str
) {
1765 _Yarn_wchar__Tidy(this);
1768 MSVCP_size_t len
= wcslen(str
);
1770 this->str
= MSVCRT_operator_new((len
+1)*sizeof(wchar_t));
1772 ERR("out of memory\n");
1775 memcpy(this->str
, str
, (len
+1)*sizeof(wchar_t));
1781 /* ?_C_str@?$_Yarn@_W@std@@QBEPB_WXZ */
1782 /* ?_C_str@?$_Yarn@_W@std@@QEBAPEB_WXZ */
1783 DEFINE_THISCALL_WRAPPER(_Yarn_wchar__C_str
, 4)
1784 const wchar_t* __thiscall
_Yarn_wchar__C_str(const _Yarn_wchar
*this)
1786 TRACE("(%p)\n", this);
1787 return this->str
? this->str
: &this->null_str
;
1790 /* ?_Empty@?$_Yarn@_W@std@@QBE_NXZ */
1791 /* ?_Empty@?$_Yarn@_W@std@@QEBA_NXZ */
1792 DEFINE_THISCALL_WRAPPER(_Yarn_wchar__Empty
, 4)
1793 MSVCP_bool __thiscall
_Yarn_wchar__Empty(const _Yarn_wchar
*this)
1795 TRACE("(%p)\n", this);
1799 /* ?find_first_of@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEIPBDI@Z */
1800 /* ?find_first_of@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA_KPEBD_K@Z */
1801 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_find_first_of_cstr
, 12)
1802 MSVCP_size_t __thiscall
MSVCP_basic_string_char_find_first_of_cstr(
1803 const basic_string_char
*this, const char *find
, MSVCP_size_t off
)
1805 return MSVCP_basic_string_char_find_first_of_cstr_substr(
1806 this, find
, off
, MSVCP_char_traits_char_length(find
));
1809 /* ?find_first_of@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEIDI@Z */
1810 /* ?find_first_of@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA_KD_K@Z */
1811 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_find_first_of_ch
, 12)
1812 MSVCP_size_t __thiscall
MSVCP_basic_string_char_find_first_of_ch(
1813 const basic_string_char
*this, char ch
, MSVCP_size_t off
)
1815 return MSVCP_basic_string_char_find_first_of_cstr_substr(this, &ch
, off
, 1);
1818 /* ?find_first_not_of@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEIPBDII@Z */
1819 /* ?find_first_not_of@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA_KPEBD_K1@Z */
1820 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_find_first_not_of_cstr_substr
, 16)
1821 MSVCP_size_t __thiscall
MSVCP_basic_string_char_find_first_not_of_cstr_substr(
1822 const basic_string_char
*this, const char *find
, MSVCP_size_t off
, MSVCP_size_t len
)
1824 const char *p
, *end
;
1826 TRACE("%p %p %lu %lu\n", this, find
, off
, len
);
1828 if(off
<this->size
) {
1829 end
= basic_string_char_const_ptr(this)+this->size
;
1830 for(p
=basic_string_char_const_ptr(this)+off
; p
<end
; p
++)
1831 if(!MSVCP_char_traits_char_find(find
, len
, p
))
1832 return p
-basic_string_char_const_ptr(this);
1835 return MSVCP_basic_string_char_npos
;
1838 /* ?find_first_not_of@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEIABV12@I@Z */
1839 /* ?find_first_not_of@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA_KAEBV12@_K@Z */
1840 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_find_first_not_of
, 12)
1841 MSVCP_size_t __thiscall
MSVCP_basic_string_char_find_first_not_of(
1842 const basic_string_char
*this, const basic_string_char
*find
, MSVCP_size_t off
)
1844 return MSVCP_basic_string_char_find_first_not_of_cstr_substr(this,
1845 basic_string_char_const_ptr(find
), off
, find
->size
);
1848 /* ?find_first_not_of@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEIPBDI@Z */
1849 /* ?find_first_not_of@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA_KPEBD_K@Z */
1850 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_find_first_not_of_cstr
, 12)
1851 MSVCP_size_t __thiscall
MSVCP_basic_string_char_find_first_not_of_cstr(
1852 const basic_string_char
*this, const char *find
, MSVCP_size_t off
)
1854 return MSVCP_basic_string_char_find_first_not_of_cstr_substr(
1855 this, find
, off
, MSVCP_char_traits_char_length(find
));
1858 /* ?find_first_not_of@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEIDI@Z */
1859 /* ?find_first_not_of@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA_KD_K@Z */
1860 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_find_first_not_of_ch
, 12)
1861 MSVCP_size_t __thiscall
MSVCP_basic_string_char_find_first_not_of_ch(
1862 const basic_string_char
*this, char ch
, MSVCP_size_t off
)
1864 return MSVCP_basic_string_char_find_first_not_of_cstr_substr(this, &ch
, off
, 1);
1867 /* ?find_last_of@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEIPBDII@Z */
1868 /* ?find_last_of@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA_KPEBD_K1@Z */
1869 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_find_last_of_cstr_substr
, 16)
1870 MSVCP_size_t __thiscall
MSVCP_basic_string_char_find_last_of_cstr_substr(
1871 const basic_string_char
*this, const char *find
, MSVCP_size_t off
, MSVCP_size_t len
)
1873 const char *p
, *beg
;
1875 TRACE("%p %p %lu %lu\n", this, find
, off
, len
);
1877 if(len
>0 && this->size
>0) {
1878 if(off
>= this->size
)
1881 beg
= basic_string_char_const_ptr(this);
1882 for(p
=beg
+off
; p
>=beg
; p
--)
1883 if(MSVCP_char_traits_char_find(find
, len
, p
))
1887 return MSVCP_basic_string_char_npos
;
1890 /* ?find_last_of@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEIABV12@I@Z */
1891 /* ?find_last_of@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA_KAEBV12@_K@Z */
1892 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_find_last_of
, 12)
1893 MSVCP_size_t __thiscall
MSVCP_basic_string_char_find_last_of(
1894 const basic_string_char
*this, const basic_string_char
*find
, MSVCP_size_t off
)
1896 return MSVCP_basic_string_char_find_last_of_cstr_substr(this,
1897 basic_string_char_const_ptr(find
), off
, find
->size
);
1900 /* ?find_last_of@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEIPBDI@Z */
1901 /* ?find_last_of@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA_KPEBD_K@Z */
1902 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_find_last_of_cstr
, 12)
1903 MSVCP_size_t __thiscall
MSVCP_basic_string_char_find_last_of_cstr(
1904 const basic_string_char
*this, const char *find
, MSVCP_size_t off
)
1906 return MSVCP_basic_string_char_find_last_of_cstr_substr(
1907 this, find
, off
, MSVCP_char_traits_char_length(find
));
1910 /* ?find_last_of@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEIDI@Z */
1911 /* ?find_last_of@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA_KD_K@Z */
1912 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_find_last_of_ch
, 12)
1913 MSVCP_size_t __thiscall
MSVCP_basic_string_char_find_last_of_ch(
1914 const basic_string_char
*this, char ch
, MSVCP_size_t off
)
1916 return MSVCP_basic_string_char_find_last_of_cstr_substr(this, &ch
, off
, 1);
1919 /* ?find_last_not_of@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEIPBDII@Z */
1920 /* ?find_last_not_of@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA_KPEBD_K1@Z */
1921 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_find_last_not_of_cstr_substr
, 16)
1922 MSVCP_size_t __thiscall
MSVCP_basic_string_char_find_last_not_of_cstr_substr(
1923 const basic_string_char
*this, const char *find
, MSVCP_size_t off
, MSVCP_size_t len
)
1925 const char *p
, *beg
;
1927 TRACE("%p %p %lu %lu\n", this, find
, off
, len
);
1930 if(off
>= this->size
)
1933 beg
= basic_string_char_const_ptr(this);
1934 for(p
=beg
+off
; p
>=beg
; p
--)
1935 if(!MSVCP_char_traits_char_find(find
, len
, p
))
1939 return MSVCP_basic_string_char_npos
;
1942 /* ?find_last_not_of@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEIABV12@I@Z */
1943 /* ?find_last_not_of@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA_KAEBV12@_K@Z */
1944 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_find_last_not_of
, 12)
1945 MSVCP_size_t __thiscall
MSVCP_basic_string_char_find_last_not_of(
1946 const basic_string_char
*this, const basic_string_char
*find
, MSVCP_size_t off
)
1948 return MSVCP_basic_string_char_find_last_not_of_cstr_substr(this,
1949 basic_string_char_const_ptr(find
), off
, find
->size
);
1952 /* ?find_last_not_of@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEIPBDI@Z */
1953 /* ?find_last_not_of@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA_KPEBD_K@Z */
1954 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_find_last_not_of_cstr
, 12)
1955 MSVCP_size_t __thiscall
MSVCP_basic_string_char_find_last_not_of_cstr(
1956 const basic_string_char
*this, const char *find
, MSVCP_size_t off
)
1958 return MSVCP_basic_string_char_find_last_not_of_cstr_substr(
1959 this, find
, off
, MSVCP_char_traits_char_length(find
));
1962 /* ?find_last_not_of@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEIDI@Z */
1963 /* ?find_last_not_of@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA_KD_K@Z */
1964 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_find_last_not_of_ch
, 12)
1965 MSVCP_size_t __thiscall
MSVCP_basic_string_char_find_last_not_of_ch(
1966 const basic_string_char
*this, char ch
, MSVCP_size_t off
)
1968 return MSVCP_basic_string_char_find_last_not_of_cstr_substr(this, &ch
, off
, 1);
1971 /* ??A?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAADI@Z */
1972 /* ??A?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAAEAD_K@Z */
1973 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_operator_at
, 8)
1974 char* __thiscall
MSVCP_basic_string_char_operator_at(
1975 basic_string_char
*this, MSVCP_size_t pos
)
1977 TRACE("%p %lu\n", this, pos
);
1979 #if _MSVCP_VER >= 80
1980 if (this->size
< pos
)
1981 _invalid_parameter(NULL
, NULL
, NULL
, 0, 0);
1984 return basic_string_char_ptr(this)+pos
;
1987 /* ??A?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEABDI@Z */
1988 /* ??A?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBAAEBD_K@Z */
1989 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_const_operator_at
, 8)
1990 const char* __thiscall
MSVCP_basic_string_char_const_operator_at(
1991 const basic_string_char
*this, MSVCP_size_t pos
)
1993 TRACE("%p %lu\n", this, pos
);
1995 #if _MSVCP_VER >= 80
1996 if (this->size
< pos
)
1997 _invalid_parameter(NULL
, NULL
, NULL
, 0, 0);
2000 return basic_string_char_const_ptr(this)+pos
;
2003 /* ??A?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAADU_Size_type_nosscl@01@@Z */
2004 /* ??A?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAAEADU_Size_type_nosscl@01@@Z */
2005 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_operator_at_noverify
, 8)
2006 char* __thiscall
MSVCP_basic_string_char_operator_at_noverify(
2007 basic_string_char
*this, size_t_noverify pos
)
2009 TRACE("%p %lu\n", this, pos
.val
);
2010 return basic_string_char_ptr(this)+pos
.val
;
2013 /* ??A?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEABDU_Size_type_nosscl@01@@Z */
2014 /* ??A?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBAAEBDU_Size_type_nosscl@01@@Z */
2015 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_operator_const_at_noverify
, 8)
2016 const char* __thiscall
MSVCP_basic_string_char_operator_const_at_noverify(
2017 const basic_string_char
*this, size_t_noverify pos
)
2019 TRACE("%p %lu\n", this, pos
.val
);
2020 return basic_string_char_const_ptr(this)+pos
.val
;
2023 /* ?at@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAADI@Z */
2024 /* ?at@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAAEAD_K@Z */
2025 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_at
, 8)
2026 char* __thiscall
MSVCP_basic_string_char_at(
2027 basic_string_char
*this, MSVCP_size_t pos
)
2029 TRACE("%p %lu\n", this, pos
);
2031 if(this->size
<= pos
)
2032 MSVCP__String_base_Xran();
2034 return basic_string_char_ptr(this)+pos
;
2037 /* ?at@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEABDI@Z */
2038 /* ?at@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBAAEBD_K@Z */
2039 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_const_at
, 8)
2040 const char* __thiscall
MSVCP_basic_string_char_const_at(
2041 const basic_string_char
*this, MSVCP_size_t pos
)
2043 TRACE("%p %lu\n", this, pos
);
2045 if(this->size
<= pos
)
2046 MSVCP__String_base_Xran();
2048 return basic_string_char_const_ptr(this)+pos
;
2051 /* ?replace@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@IIPBDI@Z */
2052 /* ?replace@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAAEAV12@_K0PEBD0@Z */
2053 DEFINE_THISCALL_WRAPPER(basic_string_char_replace_cstr_len
, 20)
2054 basic_string_char
* __thiscall
basic_string_char_replace_cstr_len(basic_string_char
*this,
2055 MSVCP_size_t off
, MSVCP_size_t len
, const char *str
, MSVCP_size_t str_len
)
2057 MSVCP_size_t inside_pos
= -1;
2058 char *ptr
= basic_string_char_ptr(this);
2060 TRACE("%p %ld %ld %p %ld\n", this, off
, len
, str
, str_len
);
2062 if(this->size
< off
)
2063 MSVCP__String_base_Xran();
2065 if(len
> this->size
-off
)
2066 len
= this->size
-off
;
2068 if(MSVCP_basic_string_char_npos
-str_len
<= this->size
-len
)
2069 MSVCP__String_base_Xlen();
2071 if(basic_string_char_inside(this, str
))
2072 inside_pos
= str
-ptr
;
2075 basic_string_char_grow(this, this->size
-len
+str_len
, FALSE
);
2076 ptr
= basic_string_char_ptr(this);
2079 if(inside_pos
== -1) {
2080 memmove(ptr
+off
+str_len
, ptr
+off
+len
, (this->size
-off
-len
)*sizeof(char));
2081 memcpy(ptr
+off
, str
, str_len
*sizeof(char));
2082 } else if(len
>= str_len
) {
2083 memmove(ptr
+off
, ptr
+inside_pos
, str_len
*sizeof(char));
2084 memmove(ptr
+off
+str_len
, ptr
+off
+len
, (this->size
-off
-len
)*sizeof(char));
2088 memmove(ptr
+off
+str_len
, ptr
+off
+len
, (this->size
-off
-len
)*sizeof(char));
2090 if(inside_pos
< off
+len
) {
2091 size
= off
+len
-inside_pos
;
2094 memmove(ptr
+off
, ptr
+inside_pos
, size
*sizeof(char));
2100 memmove(ptr
+off
+size
, ptr
+off
+str_len
, (str_len
-size
)*sizeof(char));
2103 basic_string_char_eos(this, this->size
-len
+str_len
);
2107 /* ?replace@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@IIPBD@Z */
2108 /* ?replace@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAAEAV12@_K0PEBD@Z */
2109 DEFINE_THISCALL_WRAPPER(basic_string_char_replace_cstr
, 16)
2110 basic_string_char
* __thiscall
basic_string_char_replace_cstr(basic_string_char
*this,
2111 MSVCP_size_t off
, MSVCP_size_t len
, const char *str
)
2113 return basic_string_char_replace_cstr_len(this, off
, len
, str
,
2114 MSVCP_char_traits_char_length(str
));
2117 /* ?replace@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@IIABV12@II@Z */
2118 /* ?replace@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAAEAV12@_K0AEBV12@00@Z */
2119 DEFINE_THISCALL_WRAPPER(basic_string_char_replace_substr
, 24)
2120 basic_string_char
* __thiscall
basic_string_char_replace_substr(basic_string_char
*this, MSVCP_size_t off
,
2121 MSVCP_size_t len
, const basic_string_char
*str
, MSVCP_size_t str_off
, MSVCP_size_t str_len
)
2123 if(str
->size
< str_off
)
2124 MSVCP__String_base_Xran();
2126 if(str_len
> str
->size
-str_off
)
2127 str_len
= str
->size
-str_off
;
2129 return basic_string_char_replace_cstr_len(this, off
, len
,
2130 basic_string_char_const_ptr(str
)+str_off
, str_len
);
2133 /* ?replace@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@IIABV12@@Z */
2134 /* ?replace@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAAEAV12@_K0AEBV12@@Z */
2135 DEFINE_THISCALL_WRAPPER(basic_string_char_replace
, 16)
2136 basic_string_char
* __thiscall
basic_string_char_replace(basic_string_char
*this,
2137 MSVCP_size_t off
, MSVCP_size_t len
, const basic_string_char
*str
)
2139 return basic_string_char_replace_cstr_len(this, off
, len
,
2140 basic_string_char_const_ptr(str
), str
->size
);
2143 /* ?replace@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@IIID@Z */
2144 /* ?replace@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAAEAV12@_K00D@Z */
2145 DEFINE_THISCALL_WRAPPER(basic_string_char_replace_ch
, 20)
2146 basic_string_char
* __thiscall
basic_string_char_replace_ch(basic_string_char
*this,
2147 MSVCP_size_t off
, MSVCP_size_t len
, MSVCP_size_t count
, char ch
)
2149 char *ptr
= basic_string_char_ptr(this);
2151 TRACE("%p %ld %ld %ld %c\n", this, off
, len
, count
, ch
);
2153 if(this->size
< off
)
2154 MSVCP__String_base_Xran();
2156 if(len
> this->size
-off
)
2157 len
= this->size
-off
;
2159 if(MSVCP_basic_string_char_npos
-count
<= this->size
-len
)
2160 MSVCP__String_base_Xlen();
2163 basic_string_char_grow(this, this->size
-len
+count
, FALSE
);
2164 ptr
= basic_string_char_ptr(this);
2167 memmove(ptr
+off
+count
, ptr
+off
+len
, (this->size
-off
-len
)*sizeof(char));
2168 MSVCP_char_traits_char_assignn(ptr
+off
, count
, ch
);
2169 basic_string_char_eos(this, this->size
-len
+count
);
2174 /* ?insert@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@IABV12@@Z */
2175 /* ?insert@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAAEAV12@_KAEBV12@@Z */
2176 DEFINE_THISCALL_WRAPPER(basic_string_char_insert
, 12)
2177 basic_string_char
* __thiscall
basic_string_char_insert(basic_string_char
*this,
2178 MSVCP_size_t off
, const basic_string_char
*str
)
2180 return basic_string_char_replace(this, off
, 0, str
);
2183 /* ?insert@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@IABV12@II@Z */
2184 /* ?insert@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAAEAV12@_KAEBV12@00@Z */
2185 DEFINE_THISCALL_WRAPPER(basic_string_char_insert_substr
, 20)
2186 basic_string_char
* __thiscall
basic_string_char_insert_substr(
2187 basic_string_char
*this, MSVCP_size_t off
, const basic_string_char
*str
,
2188 MSVCP_size_t str_off
, MSVCP_size_t str_count
)
2190 return basic_string_char_replace_substr(this, off
, 0, str
, str_off
, str_count
);
2193 /* ?insert@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@IPBD@Z */
2194 /* ?insert@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAAEAV12@_KPEBD@Z */
2195 DEFINE_THISCALL_WRAPPER(basic_string_char_insert_cstr
, 12)
2196 basic_string_char
* __thiscall
basic_string_char_insert_cstr(
2197 basic_string_char
*this, MSVCP_size_t off
, const char *str
)
2199 return basic_string_char_replace_cstr(this, off
, 0, str
);
2202 /* ?insert@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@IPBDI@Z */
2203 /* ?insert@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAAEAV12@_KPEBD0@Z */
2204 DEFINE_THISCALL_WRAPPER(basic_string_char_insert_cstr_len
, 16)
2205 basic_string_char
* __thiscall
basic_string_char_insert_cstr_len(basic_string_char
*this,
2206 MSVCP_size_t off
, const char *str
, MSVCP_size_t str_len
)
2208 return basic_string_char_replace_cstr_len(this, off
, 0, str
, str_len
);
2211 /* ?insert@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@IID@Z */
2212 /* ?insert@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAAEAV12@_K0D@Z */
2213 DEFINE_THISCALL_WRAPPER(basic_string_char_insert_chn
, 16)
2214 basic_string_char
* __thiscall
basic_string_char_insert_chn(basic_string_char
*this,
2215 MSVCP_size_t off
, MSVCP_size_t count
, char ch
)
2217 return basic_string_char_replace_ch(this, off
, 0, count
, ch
);
2220 /* ?resize@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEXID@Z */
2221 /* ?resize@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAX_KD@Z */
2222 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_resize_ch
, 12)
2223 void __thiscall
MSVCP_basic_string_char_resize_ch(
2224 basic_string_char
*this, MSVCP_size_t size
, char ch
)
2226 TRACE("%p %lu %c\n", this, size
, ch
);
2228 if(size
<= this->size
)
2229 MSVCP_basic_string_char_erase(this, size
, this->size
);
2231 MSVCP_basic_string_char_append_len_ch(this, size
-this->size
, ch
);
2234 /* ?resize@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEXI@Z */
2235 /* ?resize@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAX_K@Z */
2236 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_resize
, 8)
2237 void __thiscall
MSVCP_basic_string_char_resize(
2238 basic_string_char
*this, MSVCP_size_t size
)
2240 MSVCP_basic_string_char_resize_ch(this, size
, '\0');
2243 /* ?clear@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEXXZ */
2244 /* ?clear@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAXXZ */
2245 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_clear
, 4)
2246 void __thiscall
MSVCP_basic_string_char_clear(basic_string_char
*this)
2248 basic_string_char_eos(this, 0);
2251 /* basic_string<wchar_t, char_traits<wchar_t>, allocator<wchar_t>> */
2252 /* basic_string<unsigned short, char_traits<unsigned short>, allocator<unsigned short>> */
2253 /* ?npos@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@2IB */
2254 /* ?npos@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@2_KB */
2255 /* ?npos@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@2IB */
2256 /* ?npos@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@2_KB */
2257 const MSVCP_size_t MSVCP_basic_string_wchar_npos
= -1;
2259 /* ?_Myptr@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@IAEPA_WXZ */
2260 /* ?_Myptr@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@IEAAPEA_WXZ */
2261 /* ?_Myptr@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@IAEPAGXZ */
2262 /* ?_Myptr@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@IEAAPEAGXZ */
2263 DEFINE_THISCALL_WRAPPER(basic_string_wchar_ptr
, 4)
2264 wchar_t* __thiscall
basic_string_wchar_ptr(basic_string_wchar
*this)
2266 if(this->res
< BUF_SIZE_WCHAR
)
2267 return this->data
.buf
;
2268 return this->data
.ptr
;
2271 /* ?_Myptr@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@IBEPB_WXZ */
2272 /* ?_Myptr@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@IEBAPEB_WXZ */
2273 /* ?_Myptr@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@IBEPBGXZ */
2274 /* ?_Myptr@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@IEBAPEBGXZ */
2275 DEFINE_THISCALL_WRAPPER(basic_string_wchar_const_ptr
, 4)
2276 const wchar_t* __thiscall
basic_string_wchar_const_ptr(const basic_string_wchar
*this)
2278 if(this->res
< BUF_SIZE_WCHAR
)
2279 return this->data
.buf
;
2280 return this->data
.ptr
;
2283 /* ?_Eos@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@IAEXI@Z */
2284 /* ?_Eos@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@IEAAX_K@Z */
2285 /* ?_Eos@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@IAEXI@Z */
2286 /* ?_Eos@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@IEAAX_K@Z */
2287 DEFINE_THISCALL_WRAPPER(basic_string_wchar_eos
, 8)
2288 void __thiscall
basic_string_wchar_eos(basic_string_wchar
*this, MSVCP_size_t len
)
2290 static const wchar_t nullbyte_w
= '\0';
2293 MSVCP_char_traits_wchar_assign(basic_string_wchar_ptr(this)+len
, &nullbyte_w
);
2296 /* ?_Inside@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@IAE_NPB_W@Z */
2297 /* ?_Inside@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@IEAA_NPEB_W@Z */
2298 /* ?_Inside@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@IAE_NPBG@Z */
2299 /* ?_Inside@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@IEAA_NPEBG@Z */
2300 DEFINE_THISCALL_WRAPPER(basic_string_wchar_inside
, 8)
2301 MSVCP_bool __thiscall
basic_string_wchar_inside(
2302 basic_string_wchar
*this, const wchar_t *ptr
)
2304 wchar_t *cstr
= basic_string_wchar_ptr(this);
2306 return ptr
>=cstr
&& ptr
<cstr
+this->size
;
2309 /* ?_Tidy@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@IAEX_NI@Z */
2310 /* ?_Tidy@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@IEAAX_N_K@Z */
2311 /* ?_Tidy@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@IAEX_NI@Z */
2312 /* ?_Tidy@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@IEAAX_N_K@Z */
2313 DEFINE_THISCALL_WRAPPER(basic_string_wchar_tidy
, 12)
2314 void __thiscall
basic_string_wchar_tidy(basic_string_wchar
*this,
2315 MSVCP_bool built
, MSVCP_size_t new_size
)
2317 if(built
&& BUF_SIZE_WCHAR
<=this->res
) {
2318 wchar_t *ptr
= this->data
.ptr
;
2321 MSVCP_char_traits_wchar__Copy_s(this->data
.buf
, BUF_SIZE_WCHAR
, ptr
, new_size
);
2322 MSVCP_allocator_wchar_deallocate(STRING_ALLOCATOR(this), ptr
, this->res
+1);
2325 this->res
= BUF_SIZE_WCHAR
-1;
2326 basic_string_wchar_eos(this, new_size
);
2329 /* ?_Grow@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@IAE_NI_N@Z */
2330 /* ?_Grow@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@IEAA_N_K_N@Z */
2331 /* ?_Grow@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@IAE_NI_N@Z */
2332 /* ?_Grow@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@IEAA_N_K_N@Z */
2333 DEFINE_THISCALL_WRAPPER(basic_string_wchar_grow
, 12)
2334 MSVCP_bool __thiscall
basic_string_wchar_grow(
2335 basic_string_wchar
*this, MSVCP_size_t new_size
, MSVCP_bool trim
)
2337 if(this->res
< new_size
) {
2338 MSVCP_size_t new_res
= new_size
, len
= this->size
;
2343 if(new_res
/3 < this->res
/2)
2344 new_res
= this->res
+ this->res
/2;
2346 ptr
= MSVCP_allocator_wchar_allocate(STRING_ALLOCATOR(this), new_res
+1);
2348 ptr
= MSVCP_allocator_wchar_allocate(STRING_ALLOCATOR(this), new_size
+1);
2352 ERR("Out of memory\n");
2353 basic_string_wchar_tidy(this, TRUE
, 0);
2357 MSVCP_char_traits_wchar__Copy_s(ptr
, new_size
,
2358 basic_string_wchar_ptr(this), this->size
);
2359 basic_string_wchar_tidy(this, TRUE
, 0);
2360 this->data
.ptr
= ptr
;
2361 this->res
= new_size
;
2362 basic_string_wchar_eos(this, len
);
2363 } else if(trim
&& new_size
< BUF_SIZE_WCHAR
)
2364 basic_string_wchar_tidy(this, TRUE
,
2365 new_size
<this->size
? new_size
: this->size
);
2366 else if(new_size
== 0)
2367 basic_string_wchar_eos(this, 0);
2369 return (new_size
>0);
2372 /* ?_Copy@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@IAEXII@Z */
2373 /* ?_Copy@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@IEAAX_K0@Z */
2374 /* ?_Copy@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@IAEXII@Z */
2375 /* ?_Copy@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@IEAAX_K0@Z */
2376 DEFINE_THISCALL_WRAPPER(basic_string_wchar__Copy
, 12)
2377 void __thiscall
basic_string_wchar__Copy(basic_string_wchar
*this,
2378 MSVCP_size_t new_size
, MSVCP_size_t copy_len
)
2380 TRACE("%p %lu %lu\n", this, new_size
, copy_len
);
2382 if(!basic_string_wchar_grow(this, new_size
, FALSE
))
2384 basic_string_wchar_eos(this, copy_len
);
2387 /* ?get_allocator@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBE?AV?$allocator@_W@2@XZ */
2388 /* ?get_allocator@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBA?AV?$allocator@_W@2@XZ */
2389 /* ?get_allocator@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBE?AV?$allocator@G@2@XZ */
2390 /* ?get_allocator@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBA?AV?$allocator@G@2@XZ */
2391 DEFINE_THISCALL_WRAPPER(basic_string_wchar_get_allocator
, 8)
2392 allocator
* __thiscall
basic_string_wchar_get_allocator(const basic_string_wchar
*this, allocator
*ret
)
2394 TRACE("%p\n", this);
2398 /* ?erase@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV12@II@Z */
2399 /* ?erase@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAAEAV12@_K0@Z */
2400 /* ?erase@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV12@II@Z */
2401 /* ?erase@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAAEAV12@_K0@Z */
2402 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_erase
, 12)
2403 basic_string_wchar
* __thiscall
MSVCP_basic_string_wchar_erase(
2404 basic_string_wchar
*this, MSVCP_size_t pos
, MSVCP_size_t len
)
2406 TRACE("%p %lu %lu\n", this, pos
, len
);
2408 if(pos
> this->size
)
2409 MSVCP__String_base_Xran();
2411 if(len
> this->size
-pos
)
2412 len
= this->size
-pos
;
2415 MSVCP_char_traits_wchar__Move_s(basic_string_wchar_ptr(this)+pos
,
2416 this->res
-pos
, basic_string_wchar_ptr(this)+pos
+len
,
2417 this->size
-pos
-len
);
2418 basic_string_wchar_eos(this, this->size
-len
);
2424 /* ?assign@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV12@ABV12@II@Z */
2425 /* ?assign@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAAEAV12@AEBV12@_K1@Z */
2426 /* ?assign@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV12@ABV12@II@Z */
2427 /* ?assign@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAAEAV12@AEBV12@_K1@Z */
2428 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_assign_substr
, 16)
2429 basic_string_wchar
* __thiscall
MSVCP_basic_string_wchar_assign_substr(
2430 basic_string_wchar
*this, const basic_string_wchar
*assign
,
2431 MSVCP_size_t pos
, MSVCP_size_t len
)
2433 TRACE("%p %p %lu %lu\n", this, assign
, pos
, len
);
2435 if(assign
->size
< pos
)
2436 MSVCP__String_base_Xran();
2438 if(len
> assign
->size
-pos
)
2439 len
= assign
->size
-pos
;
2441 if(this == assign
) {
2442 MSVCP_basic_string_wchar_erase(this, pos
+len
, MSVCP_basic_string_wchar_npos
);
2443 MSVCP_basic_string_wchar_erase(this, 0, pos
);
2444 } else if(basic_string_wchar_grow(this, len
, FALSE
)) {
2445 MSVCP_char_traits_wchar__Copy_s(basic_string_wchar_ptr(this),
2446 this->res
, basic_string_wchar_const_ptr(assign
)+pos
, len
);
2447 basic_string_wchar_eos(this, len
);
2453 /* ?assign@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV12@ABV12@@Z */
2454 /* ?assign@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAAEAV12@AEBV12@@Z */
2455 /* ??4?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV01@ABV01@@Z */
2456 /* ??4?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAAEAV01@AEBV01@@Z */
2457 /* ?assign@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV12@ABV12@@Z */
2458 /* ?assign@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAAEAV12@AEBV12@@Z */
2459 /* ??4?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV01@ABV01@@Z */
2460 /* ??4?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAAEAV01@AEBV01@@Z */
2461 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_assign
, 8)
2462 basic_string_wchar
* __thiscall
MSVCP_basic_string_wchar_assign(
2463 basic_string_wchar
*this, const basic_string_wchar
*assign
)
2465 return MSVCP_basic_string_wchar_assign_substr(this, assign
,
2466 0, MSVCP_basic_string_wchar_npos
);
2469 /* ?assign@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV12@PB_WI@Z */
2470 /* ?assign@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAAEAV12@PEB_W_K@Z */
2471 /* ?assign@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV12@PBGI@Z */
2472 /* ?assign@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAAEAV12@PEBG_K@Z */
2473 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_assign_cstr_len
, 12)
2474 basic_string_wchar
* __thiscall
MSVCP_basic_string_wchar_assign_cstr_len(
2475 basic_string_wchar
*this, const wchar_t *str
, MSVCP_size_t len
)
2477 TRACE("%p %s %lu\n", this, debugstr_wn(str
, len
), len
);
2479 if(basic_string_wchar_inside(this, str
))
2480 return MSVCP_basic_string_wchar_assign_substr(this, this,
2481 str
-basic_string_wchar_ptr(this), len
);
2482 else if(basic_string_wchar_grow(this, len
, FALSE
)) {
2483 MSVCP_char_traits_wchar__Copy_s(basic_string_wchar_ptr(this),
2484 this->res
, str
, len
);
2485 basic_string_wchar_eos(this, len
);
2491 /* ??4?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV01@_W@Z */
2492 /* ??4?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAAEAV01@_W@Z */
2493 /* ??4?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV01@G@Z */
2494 /* ??4?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAAEAV01@G@Z */
2495 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_assign_ch
, 8)
2496 basic_string_wchar
* __thiscall
MSVCP_basic_string_wchar_assign_ch(
2497 basic_string_wchar
*this, wchar_t ch
)
2499 return MSVCP_basic_string_wchar_assign_cstr_len(this, &ch
, 1);
2502 /* ?assign@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV12@PB_W@Z */
2503 /* ?assign@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAAEAV12@PEB_W@Z */
2504 /* ??4?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV01@PB_W@Z */
2505 /* ??4?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAAEAV01@PEB_W@Z */
2506 /* ?assign@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV12@PBG@Z */
2507 /* ?assign@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAAEAV12@PEBG@Z */
2508 /* ??4?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV01@PBG@Z */
2509 /* ??4?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAAEAV01@PEBG@Z */
2510 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_assign_cstr
, 8)
2511 basic_string_wchar
* __thiscall
MSVCP_basic_string_wchar_assign_cstr(
2512 basic_string_wchar
*this, const wchar_t *str
)
2514 return MSVCP_basic_string_wchar_assign_cstr_len(this, str
,
2515 MSVCP_char_traits_wchar_length(str
));
2518 /* ?assign@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV12@I_W@Z */
2519 /* ?assign@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAAEAV12@_K_W@Z */
2520 /* ?assign@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV12@IG@Z */
2521 /* ?assign@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAAEAV12@_KG@Z */
2522 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_assignn
, 12)
2523 basic_string_wchar
* __thiscall
MSVCP_basic_string_wchar_assignn(
2524 basic_string_wchar
*this, MSVCP_size_t count
, wchar_t ch
)
2526 TRACE("%p %ld %c\n", this, count
, ch
);
2528 basic_string_wchar_grow(this, count
, FALSE
);
2529 MSVCP_char_traits_wchar_assignn(basic_string_wchar_ptr(this), count
, ch
);
2530 basic_string_wchar_eos(this, count
);
2534 /* ?assign@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV12@PB_W0@Z */
2535 /* ?assign@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAAEAV12@PEB_W0@Z */
2536 /* ?assign@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV12@PBG0@Z */
2537 /* ?assign@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAAEAV12@PEBG0@Z */
2538 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_assign_ptr_ptr
, 12)
2539 basic_string_wchar
* __thiscall
MSVCP_basic_string_wchar_assign_ptr_ptr(
2540 basic_string_wchar
*this, const wchar_t *first
, const wchar_t *last
)
2542 return MSVCP_basic_string_wchar_assign_cstr_len(this, first
, last
-first
);
2545 /* ?_Chassign@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@IAEXII_W@Z */
2546 /* ?_Chassign@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@IEAAX_K0_W@Z */
2547 /* ?_Chassign@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@IAEXIIG@Z */
2548 /* ?_Chassign@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@IEAAX_K0G@Z */
2549 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_Chassign
, 16)
2550 void __thiscall
MSVCP_basic_string_wchar_Chassign(basic_string_wchar
*this,
2551 MSVCP_size_t off
, MSVCP_size_t count
, wchar_t ch
)
2553 TRACE("%p %lu %lu %c\n", this, off
, count
, ch
);
2554 MSVCP_char_traits_wchar_assignn(basic_string_wchar_ptr(this)+off
, count
, ch
);
2557 /* ?_Copy_s@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEIPA_WIII@Z */
2558 /* ?_Copy_s@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBA_KPEA_W_K11@Z */
2559 /* ?_Copy_s@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEIPAGIII@Z */
2560 /* ?_Copy_s@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBA_KPEAG_K11@Z */
2561 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_Copy_s
, 20)
2562 MSVCP_size_t __thiscall
MSVCP_basic_string_wchar_Copy_s(const basic_string_wchar
*this,
2563 wchar_t *dest
, MSVCP_size_t size
, MSVCP_size_t count
, MSVCP_size_t off
)
2565 TRACE("%p %p %lu %lu %lu\n", this, dest
, size
, count
, off
);
2567 if(this->size
< off
)
2568 MSVCP__String_base_Xran();
2570 if(count
> this->size
-off
)
2571 count
= this->size
-off
;
2573 MSVCP_char_traits_wchar__Copy_s(dest
, size
,
2574 basic_string_wchar_const_ptr(this)+off
, count
);
2578 /* ?copy@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEIPA_WII@Z */
2579 /* ?copy@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBA_KPEA_W_K1@Z */
2580 /* ?copy@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEIPAGII@Z */
2581 /* ?copy@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBA_KPEAG_K1@Z */
2582 DEFINE_THISCALL_WRAPPER(basic_string_wchar_copy
, 16)
2583 MSVCP_size_t __thiscall
basic_string_wchar_copy(const basic_string_wchar
*this,
2584 wchar_t *dest
, MSVCP_size_t count
, MSVCP_size_t off
)
2586 return MSVCP_basic_string_wchar_Copy_s(this, dest
, count
, count
, off
);
2589 /* ?c_str@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEPB_WXZ */
2590 /* ?c_str@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBAPEB_WXZ */
2591 /* ?data@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEPB_WXZ */
2592 /* ?data@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBAPEB_WXZ */
2593 /* ?c_str@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEPBGXZ */
2594 /* ?c_str@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBAPEBGXZ */
2595 /* ?data@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEPBGXZ */
2596 /* ?data@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBAPEBGXZ */
2597 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_c_str
, 4)
2598 const wchar_t* __thiscall
MSVCP_basic_string_wchar_c_str(const basic_string_wchar
*this)
2600 TRACE("%p\n", this);
2601 return basic_string_wchar_const_ptr(this);
2604 /* ?capacity@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEIXZ */
2605 /* ?capacity@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBA_KXZ */
2606 /* ?capacity@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEIXZ */
2607 /* ?capacity@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBA_KXZ */
2608 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_capacity
, 4)
2609 MSVCP_size_t __thiscall
MSVCP_basic_string_wchar_capacity(basic_string_wchar
*this)
2611 TRACE("%p\n", this);
2615 /* ?reserve@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEXI@Z */
2616 /* ?reserve@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAX_K@Z */
2617 /* ?reserve@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEXI@Z */
2618 /* ?reserve@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAX_K@Z */
2619 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_reserve
, 8)
2620 void __thiscall
MSVCP_basic_string_wchar_reserve(basic_string_wchar
*this, MSVCP_size_t size
)
2624 TRACE("%p %ld\n", this, size
);
2630 if(basic_string_wchar_grow(this, size
, TRUE
))
2631 basic_string_wchar_eos(this, len
);
2634 /* ??0?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE@XZ */
2635 /* ??0?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAA@XZ */
2636 /* ??0?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAE@XZ */
2637 /* ??0?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAA@XZ */
2638 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_ctor
, 4)
2639 basic_string_wchar
* __thiscall
MSVCP_basic_string_wchar_ctor(basic_string_wchar
*this)
2641 TRACE("%p\n", this);
2643 basic_string_wchar_tidy(this, FALSE
, 0);
2647 /* ??0?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE@ABV01@@Z */
2648 /* ??0?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAA@AEBV01@@Z */
2649 /* ??0?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAE@ABV01@@Z */
2650 /* ??0?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAA@AEBV01@@Z */
2651 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_copy_ctor
, 8)
2652 basic_string_wchar
* __thiscall
MSVCP_basic_string_wchar_copy_ctor(
2653 basic_string_wchar
*this, const basic_string_wchar
*copy
)
2655 TRACE("%p %p\n", this, copy
);
2657 basic_string_wchar_tidy(this, FALSE
, 0);
2658 MSVCP_basic_string_wchar_assign(this, copy
);
2662 /* ??0?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE@PB_W@Z */
2663 /* ??0?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAA@PEB_W@Z */
2664 /* ??0?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAE@PBG@Z */
2665 /* ??0?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAA@PEBG@Z */
2666 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_ctor_cstr
, 8)
2667 basic_string_wchar
* __thiscall
MSVCP_basic_string_wchar_ctor_cstr(
2668 basic_string_wchar
*this, const wchar_t *str
)
2670 TRACE("%p %s\n", this, debugstr_w(str
));
2672 basic_string_wchar_tidy(this, FALSE
, 0);
2673 MSVCP_basic_string_wchar_assign_cstr(this, str
);
2677 /* ??0?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE@PB_WABV?$allocator@_W@1@@Z */
2678 /* ??0?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAA@PEB_WAEBV?$allocator@_W@1@@Z */
2679 /* ??0?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAE@PBGABV?$allocator@G@1@@Z */
2680 /* ??0?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAA@PEBGAEBV?$allocator@G@1@@Z */
2681 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_ctor_cstr_alloc
, 12)
2682 basic_string_wchar
* __thiscall
MSVCP_basic_string_wchar_ctor_cstr_alloc(
2683 basic_string_wchar
*this, const wchar_t *str
, const void *alloc
)
2685 return MSVCP_basic_string_wchar_ctor_cstr(this, str
);
2688 /* ??0?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE@PB_WI@Z */
2689 /* ??0?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAA@PEB_W_K@Z */
2690 /* ??0?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAE@PBGI@Z */
2691 /* ??0?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAA@PEBG_K@Z */
2692 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_ctor_cstr_len
, 12)
2693 basic_string_wchar
* __thiscall
MSVCP_basic_string_wchar_ctor_cstr_len(
2694 basic_string_wchar
*this, const wchar_t *str
, MSVCP_size_t len
)
2696 TRACE("%p %s %ld\n", this, debugstr_wn(str
, len
), len
);
2698 basic_string_wchar_tidy(this, FALSE
, 0);
2699 MSVCP_basic_string_wchar_assign_cstr_len(this, str
, len
);
2703 /* ??0?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE@PB_WIABV?$allocator@_W@1@@Z */
2704 /* ??0?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAA@PEB_W_KAEBV?$allocator@_W@1@@Z */
2705 /* ??0?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAE@PBGIABV?$allocator@G@1@@Z */
2706 /* ??0?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAA@PEBG_KAEBV?$allocator@G@1@@Z */
2707 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_ctor_cstr_len_alloc
, 16)
2708 basic_string_wchar
* __thiscall
MSVCP_basic_string_wchar_ctor_cstr_len_alloc(
2709 basic_string_wchar
*this, const wchar_t *str
, MSVCP_size_t len
, const void *alloc
)
2711 return MSVCP_basic_string_wchar_ctor_cstr_len(this, str
, len
);
2714 /* ??0?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE@ABV01@II@Z */
2715 /* ??0?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAA@AEBV01@_K1@Z */
2716 /* ??0?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAE@ABV01@II@Z */
2717 /* ??0?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAA@AEBV01@_K1@Z */
2718 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_ctor_substr
, 16)
2719 basic_string_wchar
* __thiscall
MSVCP_basic_string_wchar_ctor_substr(
2720 basic_string_wchar
*this, const basic_string_wchar
*assign
,
2721 MSVCP_size_t pos
, MSVCP_size_t len
)
2723 TRACE("%p %p %lu %lu\n", this, assign
, pos
, len
);
2725 basic_string_wchar_tidy(this, FALSE
, 0);
2726 MSVCP_basic_string_wchar_assign_substr(this, assign
, pos
, len
);
2730 /* ??0?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE@ABV01@IIABV?$allocator@_W@1@@Z */
2731 /* ??0?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAA@AEBV01@_K1AEBV?$allocator@_W@1@@Z */
2732 /* ??0?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAE@ABV01@IIABV?$allocator@G@1@@Z */
2733 /* ??0?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAA@AEBV01@_K1AEBV?$allocator@G@1@@Z */
2734 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_ctor_substr_alloc
, 20)
2735 basic_string_wchar
* __thiscall
MSVCP_basic_string_wchar_ctor_substr_alloc(
2736 basic_string_wchar
*this, const basic_string_wchar
*assign
,
2737 MSVCP_size_t pos
, MSVCP_size_t len
, const void *alloc
)
2739 return MSVCP_basic_string_wchar_ctor_substr(this, assign
, pos
, len
);
2742 /* ??0?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE@ABV?$allocator@_W@1@@Z */
2743 /* ??0?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAA@AEBV?$allocator@_W@1@@Z */
2744 /* ??0?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAE@ABV?$allocator@G@1@@Z */
2745 /* ??0?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAA@AEBV?$allocator@G@1@@Z */
2746 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_ctor_alloc
, 8)
2747 basic_string_wchar
* __thiscall
MSVCP_basic_string_wchar_ctor_alloc(
2748 basic_string_wchar
*this, const void *alloc
)
2750 TRACE("%p %p\n", this, alloc
);
2752 basic_string_wchar_tidy(this, FALSE
, 0);
2756 /* ??0?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE@I_W@Z */
2757 /* ??0?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAA@_K_W@Z */
2758 /* ??0?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAE@IG@Z */
2759 /* ??0?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAA@_KG@Z */
2760 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_ctor_ch
, 12)
2761 basic_string_wchar
* __thiscall
MSVCP_basic_string_wchar_ctor_ch(basic_string_wchar
*this,
2762 MSVCP_size_t count
, wchar_t ch
)
2764 TRACE("%p %ld %c\n", this, count
, ch
);
2766 basic_string_wchar_tidy(this, FALSE
, 0);
2767 MSVCP_basic_string_wchar_assignn(this, count
, ch
);
2771 /* ??0?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE@I_WABV?$allocator@_W@1@@Z */
2772 /* ??0?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAA@_K_WAEBV?$allocator@_W@1@@Z */
2773 /* ??0?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAE@IGABV?$allocator@G@1@@Z */
2774 /* ??0?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAA@_KGAEBV?$allocator@G@1@@Z */
2775 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_ctor_ch_alloc
, 16)
2776 basic_string_wchar
* __thiscall
MSVCP_basic_string_wchar_ctor_ch_alloc(basic_string_wchar
*this,
2777 MSVCP_size_t count
, wchar_t ch
, const void *alloc
)
2779 return MSVCP_basic_string_wchar_ctor_ch(this, count
, ch
);
2782 /* ??0?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE@PB_W0@Z */
2783 /* ??0?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAA@PEB_W0@Z */
2784 /* ??0?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAE@PBG0@Z */
2785 /* ??0?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAA@PEBG0@Z */
2786 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_ctor_ptr_ptr
, 12)
2787 basic_string_wchar
* __thiscall
MSVCP_basic_string_wchar_ctor_ptr_ptr(basic_string_wchar
*this,
2788 const wchar_t *first
, const wchar_t *last
)
2790 return MSVCP_basic_string_wchar_ctor_cstr_len(this, first
, last
-first
);
2793 /* ??1?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE@XZ */
2794 /* ??1?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAA@XZ */
2795 /* ??1?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAE@XZ */
2796 /* ??1?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAA@XZ */
2797 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_dtor
, 4)
2798 void* __thiscall
MSVCP_basic_string_wchar_dtor(basic_string_wchar
*this)
2800 TRACE("%p\n", this);
2801 basic_string_wchar_tidy(this, TRUE
, 0);
2802 return NULL
; /* FEAR 1 installer expects EAX set to 0 */
2805 /* ?size@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEIXZ */
2806 /* ?size@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBA_KXZ */
2807 /* ?length@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEIXZ */
2808 /* ?length@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBA_KXZ */
2809 /* ?size@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEIXZ */
2810 /* ?size@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBA_KXZ */
2811 /* ?length@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEIXZ */
2812 /* ?length@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBA_KXZ */
2813 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_length
, 4)
2814 MSVCP_size_t __thiscall
MSVCP_basic_string_wchar_length(const basic_string_wchar
*this)
2816 TRACE("%p\n", this);
2820 /* ?max_size@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEIXZ */
2821 /* ?max_size@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBA_KXZ */
2822 /* ?max_size@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEIXZ */
2823 /* ?max_size@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBA_KXZ */
2824 DEFINE_THISCALL_WRAPPER(basic_string_wchar_max_size
, 4)
2825 MSVCP_size_t __thiscall
basic_string_wchar_max_size(const basic_string_wchar
*this)
2827 TRACE("%p\n", this);
2828 return MSVCP_allocator_wchar_max_size(STRING_ALLOCATOR(this))-1;
2831 /* ?empty@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBE_NXZ */
2832 /* ?empty@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBA_NXZ */
2833 /* ?empty@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBE_NXZ */
2834 /* ?empty@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBA_NXZ */
2835 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_empty
, 4)
2836 MSVCP_bool __thiscall
MSVCP_basic_string_wchar_empty(basic_string_wchar
*this)
2838 TRACE("%p\n", this);
2839 return this->size
== 0;
2842 /* ?swap@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEXAAV12@@Z */
2843 /* ?swap@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAXAEAV12@@Z */
2844 /* ?swap@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEXAAV12@@Z */
2845 /* ?swap@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAXAEAV12@@Z */
2846 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_swap
, 8)
2847 void __thiscall
MSVCP_basic_string_wchar_swap(basic_string_wchar
*this, basic_string_wchar
*str
)
2850 char tmp
[sizeof(this->data
)];
2851 const MSVCP_size_t size
= this->size
;
2852 const MSVCP_size_t res
= this->res
;
2854 memcpy(tmp
, this->data
.buf
, sizeof(this->data
));
2855 memcpy(this->data
.buf
, str
->data
.buf
, sizeof(this->data
));
2856 memcpy(str
->data
.buf
, tmp
, sizeof(this->data
));
2858 this->size
= str
->size
;
2859 this->res
= str
->res
;
2866 /* ?substr@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBE?AV12@II@Z */
2867 /* ?substr@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBA?AV12@_K0@Z */
2868 /* ?substr@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBE?AV12@II@Z */
2869 /* ?substr@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBA?AV12@_K0@Z */
2870 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_substr
, 16)
2871 basic_string_wchar
* __thiscall
MSVCP_basic_string_wchar_substr(basic_string_wchar
*this,
2872 basic_string_wchar
*ret
, MSVCP_size_t off
, MSVCP_size_t len
)
2874 TRACE("%p %lu %lu\n", this, off
, len
);
2876 MSVCP_basic_string_wchar_ctor_substr(ret
, this, off
, len
);
2880 /* ?append@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV12@ABV12@II@Z */
2881 /* ?append@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAAEAV12@AEBV12@_K1@Z */
2882 /* ?append@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV12@ABV12@II@Z */
2883 /* ?append@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAAEAV12@AEBV12@_K1@Z */
2884 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_append_substr
, 16)
2885 basic_string_wchar
* __thiscall
MSVCP_basic_string_wchar_append_substr(basic_string_wchar
*this,
2886 const basic_string_wchar
*append
, MSVCP_size_t offset
, MSVCP_size_t count
)
2888 TRACE("%p %p %lu %lu\n", this, append
, offset
, count
);
2890 if(append
->size
< offset
)
2891 MSVCP__String_base_Xran();
2893 if(count
> append
->size
-offset
)
2894 count
= append
->size
-offset
;
2896 if(MSVCP_basic_string_wchar_npos
-this->size
<=count
|| this->size
+count
<this->size
)
2897 MSVCP__String_base_Xlen();
2899 if(basic_string_wchar_grow(this, this->size
+count
, FALSE
)) {
2900 MSVCP_char_traits_wchar__Copy_s(basic_string_wchar_ptr(this)+this->size
,
2901 this->res
-this->size
, basic_string_wchar_const_ptr(append
)+offset
, count
);
2902 basic_string_wchar_eos(this, this->size
+count
);
2908 /* ?append@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV12@ABV12@@Z */
2909 /* ?append@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAAEAV12@AEBV12@@Z */
2910 /* ??Y?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV01@ABV01@@Z */
2911 /* ??Y?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAAEAV01@AEBV01@@Z */
2912 /* ?append@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV12@ABV12@@Z */
2913 /* ?append@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAAEAV12@AEBV12@@Z */
2914 /* ??Y?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV01@ABV01@@Z */
2915 /* ??Y?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAAEAV01@AEBV01@@Z */
2916 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_append
, 8)
2917 basic_string_wchar
* __thiscall
MSVCP_basic_string_wchar_append(
2918 basic_string_wchar
*this, const basic_string_wchar
*append
)
2920 return MSVCP_basic_string_wchar_append_substr(this, append
,
2921 0, MSVCP_basic_string_wchar_npos
);
2924 /* ?append@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV12@PB_WI@Z */
2925 /* ?append@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAAEAV12@PEB_W_K@Z */
2926 /* ?append@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV12@PBGI@Z */
2927 /* ?append@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAAEAV12@PEBG_K@Z */
2928 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_append_cstr_len
, 12)
2929 basic_string_wchar
* __thiscall
MSVCP_basic_string_wchar_append_cstr_len(
2930 basic_string_wchar
*this, const wchar_t *append
, MSVCP_size_t count
)
2932 TRACE("%p %s %lu\n", this, debugstr_wn(append
, count
), count
);
2934 if(basic_string_wchar_inside(this, append
))
2935 return MSVCP_basic_string_wchar_append_substr(this, this,
2936 append
-basic_string_wchar_ptr(this), count
);
2938 if(MSVCP_basic_string_wchar_npos
-this->size
<=count
|| this->size
+count
<this->size
)
2939 MSVCP__String_base_Xlen();
2941 if(basic_string_wchar_grow(this, this->size
+count
, FALSE
)) {
2942 MSVCP_char_traits_wchar__Copy_s(basic_string_wchar_ptr(this)+this->size
,
2943 this->res
-this->size
, append
, count
);
2944 basic_string_wchar_eos(this, this->size
+count
);
2950 /* ?append@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV12@PB_W@Z */
2951 /* ?append@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAAEAV12@PEB_W@Z */
2952 /* ??Y?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV01@PB_W@Z */
2953 /* ??Y?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAAEAV01@PEB_W@Z */
2954 /* ?append@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV12@PBG@Z */
2955 /* ?append@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAAEAV12@PEBG@Z */
2956 /* ??Y?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV01@PBG@Z */
2957 /* ??Y?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAAEAV01@PEBG@Z */
2958 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_append_cstr
, 8)
2959 basic_string_wchar
* __thiscall
MSVCP_basic_string_wchar_append_cstr(
2960 basic_string_wchar
*this, const wchar_t *append
)
2962 return MSVCP_basic_string_wchar_append_cstr_len(this, append
,
2963 MSVCP_char_traits_wchar_length(append
));
2966 /* ?append@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV12@PB_W0@Z */
2967 /* ?append@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAAEAV12@PEB_W0@Z */
2968 /* ?append@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV12@PBG0@Z */
2969 /* ?append@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAAEAV12@PEBG0@Z */
2970 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_append_beg_end
, 12)
2971 basic_string_wchar
* __thiscall
MSVCP_basic_string_wchar_append_beg_end(
2972 basic_string_wchar
*this, const wchar_t *beg
, const wchar_t *end
)
2974 return MSVCP_basic_string_wchar_append_cstr_len(this, beg
, end
-beg
);
2977 /* ?append@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV12@I_W@Z */
2978 /* ?append@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAAEAV12@_K_W@Z */
2979 /* ?append@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV12@IG@Z */
2980 /* ?append@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAAEAV12@_KG@Z */
2981 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_append_len_ch
, 12)
2982 basic_string_wchar
* __thiscall
MSVCP_basic_string_wchar_append_len_ch(
2983 basic_string_wchar
*this, MSVCP_size_t count
, wchar_t ch
)
2985 TRACE("%p %lu %c\n", this, count
, ch
);
2987 if(MSVCP_basic_string_wchar_npos
-this->size
<= count
)
2988 MSVCP__String_base_Xlen();
2990 if(basic_string_wchar_grow(this, this->size
+count
, FALSE
)) {
2991 MSVCP_char_traits_wchar_assignn(basic_string_wchar_ptr(this)+this->size
, count
, ch
);
2992 basic_string_wchar_eos(this, this->size
+count
);
2998 /* ??Y?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV01@_W@Z */
2999 /* ??Y?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAAEAV01@_W@Z */
3000 /* ?push_back@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEX_W@Z */
3001 /* ?push_back@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAX_W@Z */
3002 /* ??Y?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV01@G@Z */
3003 /* ??Y?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAAEAV01@G@Z */
3004 /* ?push_back@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEXG@Z */
3005 /* ?push_back@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAXG@Z */
3006 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_append_ch
, 8)
3007 basic_string_wchar
* __thiscall
MSVCP_basic_string_wchar_append_ch(
3008 basic_string_wchar
*this, wchar_t ch
)
3010 return MSVCP_basic_string_wchar_append_len_ch(this, 1, ch
);
3013 /* ??$?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 */
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@AEBV10@PEB_W@Z */
3015 /* ??$?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 */
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@AEBV10@PEBG@Z */
3017 /* ??Hstd@@YA?AV?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@0@ABV10@PBG@Z */
3018 /* ??Hstd@@YA?AV?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@0@AEBV10@PEBG@Z */
3019 /* ??Hstd@@YA?AV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@0@ABV10@PB_W@Z */
3020 basic_string_wchar
* __cdecl
MSVCP_basic_string_wchar_concatenate_bstr_cstr(basic_string_wchar
*ret
,
3021 const basic_string_wchar
*left
, const wchar_t *right
)
3023 TRACE("%p %s\n", left
, debugstr_w(right
));
3025 MSVCP_basic_string_wchar_copy_ctor(ret
, left
);
3026 MSVCP_basic_string_wchar_append_cstr(ret
, right
);
3030 /* ??$?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 */
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@PEB_WAEBV10@@Z */
3032 /* ??$?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 */
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@PEBGAEBV10@@Z */
3034 /* ??Hstd@@YA?AV?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@0@PBGABV10@@Z */
3035 /* ??Hstd@@YA?AV?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@0@PEBGAEBV10@@Z */
3036 /* ??Hstd@@YA?AV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@0@PB_WABV10@@Z */
3037 basic_string_wchar
* __cdecl
MSVCP_basic_string_wchar_concatenate_cstr_bstr(basic_string_wchar
*ret
,
3038 const wchar_t *left
, const basic_string_wchar
*right
)
3040 TRACE("%s %p\n", debugstr_w(left
), right
);
3042 MSVCP_basic_string_wchar_ctor_cstr(ret
, left
);
3043 MSVCP_basic_string_wchar_append(ret
, right
);
3047 /* ??$?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 */
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@AEBV10@0@Z */
3049 /* ??$?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 */
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@AEBV10@0@Z */
3051 /* ??Hstd@@YA?AV?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@0@ABV10@0@Z */
3052 /* ??Hstd@@YA?AV?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@0@AEBV10@0@Z */
3053 /* ??Hstd@@YA?AV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@0@ABV10@0@Z */
3054 basic_string_wchar
* __cdecl
MSVCP_basic_string_wchar_concatenate(basic_string_wchar
*ret
,
3055 const basic_string_wchar
*left
, const basic_string_wchar
*right
)
3057 TRACE("%p %p\n", left
, right
);
3059 MSVCP_basic_string_wchar_copy_ctor(ret
, left
);
3060 MSVCP_basic_string_wchar_append(ret
, right
);
3064 /* ??$?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 */
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@AEBV10@_W@Z */
3066 /* ??$?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 */
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@AEBV10@G@Z */
3068 /* ??Hstd@@YA?AV?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@0@ABV10@G@Z */
3069 /* ??Hstd@@YA?AV?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@0@AEBV10@G@Z */
3070 /* ??Hstd@@YA?AV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@0@ABV10@_W@Z */
3071 basic_string_wchar
* __cdecl
MSVCP_basic_string_wchar_concatenate_bstr_ch(
3072 basic_string_wchar
*ret
, const basic_string_wchar
*left
, wchar_t right
)
3074 TRACE("%p %c\n", left
, right
);
3076 MSVCP_basic_string_wchar_copy_ctor(ret
, left
);
3077 MSVCP_basic_string_wchar_append_ch(ret
, right
);
3081 /* ??$?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 */
3082 /* ??$?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 */
3083 /* ??$?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 */
3084 /* ??$?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 */
3085 /* ??Hstd@@YA?AV?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@0@GABV10@@Z */
3086 /* ??Hstd@@YA?AV?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@0@GAEBV10@@Z */
3087 /* ??Hstd@@YA?AV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@0@_WABV10@@Z */
3088 basic_string_wchar
* __cdecl
MSVCP_basic_string_wchar_concatenate_ch_bstr(
3089 basic_string_wchar
* ret
, wchar_t left
, const basic_string_wchar
*right
)
3091 TRACE("%c %p\n", left
, right
);
3093 MSVCP_basic_string_wchar_ctor_cstr_len(ret
, &left
, 1);
3094 MSVCP_basic_string_wchar_append(ret
, right
);
3098 /* ?compare@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEHIIPB_WI@Z */
3099 /* ?compare@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBAH_K0PEB_W0@Z */
3100 /* ?compare@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEHIIPBGI@Z */
3101 /* ?compare@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBAH_K0PEBG0@Z */
3102 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_compare_substr_cstr_len
, 20)
3103 int __thiscall
MSVCP_basic_string_wchar_compare_substr_cstr_len(
3104 const basic_string_wchar
*this, MSVCP_size_t pos
, MSVCP_size_t num
,
3105 const wchar_t *str
, MSVCP_size_t count
)
3109 TRACE("%p %lu %lu %s %lu\n", this, pos
, num
, debugstr_wn(str
, count
), count
);
3111 if(this->size
< pos
)
3112 MSVCP__String_base_Xran();
3114 if(num
> this->size
-pos
)
3115 num
= this->size
-pos
;
3117 ans
= MSVCP_char_traits_wchar_compare(basic_string_wchar_const_ptr(this)+pos
,
3118 str
, num
>count
? count
: num
);
3124 else if(num
< count
)
3129 /* ?compare@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEHIIPB_W@Z */
3130 /* ?compare@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBAH_K0PEB_W@Z */
3131 /* ?compare@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEHIIPBG@Z */
3132 /* ?compare@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBAH_K0PEBG@Z */
3133 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_compare_substr_cstr
, 16)
3134 int __thiscall
MSVCP_basic_string_wchar_compare_substr_cstr(const basic_string_wchar
*this,
3135 MSVCP_size_t pos
, MSVCP_size_t num
, const wchar_t *str
)
3137 return MSVCP_basic_string_wchar_compare_substr_cstr_len(this, pos
, num
,
3138 str
, MSVCP_char_traits_wchar_length(str
));
3141 /* ?compare@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEHPB_W@Z */
3142 /* ?compare@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBAHPEB_W@Z */
3143 /* ?compare@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEHPBG@Z */
3144 /* ?compare@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBAHPEBG@Z */
3145 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_compare_cstr
, 8)
3146 int __thiscall
MSVCP_basic_string_wchar_compare_cstr(
3147 const basic_string_wchar
*this, const wchar_t *str
)
3149 return MSVCP_basic_string_wchar_compare_substr_cstr_len(this, 0, this->size
,
3150 str
, MSVCP_char_traits_wchar_length(str
));
3153 /* ?compare@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEHIIABV12@II@Z */
3154 /* ?compare@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBAH_K0AEBV12@00@Z */
3155 /* ?compare@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEHIIABV12@II@Z */
3156 /* ?compare@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBAH_K0AEBV12@00@Z */
3157 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_compare_substr_substr
, 24)
3158 int __thiscall
MSVCP_basic_string_wchar_compare_substr_substr(
3159 const basic_string_wchar
*this, MSVCP_size_t pos
, MSVCP_size_t num
,
3160 const basic_string_wchar
*compare
, MSVCP_size_t off
, MSVCP_size_t count
)
3162 TRACE("%p %lu %lu %p %lu %lu\n", this, pos
, num
, compare
, off
, count
);
3164 if(compare
->size
< off
)
3165 MSVCP__String_base_Xran();
3167 if(count
> compare
->size
-off
)
3168 count
= compare
->size
-off
;
3170 return MSVCP_basic_string_wchar_compare_substr_cstr_len(this, pos
, num
,
3171 basic_string_wchar_const_ptr(compare
)+off
, count
);
3174 /* ?compare@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEHIIABV12@@Z */
3175 /* ?compare@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBAH_K0AEBV12@@Z */
3176 /* ?compare@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEHIIABV12@@Z */
3177 /* ?compare@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBAH_K0AEBV12@@Z */
3178 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_compare_substr
, 16)
3179 int __thiscall
MSVCP_basic_string_wchar_compare_substr(
3180 const basic_string_wchar
*this, MSVCP_size_t pos
, MSVCP_size_t num
,
3181 const basic_string_wchar
*compare
)
3183 return MSVCP_basic_string_wchar_compare_substr_cstr_len(this, pos
, num
,
3184 basic_string_wchar_const_ptr(compare
), compare
->size
);
3187 /* ?compare@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEHABV12@@Z */
3188 /* ?compare@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBAHAEBV12@@Z */
3189 /* ?compare@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEHABV12@@Z */
3190 /* ?compare@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBAHAEBV12@@Z */
3191 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_compare
, 8)
3192 int __thiscall
MSVCP_basic_string_wchar_compare(
3193 const basic_string_wchar
*this, const basic_string_wchar
*compare
)
3195 return MSVCP_basic_string_wchar_compare_substr_cstr_len(this, 0, this->size
,
3196 basic_string_wchar_const_ptr(compare
), compare
->size
);
3199 /* ??$?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 */
3200 /* ??$?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 */
3201 /* ??$?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 */
3202 /* ??$?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 */
3203 /* ??8std@@YA_NABV?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@0@0@Z */
3204 /* ??8std@@YA_NAEBV?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@0@0@Z */
3205 /* ??8std@@YA_NABV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@0@0@Z */
3206 MSVCP_bool __cdecl
MSVCP_basic_string_wchar_equal(
3207 const basic_string_wchar
*left
, const basic_string_wchar
*right
)
3209 return MSVCP_basic_string_wchar_compare(left
, right
) == 0;
3212 /* ??$?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 */
3213 /* ??$?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 */
3214 /* ??$?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 */
3215 /* ??$?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 */
3216 /* ??8std@@YA_NABV?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@0@PBG@Z */
3217 /* ??8std@@YA_NAEBV?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@0@PEBG@Z */
3218 /* ??8std@@YA_NABV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@0@PB_W@Z */
3219 MSVCP_bool __cdecl
MSVCP_basic_string_wchar_equal_str_cstr(
3220 const basic_string_wchar
*left
, const wchar_t *right
)
3222 return MSVCP_basic_string_wchar_compare_cstr(left
, right
) == 0;
3225 /* ??$?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 */
3226 /* ??$?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 */
3227 /* ??$?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 */
3228 /* ??$?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 */
3229 /* ??8std@@YA_NPBGABV?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@0@@Z */
3230 /* ??8std@@YA_NPB_WABV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@0@@Z */
3231 MSVCP_bool __cdecl
MSVCP_basic_string_wchar_equal_cstr_str(
3232 const wchar_t *left
, const basic_string_wchar
*right
)
3234 return MSVCP_basic_string_wchar_compare_cstr(right
, left
) == 0;
3237 /* ??$?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 */
3238 /* ??$?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 */
3239 /* ??$?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 */
3240 /* ??$?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 */
3241 /* ??9std@@YA_NABV?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@0@0@Z */
3242 /* ??9std@@YA_NAEBV?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@0@0@Z */
3243 /* ??9std@@YA_NABV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@0@0@Z */
3244 MSVCP_bool __cdecl
MSVCP_basic_string_wchar_not_equal(
3245 const basic_string_wchar
*left
, const basic_string_wchar
*right
)
3247 return MSVCP_basic_string_wchar_compare(left
, right
) != 0;
3250 /* ??$?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 */
3251 /* ??$?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 */
3252 /* ??$?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 */
3253 /* ??$?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 */
3254 /* ??9std@@YA_NABV?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@0@PBG@Z */
3255 /* ??9std@@YA_NAEBV?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@0@PEBG@Z */
3256 /* ??9std@@YA_NABV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@0@PB_W@Z */
3257 MSVCP_bool __cdecl
MSVCP_basic_string_wchar_not_equal_str_cstr(
3258 const basic_string_wchar
*left
, const wchar_t *right
)
3260 return MSVCP_basic_string_wchar_compare_cstr(left
, right
) != 0;
3263 /* ??$?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 */
3264 /* ??$?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 */
3265 /* ??$?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 */
3266 /* ??$?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 */
3267 /* ??9std@@YA_NPBGABV?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@0@@Z */
3268 /* ??9std@@YA_NPEBGAEBV?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@0@@Z */
3269 /* ??9std@@YA_NPB_WABV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@0@@Z */
3270 MSVCP_bool __cdecl
MSVCP_basic_string_wchar_not_equal_cstr_str(
3271 const wchar_t *left
, const basic_string_wchar
*right
)
3273 return MSVCP_basic_string_wchar_compare_cstr(right
, left
) != 0;
3276 /* ??$?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 */
3277 /* ??$?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 */
3278 /* ??$?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 */
3279 /* ??$?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 */
3280 MSVCP_bool __cdecl
MSVCP_basic_string_wchar_lower(
3281 const basic_string_wchar
*left
, const basic_string_wchar
*right
)
3283 return MSVCP_basic_string_wchar_compare(left
, right
) < 0;
3286 /* ??$?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 */
3287 /* ??$?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 */
3288 /* ??$?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 */
3289 /* ??$?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 */
3290 MSVCP_bool __cdecl
MSVCP_basic_string_wchar_lower_bstr_cstr(
3291 const basic_string_wchar
*left
, const wchar_t *right
)
3293 return MSVCP_basic_string_wchar_compare_cstr(left
, right
) < 0;
3296 /* ??$?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 */
3297 /* ??$?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 */
3298 /* ??$?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 */
3299 /* ??$?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 */
3300 MSVCP_bool __cdecl
MSVCP_basic_string_wchar_lower_cstr_bstr(
3301 const wchar_t *left
, const basic_string_wchar
*right
)
3303 return MSVCP_basic_string_wchar_compare_cstr(right
, left
) > 0;
3306 /* ??$?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 */
3307 /* ??$?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 */
3308 /* ??$?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 */
3309 /* ??$?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 */
3310 MSVCP_bool __cdecl
MSVCP_basic_string_wchar_leq(
3311 const basic_string_wchar
*left
, const basic_string_wchar
*right
)
3313 return MSVCP_basic_string_wchar_compare(left
, right
) <= 0;
3316 /* ??$?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 */
3317 /* ??$?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 */
3318 /* ??$?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 */
3319 /* ??$?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 */
3320 MSVCP_bool __cdecl
MSVCP_basic_string_wchar_leq_bstr_cstr(
3321 const basic_string_wchar
*left
, const wchar_t *right
)
3323 return MSVCP_basic_string_wchar_compare_cstr(left
, right
) <= 0;
3326 /* ??$?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 */
3327 /* ??$?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 */
3328 /* ??$?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 */
3329 /* ??$?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 */
3330 MSVCP_bool __cdecl
MSVCP_basic_string_wchar_leq_cstr_bstr(
3331 const wchar_t *left
, const basic_string_wchar
*right
)
3333 return MSVCP_basic_string_wchar_compare_cstr(right
, left
) >= 0;
3336 /* ??$?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 */
3337 /* ??$?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 */
3338 /* ??$?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 */
3339 /* ??$?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 */
3340 MSVCP_bool __cdecl
MSVCP_basic_string_wchar_greater(
3341 const basic_string_wchar
*left
, const basic_string_wchar
*right
)
3343 return MSVCP_basic_string_wchar_compare(left
, right
) > 0;
3346 /* ??$?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 */
3347 /* ??$?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 */
3348 /* ??$?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 */
3349 /* ??$?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 */
3350 MSVCP_bool __cdecl
MSVCP_basic_string_wchar_greater_bstr_cstr(
3351 const basic_string_wchar
*left
, const wchar_t *right
)
3353 return MSVCP_basic_string_wchar_compare_cstr(left
, right
) > 0;
3356 /* ??$?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 */
3357 /* ??$?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 */
3358 /* ??$?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 */
3359 /* ??$?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 */
3360 MSVCP_bool __cdecl
MSVCP_basic_string_wchar_greater_cstr_bstr(
3361 const wchar_t *left
, const basic_string_wchar
*right
)
3363 return MSVCP_basic_string_wchar_compare_cstr(right
, left
) < 0;
3366 /* ??$?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 */
3367 /* ??$?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 */
3368 /* ??$?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 */
3369 /* ??$?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 */
3370 MSVCP_bool __cdecl
MSVCP_basic_string_wchar_geq(
3371 const basic_string_wchar
*left
, const basic_string_wchar
*right
)
3373 return MSVCP_basic_string_wchar_compare(left
, right
) >= 0;
3376 /* ??$?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 */
3377 /* ??$?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 */
3378 /* ??$?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 */
3379 /* ??$?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 */
3380 MSVCP_bool __cdecl
MSVCP_basic_string_wchar_geq_bstr_cstr(
3381 const basic_string_wchar
*left
, const wchar_t *right
)
3383 return MSVCP_basic_string_wchar_compare_cstr(left
, right
) >= 0;
3386 /* ??$?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 */
3387 /* ??$?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 */
3388 /* ??$?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 */
3389 /* ??$?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 */
3390 MSVCP_bool __cdecl
MSVCP_basic_string_wchar_geq_cstr_bstr(
3391 const wchar_t *left
, const basic_string_wchar
*right
)
3393 return MSVCP_basic_string_wchar_compare_cstr(right
, left
) <= 0;
3396 /* ?find@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEIPB_WII@Z */
3397 /* ?find@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBA_KPEB_W_K1@Z */
3398 /* ?find@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEIPBGII@Z */
3399 /* ?find@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBA_KPEBG_K1@Z */
3400 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_find_cstr_substr
, 16)
3401 MSVCP_size_t __thiscall
MSVCP_basic_string_wchar_find_cstr_substr(
3402 const basic_string_wchar
*this, const wchar_t *find
, MSVCP_size_t pos
, MSVCP_size_t len
)
3404 const wchar_t *p
, *end
;
3406 TRACE("%p %s %lu %lu\n", this, debugstr_wn(find
, len
), pos
, len
);
3408 if(len
==0 && pos
<=this->size
)
3410 if(pos
>=this->size
|| len
>this->size
)
3411 return MSVCP_basic_string_wchar_npos
;
3413 end
= basic_string_wchar_const_ptr(this)+this->size
-len
+1;
3414 for(p
=basic_string_wchar_const_ptr(this)+pos
; p
<end
; p
++) {
3415 p
= MSVCP_char_traits_wchar_find(p
, end
-p
, find
);
3419 if(!MSVCP_char_traits_wchar_compare(p
, find
, len
))
3420 return p
-basic_string_wchar_const_ptr(this);
3423 return MSVCP_basic_string_wchar_npos
;
3426 /* ?find@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEIPB_WI@Z */
3427 /* ?find@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBA_KPEB_W_K@Z */
3428 /* ?find@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEIPBGI@Z */
3429 /* ?find@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBA_KPEBG_K@Z */
3430 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_find_cstr_off
, 12)
3431 MSVCP_size_t __thiscall
MSVCP_basic_string_wchar_find_cstr_off(
3432 const basic_string_wchar
*this, const wchar_t *find
, MSVCP_size_t pos
)
3434 return MSVCP_basic_string_wchar_find_cstr_substr(this, find
, pos
,
3435 MSVCP_char_traits_wchar_length(find
));
3438 /* ?find@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEIABV12@I@Z */
3439 /* ?find@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBA_KAEBV12@_K@Z */
3440 /* ?find@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEIABV12@I@Z */
3441 /* ?find@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBA_KAEBV12@_K@Z */
3442 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_find_off
, 12)
3443 MSVCP_size_t __thiscall
MSVCP_basic_string_wchar_find_off(
3444 const basic_string_wchar
*this, const basic_string_wchar
*find
, MSVCP_size_t off
)
3446 return MSVCP_basic_string_wchar_find_cstr_substr(this,
3447 basic_string_wchar_const_ptr(find
), off
, find
->size
);
3450 /* ?find@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEI_WI@Z */
3451 /* ?find@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBA_K_W_K@Z */
3452 /* ?find@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEIGI@Z */
3453 /* ?find@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBA_KG_K@Z */
3454 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_find_ch
, 12)
3455 MSVCP_size_t __thiscall
MSVCP_basic_string_wchar_find_ch(
3456 const basic_string_wchar
*this, wchar_t ch
, MSVCP_size_t pos
)
3458 return MSVCP_basic_string_wchar_find_cstr_substr(this, &ch
, pos
, 1);
3461 /* ?rfind@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEIPB_WII@Z */
3462 /* ?rfind@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBA_KPEB_W_K1@Z */
3463 /* ?rfind@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEIPBGII@Z */
3464 /* ?rfind@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBA_KPEBG_K1@Z */
3465 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_rfind_cstr_substr
, 16)
3466 MSVCP_size_t __thiscall
MSVCP_basic_string_wchar_rfind_cstr_substr(
3467 const basic_string_wchar
*this, const wchar_t *find
, MSVCP_size_t pos
, MSVCP_size_t len
)
3469 const wchar_t *p
, *end
;
3471 TRACE("%p %s %lu %lu\n", this, debugstr_wn(find
, len
), pos
, len
);
3474 return pos
<this->size
? pos
: this->size
;
3476 if(len
> this->size
)
3477 return MSVCP_basic_string_wchar_npos
;
3479 if(pos
> this->size
-len
)
3480 pos
= this->size
-len
;
3481 end
= basic_string_wchar_const_ptr(this);
3482 for(p
=end
+pos
; p
>=end
; p
--) {
3483 if(*p
==*find
&& !MSVCP_char_traits_wchar_compare(p
, find
, len
))
3484 return p
-basic_string_wchar_const_ptr(this);
3487 return MSVCP_basic_string_wchar_npos
;
3490 /* ?rfind@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEIPB_WI@Z */
3491 /* ?rfind@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBA_KPEB_W_K@Z */
3492 /* ?rfind@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEIPBGI@Z */
3493 /* ?rfind@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBA_KPEBG_K@Z */
3494 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_rfind_cstr_off
, 12)
3495 MSVCP_size_t __thiscall
MSVCP_basic_string_wchar_rfind_cstr_off(
3496 const basic_string_wchar
*this, const wchar_t *find
, MSVCP_size_t pos
)
3498 return MSVCP_basic_string_wchar_rfind_cstr_substr(this, find
, pos
,
3499 MSVCP_char_traits_wchar_length(find
));
3502 /* ?rfind@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEIABV12@I@Z */
3503 /* ?rfind@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBA_KAEBV12@_K@Z */
3504 /* ?rfind@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEIABV12@I@Z */
3505 /* ?rfind@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBA_KAEBV12@_K@Z */
3506 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_rfind_off
, 12)
3507 MSVCP_size_t __thiscall
MSVCP_basic_string_wchar_rfind_off(
3508 const basic_string_wchar
*this, const basic_string_wchar
*find
, MSVCP_size_t off
)
3510 return MSVCP_basic_string_wchar_rfind_cstr_substr(this,
3511 basic_string_wchar_const_ptr(find
), off
, find
->size
);
3514 /* ?rfind@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEI_WI@Z */
3515 /* ?rfind@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBA_K_W_K@Z */
3516 /* ?rfind@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEIGI@Z */
3517 /* ?rfind@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBA_KG_K@Z */
3518 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_rfind_ch
, 12)
3519 MSVCP_size_t __thiscall
MSVCP_basic_string_wchar_rfind_ch(
3520 const basic_string_wchar
*this, wchar_t ch
, MSVCP_size_t pos
)
3522 return MSVCP_basic_string_wchar_rfind_cstr_substr(this, &ch
, pos
, 1);
3525 /* ?find_first_of@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEIPB_WII@Z */
3526 /* ?find_first_of@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBA_KPEB_W_K1@Z */
3527 /* ?find_first_of@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEIPBGII@Z */
3528 /* ?find_first_of@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBA_KPEBG_K1@Z */
3529 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_find_first_of_cstr_substr
, 16)
3530 MSVCP_size_t __thiscall
MSVCP_basic_string_wchar_find_first_of_cstr_substr(
3531 const basic_string_wchar
*this, const wchar_t *find
, MSVCP_size_t off
, MSVCP_size_t len
)
3533 const wchar_t *p
, *end
;
3535 TRACE("%p %p %lu %lu\n", this, find
, off
, len
);
3537 if(len
>0 && off
<this->size
) {
3538 end
= basic_string_wchar_const_ptr(this)+this->size
;
3539 for(p
=basic_string_wchar_const_ptr(this)+off
; p
<end
; p
++)
3540 if(MSVCP_char_traits_wchar_find(find
, len
, p
))
3541 return p
-basic_string_wchar_const_ptr(this);
3544 return MSVCP_basic_string_wchar_npos
;
3547 /* ?find_first_of@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEIABV12@I@Z */
3548 /* ?find_first_of@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBA_KAEBV12@_K@Z */
3549 /* ?find_first_of@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEIABV12@I@Z */
3550 /* ?find_first_of@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBA_KAEBV12@_K@Z */
3551 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_find_first_of
, 12)
3552 MSVCP_size_t __thiscall
MSVCP_basic_string_wchar_find_first_of(
3553 const basic_string_wchar
*this, const basic_string_wchar
*find
, MSVCP_size_t off
)
3555 return MSVCP_basic_string_wchar_find_first_of_cstr_substr(this,
3556 basic_string_wchar_const_ptr(find
), off
, find
->size
);
3559 /* ?find_first_of@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEIPB_WI@Z */
3560 /* ?find_first_of@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBA_KPEB_W_K@Z */
3561 /* ?find_first_of@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEIPBGI@Z */
3562 /* ?find_first_of@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBA_KPEBG_K@Z */
3563 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_find_first_of_cstr
, 12)
3564 MSVCP_size_t __thiscall
MSVCP_basic_string_wchar_find_first_of_cstr(
3565 const basic_string_wchar
*this, const wchar_t *find
, MSVCP_size_t off
)
3567 return MSVCP_basic_string_wchar_find_first_of_cstr_substr(
3568 this, find
, off
, MSVCP_char_traits_wchar_length(find
));
3571 /* ?find_first_of@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEI_WI@Z */
3572 /* ?find_first_of@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBA_K_W_K@Z */
3573 /* ?find_first_of@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEIGI@Z */
3574 /* ?find_first_of@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBA_KG_K@Z */
3575 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_find_first_of_ch
, 12)
3576 MSVCP_size_t __thiscall
MSVCP_basic_string_wchar_find_first_of_ch(
3577 const basic_string_wchar
*this, wchar_t ch
, MSVCP_size_t off
)
3579 return MSVCP_basic_string_wchar_find_first_of_cstr_substr(this, &ch
, off
, 1);
3582 /* ?find_first_not_of@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEIPB_WII@Z */
3583 /* ?find_first_not_of@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBA_KPEB_W_K1@Z */
3584 /* ?find_first_not_of@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEIPBGII@Z */
3585 /* ?find_first_not_of@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBA_KPEBG_K1@Z */
3586 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_find_first_not_of_cstr_substr
, 16)
3587 MSVCP_size_t __thiscall
MSVCP_basic_string_wchar_find_first_not_of_cstr_substr(
3588 const basic_string_wchar
*this, const wchar_t *find
, MSVCP_size_t off
, MSVCP_size_t len
)
3590 const wchar_t *p
, *end
;
3592 TRACE("%p %p %lu %lu\n", this, find
, off
, len
);
3594 if(off
<this->size
) {
3595 end
= basic_string_wchar_const_ptr(this)+this->size
;
3596 for(p
=basic_string_wchar_const_ptr(this)+off
; p
<end
; p
++)
3597 if(!MSVCP_char_traits_wchar_find(find
, len
, p
))
3598 return p
-basic_string_wchar_const_ptr(this);
3601 return MSVCP_basic_string_wchar_npos
;
3604 /* ?find_first_not_of@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEIABV12@I@Z */
3605 /* ?find_first_not_of@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBA_KAEBV12@_K@Z */
3606 /* ?find_first_not_of@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEIABV12@I@Z */
3607 /* ?find_first_not_of@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBA_KAEBV12@_K@Z */
3608 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_find_first_not_of
, 12)
3609 MSVCP_size_t __thiscall
MSVCP_basic_string_wchar_find_first_not_of(
3610 const basic_string_wchar
*this, const basic_string_wchar
*find
, MSVCP_size_t off
)
3612 return MSVCP_basic_string_wchar_find_first_not_of_cstr_substr(this,
3613 basic_string_wchar_const_ptr(find
), off
, find
->size
);
3616 /* ?find_first_not_of@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEIPB_WI@Z */
3617 /* ?find_first_not_of@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBA_KPEB_W_K@Z */
3618 /* ?find_first_not_of@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEIPBGI@Z */
3619 /* ?find_first_not_of@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBA_KPEBG_K@Z */
3620 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_find_first_not_of_cstr
, 12)
3621 MSVCP_size_t __thiscall
MSVCP_basic_string_wchar_find_first_not_of_cstr(
3622 const basic_string_wchar
*this, const wchar_t *find
, MSVCP_size_t off
)
3624 return MSVCP_basic_string_wchar_find_first_not_of_cstr_substr(
3625 this, find
, off
, MSVCP_char_traits_wchar_length(find
));
3628 /* ?find_first_not_of@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEI_WI@Z */
3629 /* ?find_first_not_of@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBA_K_W_K@Z */
3630 /* ?find_first_not_of@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEIGI@Z */
3631 /* ?find_first_not_of@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBA_KG_K@Z */
3632 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_find_first_not_of_ch
, 12)
3633 MSVCP_size_t __thiscall
MSVCP_basic_string_wchar_find_first_not_of_ch(
3634 const basic_string_wchar
*this, wchar_t ch
, MSVCP_size_t off
)
3636 return MSVCP_basic_string_wchar_find_first_not_of_cstr_substr(this, &ch
, off
, 1);
3639 /* ?find_last_of@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEIPB_WII@Z */
3640 /* ?find_last_of@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBA_KPEB_W_K1@Z */
3641 /* ?find_last_of@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEIPBGII@Z */
3642 /* ?find_last_of@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBA_KPEBG_K1@Z */
3643 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_find_last_of_cstr_substr
, 16)
3644 MSVCP_size_t __thiscall
MSVCP_basic_string_wchar_find_last_of_cstr_substr(
3645 const basic_string_wchar
*this, const wchar_t *find
, MSVCP_size_t off
, MSVCP_size_t len
)
3647 const wchar_t *p
, *beg
;
3649 TRACE("%p %p %lu %lu\n", this, find
, off
, len
);
3652 if(len
>0 && this->size
>0) {
3653 if(off
>= this->size
)
3656 beg
= basic_string_wchar_const_ptr(this);
3657 for(p
=beg
+off
; p
>=beg
; p
--)
3658 if(MSVCP_char_traits_wchar_find(find
, len
, p
))
3662 return MSVCP_basic_string_wchar_npos
;
3665 /* ?find_last_of@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEIABV12@I@Z */
3666 /* ?find_last_of@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBA_KAEBV12@_K@Z */
3667 /* ?find_last_of@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEIABV12@I@Z */
3668 /* ?find_last_of@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBA_KAEBV12@_K@Z */
3669 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_find_last_of
, 12)
3670 MSVCP_size_t __thiscall
MSVCP_basic_string_wchar_find_last_of(
3671 const basic_string_wchar
*this, const basic_string_wchar
*find
, MSVCP_size_t off
)
3673 return MSVCP_basic_string_wchar_find_last_of_cstr_substr(this,
3674 basic_string_wchar_const_ptr(find
), off
, find
->size
);
3677 /* ?find_last_of@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEIPB_WI@Z */
3678 /* ?find_last_of@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBA_KPEB_W_K@Z */
3679 /* ?find_last_of@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEIPBGI@Z */
3680 /* ?find_last_of@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBA_KPEBG_K@Z */
3681 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_find_last_of_cstr
, 12)
3682 MSVCP_size_t __thiscall
MSVCP_basic_string_wchar_find_last_of_cstr(
3683 const basic_string_wchar
*this, const wchar_t *find
, MSVCP_size_t off
)
3685 return MSVCP_basic_string_wchar_find_last_of_cstr_substr(
3686 this, find
, off
, MSVCP_char_traits_wchar_length(find
));
3689 /* ?find_last_of@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEI_WI@Z */
3690 /* ?find_last_of@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBA_K_W_K@Z */
3691 /* ?find_last_of@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEIGI@Z */
3692 /* ?find_last_of@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBA_KG_K@Z */
3693 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_find_last_of_ch
, 12)
3694 MSVCP_size_t __thiscall
MSVCP_basic_string_wchar_find_last_of_ch(
3695 const basic_string_wchar
*this, wchar_t ch
, MSVCP_size_t off
)
3697 return MSVCP_basic_string_wchar_find_last_of_cstr_substr(this, &ch
, off
, 1);
3700 /* ?find_last_not_of@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEIPB_WII@Z */
3701 /* ?find_last_not_of@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBA_KPEB_W_K1@Z */
3702 /* ?find_last_not_of@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEIPBGII@Z */
3703 /* ?find_last_not_of@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBA_KPEBG_K1@Z */
3704 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_find_last_not_of_cstr_substr
, 16)
3705 MSVCP_size_t __thiscall
MSVCP_basic_string_wchar_find_last_not_of_cstr_substr(
3706 const basic_string_wchar
*this, const wchar_t *find
, MSVCP_size_t off
, MSVCP_size_t len
)
3708 const wchar_t *p
, *beg
;
3710 TRACE("%p %p %lu %lu\n", this, find
, off
, len
);
3713 if(off
>= this->size
)
3716 beg
= basic_string_wchar_const_ptr(this);
3717 for(p
=beg
+off
; p
>=beg
; p
--)
3718 if(!MSVCP_char_traits_wchar_find(find
, len
, p
))
3722 return MSVCP_basic_string_wchar_npos
;
3725 /* ?find_last_not_of@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEIABV12@I@Z */
3726 /* ?find_last_not_of@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBA_KAEBV12@_K@Z */
3727 /* ?find_last_not_of@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEIABV12@I@Z */
3728 /* ?find_last_not_of@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBA_KAEBV12@_K@Z */
3729 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_find_last_not_of
, 12)
3730 MSVCP_size_t __thiscall
MSVCP_basic_string_wchar_find_last_not_of(
3731 const basic_string_wchar
*this, const basic_string_wchar
*find
, MSVCP_size_t off
)
3733 return MSVCP_basic_string_wchar_find_last_not_of_cstr_substr(this,
3734 basic_string_wchar_const_ptr(find
), off
, find
->size
);
3737 /* ?find_last_not_of@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEIPB_WI@Z */
3738 /* ?find_last_not_of@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBA_KPEB_W_K@Z */
3739 /* ?find_last_not_of@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEIPBGI@Z */
3740 /* ?find_last_not_of@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBA_KPEBG_K@Z */
3741 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_find_last_not_of_cstr
, 12)
3742 MSVCP_size_t __thiscall
MSVCP_basic_string_wchar_find_last_not_of_cstr(
3743 const basic_string_wchar
*this, const wchar_t *find
, MSVCP_size_t off
)
3745 return MSVCP_basic_string_wchar_find_last_not_of_cstr_substr(
3746 this, find
, off
, MSVCP_char_traits_wchar_length(find
));
3749 /* ?find_last_not_of@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEI_WI@Z */
3750 /* ?find_last_not_of@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBA_K_W_K@Z */
3751 /* ?find_last_not_of@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEIGI@Z */
3752 /* ?find_last_not_of@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBA_KG_K@Z */
3753 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_find_last_not_of_ch
, 12)
3754 MSVCP_size_t __thiscall
MSVCP_basic_string_wchar_find_last_not_of_ch(
3755 const basic_string_wchar
*this, wchar_t ch
, MSVCP_size_t off
)
3757 return MSVCP_basic_string_wchar_find_last_not_of_cstr_substr(this, &ch
, off
, 1);
3760 /* ?replace@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV12@IIPB_WI@Z */
3761 /* ?replace@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAAEAV12@_K0PEB_W0@Z */
3762 /* ?replace@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV12@IIPBGI@Z */
3763 /* ?replace@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAAEAV12@_K0PEBG0@Z */
3764 DEFINE_THISCALL_WRAPPER(basic_string_wchar_replace_cstr_len
, 20)
3765 basic_string_wchar
* __thiscall
basic_string_wchar_replace_cstr_len(basic_string_wchar
*this,
3766 MSVCP_size_t off
, MSVCP_size_t len
, const wchar_t *str
, MSVCP_size_t str_len
)
3768 MSVCP_size_t inside_pos
= -1;
3769 wchar_t *ptr
= basic_string_wchar_ptr(this);
3771 TRACE("%p %ld %ld %p %ld\n", this, off
, len
, str
, str_len
);
3773 if(this->size
< off
)
3774 MSVCP__String_base_Xran();
3776 if(len
> this->size
-off
)
3777 len
= this->size
-off
;
3779 if(MSVCP_basic_string_wchar_npos
-str_len
<= this->size
-len
)
3780 MSVCP__String_base_Xlen();
3782 if(basic_string_wchar_inside(this, str
))
3783 inside_pos
= str
-ptr
;
3786 basic_string_wchar_grow(this, this->size
-len
+str_len
, FALSE
);
3787 ptr
= basic_string_wchar_ptr(this);
3790 if(inside_pos
== -1) {
3791 memmove(ptr
+off
+str_len
, ptr
+off
+len
, (this->size
-off
-len
)*sizeof(wchar_t));
3792 memcpy(ptr
+off
, str
, str_len
*sizeof(wchar_t));
3793 } else if(len
>= str_len
) {
3794 memmove(ptr
+off
, ptr
+inside_pos
, str_len
*sizeof(wchar_t));
3795 memmove(ptr
+off
+str_len
, ptr
+off
+len
, (this->size
-off
-len
)*sizeof(wchar_t));
3799 memmove(ptr
+off
+str_len
, ptr
+off
+len
, (this->size
-off
-len
)*sizeof(wchar_t));
3801 if(inside_pos
< off
+len
) {
3802 size
= off
+len
-inside_pos
;
3805 memmove(ptr
+off
, ptr
+inside_pos
, size
*sizeof(wchar_t));
3811 memmove(ptr
+off
+size
, ptr
+off
+str_len
, (str_len
-size
)*sizeof(wchar_t));
3814 basic_string_wchar_eos(this, this->size
-len
+str_len
);
3818 /* ?replace@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV12@IIPB_W@Z */
3819 /* ?replace@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAAEAV12@_K0PEB_W@Z */
3820 /* ?replace@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV12@IIPBG@Z */
3821 /* ?replace@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAAEAV12@_K0PEBG@Z */
3822 DEFINE_THISCALL_WRAPPER(basic_string_wchar_replace_cstr
, 16)
3823 basic_string_wchar
* __thiscall
basic_string_wchar_replace_cstr(basic_string_wchar
*this,
3824 MSVCP_size_t off
, MSVCP_size_t len
, const wchar_t *str
)
3826 return basic_string_wchar_replace_cstr_len(this, off
, len
, str
,
3827 MSVCP_char_traits_wchar_length(str
));
3830 /* ?replace@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV12@IIABV12@II@Z */
3831 /* ?replace@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAAEAV12@_K0AEBV12@00@Z */
3832 /* ?replace@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV12@IIABV12@II@Z */
3833 /* ?replace@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAAEAV12@_K0AEBV12@00@Z */
3834 DEFINE_THISCALL_WRAPPER(basic_string_wchar_replace_substr
, 24)
3835 basic_string_wchar
* __thiscall
basic_string_wchar_replace_substr(basic_string_wchar
*this, MSVCP_size_t off
,
3836 MSVCP_size_t len
, const basic_string_wchar
*str
, MSVCP_size_t str_off
, MSVCP_size_t str_len
)
3838 if(str
->size
< str_off
)
3839 MSVCP__String_base_Xran();
3841 if(str_len
> str
->size
-str_off
)
3842 str_len
= str
->size
-str_off
;
3844 return basic_string_wchar_replace_cstr_len(this, off
, len
,
3845 basic_string_wchar_const_ptr(str
)+str_off
, str_len
);
3848 /* ?replace@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV12@IIABV12@@Z */
3849 /* ?replace@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAAEAV12@_K0AEBV12@@Z */
3850 /* ?replace@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV12@IIABV12@@Z */
3851 /* ?replace@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAAEAV12@_K0AEBV12@@Z */
3852 DEFINE_THISCALL_WRAPPER(basic_string_wchar_replace
, 16)
3853 basic_string_wchar
* __thiscall
basic_string_wchar_replace(basic_string_wchar
*this,
3854 MSVCP_size_t off
, MSVCP_size_t len
, const basic_string_wchar
*str
)
3856 return basic_string_wchar_replace_cstr_len(this, off
, len
,
3857 basic_string_wchar_const_ptr(str
), str
->size
);
3860 /* ?replace@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV12@III_W@Z */
3861 /* ?replace@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAAEAV12@_K00_W@Z */
3862 /* ?replace@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV12@IIIG@Z */
3863 /* ?replace@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAAEAV12@_K00G@Z */
3864 DEFINE_THISCALL_WRAPPER(basic_string_wchar_replace_ch
, 20)
3865 basic_string_wchar
* __thiscall
basic_string_wchar_replace_ch(basic_string_wchar
*this,
3866 MSVCP_size_t off
, MSVCP_size_t len
, MSVCP_size_t count
, wchar_t ch
)
3868 wchar_t *ptr
= basic_string_wchar_ptr(this);
3870 TRACE("%p %ld %ld %ld %c\n", this, off
, len
, count
, ch
);
3872 if(this->size
< off
)
3873 MSVCP__String_base_Xran();
3875 if(len
> this->size
-off
)
3876 len
= this->size
-off
;
3878 if(MSVCP_basic_string_wchar_npos
-count
<= this->size
-len
)
3879 MSVCP__String_base_Xlen();
3882 basic_string_wchar_grow(this, this->size
-len
+count
, FALSE
);
3883 ptr
= basic_string_wchar_ptr(this);
3886 memmove(ptr
+off
+count
, ptr
+off
+len
, (this->size
-off
-len
)*sizeof(wchar_t));
3887 MSVCP_char_traits_wchar_assignn(ptr
+off
, count
, ch
);
3888 basic_string_wchar_eos(this, this->size
-len
+count
);
3893 /* ?insert@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV12@IABV12@@Z */
3894 /* ?insert@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAAEAV12@_KAEBV12@@Z */
3895 /* ?insert@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV12@IABV12@@Z */
3896 /* ?insert@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAAEAV12@_KAEBV12@@Z */
3897 DEFINE_THISCALL_WRAPPER(basic_string_wchar_insert
, 12)
3898 basic_string_wchar
* __thiscall
basic_string_wchar_insert(basic_string_wchar
*this,
3899 MSVCP_size_t off
, const basic_string_wchar
*str
)
3901 return basic_string_wchar_replace(this, off
, 0, str
);
3904 /* ?insert@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV12@IABV12@II@Z */
3905 /* ?insert@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAAEAV12@_KAEBV12@00@Z */
3906 /* ?insert@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV12@IABV12@II@Z */
3907 /* ?insert@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAAEAV12@_KAEBV12@00@Z */
3908 DEFINE_THISCALL_WRAPPER(basic_string_wchar_insert_substr
, 20)
3909 basic_string_wchar
* __thiscall
basic_string_wchar_insert_substr(
3910 basic_string_wchar
*this, MSVCP_size_t off
, const basic_string_wchar
*str
,
3911 MSVCP_size_t str_off
, MSVCP_size_t str_count
)
3913 return basic_string_wchar_replace_substr(this, off
, 0, str
, str_off
, str_count
);
3916 /* ?insert@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV12@IPB_W@Z */
3917 /* ?insert@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAAEAV12@_KPEB_W@Z */
3918 /* ?insert@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV12@IPBG@Z */
3919 /* ?insert@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAAEAV12@_KPEBG@Z */
3920 DEFINE_THISCALL_WRAPPER(basic_string_wchar_insert_cstr
, 12)
3921 basic_string_wchar
* __thiscall
basic_string_wchar_insert_cstr(
3922 basic_string_wchar
*this, MSVCP_size_t off
, const wchar_t *str
)
3924 return basic_string_wchar_replace_cstr(this, off
, 0, str
);
3927 /* ?insert@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV12@IPB_WI@Z */
3928 /* ?insert@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAAEAV12@_KPEB_W0@Z */
3929 /* ?insert@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV12@IPBGI@Z */
3930 /* ?insert@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAAEAV12@_KPEBG0@Z */
3931 DEFINE_THISCALL_WRAPPER(basic_string_wchar_insert_cstr_len
, 16)
3932 basic_string_wchar
* __thiscall
basic_string_wchar_insert_cstr_len(basic_string_wchar
*this,
3933 MSVCP_size_t off
, const wchar_t *str
, MSVCP_size_t str_len
)
3935 return basic_string_wchar_replace_cstr_len(this, off
, 0, str
, str_len
);
3938 /* ?insert@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV12@II_W@Z */
3939 /* ?insert@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAAEAV12@_K0_W@Z */
3940 /* ?insert@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV12@IIG@Z */
3941 /* ?insert@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAAEAV12@_K0G@Z */
3942 DEFINE_THISCALL_WRAPPER(basic_string_wchar_insert_chn
, 16)
3943 basic_string_wchar
* __thiscall
basic_string_wchar_insert_chn(basic_string_wchar
*this,
3944 MSVCP_size_t off
, MSVCP_size_t count
, wchar_t ch
)
3946 return basic_string_wchar_replace_ch(this, off
, 0, count
, ch
);
3949 /* ??A?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAA_WI@Z */
3950 /* ??A?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAAEA_W_K@Z */
3951 /* ??A?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAGI@Z */
3952 /* ??A?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAAEAG_K@Z */
3953 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_operator_at
, 8)
3954 wchar_t* __thiscall
MSVCP_basic_string_wchar_operator_at(
3955 basic_string_wchar
*this, MSVCP_size_t pos
)
3957 TRACE("%p %lu\n", this, pos
);
3959 #if _MSVCP_VER >= 80
3960 if (this->size
< pos
)
3961 _invalid_parameter(NULL
, NULL
, NULL
, 0, 0);
3964 return basic_string_wchar_ptr(this)+pos
;
3967 /* ??A?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEAB_WI@Z */
3968 /* ??A?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBAAEB_W_K@Z */
3969 /* ??A?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEABGI@Z */
3970 /* ??A?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBAAEBG_K@Z */
3971 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_const_operator_at
, 8)
3972 const wchar_t* __thiscall
MSVCP_basic_string_wchar_const_operator_at(
3973 const basic_string_wchar
*this, MSVCP_size_t pos
)
3975 TRACE("%p %lu\n", this, pos
);
3977 #if _MSVCP_VER >= 80
3978 if (this->size
< pos
)
3979 _invalid_parameter(NULL
, NULL
, NULL
, 0, 0);
3982 return basic_string_wchar_const_ptr(this)+pos
;
3985 /* ??A?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAA_WU_Size_type_nosscl@01@@Z */
3986 /* ??A?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAAEA_WU_Size_type_nosscl@01@@Z */
3987 /* ??A?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAGU_Size_type_nosscl@01@@Z */
3988 /* ??A?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAAEAGU_Size_type_nosscl@01@@Z */
3989 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_operator_at_noverify
, 8)
3990 wchar_t* __thiscall
MSVCP_basic_string_wchar_operator_at_noverify(
3991 basic_string_wchar
*this, size_t_noverify pos
)
3993 TRACE("%p %lu\n", this, pos
.val
);
3994 return basic_string_wchar_ptr(this)+pos
.val
;
3997 /* ??A?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEAB_WU_Size_type_nosscl@01@@Z */
3998 /* ??A?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBAAEB_WU_Size_type_nosscl@01@@Z */
3999 /* ??A?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEABGU_Size_type_nosscl@01@@Z */
4000 /* ??A?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBAAEBGU_Size_type_nosscl@01@@Z */
4001 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_operator_const_at_noverify
, 8)
4002 const wchar_t* __thiscall
MSVCP_basic_string_wchar_operator_const_at_noverify(
4003 const basic_string_wchar
*this, size_t_noverify pos
)
4005 TRACE("%p %lu\n", this, pos
.val
);
4006 return basic_string_wchar_const_ptr(this)+pos
.val
;
4009 /* ?at@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAA_WI@Z */
4010 /* ?at@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAAEA_W_K@Z */
4011 /* ?at@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAGI@Z */
4012 /* ?at@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAAEAG_K@Z */
4013 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_at
, 8)
4014 wchar_t* __thiscall
MSVCP_basic_string_wchar_at(
4015 basic_string_wchar
*this, MSVCP_size_t pos
)
4017 TRACE("%p %lu\n", this, pos
);
4019 if(this->size
<= pos
)
4020 MSVCP__String_base_Xran();
4022 return basic_string_wchar_ptr(this)+pos
;
4025 /* ?at@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEAB_WI@Z */
4026 /* ?at@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBAAEB_W_K@Z */
4027 /* ?at@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEABGI@Z */
4028 /* ?at@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBAAEBG_K@Z */
4029 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_const_at
, 8)
4030 const wchar_t* __thiscall
MSVCP_basic_string_wchar_const_at(
4031 const basic_string_wchar
*this, MSVCP_size_t pos
)
4033 TRACE("%p %lu\n", this, pos
);
4035 if(this->size
<= pos
)
4036 MSVCP__String_base_Xran();
4038 return basic_string_wchar_const_ptr(this)+pos
;
4041 /* ?resize@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEXI_W@Z */
4042 /* ?resize@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAX_K_W@Z */
4043 /* ?resize@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEXIG@Z */
4044 /* ?resize@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAX_KG@Z */
4045 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_resize_ch
, 12)
4046 void __thiscall
MSVCP_basic_string_wchar_resize_ch(
4047 basic_string_wchar
*this, MSVCP_size_t size
, wchar_t ch
)
4049 TRACE("%p %lu %c\n", this, size
, ch
);
4051 if(size
<= this->size
)
4052 MSVCP_basic_string_wchar_erase(this, size
, this->size
);
4054 MSVCP_basic_string_wchar_append_len_ch(this, size
-this->size
, ch
);
4057 /* ?resize@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEXI@Z */
4058 /* ?resize@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAX_K@Z */
4059 /* ?resize@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEXI@Z */
4060 /* ?resize@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAX_K@Z */
4061 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_resize
, 8)
4062 void __thiscall
MSVCP_basic_string_wchar_resize(
4063 basic_string_wchar
*this, MSVCP_size_t size
)
4065 MSVCP_basic_string_wchar_resize_ch(this, size
, '\0');
4068 /* ?clear@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEXXZ */
4069 /* ?clear@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAXXZ */
4070 /* ?clear@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEXXZ */
4071 /* ?clear@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAXXZ */
4072 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_clear
, 4)
4073 void __thiscall
MSVCP_basic_string_wchar_clear(basic_string_wchar
*this)
4075 basic_string_wchar_eos(this, 0);
4078 /* _String_val class */
4079 /* ??_F?$_String_val@DV?$allocator@D@std@@@std@@QAEXXZ */
4080 /* ??_F?$_String_val@DV?$allocator@D@std@@@std@@QEAAXXZ */
4081 /* ??_F?$_String_val@GV?$allocator@G@std@@@std@@QAEXXZ */
4082 /* ??_F?$_String_val@GV?$allocator@G@std@@@std@@QEAAXXZ */
4083 /* ??_F?$_String_val@_WV?$allocator@_W@std@@@std@@QAEXXZ */
4084 /* ??_F?$_String_val@_WV?$allocator@_W@std@@@std@@QEAAXXZ */
4085 DEFINE_THISCALL_WRAPPER(_String_val_ctor
, 4)
4086 void* __thiscall
_String_val_ctor(void *this)
4088 TRACE("%p\n", this);
4092 /* ??0?$_String_val@DV?$allocator@D@std@@@std@@IAE@V?$allocator@D@1@@Z */
4093 /* ??0?$_String_val@DV?$allocator@D@std@@@std@@IEAA@V?$allocator@D@1@@Z */
4094 /* ??0?$_String_val@GV?$allocator@G@std@@@std@@IAE@V?$allocator@G@1@@Z */
4095 /* ??0?$_String_val@GV?$allocator@G@std@@@std@@IEAA@V?$allocator@G@1@@Z */
4096 /* ??0?$_String_val@_WV?$allocator@_W@std@@@std@@IAE@V?$allocator@_W@1@@Z */
4097 /* ??0?$_String_val@_WV?$allocator@_W@std@@@std@@IEAA@V?$allocator@_W@1@@Z */
4098 /* ??0?$_String_val@DV?$allocator@D@std@@@std@@QAE@ABV01@@Z */
4099 /* ??0?$_String_val@DV?$allocator@D@std@@@std@@QEAA@AEBV01@@Z */
4100 /* ??0?$_String_val@GV?$allocator@G@std@@@std@@QAE@ABV01@@Z */
4101 /* ??0?$_String_val@GV?$allocator@G@std@@@std@@QEAA@AEBV01@@Z */
4102 /* ??0?$_String_val@_WV?$allocator@_W@std@@@std@@QAE@ABV01@@Z */
4103 /* ??0?$_String_val@_WV?$allocator@_W@std@@@std@@QEAA@AEBV01@@Z */
4104 /* ??4?$_String_val@DV?$allocator@D@std@@@std@@QAEAAV01@ABV01@@Z */
4105 /* ??4?$_String_val@DV?$allocator@D@std@@@std@@QEAAAEAV01@AEBV01@@Z */
4106 /* ??4?$_String_val@GV?$allocator@G@std@@@std@@QAEAAV01@ABV01@@Z */
4107 /* ??4?$_String_val@GV?$allocator@G@std@@@std@@QEAAAEAV01@AEBV01@@Z */
4108 /* ??4?$_String_val@_WV?$allocator@_W@std@@@std@@QAEAAV01@ABV01@@Z */
4109 /* ??4?$_String_val@_WV?$allocator@_W@std@@@std@@QEAAAEAV01@AEBV01@@Z */
4110 /* ??4?$_String_val@DV?$allocator@D@std@@@std@@QAEAAV01@ABV01@@Z */
4111 DEFINE_THISCALL_WRAPPER(_String_val_null_ctor
, 8)
4112 void* __thiscall
_String_val_null_ctor(void *this, const void *misc
)
4114 TRACE("%p %p\n", this, misc
);
4118 #if _MSVCP_VER < 80 /* old iterator functions */
4122 } basic_string_char_iterator
;
4126 } basic_string_wchar_iterator
;
4128 /* ?_Pdif@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@KAIVconst_iterator@12@0@Z */
4129 /* ?_Pdif@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@CAIV?$_Ptrit@DHPBDABDPADAAD@2@0@Z */
4130 MSVCP_size_t __cdecl
basic_string_char__Pdif(basic_string_char_iterator i1
, basic_string_char_iterator i2
)
4132 TRACE("(%p %p)\n", i1
.pos
, i2
.pos
);
4133 return !i1
.pos
? 0 : i1
.pos
-i2
.pos
;
4136 /* ?erase@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE?AViterator@12@V312@0@Z */
4137 /* ?erase@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE?AV?$_Ptrit@DHPADAADPADAAD@2@V32@0@Z */
4138 DEFINE_THISCALL_WRAPPER(basic_string_char_erase_iter_range
, 16)
4139 basic_string_char_iterator
* __thiscall
basic_string_char_erase_iter_range(basic_string_char
*this,
4140 basic_string_char_iterator
*ret
, basic_string_char_iterator beg
, basic_string_char_iterator end
)
4144 ret
->pos
= basic_string_char_ptr(this);
4145 off
= basic_string_char__Pdif(beg
, *ret
);
4147 MSVCP_basic_string_char_erase(this, off
, basic_string_char__Pdif(end
, beg
));
4149 ret
->pos
= basic_string_char_ptr(this)+off
;
4153 /* ?erase@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE?AViterator@12@V312@@Z */
4154 /* ?erase@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE?AV?$_Ptrit@DHPADAADPADAAD@2@V32@@Z */
4155 DEFINE_THISCALL_WRAPPER(basic_string_char_erase_iter
, 12)
4156 basic_string_char_iterator
* __thiscall
basic_string_char_erase_iter(basic_string_char
*this,
4157 basic_string_char_iterator
*ret
, basic_string_char_iterator pos
)
4161 ret
->pos
= basic_string_char_ptr(this);
4162 off
= basic_string_char__Pdif(pos
, *ret
);
4164 MSVCP_basic_string_char_erase(this, off
, 1);
4166 ret
->pos
= basic_string_char_ptr(this)+off
;
4170 /* ?assign@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@Vconst_iterator@12@0@Z */
4171 /* ?assign@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@V?$_Ptrit@DHPBDABDPADAAD@2@0@Z */
4172 DEFINE_THISCALL_WRAPPER(basic_string_char_assign_iter
, 12)
4173 basic_string_char
* __thiscall
basic_string_char_assign_iter(basic_string_char
*this,
4174 basic_string_char_iterator beg
, basic_string_char_iterator end
)
4176 return MSVCP_basic_string_char_assign_ptr_ptr(this, beg
.pos
, end
.pos
);
4179 /* ??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@Vconst_iterator@01@0@Z */
4180 /* ??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@V?$_Ptrit@DHPBDABDPADAAD@1@0@Z */
4181 DEFINE_THISCALL_WRAPPER(basic_string_char_ctor_iter
, 12)
4182 basic_string_char
* __thiscall
basic_string_char_ctor_iter(basic_string_char
*this,
4183 basic_string_char_iterator beg
, basic_string_char_iterator end
)
4185 return MSVCP_basic_string_char_ctor_cstr_len(this, beg
.pos
, end
.pos
-beg
.pos
);
4188 /* ?append@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@Vconst_iterator@12@0@Z */
4189 /* ?append@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@V?$_Ptrit@DHPBDABDPADAAD@2@0@Z */
4190 DEFINE_THISCALL_WRAPPER(basic_string_char_append_iter
, 12)
4191 basic_string_char
* __thiscall
basic_string_char_append_iter(basic_string_char
*this,
4192 basic_string_char_iterator beg
, basic_string_char_iterator end
)
4194 return basic_string_char_replace_cstr_len(this, this->size
, 0, beg
.pos
, end
.pos
-beg
.pos
);
4197 /* ?replace@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@Viterator@12@0Vconst_iterator@12@1@Z */
4198 /* ?replace@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@V?$_Ptrit@DHPADAADPADAAD@2@0V?$_Ptrit@DHPBDABDPADAAD@2@1@Z */
4199 DEFINE_THISCALL_WRAPPER(basic_string_char_replace_iter_iter
, 20)
4200 basic_string_char
* __thiscall
basic_string_char_replace_iter_iter(basic_string_char
*this,
4201 basic_string_char_iterator beg
, basic_string_char_iterator end
,
4202 basic_string_char_iterator rbeg
, basic_string_char_iterator rend
)
4204 return basic_string_char_replace_cstr_len(this, beg
.pos
-basic_string_char_ptr(this),
4205 end
.pos
-beg
.pos
, rbeg
.pos
, rend
.pos
-rbeg
.pos
);
4208 /* ?replace@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@Viterator@12@0ABV12@@Z */
4209 /* ?replace@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@V?$_Ptrit@DHPADAADPADAAD@2@0ABV12@@Z */
4210 DEFINE_THISCALL_WRAPPER(basic_string_char_replace_iter_bstr
, 16)
4211 basic_string_char
* __thiscall
basic_string_char_replace_iter_bstr(basic_string_char
*this,
4212 basic_string_char_iterator beg
, basic_string_char_iterator end
, const basic_string_char
*str
)
4214 return basic_string_char_replace_cstr_len(this, beg
.pos
-basic_string_char_ptr(this),
4215 end
.pos
-beg
.pos
, basic_string_char_const_ptr(str
), str
->size
);
4218 /* ?replace@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@Viterator@12@0ID@Z */
4219 /* ?replace@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@V?$_Ptrit@DHPADAADPADAAD@2@0ID@Z */
4220 DEFINE_THISCALL_WRAPPER(basic_string_char_replace_iter_ch
, 20)
4221 basic_string_char
* __thiscall
basic_string_char_replace_iter_ch(basic_string_char
*this,
4222 basic_string_char_iterator beg
, basic_string_char_iterator end
, MSVCP_size_t count
, char ch
)
4224 /* TODO: add more efficient implementation */
4225 MSVCP_size_t off
= beg
.pos
-basic_string_char_ptr(this);
4227 basic_string_char_replace_cstr_len(this, off
, end
.pos
-beg
.pos
, NULL
, 0);
4229 basic_string_char_replace_cstr_len(this, off
, 0, &ch
, 1);
4233 static basic_string_char
* basic_string_char_replace_iter_ptr_ptr(basic_string_char
*this,
4234 basic_string_char_iterator beg
, basic_string_char_iterator end
,
4235 const char *res_beg
, const char *res_end
)
4237 basic_string_char_iterator begin
= { basic_string_char_ptr(this) };
4238 return basic_string_char_replace_cstr_len(this, basic_string_char__Pdif(beg
, begin
),
4239 basic_string_char__Pdif(end
, beg
), res_beg
, res_end
-res_beg
);
4242 /* ?replace@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@Viterator@12@0PBD1@Z */
4243 /* ?replace@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@V?$_Ptrit@DHPADAADPADAAD@2@0PBD1@Z */
4244 DEFINE_THISCALL_WRAPPER(basic_string_char_replace_iter_beg_end
, 20)
4245 basic_string_char
* __thiscall
basic_string_char_replace_iter_beg_end(basic_string_char
*this,
4246 basic_string_char_iterator beg
, basic_string_char_iterator end
, const char *rbeg
, const char *rend
)
4248 return basic_string_char_replace_cstr_len(this, beg
.pos
-basic_string_char_ptr(this),
4249 end
.pos
-beg
.pos
, rbeg
, rend
-rbeg
);
4252 /* ?replace@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@Viterator@12@0PBD@Z */
4253 /* ?replace@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@V?$_Ptrit@DHPADAADPADAAD@2@0PBD@Z */
4254 DEFINE_THISCALL_WRAPPER(basic_string_char_replace_iter_cstr
, 16)
4255 basic_string_char
* __thiscall
basic_string_char_replace_iter_cstr(basic_string_char
*this,
4256 basic_string_char_iterator beg
, basic_string_char_iterator end
, const char *str
)
4258 return basic_string_char_replace_cstr_len(this, beg
.pos
-basic_string_char_ptr(this),
4259 end
.pos
-beg
.pos
, str
, strlen(str
));
4262 /* ?replace@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@Viterator@12@0PBDI@Z */
4263 /* ?replace@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@V?$_Ptrit@DHPADAADPADAAD@2@0PBDI@Z */
4264 DEFINE_THISCALL_WRAPPER(basic_string_char_replace_iter_cstr_len
, 20)
4265 basic_string_char
* __thiscall
basic_string_char_replace_iter_cstr_len(basic_string_char
*this,
4266 basic_string_char_iterator beg
, basic_string_char_iterator end
, const char *str
, MSVCP_size_t len
)
4268 return basic_string_char_replace_cstr_len(this, beg
.pos
-basic_string_char_ptr(this),
4269 end
.pos
-beg
.pos
, str
, len
);
4272 /* ?insert@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEXViterator@12@ID@Z */
4273 /* ?insert@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEXV?$_Ptrit@DHPADAADPADAAD@2@ID@Z */
4274 DEFINE_THISCALL_WRAPPER(basic_string_char_insert_iter_chn
, 16)
4275 void __thiscall
basic_string_char_insert_iter_chn(basic_string_char
*this,
4276 basic_string_char_iterator where
, MSVCP_size_t count
, char ch
)
4278 basic_string_char_iterator iter
= { basic_string_char_ptr(this) };
4279 MSVCP_size_t off
= basic_string_char__Pdif(where
, iter
);
4281 basic_string_char_insert_chn(this, off
, count
, ch
);
4284 /* ?insert@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE?AViterator@12@V312@D@Z */
4285 /* ?insert@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE?AV?$_Ptrit@DHPADAADPADAAD@2@V32@D@Z */
4286 DEFINE_THISCALL_WRAPPER(basic_string_char_insert_iter_ch
, 16)
4287 basic_string_char_iterator
* __thiscall
basic_string_char_insert_iter_ch(basic_string_char
*this,
4288 basic_string_char_iterator
*ret
, basic_string_char_iterator where
, char ch
)
4292 ret
->pos
= basic_string_char_ptr(this);
4293 off
= basic_string_char__Pdif(where
, *ret
);
4295 basic_string_char_insert_chn(this, off
, 1, ch
);
4296 ret
->pos
= basic_string_char_ptr(this)+off
;
4300 /* ?insert@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE?AViterator@12@V312@@Z */
4301 /* ?insert@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE?AV?$_Ptrit@DHPADAADPADAAD@2@V32@@Z */
4302 DEFINE_THISCALL_WRAPPER(basic_string_char_insert_iter_null
, 12)
4303 basic_string_char_iterator
* __thiscall
basic_string_char_insert_iter_null(basic_string_char
*this,
4304 basic_string_char_iterator
*ret
, basic_string_char_iterator where
)
4306 return basic_string_char_insert_iter_ch(this, ret
, where
, 0);
4309 /* ?insert@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEXViterator@12@PBD1@Z */
4310 DEFINE_THISCALL_WRAPPER(basic_string_char_insert_iter_ptr_ptr
, 16)
4311 void __thiscall
basic_string_char_insert_iter_ptr_ptr(basic_string_char
*this,
4312 basic_string_char_iterator where
, const char *beg
, const char *end
)
4314 basic_string_char_replace_iter_ptr_ptr(this, where
, where
, beg
, end
);
4317 /* ?insert@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEXViterator@12@PBD1@Z */
4318 DEFINE_THISCALL_WRAPPER(basic_string_char_insert_iter_beg_end
, 16)
4319 void __thiscall
basic_string_char_insert_iter_beg_end(basic_string_char
*this,
4320 basic_string_char_iterator where
, basic_string_char_iterator beg
, basic_string_char_iterator end
)
4322 basic_string_char_replace_iter_ptr_ptr(this, where
, where
, beg
.pos
, end
.pos
);
4325 /* ?begin@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE?AViterator@12@XZ */
4326 /* ?begin@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBE?AVconst_iterator@12@XZ */
4327 /* ?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 */
4328 /* ?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 */
4329 /* ?begin@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE?AV?$_Ptrit@DHPADAADPADAAD@2@XZ */
4330 /* ?begin@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBE?AV?$_Ptrit@DHPBDABDPADAAD@2@XZ */
4331 /* ?rend@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE?AV?$reverse_iterator@V?$_Ptrit@DHPADAADPADAAD@std@@@2@XZ */
4332 /* ?rend@?$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_begin
, 8)
4334 basic_string_char_iterator
* __thiscall
basic_string_char_begin(
4335 basic_string_char
*this, basic_string_char_iterator
*ret
)
4337 ret
->pos
= basic_string_char_ptr(this);
4341 /* ?end@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE?AViterator@12@XZ */
4342 /* ?end@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBE?AVconst_iterator@12@XZ */
4343 /* ?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 */
4344 /* ?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 */
4345 /* ?end@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE?AV?$_Ptrit@DHPADAADPADAAD@2@XZ */
4346 /* ?end@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBE?AV?$_Ptrit@DHPBDABDPADAAD@2@XZ */
4347 /* ?rbegin@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE?AV?$reverse_iterator@V?$_Ptrit@DHPADAADPADAAD@std@@@2@XZ */
4348 /* ?rbegin@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBE?AV?$reverse_iterator@V?$_Ptrit@DHPBDABDPADAAD@std@@@2@XZ */
4349 DEFINE_THISCALL_WRAPPER(basic_string_char_end
, 8)
4350 basic_string_char_iterator
* __thiscall
basic_string_char_end(
4351 basic_string_char
*this, basic_string_char_iterator
*ret
)
4353 ret
->pos
= basic_string_char_ptr(this)+this->size
;
4357 /* ?_Pdif@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@KAIVconst_iterator@12@0@Z */
4358 /* ?_Pdif@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@KAIVconst_iterator@12@0@Z */
4359 /* ?_Pdif@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@CAIV?$_Ptrit@_WHPB_WAB_WPA_WAA_W@2@0@Z */
4360 /* ?_Pdif@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@CAIV?$_Ptrit@GHPBGABGPAGAAG@2@0@Z */
4361 MSVCP_size_t __cdecl
basic_string_wchar__Pdif(basic_string_wchar_iterator i1
, basic_string_wchar_iterator i2
)
4363 TRACE("(%p %p)\n", i1
.pos
, i2
.pos
);
4364 return !i1
.pos
? 0 : i1
.pos
-i2
.pos
;
4367 /* ?erase@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE?AViterator@12@V312@0@Z */
4368 /* ?erase@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAE?AViterator@12@V312@0@Z */
4369 /* ?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 */
4370 /* ?erase@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAE?AV?$_Ptrit@GHPAGAAGPAGAAG@2@V32@0@Z */
4371 DEFINE_THISCALL_WRAPPER(basic_string_wchar_erase_iter_range
, 16)
4372 basic_string_wchar_iterator
* __thiscall
basic_string_wchar_erase_iter_range(basic_string_wchar
*this,
4373 basic_string_wchar_iterator
*ret
, basic_string_wchar_iterator beg
, basic_string_wchar_iterator end
)
4377 ret
->pos
= basic_string_wchar_ptr(this);
4378 off
= basic_string_wchar__Pdif(beg
, *ret
);
4380 MSVCP_basic_string_wchar_erase(this, off
, basic_string_wchar__Pdif(end
, beg
));
4382 ret
->pos
= basic_string_wchar_ptr(this)+off
;
4386 /* ?erase@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE?AViterator@12@V312@@Z */
4387 /* ?erase@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAE?AViterator@12@V312@@Z */
4388 /* ?erase@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE?AV?$_Ptrit@_WHPA_WAA_WPA_WAA_W@2@V32@@Z */
4389 /* ?erase@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAE?AV?$_Ptrit@GHPAGAAGPAGAAG@2@V32@@Z */
4390 DEFINE_THISCALL_WRAPPER(basic_string_wchar_erase_iter
, 12)
4391 basic_string_wchar_iterator
* __thiscall
basic_string_wchar_erase_iter(basic_string_wchar
*this,
4392 basic_string_wchar_iterator
*ret
, basic_string_wchar_iterator pos
)
4396 ret
->pos
= basic_string_wchar_ptr(this);
4397 off
= basic_string_wchar__Pdif(pos
, *ret
);
4399 MSVCP_basic_string_wchar_erase(this, off
, 1);
4401 ret
->pos
= basic_string_wchar_ptr(this)+off
;
4405 /* ?assign@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV12@Vconst_iterator@12@0@Z */
4406 /* ?assign@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV12@Vconst_iterator@12@0@Z */
4407 /* ?assign@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV12@V?$_Ptrit@_WHPB_WAB_WPA_WAA_W@2@0@Z */
4408 /* ?assign@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV12@V?$_Ptrit@GHPBGABGPAGAAG@2@0@Z */
4409 DEFINE_THISCALL_WRAPPER(basic_string_wchar_assign_iter
, 12)
4410 basic_string_wchar
* __thiscall
basic_string_wchar_assign_iter(basic_string_wchar
*this,
4411 basic_string_wchar_iterator beg
, basic_string_wchar_iterator end
)
4413 return MSVCP_basic_string_wchar_assign_ptr_ptr(this, beg
.pos
, end
.pos
);
4416 /* ??0?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE@Vconst_iterator@01@0@Z */
4417 /* ??0?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAE@Vconst_iterator@01@0@Z */
4418 /* ??0?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE@V?$_Ptrit@_WHPB_WAB_WPA_WAA_W@1@0@Z */
4419 /* ??0?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAE@V?$_Ptrit@GHPBGABGPAGAAG@1@0@Z */
4420 DEFINE_THISCALL_WRAPPER(basic_string_wchar_ctor_iter
, 12)
4421 basic_string_wchar
* __thiscall
basic_string_wchar_ctor_iter(basic_string_wchar
*this,
4422 basic_string_wchar_iterator beg
, basic_string_wchar_iterator end
)
4424 return MSVCP_basic_string_wchar_ctor_cstr_len(this, beg
.pos
, end
.pos
-beg
.pos
);
4427 /* ?append@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV12@Vconst_iterator@12@0@Z */
4428 /* ?append@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV12@Vconst_iterator@12@0@Z */
4429 /* ?append@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV12@V?$_Ptrit@_WHPB_WAB_WPA_WAA_W@2@0@Z */
4430 /* ?append@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV12@V?$_Ptrit@GHPBGABGPAGAAG@2@0@Z */
4431 DEFINE_THISCALL_WRAPPER(basic_string_wchar_append_iter
, 12)
4432 basic_string_wchar
* __thiscall
basic_string_wchar_append_iter(basic_string_wchar
*this,
4433 basic_string_wchar_iterator beg
, basic_string_wchar_iterator end
)
4435 return basic_string_wchar_replace_cstr_len(this, this->size
, 0, beg
.pos
, end
.pos
-beg
.pos
);
4438 /* ?replace@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV12@Viterator@12@0Vconst_iterator@12@1@Z */
4439 /* ?replace@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV12@Viterator@12@0Vconst_iterator@12@1@Z */
4440 /* ?replace@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV12@V?$_Ptrit@GHPAGAAGPAGAAG@2@0V?$_Ptrit@GHPBGABGPAGAAG@2@1@Z */
4441 /* ?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 */
4442 DEFINE_THISCALL_WRAPPER(basic_string_wchar_replace_iter_iter
, 20)
4443 basic_string_wchar
* __thiscall
basic_string_wchar_replace_iter_iter(basic_string_wchar
*this,
4444 basic_string_wchar_iterator beg
, basic_string_wchar_iterator end
,
4445 basic_string_wchar_iterator rbeg
, basic_string_wchar_iterator rend
)
4447 return basic_string_wchar_replace_cstr_len(this, beg
.pos
-basic_string_wchar_ptr(this),
4448 end
.pos
-beg
.pos
, rbeg
.pos
, rend
.pos
-rbeg
.pos
);
4451 /* ?replace@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV12@Viterator@12@0ABV12@@Z */
4452 /* ?replace@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV12@Viterator@12@0ABV12@@Z */
4453 /* ?replace@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV12@V?$_Ptrit@GHPAGAAGPAGAAG@2@0ABV12@@Z */
4454 /* ?replace@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV12@V?$_Ptrit@_WHPA_WAA_WPA_WAA_W@2@0ABV12@@Z */
4455 DEFINE_THISCALL_WRAPPER(basic_string_wchar_replace_iter_bstr
, 16)
4456 basic_string_wchar
* __thiscall
basic_string_wchar_replace_iter_bstr(basic_string_wchar
*this,
4457 basic_string_wchar_iterator beg
, basic_string_wchar_iterator end
, basic_string_wchar
*str
)
4459 return basic_string_wchar_replace_cstr_len(this, beg
.pos
-basic_string_wchar_ptr(this),
4460 end
.pos
-beg
.pos
, basic_string_wchar_ptr(str
), str
->size
);
4463 /* ?replace@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV12@Viterator@12@0IG@Z */
4464 /* ?replace@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV12@Viterator@12@0I_W@Z */
4465 /* ?replace@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV12@V?$_Ptrit@GHPAGAAGPAGAAG@2@0IG@Z */
4466 /* ?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 */
4467 DEFINE_THISCALL_WRAPPER(basic_string_wchar_replace_iter_ch
, 20)
4468 basic_string_wchar
* __thiscall
basic_string_wchar_replace_iter_ch(basic_string_wchar
*this,
4469 basic_string_wchar_iterator beg
, basic_string_wchar_iterator end
, MSVCP_size_t count
, wchar_t ch
)
4471 /* TODO: add more efficient implementation */
4472 MSVCP_size_t off
= beg
.pos
-basic_string_wchar_ptr(this);
4474 basic_string_wchar_replace_cstr_len(this, off
, end
.pos
-beg
.pos
, NULL
, 0);
4476 basic_string_wchar_replace_cstr_len(this, off
, 0, &ch
, 1);
4480 static basic_string_wchar
* basic_string_wchar_replace_iter_ptr_ptr(basic_string_wchar
*this,
4481 basic_string_wchar_iterator beg
, basic_string_wchar_iterator end
,
4482 const wchar_t *res_beg
, const wchar_t *res_end
)
4484 basic_string_wchar_iterator begin
= { basic_string_wchar_ptr(this) };
4485 return basic_string_wchar_replace_cstr_len(this, basic_string_wchar__Pdif(beg
, begin
),
4486 basic_string_wchar__Pdif(end
, beg
), res_beg
, res_end
-res_beg
);
4489 /* ?replace@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV12@Viterator@12@0PBG1@Z */
4490 /* ?replace@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV12@Viterator@12@0PB_W1@Z */
4491 /* ?replace@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV12@V?$_Ptrit@GHPAGAAGPAGAAG@2@0PBG1@Z */
4492 /* ?replace@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV12@V?$_Ptrit@_WHPA_WAA_WPA_WAA_W@2@0PB_W1@Z */
4493 DEFINE_THISCALL_WRAPPER(basic_string_wchar_replace_iter_beg_end
, 20)
4494 basic_string_wchar
* __thiscall
basic_string_wchar_replace_iter_beg_end(basic_string_wchar
*this,
4495 basic_string_wchar_iterator beg
, basic_string_wchar_iterator end
,
4496 const wchar_t *rbeg
, const wchar_t *rend
)
4498 return basic_string_wchar_replace_cstr_len(this, beg
.pos
-basic_string_wchar_ptr(this),
4499 end
.pos
-beg
.pos
, rbeg
, rend
-rbeg
);
4502 /* ?replace@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV12@Viterator@12@0PBG@Z */
4503 /* ?replace@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV12@Viterator@12@0PB_W@Z */
4504 /* ?replace@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV12@V?$_Ptrit@GHPAGAAGPAGAAG@2@0PBG@Z */
4505 /* ?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 */
4506 DEFINE_THISCALL_WRAPPER(basic_string_wchar_replace_iter_cstr
, 16)
4507 basic_string_wchar
* __thiscall
basic_string_wchar_replace_iter_cstr(basic_string_wchar
*this,
4508 basic_string_wchar_iterator beg
, basic_string_wchar_iterator end
, const wchar_t *str
)
4510 return basic_string_wchar_replace_cstr_len(this, beg
.pos
-basic_string_wchar_ptr(this),
4511 end
.pos
-beg
.pos
, str
, wcslen(str
));
4514 /* ?replace@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV12@Viterator@12@0PBGI@Z */
4515 /* ?replace@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV12@Viterator@12@0PB_WI@Z */
4516 /* ?replace@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV12@V?$_Ptrit@GHPAGAAGPAGAAG@2@0PBGI@Z */
4517 /* ?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 */
4518 DEFINE_THISCALL_WRAPPER(basic_string_wchar_replace_iter_cstr_len
, 20)
4519 basic_string_wchar
* __thiscall
basic_string_wchar_replace_iter_cstr_len(basic_string_wchar
*this,
4520 basic_string_wchar_iterator beg
, basic_string_wchar_iterator end
,
4521 const wchar_t *str
, MSVCP_size_t len
)
4523 return basic_string_wchar_replace_cstr_len(this, beg
.pos
-basic_string_wchar_ptr(this),
4524 end
.pos
-beg
.pos
, str
, len
);
4527 /* ?insert@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEXViterator@12@I_W@Z */
4528 /* ?insert@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEXViterator@12@IG@Z */
4529 /* ?insert@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEXV?$_Ptrit@_WHPA_WAA_WPA_WAA_W@2@I_W@Z */
4530 /* ?insert@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEXV?$_Ptrit@GHPAGAAGPAGAAG@2@IG@Z */
4531 DEFINE_THISCALL_WRAPPER(basic_string_wchar_insert_iter_chn
, 16)
4532 void __thiscall
basic_string_wchar_insert_iter_chn(basic_string_wchar
*this,
4533 basic_string_wchar_iterator where
, MSVCP_size_t count
, wchar_t ch
)
4535 basic_string_wchar_iterator iter
= { basic_string_wchar_ptr(this) };
4536 MSVCP_size_t off
= basic_string_wchar__Pdif(where
, iter
);
4538 basic_string_wchar_insert_chn(this, off
, count
, ch
);
4541 /* ?insert@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE?AViterator@12@V312@_W@Z */
4542 /* ?insert@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAE?AViterator@12@V312@G@Z */
4543 /* ?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 */
4544 /* ?insert@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAE?AV?$_Ptrit@GHPAGAAGPAGAAG@2@V32@G@Z */
4545 DEFINE_THISCALL_WRAPPER(basic_string_wchar_insert_iter_ch
, 16)
4546 basic_string_wchar_iterator
* __thiscall
basic_string_wchar_insert_iter_ch(basic_string_wchar
*this,
4547 basic_string_wchar_iterator
*ret
, basic_string_wchar_iterator where
, wchar_t ch
)
4551 ret
->pos
= basic_string_wchar_ptr(this);
4552 off
= basic_string_wchar__Pdif(where
, *ret
);
4554 basic_string_wchar_insert_chn(this, off
, 1, ch
);
4555 ret
->pos
= basic_string_wchar_ptr(this)+off
;
4559 /* ?insert@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE?AViterator@12@V312@@Z */
4560 /* ?insert@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAE?AViterator@12@V312@@Z */
4561 /* ?insert@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE?AV?$_Ptrit@_WHPA_WAA_WPA_WAA_W@2@V32@@Z */
4562 /* ?insert@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAE?AV?$_Ptrit@GHPAGAAGPAGAAG@2@V32@@Z */
4563 DEFINE_THISCALL_WRAPPER(basic_string_wchar_insert_iter_null
, 12)
4564 basic_string_wchar_iterator
* __thiscall
basic_string_wchar_insert_iter_null(basic_string_wchar
*this,
4565 basic_string_wchar_iterator
*ret
, basic_string_wchar_iterator where
)
4567 return basic_string_wchar_insert_iter_ch(this, ret
, where
, 0);
4570 /* ?insert@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEXViterator@12@PB_W1@Z */
4571 /* ?insert@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEXViterator@12@PBG1@Z */
4572 /* ?insert@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEXV?$_Ptrit@_WHPA_WAA_WPA_WAA_W@2@PB_W1@Z */
4573 /* ?insert@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEXV?$_Ptrit@GHPAGAAGPAGAAG@2@PBG1@Z */
4574 DEFINE_THISCALL_WRAPPER(basic_string_wchar_insert_iter_ptr_ptr
, 16)
4575 void __thiscall
basic_string_wchar_insert_iter_ptr_ptr(basic_string_wchar
*this,
4576 basic_string_wchar_iterator where
, const wchar_t *beg
, const wchar_t *end
)
4578 basic_string_wchar_replace_iter_ptr_ptr(this, where
, where
, beg
, end
);
4581 /* ?insert@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEXViterator@12@Vconst_iterator@12@1@Z */
4582 /* ?insert@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEXViterator@12@Vconst_iterator@12@1@Z */
4583 /* ?insert@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEXViterator@12@Vconst_iterator@12@1@Z */
4584 /* ?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 */
4585 /* ?insert@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEXV?$_Ptrit@GHPAGAAGPAGAAG@2@V?$_Ptrit@GHPBGABGPAGAAG@2@1@Z */
4586 DEFINE_THISCALL_WRAPPER(basic_string_wchar_insert_iter_beg_end
, 16)
4587 void __thiscall
basic_string_wchar_insert_iter_beg_end(basic_string_wchar
*this,
4588 basic_string_wchar_iterator where
, basic_string_wchar_iterator beg
, basic_string_wchar_iterator end
)
4590 basic_string_wchar_replace_iter_ptr_ptr(this, where
, where
, beg
.pos
, end
.pos
);
4593 /* ?begin@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAE?AViterator@12@XZ */
4594 /* ?begin@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBE?AVconst_iterator@12@XZ */
4595 /* ?begin@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE?AViterator@12@XZ */
4596 /* ?begin@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBE?AVconst_iterator@12@XZ */
4597 /* ?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 */
4598 /* ?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 */
4599 /* ?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 */
4600 /* ?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 */
4601 /* ?begin@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAE?AV?$_Ptrit@GHPAGAAGPAGAAG@2@XZ */
4602 /* ?begin@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBE?AV?$_Ptrit@GHPBGABGPAGAAG@2@XZ */
4603 /* ?begin@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE?AV?$_Ptrit@_WHPA_WAA_WPA_WAA_W@2@XZ */
4604 /* ?begin@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBE?AV?$_Ptrit@_WHPB_WAB_WPA_WAA_W@2@XZ */
4605 /* ?rend@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAE?AV?$reverse_iterator@V?$_Ptrit@GHPAGAAGPAGAAG@std@@@2@XZ */
4606 /* ?rend@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBE?AV?$reverse_iterator@V?$_Ptrit@GHPBGABGPAGAAG@std@@@2@XZ */
4607 /* ?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 */
4608 /* ?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 */
4609 DEFINE_THISCALL_WRAPPER(basic_string_wchar_begin
, 8)
4610 basic_string_wchar_iterator
* __thiscall
basic_string_wchar_begin(
4611 basic_string_wchar
*this, basic_string_wchar_iterator
*ret
)
4613 ret
->pos
= basic_string_wchar_ptr(this);
4617 /* ?end@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAE?AViterator@12@XZ */
4618 /* ?end@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBE?AVconst_iterator@12@XZ */
4619 /* ?end@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE?AViterator@12@XZ */
4620 /* ?end@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBE?AVconst_iterator@12@XZ */
4621 /* ?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 */
4622 /* ?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 */
4623 /* ?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 */
4624 /* ?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 */
4625 /* ?end@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAE?AV?$_Ptrit@GHPAGAAGPAGAAG@2@XZ */
4626 /* ?end@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBE?AV?$_Ptrit@GHPBGABGPAGAAG@2@XZ */
4627 /* ?end@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE?AV?$_Ptrit@_WHPA_WAA_WPA_WAA_W@2@XZ */
4628 /* ?end@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBE?AV?$_Ptrit@_WHPB_WAB_WPA_WAA_W@2@XZ */
4629 /* ?rbegin@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAE?AV?$reverse_iterator@V?$_Ptrit@GHPAGAAGPAGAAG@std@@@2@XZ */
4630 /* ?rbegin@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBE?AV?$reverse_iterator@V?$_Ptrit@GHPBGABGPAGAAG@std@@@2@XZ */
4631 /* ?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 */
4632 /* ?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 */
4633 DEFINE_THISCALL_WRAPPER(basic_string_wchar_end
, 8)
4634 basic_string_wchar_iterator
* __thiscall
basic_string_wchar_end(
4635 basic_string_wchar
*this, basic_string_wchar_iterator
*ret
)
4637 ret
->pos
= basic_string_wchar_ptr(this)+this->size
;
4641 #else /* _MSVCP_VER >= 80, new iterator functions */
4643 /* _String_iterator<char> and _String_const_iterator<char> class */
4645 basic_string_char
*bstr
;
4647 } String_iterator_char
;
4650 #if _MSVCP_VER == 80
4653 const basic_string_char
*bstr
;
4655 } String_reverse_iterator_char
;
4658 basic_string_wchar
*bstr
;
4660 } String_iterator_wchar
;
4663 #if _MSVCP_VER == 80
4666 const basic_string_wchar
*bstr
;
4668 } String_reverse_iterator_wchar
;
4670 /* ?_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 */
4671 /* ?_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 */
4672 MSVCP_size_t __cdecl
MSVCP_basic_string_char_Pdif(String_iterator_char i1
, String_iterator_char i2
)
4674 TRACE("(%p %p) (%p %p)\n", i1
.bstr
, i1
.pos
, i2
.bstr
, i2
.pos
);
4676 if((!i1
.bstr
&& i1
.pos
) || i1
.bstr
!=i2
.bstr
) {
4677 _invalid_parameter(NULL
, NULL
, NULL
, 0, 0);
4681 return !i1
.pos
? 0 : i1
.pos
-i2
.pos
;
4684 /* ?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 */
4685 /* ?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 */
4686 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_erase_iter_range
, 24)
4687 String_iterator_char
* __thiscall
MSVCP_basic_string_char_erase_iter_range(basic_string_char
*this,
4688 String_iterator_char
*ret
, String_iterator_char beg
, String_iterator_char end
)
4693 ret
->pos
= basic_string_char_ptr(this);
4694 off
= MSVCP_basic_string_char_Pdif(beg
, *ret
);
4696 MSVCP_basic_string_char_erase(this, off
, MSVCP_basic_string_char_Pdif(end
, beg
));
4699 ret
->pos
= basic_string_char_ptr(this)+off
;
4703 /* ?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 */
4704 /* ?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 */
4705 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_erase_iter
, 16)
4706 String_iterator_char
* __thiscall
MSVCP_basic_string_char_erase_iter(basic_string_char
*this,
4707 String_iterator_char
*ret
, String_iterator_char pos
)
4712 ret
->pos
= basic_string_char_ptr(this);
4713 off
= MSVCP_basic_string_char_Pdif(pos
, *ret
);
4715 MSVCP_basic_string_char_erase(this, off
, 1);
4718 ret
->pos
= basic_string_char_ptr(this)+off
;
4722 /* ?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 */
4723 /* ?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 */
4724 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_assign_iter
, 20)
4725 basic_string_char
* __thiscall
MSVCP_basic_string_char_assign_iter(basic_string_char
*this,
4726 String_iterator_char beg
, String_iterator_char end
)
4728 return MSVCP_basic_string_char_assign_ptr_ptr(this, beg
.pos
, end
.pos
);
4731 /* ??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 */
4732 /* ??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 */
4733 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_ctor_iter
, 20)
4734 basic_string_char
* __thiscall
MSVCP_basic_string_char_ctor_iter(basic_string_char
*this,
4735 String_iterator_char beg
, String_iterator_char end
)
4737 return MSVCP_basic_string_char_ctor_cstr_len(this, beg
.pos
, end
.pos
-beg
.pos
);
4740 /* ?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 */
4741 /* ?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 */
4742 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_append_iter
, 20)
4743 basic_string_char
* __thiscall
MSVCP_basic_string_char_append_iter(
4744 basic_string_char
*this, String_iterator_char beg
, String_iterator_char end
)
4746 return MSVCP_basic_string_char_append_cstr_len(this, beg
.pos
, end
.pos
-beg
.pos
);
4749 /* ?replace@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@V?$_String_const_iterator@DU?$char_traits@D@std@@V?$allocator@D@2@@2@000@Z */
4750 /* ?replace@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAAEAV12@V?$_String_const_iterator@DU?$char_traits@D@std@@V?$allocator@D@2@@2@000@Z */
4751 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_replace_iter_iter
, 36)
4752 basic_string_char
* __thiscall
MSVCP_basic_string_char_replace_iter_iter(basic_string_char
*this,
4753 String_iterator_char beg
, String_iterator_char end
,
4754 String_iterator_char res_beg
, String_iterator_char res_end
)
4756 String_iterator_char begin
= { this, basic_string_char_ptr(this) };
4757 return basic_string_char_replace_cstr_len(this,
4758 MSVCP_basic_string_char_Pdif(beg
, begin
), MSVCP_basic_string_char_Pdif(end
, beg
),
4759 res_beg
.pos
, MSVCP_basic_string_char_Pdif(res_end
, res_beg
));
4762 /* ?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 */
4763 /* ?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 */
4764 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_replace_iter_bstr
, 24)
4765 basic_string_char
* __thiscall
MSVCP_basic_string_char_replace_iter_bstr(basic_string_char
*this,
4766 String_iterator_char beg
, String_iterator_char end
, const basic_string_char
*str
)
4768 String_iterator_char begin
= { this, basic_string_char_ptr(this) };
4769 return basic_string_char_replace(this, MSVCP_basic_string_char_Pdif(beg
, begin
),
4770 MSVCP_basic_string_char_Pdif(end
, beg
), str
);
4773 /* ?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 */
4774 /* ?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 */
4775 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_replace_iter_ch
, 28)
4776 basic_string_char
* __thiscall
MSVCP_basic_string_char_replace_iter_ch(basic_string_char
*this,
4777 String_iterator_char beg
, String_iterator_char end
, MSVCP_size_t count
, char ch
)
4779 String_iterator_char begin
= { this, basic_string_char_ptr(this) };
4780 return basic_string_char_replace_ch(this, MSVCP_basic_string_char_Pdif(beg
, begin
),
4781 MSVCP_basic_string_char_Pdif(end
, beg
), count
, ch
);
4784 /* ?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 */
4785 /* ?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 */
4786 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_replace_iter_ptr_ptr
, 28)
4787 basic_string_char
* __thiscall
MSVCP_basic_string_char_replace_iter_ptr_ptr(basic_string_char
*this,
4788 String_iterator_char beg
, String_iterator_char end
,
4789 const char *res_beg
, const char *res_end
)
4791 String_iterator_char begin
= { this, basic_string_char_ptr(this) };
4792 return basic_string_char_replace_cstr_len(this, MSVCP_basic_string_char_Pdif(beg
, begin
),
4793 MSVCP_basic_string_char_Pdif(end
, beg
), res_beg
, res_end
-res_beg
);
4796 /* ?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 */
4797 /* ?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 */
4798 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_replace_iter_cstr
, 24)
4799 basic_string_char
* __thiscall
MSVCP_basic_string_char_replace_iter_cstr(basic_string_char
*this,
4800 String_iterator_char beg
, String_iterator_char end
, const char *str
)
4802 String_iterator_char begin
= { this, basic_string_char_ptr(this) };
4803 return basic_string_char_replace_cstr(this, MSVCP_basic_string_char_Pdif(beg
, begin
),
4804 MSVCP_basic_string_char_Pdif(end
, beg
), str
);
4807 /* ?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 */
4808 /* ?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 */
4809 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_replace_iter_cstr_len
, 28)
4810 basic_string_char
* __thiscall
MSVCP_basic_string_char_replace_iter_cstr_len(basic_string_char
*this,
4811 String_iterator_char beg
, String_iterator_char end
, const char *str
, MSVCP_size_t len
)
4813 String_iterator_char begin
= { this, basic_string_char_ptr(this) };
4814 return basic_string_char_replace_cstr_len(this, MSVCP_basic_string_char_Pdif(beg
, begin
),
4815 MSVCP_basic_string_char_Pdif(end
, beg
), str
, len
);
4818 /* ?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 */
4819 /* ?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 */
4820 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_insert_iter_chn
, 20)
4821 void __thiscall
MSVCP_basic_string_char_insert_iter_chn(basic_string_char
*this,
4822 String_iterator_char where
, MSVCP_size_t count
, char ch
)
4824 String_iterator_char iter
= { this, basic_string_char_ptr(this) };
4825 MSVCP_size_t off
= MSVCP_basic_string_char_Pdif(where
, iter
);
4827 basic_string_char_insert_chn(this, off
, count
, ch
);
4830 /* ?insert@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE?AV?$_String_iterator@DU?$char_traits@D@std@@V?$allocator@D@2@@2@V?$_String_const_iterator@DU?$char_traits@D@std@@V?$allocator@D@2@@2@D@Z */
4831 /* ?insert@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAA?AV?$_String_iterator@DU?$char_traits@D@std@@V?$allocator@D@2@@2@V?$_String_const_iterator@DU?$char_traits@D@std@@V?$allocator@D@2@@2@D@Z */
4832 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_insert_iter_ch
, 20)
4833 String_iterator_char
* __thiscall
MSVCP_basic_string_char_insert_iter_ch(basic_string_char
*this,
4834 String_iterator_char
*ret
, String_iterator_char where
, char ch
)
4839 ret
->pos
= basic_string_char_ptr(this);
4840 off
= MSVCP_basic_string_char_Pdif(where
, *ret
);
4842 basic_string_char_insert_chn(this, off
, 1, ch
);
4843 ret
->pos
= basic_string_char_ptr(this)+off
;
4847 /* ?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 */
4848 /* ?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 */
4849 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_insert_iter_null
, 16)
4850 String_iterator_char
* __thiscall
MSVCP_basic_string_char_insert_iter_null(basic_string_char
*this,
4851 String_iterator_char
*ret
, String_iterator_char where
)
4853 return MSVCP_basic_string_char_insert_iter_ch(this, ret
, where
, 0);
4856 /* ?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 */
4857 /* ?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 */
4858 DEFINE_THISCALL_WRAPPER(basic_string_char_insert_iter_beg_end
, 28)
4859 void __thiscall
basic_string_char_insert_iter_beg_end(basic_string_char
*this,
4860 String_iterator_char where
, String_iterator_char beg
, String_iterator_char end
)
4862 MSVCP_basic_string_char_replace_iter_iter(this, where
, where
, beg
, end
);
4865 /* ?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 */
4866 /* ?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 */
4867 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_insert_iter_ptr_ptr
, 20)
4868 void __thiscall
MSVCP_basic_string_char_insert_iter_ptr_ptr(basic_string_char
*this,
4869 String_iterator_char where
, const char *beg
, const char *end
)
4871 MSVCP_basic_string_char_replace_iter_ptr_ptr(this, where
, where
, beg
, end
);
4874 /* ?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 */
4875 /* ?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 */
4876 /* ?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 */
4877 /* ?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 */
4878 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_begin
, 8)
4879 String_iterator_char
* __thiscall
MSVCP_basic_string_char_begin(
4880 basic_string_char
*this, String_iterator_char
*ret
)
4882 TRACE("%p\n", this);
4885 ret
->pos
= basic_string_char_const_ptr(this);
4889 /* ?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 */
4890 /* ?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 */
4891 /* ?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 */
4892 /* ?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 */
4893 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_end
, 8)
4894 String_iterator_char
* __thiscall
MSVCP_basic_string_char_end(
4895 basic_string_char
*this, String_iterator_char
*ret
)
4897 TRACE("%p\n", this);
4900 ret
->pos
= basic_string_char_const_ptr(this)+this->size
;
4904 /* ?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 */
4905 /* ?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 */
4906 /* ?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 */
4907 /* ?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 */
4908 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_rbegin
, 8)
4909 String_reverse_iterator_char
* __thiscall
MSVCP_basic_string_char_rbegin(
4910 basic_string_char
*this, String_reverse_iterator_char
*ret
)
4912 TRACE("%p\n", this);
4914 #if _MSVCP_VER == 80
4918 ret
->pos
= basic_string_char_const_ptr(this)+this->size
;
4922 /* ?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 */
4923 /* ?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 */
4924 /* ?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 */
4925 /* ?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 */
4926 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_rend
, 8)
4927 String_reverse_iterator_char
* __thiscall
MSVCP_basic_string_char_rend(
4928 basic_string_char
*this, String_reverse_iterator_char
*ret
)
4930 TRACE("%p\n", this);
4932 #if _MSVCP_VER == 80
4936 ret
->pos
= basic_string_char_const_ptr(this);
4940 /* ?_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 */
4941 /* ?_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 */
4942 /* ?_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 */
4943 /* ?_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 */
4944 MSVCP_size_t __cdecl
MSVCP_basic_string_wchar_Pdif(String_iterator_wchar i1
, String_iterator_wchar i2
)
4946 TRACE("(%p %p) (%p %p)\n", i1
.bstr
, i1
.pos
, i2
.bstr
, i2
.pos
);
4948 if((!i1
.bstr
&& i1
.pos
) || i1
.bstr
!=i2
.bstr
) {
4949 _invalid_parameter(NULL
, NULL
, NULL
, 0, 0);
4953 return !i1
.pos
? 0 : i1
.pos
-i2
.pos
;
4956 /* ?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 */
4957 /* ?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 */
4958 /* ?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 */
4959 /* ?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 */
4960 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_erase_iter_range
, 24)
4961 String_iterator_wchar
* __thiscall
MSVCP_basic_string_wchar_erase_iter_range(basic_string_wchar
*this,
4962 String_iterator_wchar
*ret
, String_iterator_wchar beg
, String_iterator_wchar end
)
4967 ret
->pos
= basic_string_wchar_ptr(this);
4968 off
= MSVCP_basic_string_wchar_Pdif(beg
, *ret
);
4970 MSVCP_basic_string_wchar_erase(this, off
, MSVCP_basic_string_wchar_Pdif(end
, beg
));
4973 ret
->pos
= basic_string_wchar_ptr(this)+off
;
4977 /* ?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 */
4978 /* ?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 */
4979 /* ?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 */
4980 /* ?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 */
4981 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_erase_iter
, 16)
4982 String_iterator_wchar
* __thiscall
MSVCP_basic_string_wchar_erase_iter(basic_string_wchar
*this,
4983 String_iterator_wchar
*ret
, String_iterator_wchar pos
)
4988 ret
->pos
= basic_string_wchar_ptr(this);
4989 off
= MSVCP_basic_string_wchar_Pdif(pos
, *ret
);
4991 MSVCP_basic_string_wchar_erase(this, off
, 1);
4994 ret
->pos
= basic_string_wchar_ptr(this)+off
;
4998 /* ?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 */
4999 /* ?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 */
5000 /* ?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 */
5001 /* ?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 */
5002 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_assign_iter
, 20)
5003 basic_string_wchar
* __thiscall
MSVCP_basic_string_wchar_assign_iter(basic_string_wchar
*this,
5004 String_iterator_wchar beg
, String_iterator_wchar end
)
5006 return MSVCP_basic_string_wchar_assign_ptr_ptr(this, beg
.pos
, end
.pos
);
5009 /* ??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 */
5010 /* ??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 */
5011 /* ??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 */
5012 /* ??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 */
5013 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_ctor_iter
, 20)
5014 basic_string_wchar
* __thiscall
MSVCP_basic_string_wchar_ctor_iter(basic_string_wchar
*this,
5015 String_iterator_wchar beg
, String_iterator_wchar end
)
5017 return MSVCP_basic_string_wchar_ctor_cstr_len(this, beg
.pos
, end
.pos
-beg
.pos
);
5020 /* ?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 */
5021 /* ?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 */
5022 /* ?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 */
5023 /* ?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 */
5024 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_append_iter
, 20)
5025 basic_string_wchar
* __thiscall
MSVCP_basic_string_wchar_append_iter(
5026 basic_string_wchar
*this, String_iterator_wchar beg
, String_iterator_wchar end
)
5028 return MSVCP_basic_string_wchar_append_cstr_len(this, beg
.pos
, end
.pos
-beg
.pos
);
5031 /* ?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 */
5032 /* ?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 */
5033 /* ?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 */
5034 /* ?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 */
5035 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_replace_iter_iter
, 36)
5036 basic_string_wchar
* __thiscall
MSVCP_basic_string_wchar_replace_iter_iter(basic_string_wchar
*this,
5037 String_iterator_wchar beg
, String_iterator_wchar end
,
5038 String_iterator_wchar res_beg
, String_iterator_wchar res_end
)
5040 String_iterator_wchar begin
= { this, basic_string_wchar_ptr(this) };
5041 return basic_string_wchar_replace_cstr_len(this,
5042 MSVCP_basic_string_wchar_Pdif(beg
, begin
), MSVCP_basic_string_wchar_Pdif(end
, beg
),
5043 res_beg
.pos
, MSVCP_basic_string_wchar_Pdif(res_end
, res_beg
));
5046 /* ?replace@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV12@V?$_String_const_iterator@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@2@0ABV12@@Z */
5047 /* ?replace@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAAEAV12@V?$_String_const_iterator@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@2@0AEBV12@@Z */
5048 /* ?replace@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV12@V?$_String_const_iterator@GU?$char_traits@G@std@@V?$allocator@G@2@@2@0ABV12@@Z */
5049 /* ?replace@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAAEAV12@V?$_String_const_iterator@GU?$char_traits@G@std@@V?$allocator@G@2@@2@0AEBV12@@Z */
5050 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_replace_iter_bstr
, 24)
5051 basic_string_wchar
* __thiscall
MSVCP_basic_string_wchar_replace_iter_bstr(basic_string_wchar
*this,
5052 String_iterator_wchar beg
, String_iterator_wchar end
, const basic_string_wchar
*str
)
5054 String_iterator_wchar begin
= { this, basic_string_wchar_ptr(this) };
5055 return basic_string_wchar_replace(this, MSVCP_basic_string_wchar_Pdif(beg
, begin
),
5056 MSVCP_basic_string_wchar_Pdif(end
, beg
), str
);
5059 /* ?replace@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV12@V?$_String_const_iterator@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@2@0I_W@Z */
5060 /* ?replace@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAAEAV12@V?$_String_const_iterator@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@2@0_K_W@Z */
5061 /* ?replace@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV12@V?$_String_const_iterator@GU?$char_traits@G@std@@V?$allocator@G@2@@2@0IG@Z */
5062 /* ?replace@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAAEAV12@V?$_String_const_iterator@GU?$char_traits@G@std@@V?$allocator@G@2@@2@0_KG@Z */
5063 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_replace_iter_ch
, 28)
5064 basic_string_wchar
* __thiscall
MSVCP_basic_string_wchar_replace_iter_ch(basic_string_wchar
*this,
5065 String_iterator_wchar beg
, String_iterator_wchar end
, MSVCP_size_t count
, wchar_t ch
)
5067 String_iterator_wchar begin
= { this, basic_string_wchar_ptr(this) };
5068 return basic_string_wchar_replace_ch(this, MSVCP_basic_string_wchar_Pdif(beg
, begin
),
5069 MSVCP_basic_string_wchar_Pdif(end
, beg
), count
, ch
);
5072 /* ?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 */
5073 /* ?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 */
5074 /* ?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 */
5075 /* ?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 */
5076 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_replace_iter_ptr_ptr
, 28)
5077 basic_string_wchar
* __thiscall
MSVCP_basic_string_wchar_replace_iter_ptr_ptr(basic_string_wchar
*this,
5078 String_iterator_wchar beg
, String_iterator_wchar end
,
5079 const wchar_t *res_beg
, const wchar_t *res_end
)
5081 String_iterator_wchar begin
= { this, basic_string_wchar_ptr(this) };
5082 return basic_string_wchar_replace_cstr_len(this, MSVCP_basic_string_wchar_Pdif(beg
, begin
),
5083 MSVCP_basic_string_wchar_Pdif(end
, beg
), res_beg
, res_end
-res_beg
);
5086 /* ?replace@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV12@V?$_String_const_iterator@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@2@0PB_W@Z */
5087 /* ?replace@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAAEAV12@V?$_String_const_iterator@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@2@0PEB_W@Z */
5088 /* ?replace@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV12@V?$_String_const_iterator@GU?$char_traits@G@std@@V?$allocator@G@2@@2@0PBG@Z */
5089 /* ?replace@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAAEAV12@V?$_String_const_iterator@GU?$char_traits@G@std@@V?$allocator@G@2@@2@0PEBG@Z */
5090 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_replace_iter_cstr
, 24)
5091 basic_string_wchar
* __thiscall
MSVCP_basic_string_wchar_replace_iter_cstr(basic_string_wchar
*this,
5092 String_iterator_wchar beg
, String_iterator_wchar end
, const wchar_t *str
)
5094 String_iterator_wchar begin
= { this, basic_string_wchar_ptr(this) };
5095 return basic_string_wchar_replace_cstr(this, MSVCP_basic_string_wchar_Pdif(beg
, begin
),
5096 MSVCP_basic_string_wchar_Pdif(end
, beg
), str
);
5099 /* ?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 */
5100 /* ?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 */
5101 /* ?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 */
5102 /* ?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 */
5103 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_replace_iter_cstr_len
, 28)
5104 basic_string_wchar
* __thiscall
MSVCP_basic_string_wchar_replace_iter_cstr_len(basic_string_wchar
*this,
5105 String_iterator_wchar beg
, String_iterator_wchar end
, const wchar_t *str
, MSVCP_size_t len
)
5107 String_iterator_wchar begin
= { this, basic_string_wchar_ptr(this) };
5108 return basic_string_wchar_replace_cstr_len(this, MSVCP_basic_string_wchar_Pdif(beg
, begin
),
5109 MSVCP_basic_string_wchar_Pdif(end
, beg
), str
, len
);
5112 /* ?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 */
5113 /* ?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 */
5114 /* ?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 */
5115 /* ?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 */
5116 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_insert_iter_chn
, 20)
5117 void __thiscall
MSVCP_basic_string_wchar_insert_iter_chn(basic_string_wchar
*this,
5118 String_iterator_wchar where
, MSVCP_size_t count
, wchar_t ch
)
5120 String_iterator_wchar iter
= { this, basic_string_wchar_ptr(this) };
5121 MSVCP_size_t off
= MSVCP_basic_string_wchar_Pdif(where
, iter
);
5123 basic_string_wchar_insert_chn(this, off
, count
, ch
);
5126 /* ?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 */
5127 /* ?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 */
5128 /* ?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 */
5129 /* ?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 */
5130 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_insert_iter_ch
, 20)
5131 String_iterator_wchar
* __thiscall
MSVCP_basic_string_wchar_insert_iter_ch(basic_string_wchar
*this,
5132 String_iterator_wchar
*ret
, String_iterator_wchar where
, wchar_t ch
)
5137 ret
->pos
= basic_string_wchar_ptr(this);
5138 off
= MSVCP_basic_string_wchar_Pdif(where
, *ret
);
5140 basic_string_wchar_insert_chn(this, off
, 1, ch
);
5141 ret
->pos
= basic_string_wchar_ptr(this)+off
;
5145 /* ?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 */
5146 /* ?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 */
5147 /* ?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 */
5148 /* ?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 */
5149 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_insert_iter_null
, 16)
5150 String_iterator_wchar
* __thiscall
MSVCP_basic_string_wchar_insert_iter_null(basic_string_wchar
*this,
5151 String_iterator_wchar
*ret
, String_iterator_wchar where
)
5153 return MSVCP_basic_string_wchar_insert_iter_ch(this, ret
, where
, 0);
5156 /* ?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 */
5157 /* ?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 */
5158 /* ?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 */
5159 /* ?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 */
5160 DEFINE_THISCALL_WRAPPER(basic_string_wchar_insert_iter_beg_end
, 28)
5161 void __thiscall
basic_string_wchar_insert_iter_beg_end(basic_string_wchar
*this,
5162 String_iterator_wchar where
, String_iterator_wchar beg
, String_iterator_wchar end
)
5164 MSVCP_basic_string_wchar_replace_iter_iter(this, where
, where
, beg
, end
);
5167 /* ?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 */
5168 /* ?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 */
5169 /* ?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 */
5170 /* ?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 */
5171 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_insert_iter_ptr_ptr
, 20)
5172 void __thiscall
MSVCP_basic_string_wchar_insert_iter_ptr_ptr(basic_string_wchar
*this,
5173 String_iterator_wchar where
, const wchar_t *beg
, const wchar_t *end
)
5175 MSVCP_basic_string_wchar_replace_iter_ptr_ptr(this, where
, where
, beg
, end
);
5178 /* ?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 */
5179 /* ?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 */
5180 /* ?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 */
5181 /* ?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 */
5182 /* ?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 */
5183 /* ?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 */
5184 /* ?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 */
5185 /* ?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 */
5186 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_begin
, 8)
5187 String_iterator_wchar
* __thiscall
MSVCP_basic_string_wchar_begin(
5188 basic_string_wchar
*this, String_iterator_wchar
*ret
)
5190 TRACE("%p\n", this);
5193 ret
->pos
= basic_string_wchar_const_ptr(this);
5197 /* ?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 */
5198 /* ?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 */
5199 /* ?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 */
5200 /* ?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 */
5201 /* ?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 */
5202 /* ?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 */
5203 /* ?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 */
5204 /* ?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 */
5205 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_end
, 8)
5206 String_iterator_wchar
* __thiscall
MSVCP_basic_string_wchar_end(
5207 basic_string_wchar
*this, String_iterator_wchar
*ret
)
5209 TRACE("%p\n", this);
5212 ret
->pos
= basic_string_wchar_const_ptr(this)+this->size
;
5216 /* ?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 */
5217 /* ?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 */
5218 /* ?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 */
5219 /* ?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 */
5220 /* ?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 */
5221 /* ?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 */
5222 /* ?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 */
5223 /* ?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 */
5224 /* ?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 */
5225 /* ?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 */
5226 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_rbegin
, 8)
5227 String_reverse_iterator_wchar
* __thiscall
MSVCP_basic_string_wchar_rbegin(
5228 basic_string_wchar
*this, String_reverse_iterator_wchar
*ret
)
5230 TRACE("%p\n", this);
5232 #if _MSVCP_VER == 80
5236 ret
->pos
= basic_string_wchar_const_ptr(this)+this->size
;
5240 /* ?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 */
5241 /* ?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 */
5242 /* ?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 */
5243 /* ?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 */
5244 /* ?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 */
5245 /* ?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 */
5246 /* ?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 */
5247 /* ?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 */
5248 /* ?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 */
5249 /* ?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 */
5250 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_rend
, 8)
5251 String_reverse_iterator_wchar
* __thiscall
MSVCP_basic_string_wchar_rend(
5252 basic_string_wchar
*this, String_reverse_iterator_wchar
*ret
)
5254 TRACE("%p\n", this);
5256 #if _MSVCP_VER == 80
5260 ret
->pos
= basic_string_wchar_const_ptr(this);
5264 #endif /* _MSVCP_VER < 80 */