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
31 #include "wine/unicode.h"
32 #include "wine/debug.h"
33 WINE_DEFAULT_DEBUG_CHANNEL(msvcp90
);
35 char* __cdecl
_Getdays(void);
36 char* __cdecl
_Getmonths(void);
37 void* __cdecl
_Gettnames(void);
38 unsigned int __cdecl
___lc_codepage_func(void);
39 LCID
* __cdecl
___lc_handle_func(void);
48 const vtable_ptr
*vtable
;
52 typedef struct _locale__Locimp
{
54 locale_facet
**facetvec
;
55 MSVCP_size_t facet_cnt
;
57 MSVCP_bool transparent
;
58 basic_string_char name
;
67 basic_string_char days
;
68 basic_string_char months
;
69 basic_string_char oldlocname
;
70 basic_string_char newlocname
;
112 const char *grouping
;
115 const char *false_name
;
116 const char *true_name
;
121 const char *grouping
;
124 const wchar_t *false_name
;
125 const wchar_t *true_name
;
134 typedef struct _istreambuf_iterator_char
136 struct _basic_streambuf_char
*strbuf
;
139 } istreambuf_iterator_char
;
141 typedef struct _istreambuf_iterator_wchar
143 struct _basic_streambuf_wchar
*strbuf
;
146 } istreambuf_iterator_wchar
;
148 /* ?_Id_cnt@id@locale@std@@0HA */
149 int locale_id__Id_cnt
= 0;
151 /* ?_Clocptr@_Locimp@locale@std@@0PAV123@A */
152 /* ?_Clocptr@_Locimp@locale@std@@0PEAV123@EA */
153 locale__Locimp
*locale__Locimp__Clocptr
= NULL
;
155 /* ??1facet@locale@std@@UAE@XZ */
156 /* ??1facet@locale@std@@UEAA@XZ */
157 DEFINE_THISCALL_WRAPPER(locale_facet_dtor
, 4)
158 void __thiscall
locale_facet_dtor(locale_facet
*this)
160 TRACE("(%p)\n", this);
163 DEFINE_THISCALL_WRAPPER(MSVCP_locale_facet_vector_dtor
, 8)
164 #define call_locale_facet_vector_dtor(this, flags) CALL_VTBL_FUNC(this, 0, \
165 locale_facet*, (locale_facet*, unsigned int), (this, flags))
166 locale_facet
* __thiscall
MSVCP_locale_facet_vector_dtor(locale_facet
*this, unsigned int flags
)
168 TRACE("(%p %x)\n", this, flags
);
170 /* we have an array, with the number of elements stored before the first object */
171 int i
, *ptr
= (int *)this-1;
173 for(i
=*ptr
-1; i
>=0; i
--)
174 locale_facet_dtor(this+i
);
175 MSVCRT_operator_delete(ptr
);
177 locale_facet_dtor(this);
179 MSVCRT_operator_delete(this);
185 extern const vtable_ptr MSVCP_locale_facet_vtable
;
187 /* ??0id@locale@std@@QAE@I@Z */
188 /* ??0id@locale@std@@QEAA@_K@Z */
189 DEFINE_THISCALL_WRAPPER(locale_id_ctor_id
, 8)
190 locale_id
* __thiscall
locale_id_ctor_id(locale_id
*this, MSVCP_size_t id
)
192 TRACE("(%p %lu)\n", this, id
);
198 /* ??_Fid@locale@std@@QAEXXZ */
199 /* ??_Fid@locale@std@@QEAAXXZ */
200 DEFINE_THISCALL_WRAPPER(locale_id_ctor
, 4)
201 locale_id
* __thiscall
locale_id_ctor(locale_id
*this)
203 TRACE("(%p)\n", this);
209 /* ??Bid@locale@std@@QAEIXZ */
210 /* ??Bid@locale@std@@QEAA_KXZ */
211 DEFINE_THISCALL_WRAPPER(locale_id_operator_size_t
, 4)
212 MSVCP_size_t __thiscall
locale_id_operator_size_t(locale_id
*this)
216 TRACE("(%p)\n", this);
219 _Lockit_ctor_locktype(&lock
, _LOCK_LOCALE
);
220 this->id
= ++locale_id__Id_cnt
;
227 /* ?_Id_cnt_func@id@locale@std@@CAAAHXZ */
228 /* ?_Id_cnt_func@id@locale@std@@CAAEAHXZ */
229 int* __cdecl
locale_id__Id_cnt_func(void)
232 return &locale_id__Id_cnt
;
235 /* ??_Ffacet@locale@std@@QAEXXZ */
236 /* ??_Ffacet@locale@std@@QEAAXXZ */
237 DEFINE_THISCALL_WRAPPER(locale_facet_ctor
, 4)
238 locale_facet
* __thiscall
locale_facet_ctor(locale_facet
*this)
240 TRACE("(%p)\n", this);
241 this->vtable
= &MSVCP_locale_facet_vtable
;
246 /* ??0facet@locale@std@@IAE@I@Z */
247 /* ??0facet@locale@std@@IEAA@_K@Z */
248 DEFINE_THISCALL_WRAPPER(locale_facet_ctor_refs
, 8)
249 locale_facet
* __thiscall
locale_facet_ctor_refs(locale_facet
*this, MSVCP_size_t refs
)
251 TRACE("(%p %lu)\n", this, refs
);
252 this->vtable
= &MSVCP_locale_facet_vtable
;
257 /* ?_Incref@facet@locale@std@@QAEXXZ */
258 /* ?_Incref@facet@locale@std@@QEAAXXZ */
259 DEFINE_THISCALL_WRAPPER(locale_facet__Incref
, 4)
260 void __thiscall
locale_facet__Incref(locale_facet
*this)
264 TRACE("(%p)\n", this);
266 _Lockit_ctor_locktype(&lock
, _LOCK_LOCALE
);
271 /* ?_Decref@facet@locale@std@@QAEPAV123@XZ */
272 /* ?_Decref@facet@locale@std@@QEAAPEAV123@XZ */
273 DEFINE_THISCALL_WRAPPER(locale_facet__Decref
, 4)
274 locale_facet
* __thiscall
locale_facet__Decref(locale_facet
*this)
279 TRACE("(%p)\n", this);
281 _Lockit_ctor_locktype(&lock
, _LOCK_LOCALE
);
285 ret
= this->refs
? NULL
: this;
291 /* ?_Getcat@facet@locale@std@@SAIPAPBV123@PBV23@@Z */
292 /* ?_Getcat@facet@locale@std@@SA_KPEAPEBV123@PEBV23@@Z */
293 MSVCP_size_t __cdecl
locale_facet__Getcat(const locale_facet
**facet
, const locale
*loc
)
295 TRACE("(%p %p)\n", facet
, loc
);
299 /* ??0_Timevec@std@@QAE@ABV01@@Z */
300 /* ??0_Timevec@std@@QEAA@AEBV01@@Z */
301 /* This copy constructor modifies copied object */
302 DEFINE_THISCALL_WRAPPER(_Timevec_copy_ctor
, 8)
303 _Timevec
* __thiscall
_Timevec_copy_ctor(_Timevec
*this, _Timevec
*copy
)
305 TRACE("(%p %p)\n", this, copy
);
306 this->timeptr
= copy
->timeptr
;
307 copy
->timeptr
= NULL
;
311 /* ??0_Timevec@std@@QAE@PAX@Z */
312 /* ??0_Timevec@std@@QEAA@PEAX@Z */
313 DEFINE_THISCALL_WRAPPER(_Timevec_ctor_timeptr
, 8)
314 _Timevec
* __thiscall
_Timevec_ctor_timeptr(_Timevec
*this, void *timeptr
)
316 TRACE("(%p %p)\n", this, timeptr
);
317 this->timeptr
= timeptr
;
321 /* ??_F_Timevec@std@@QAEXXZ */
322 /* ??_F_Timevec@std@@QEAAXXZ */
323 DEFINE_THISCALL_WRAPPER(_Timevec_ctor
, 4)
324 _Timevec
* __thiscall
_Timevec_ctor(_Timevec
*this)
326 TRACE("(%p)\n", this);
327 this->timeptr
= NULL
;
331 /* ??1_Timevec@std@@QAE@XZ */
332 /* ??1_Timevec@std@@QEAA@XZ */
333 DEFINE_THISCALL_WRAPPER(_Timevec_dtor
, 4)
334 void __thiscall
_Timevec_dtor(_Timevec
*this)
336 TRACE("(%p)\n", this);
340 /* ??4_Timevec@std@@QAEAAV01@ABV01@@Z */
341 /* ??4_Timevec@std@@QEAAAEAV01@AEBV01@@Z */
342 DEFINE_THISCALL_WRAPPER(_Timevec_op_assign
, 8)
343 _Timevec
* __thiscall
_Timevec_op_assign(_Timevec
*this, _Timevec
*right
)
345 TRACE("(%p %p)\n", this, right
);
346 this->timeptr
= right
->timeptr
;
347 right
->timeptr
= NULL
;
351 /* ?_Getptr@_Timevec@std@@QBEPAXXZ */
352 /* ?_Getptr@_Timevec@std@@QEBAPEAXXZ */
353 DEFINE_THISCALL_WRAPPER(_Timevec__Getptr
, 4)
354 void* __thiscall
_Timevec__Getptr(_Timevec
*this)
356 TRACE("(%p)\n", this);
357 return this->timeptr
;
360 /* ?_Locinfo_ctor@_Locinfo@std@@SAXPAV12@HPBD@Z */
361 /* ?_Locinfo_ctor@_Locinfo@std@@SAXPEAV12@HPEBD@Z */
362 _Locinfo
* __cdecl
_Locinfo__Locinfo_ctor_cat_cstr(_Locinfo
*locinfo
, int category
, const char *locstr
)
364 const char *locale
= NULL
;
366 /* This function is probably modifying more global objects */
367 FIXME("(%p %d %s) semi-stub\n", locinfo
, category
, locstr
);
370 throw_exception(EXCEPTION_RUNTIME_ERROR
, "bad locale name");
372 _Lockit_ctor_locktype(&locinfo
->lock
, _LOCK_LOCALE
);
373 MSVCP_basic_string_char_ctor_cstr(&locinfo
->days
, "");
374 MSVCP_basic_string_char_ctor_cstr(&locinfo
->months
, "");
375 MSVCP_basic_string_char_ctor_cstr(&locinfo
->oldlocname
, setlocale(LC_ALL
, NULL
));
378 locale
= setlocale(LC_ALL
, locstr
);
380 locale
= setlocale(LC_ALL
, NULL
);
383 MSVCP_basic_string_char_ctor_cstr(&locinfo
->newlocname
, locale
);
385 MSVCP_basic_string_char_ctor_cstr(&locinfo
->newlocname
, "*");
390 /* ??0_Locinfo@std@@QAE@HPBD@Z */
391 /* ??0_Locinfo@std@@QEAA@HPEBD@Z */
392 DEFINE_THISCALL_WRAPPER(_Locinfo_ctor_cat_cstr
, 12)
393 _Locinfo
* __thiscall
_Locinfo_ctor_cat_cstr(_Locinfo
*this, int category
, const char *locstr
)
395 return _Locinfo__Locinfo_ctor_cat_cstr(this, category
, locstr
);
398 /* ?_Locinfo_ctor@_Locinfo@std@@SAXPAV12@ABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@2@@Z */
399 /* ?_Locinfo_ctor@_Locinfo@std@@SAXPEAV12@AEBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@2@@Z */
400 _Locinfo
* __cdecl
_Locinfo__Locinfo_ctor_bstr(_Locinfo
*locinfo
, const basic_string_char
*locstr
)
402 return _Locinfo__Locinfo_ctor_cat_cstr(locinfo
, 1/*FIXME*/, MSVCP_basic_string_char_c_str(locstr
));
405 /* ??0_Locinfo@std@@QAE@ABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@1@@Z */
406 /* ??0_Locinfo@std@@QEAA@AEBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@1@@Z */
407 DEFINE_THISCALL_WRAPPER(_Locinfo_ctor_bstr
, 8)
408 _Locinfo
* __thiscall
_Locinfo_ctor_bstr(_Locinfo
*this, const basic_string_char
*locstr
)
410 return _Locinfo__Locinfo_ctor_cat_cstr(this, 1/*FIXME*/, MSVCP_basic_string_char_c_str(locstr
));
413 /* ?_Locinfo_ctor@_Locinfo@std@@SAXPAV12@PBD@Z */
414 /* ?_Locinfo_ctor@_Locinfo@std@@SAXPEAV12@PEBD@Z */
415 _Locinfo
* __cdecl
_Locinfo__Locinfo_ctor_cstr(_Locinfo
*locinfo
, const char *locstr
)
417 return _Locinfo__Locinfo_ctor_cat_cstr(locinfo
, 1/*FIXME*/, locstr
);
420 /* ??0_Locinfo@std@@QAE@PBD@Z */
421 /* ??0_Locinfo@std@@QEAA@PEBD@Z */
422 DEFINE_THISCALL_WRAPPER(_Locinfo_ctor_cstr
, 8)
423 _Locinfo
* __thiscall
_Locinfo_ctor_cstr(_Locinfo
*this, const char *locstr
)
425 return _Locinfo__Locinfo_ctor_cat_cstr(this, 1/*FIXME*/, locstr
);
428 /* ?_Locinfo_dtor@_Locinfo@std@@SAXPAV12@@Z */
429 /* ?_Locinfo_dtor@_Locinfo@std@@SAXPEAV12@@Z */
430 void __cdecl
_Locinfo__Locinfo_dtor(_Locinfo
*locinfo
)
432 TRACE("(%p)\n", locinfo
);
434 setlocale(LC_ALL
, MSVCP_basic_string_char_c_str(&locinfo
->oldlocname
));
435 MSVCP_basic_string_char_dtor(&locinfo
->days
);
436 MSVCP_basic_string_char_dtor(&locinfo
->months
);
437 MSVCP_basic_string_char_dtor(&locinfo
->oldlocname
);
438 MSVCP_basic_string_char_dtor(&locinfo
->newlocname
);
439 _Lockit_dtor(&locinfo
->lock
);
442 /* ??_F_Locinfo@std@@QAEXXZ */
443 /* ??_F_Locinfo@std@@QEAAXXZ */
444 DEFINE_THISCALL_WRAPPER(_Locinfo_ctor
, 4)
445 _Locinfo
* __thiscall
_Locinfo_ctor(_Locinfo
*this)
447 return _Locinfo__Locinfo_ctor_cat_cstr(this, 1/*FIXME*/, "C");
450 /* ??1_Locinfo@std@@QAE@XZ */
451 /* ??1_Locinfo@std@@QEAA@XZ */
452 DEFINE_THISCALL_WRAPPER(_Locinfo_dtor
, 4)
453 void __thiscall
_Locinfo_dtor(_Locinfo
*this)
455 _Locinfo__Locinfo_dtor(this);
458 /* ?_Locinfo_Addcats@_Locinfo@std@@SAAAV12@PAV12@HPBD@Z */
459 /* ?_Locinfo_Addcats@_Locinfo@std@@SAAEAV12@PEAV12@HPEBD@Z */
460 _Locinfo
* __cdecl
_Locinfo__Locinfo_Addcats(_Locinfo
*locinfo
, int category
, const char *locstr
)
462 const char *locale
= NULL
;
464 /* This function is probably modifying more global objects */
465 FIXME("(%p %d %s) semi-stub\n", locinfo
, category
, locstr
);
467 throw_exception(EXCEPTION_RUNTIME_ERROR
, "bad locale name");
469 MSVCP_basic_string_char_dtor(&locinfo
->newlocname
);
472 locale
= setlocale(LC_ALL
, locstr
);
474 locale
= setlocale(LC_ALL
, NULL
);
477 MSVCP_basic_string_char_ctor_cstr(&locinfo
->newlocname
, locale
);
479 MSVCP_basic_string_char_ctor_cstr(&locinfo
->newlocname
, "*");
484 /* ?_Addcats@_Locinfo@std@@QAEAAV12@HPBD@Z */
485 /* ?_Addcats@_Locinfo@std@@QEAAAEAV12@HPEBD@Z */
486 DEFINE_THISCALL_WRAPPER(_Locinfo__Addcats
, 12)
487 _Locinfo
* __thiscall
_Locinfo__Addcats(_Locinfo
*this, int category
, const char *locstr
)
489 return _Locinfo__Locinfo_Addcats(this, category
, locstr
);
493 _Collvec __cdecl
_Getcoll(void)
496 _locale_t locale
= _get_current_locale();
500 ret
.page
= locale
->locinfo
->lc_collate_cp
;
501 ret
.handle
= locale
->locinfo
->lc_handle
[LC_COLLATE
];
502 _free_locale(locale
);
506 /* ?_Getcoll@_Locinfo@std@@QBE?AU_Collvec@@XZ */
507 /* ?_Getcoll@_Locinfo@std@@QEBA?AU_Collvec@@XZ */
508 DEFINE_THISCALL_WRAPPER(_Locinfo__Getcoll
, 8)
509 _Collvec
* __thiscall
_Locinfo__Getcoll(const _Locinfo
*this, _Collvec
*ret
)
516 _Ctypevec __cdecl
_Getctype(void)
519 _locale_t locale
= _get_current_locale();
524 ret
.page
= locale
->locinfo
->lc_codepage
;
525 ret
.handle
= locale
->locinfo
->lc_handle
[LC_COLLATE
];
527 table
= malloc(sizeof(short[256]));
529 _free_locale(locale
);
530 throw_exception(EXCEPTION_BAD_ALLOC
, NULL
);
532 memcpy(table
, locale
->locinfo
->pctype
, sizeof(short[256]));
534 _free_locale(locale
);
538 /* ?_Getctype@_Locinfo@std@@QBE?AU_Ctypevec@@XZ */
539 /* ?_Getctype@_Locinfo@std@@QEBA?AU_Ctypevec@@XZ */
540 DEFINE_THISCALL_WRAPPER(_Locinfo__Getctype
, 8)
541 _Ctypevec
* __thiscall
_Locinfo__Getctype(const _Locinfo
*this, _Ctypevec
*ret
)
548 _Cvtvec __cdecl
_Getcvt(void)
551 _locale_t locale
= _get_current_locale();
555 ret
.page
= locale
->locinfo
->lc_codepage
;
556 ret
.handle
= locale
->locinfo
->lc_handle
[LC_CTYPE
];
557 _free_locale(locale
);
561 /* ?_Getcvt@_Locinfo@std@@QBE?AU_Cvtvec@@XZ */
562 /* ?_Getcvt@_Locinfo@std@@QEBA?AU_Cvtvec@@XZ */
563 DEFINE_THISCALL_WRAPPER(_Locinfo__Getcvt
, 8)
564 _Cvtvec
* __thiscall
_Locinfo__Getcvt(const _Locinfo
*this, _Cvtvec
*ret
)
570 /* ?_Getdateorder@_Locinfo@std@@QBEHXZ */
571 /* ?_Getdateorder@_Locinfo@std@@QEBAHXZ */
572 DEFINE_THISCALL_WRAPPER(_Locinfo__Getdateorder
, 4)
573 int __thiscall
_Locinfo__Getdateorder(const _Locinfo
*this)
575 FIXME("(%p) stub\n", this);
579 /* ?_Getdays@_Locinfo@std@@QBEPBDXZ */
580 /* ?_Getdays@_Locinfo@std@@QEBAPEBDXZ */
581 DEFINE_THISCALL_WRAPPER(_Locinfo__Getdays
, 4)
582 const char* __thiscall
_Locinfo__Getdays(_Locinfo
*this)
584 char *days
= _Getdays();
586 TRACE("(%p)\n", this);
589 MSVCP_basic_string_char_dtor(&this->days
);
590 MSVCP_basic_string_char_ctor_cstr(&this->days
, days
);
594 return this->days
.size
? MSVCP_basic_string_char_c_str(&this->days
) :
595 ":Sun:Sunday:Mon:Monday:Tue:Tuesday:Wed:Wednesday:Thu:Thursday:Fri:Friday:Sat:Saturday";
598 /* ?_Getmonths@_Locinfo@std@@QBEPBDXZ */
599 /* ?_Getmonths@_Locinfo@std@@QEBAPEBDXZ */
600 DEFINE_THISCALL_WRAPPER(_Locinfo__Getmonths
, 4)
601 const char* __thiscall
_Locinfo__Getmonths(_Locinfo
*this)
603 char *months
= _Getmonths();
605 TRACE("(%p)\n", this);
608 MSVCP_basic_string_char_dtor(&this->months
);
609 MSVCP_basic_string_char_ctor_cstr(&this->months
, months
);
613 return this->months
.size
? MSVCP_basic_string_char_c_str(&this->months
) :
614 ":Jan:January:Feb:February:Mar:March:Apr:April:May:May:Jun:June:Jul:July"
615 ":Aug:August:Sep:September:Oct:October:Nov:November:Dec:December";
618 /* ?_Getfalse@_Locinfo@std@@QBEPBDXZ */
619 /* ?_Getfalse@_Locinfo@std@@QEBAPEBDXZ */
620 DEFINE_THISCALL_WRAPPER(_Locinfo__Getfalse
, 4)
621 const char* __thiscall
_Locinfo__Getfalse(const _Locinfo
*this)
623 TRACE("(%p)\n", this);
627 /* ?_Gettrue@_Locinfo@std@@QBEPBDXZ */
628 /* ?_Gettrue@_Locinfo@std@@QEBAPEBDXZ */
629 DEFINE_THISCALL_WRAPPER(_Locinfo__Gettrue
, 4)
630 const char* __thiscall
_Locinfo__Gettrue(const _Locinfo
*this)
632 TRACE("(%p)\n", this);
636 /* ?_Getlconv@_Locinfo@std@@QBEPBUlconv@@XZ */
637 /* ?_Getlconv@_Locinfo@std@@QEBAPEBUlconv@@XZ */
638 DEFINE_THISCALL_WRAPPER(_Locinfo__Getlconv
, 4)
639 const struct lconv
* __thiscall
_Locinfo__Getlconv(const _Locinfo
*this)
641 TRACE("(%p)\n", this);
645 /* ?_Getname@_Locinfo@std@@QBE?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@2@XZ */
646 /* ?_Getname@_Locinfo@std@@QEBA?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@2@XZ */
647 DEFINE_THISCALL_WRAPPER(_Locinfo__Getname
, 8)
648 basic_string_char
* __thiscall
_Locinfo__Getname(const _Locinfo
*this, basic_string_char
*ret
)
650 TRACE("(%p)\n", this);
652 MSVCP_basic_string_char_copy_ctor(ret
, &this->newlocname
);
656 /* ?_Gettnames@_Locinfo@std@@QBE?AV_Timevec@2@XZ */
657 /* ?_Gettnames@_Locinfo@std@@QEBA?AV_Timevec@2@XZ */
658 DEFINE_THISCALL_WRAPPER(_Locinfo__Gettnames
, 8)
659 _Timevec
*__thiscall
_Locinfo__Gettnames(const _Locinfo
*this, _Timevec
*ret
)
661 TRACE("(%p)\n", this);
663 _Timevec_ctor_timeptr(ret
, _Gettnames());
667 /* ?id@?$collate@D@std@@2V0locale@2@A */
668 locale_id collate_char_id
= {0};
670 /* ??_7?$collate@D@std@@6B@ */
671 extern const vtable_ptr MSVCP_collate_char_vtable
;
673 /* ?_Init@?$collate@D@std@@IAEXABV_Locinfo@2@@Z */
674 /* ?_Init@?$collate@D@std@@IEAAXAEBV_Locinfo@2@@Z */
675 DEFINE_THISCALL_WRAPPER(collate_char__Init
, 8)
676 void __thiscall
collate_char__Init(collate
*this, const _Locinfo
*locinfo
)
678 TRACE("(%p %p)\n", this, locinfo
);
679 _Locinfo__Getcoll(locinfo
, &this->coll
);
682 /* ??0?$collate@D@std@@IAE@PBDI@Z */
683 /* ??0?$collate@D@std@@IEAA@PEBD_K@Z */
684 DEFINE_THISCALL_WRAPPER(collate_char_ctor_name
, 12)
685 collate
* __thiscall
collate_char_ctor_name(collate
*this, const char *name
, MSVCP_size_t refs
)
689 TRACE("(%p %s %lu)\n", this, name
, refs
);
691 locale_facet_ctor_refs(&this->facet
, refs
);
692 this->facet
.vtable
= &MSVCP_collate_char_vtable
;
694 _Locinfo_ctor_cstr(&locinfo
, name
);
695 collate_char__Init(this, &locinfo
);
696 _Locinfo_dtor(&locinfo
);
700 /* ??0?$collate@D@std@@QAE@ABV_Locinfo@1@I@Z */
701 /* ??0?$collate@D@std@@QEAA@AEBV_Locinfo@1@_K@Z */
702 DEFINE_THISCALL_WRAPPER(collate_char_ctor_locinfo
, 12)
703 collate
* __thiscall
collate_char_ctor_locinfo(collate
*this, _Locinfo
*locinfo
, MSVCP_size_t refs
)
705 TRACE("(%p %p %lu)\n", this, locinfo
, refs
);
707 locale_facet_ctor_refs(&this->facet
, refs
);
708 this->facet
.vtable
= &MSVCP_collate_char_vtable
;
709 collate_char__Init(this, locinfo
);
713 /* ??0?$collate@D@std@@QAE@I@Z */
714 /* ??0?$collate@D@std@@QEAA@_K@Z */
715 DEFINE_THISCALL_WRAPPER(collate_char_ctor_refs
, 8)
716 collate
* __thiscall
collate_char_ctor_refs(collate
*this, MSVCP_size_t refs
)
718 return collate_char_ctor_name(this, "C", refs
);
721 /* ??1?$collate@D@std@@MAE@XZ */
722 /* ??1?$collate@D@std@@MEAA@XZ */
723 DEFINE_THISCALL_WRAPPER(collate_char_dtor
, 4)
724 void __thiscall
collate_char_dtor(collate
*this)
726 TRACE("(%p)\n", this);
729 DEFINE_THISCALL_WRAPPER(MSVCP_collate_char_vector_dtor
, 8)
730 collate
* __thiscall
MSVCP_collate_char_vector_dtor(collate
*this, unsigned int flags
)
732 TRACE("(%p %x)\n", this, flags
);
734 /* we have an array, with the number of elements stored before the first object */
735 int i
, *ptr
= (int *)this-1;
737 for(i
=*ptr
-1; i
>=0; i
--)
738 collate_char_dtor(this+i
);
739 MSVCRT_operator_delete(ptr
);
741 collate_char_dtor(this);
743 MSVCRT_operator_delete(this);
749 /* ??_F?$collate@D@std@@QAEXXZ */
750 /* ??_F?$collate@D@std@@QEAAXXZ */
751 DEFINE_THISCALL_WRAPPER(collate_char_ctor
, 4)
752 collate
* __thiscall
collate_char_ctor(collate
*this)
754 return collate_char_ctor_name(this, "C", 0);
757 /* ?_Getcat@?$collate@D@std@@SAIPAPBVfacet@locale@2@PBV42@@Z */
758 /* ?_Getcat@?$collate@D@std@@SA_KPEAPEBVfacet@locale@2@PEBV42@@Z */
759 MSVCP_size_t __cdecl
collate_char__Getcat(const locale_facet
**facet
, const locale
*loc
)
761 TRACE("(%p %p)\n", facet
, loc
);
763 if(facet
&& !*facet
) {
764 *facet
= MSVCRT_operator_new(sizeof(collate
));
766 ERR("Out of memory\n");
767 throw_exception(EXCEPTION_BAD_ALLOC
, NULL
);
770 collate_char_ctor_name((collate
*)*facet
,
771 MSVCP_basic_string_char_c_str(&loc
->ptr
->name
), 0);
778 int __cdecl
_Strcoll(const char *first1
, const char *last1
, const char *first2
,
779 const char *last2
, const _Collvec
*coll
)
783 TRACE("(%s %s)\n", debugstr_an(first1
, last1
-first1
), debugstr_an(first2
, last2
-first2
));
788 lcid
= ___lc_handle_func()[LC_COLLATE
];
789 return CompareStringA(lcid
, 0, first1
, last1
-first1
, first2
, last2
-first2
)-2;
792 /* ?do_compare@?$collate@D@std@@MBEHPBD000@Z */
793 /* ?do_compare@?$collate@D@std@@MEBAHPEBD000@Z */
794 DEFINE_THISCALL_WRAPPER(collate_char_do_compare
, 20)
795 #define call_collate_char_do_compare(this, first1, last1, first2, last2) CALL_VTBL_FUNC(this, 4, int, \
796 (const collate*, const char*, const char*, const char*, const char*), \
797 (this, first1, last1, first2, last2))
798 int __thiscall
collate_char_do_compare(const collate
*this, const char *first1
,
799 const char *last1
, const char *first2
, const char *last2
)
801 TRACE("(%p %p %p %p %p)\n", this, first1
, last1
, first2
, last2
);
802 return _Strcoll(first1
, last1
, first2
, last2
, &this->coll
);
805 /* ?compare@?$collate@D@std@@QBEHPBD000@Z */
806 /* ?compare@?$collate@D@std@@QEBAHPEBD000@Z */
807 DEFINE_THISCALL_WRAPPER(collate_char_compare
, 20)
808 int __thiscall
collate_char_compare(const collate
*this, const char *first1
,
809 const char *last1
, const char *first2
, const char *last2
)
811 TRACE("(%p %p %p %p %p)\n", this, first1
, last1
, first2
, last2
);
812 return call_collate_char_do_compare(this, first1
, last1
, first2
, last2
);
815 /* ?do_hash@?$collate@D@std@@MBEJPBD0@Z */
816 /* ?do_hash@?$collate@D@std@@MEBAJPEBD0@Z */
817 DEFINE_THISCALL_WRAPPER(collate_char_do_hash
, 12)
818 #define call_collate_char_do_hash(this, first, last) CALL_VTBL_FUNC(this, 12, LONG, \
819 (const collate*, const char*, const char*), (this, first, last))
820 LONG __thiscall
collate_char_do_hash(const collate
*this,
821 const char *first
, const char *last
)
825 TRACE("(%p %p %p)\n", this, first
, last
);
827 for(; first
<last
; first
++)
828 ret
= (ret
<<8 | ret
>>24) + *first
;
832 /* ?hash@?$collate@D@std@@QBEJPBD0@Z */
833 /* ?hash@?$collate@D@std@@QEBAJPEBD0@Z */
834 DEFINE_THISCALL_WRAPPER(collate_char_hash
, 12)
835 LONG __thiscall
collate_char_hash(const collate
*this,
836 const char *first
, const char *last
)
838 TRACE("(%p %p %p)\n", this, first
, last
);
839 return call_collate_char_do_hash(this, first
, last
);
842 /* ?do_transform@?$collate@D@std@@MBE?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@2@PBD0@Z */
843 /* ?do_transform@?$collate@D@std@@MEBA?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@2@PEBD0@Z */
844 DEFINE_THISCALL_WRAPPER(collate_char_do_transform
, 16)
845 basic_string_char
* __thiscall
collate_char_do_transform(const collate
*this,
846 basic_string_char
*ret
, const char *first
, const char *last
)
848 FIXME("(%p %p %p) stub\n", this, first
, last
);
852 /* ?transform@?$collate@D@std@@QBE?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@2@PBD0@Z */
853 /* ?transform@?$collate@D@std@@QEBA?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@2@PEBD0@Z */
854 DEFINE_THISCALL_WRAPPER(collate_char_transform
, 16)
855 basic_string_char
* __thiscall
collate_char_transform(const collate
*this,
856 basic_string_char
*ret
, const char *first
, const char *last
)
858 FIXME("(%p %p %p) stub\n", this, first
, last
);
862 /* ?id@?$collate@_W@std@@2V0locale@2@A */
863 locale_id collate_wchar_id
= {0};
864 /* ?id@?$collate@G@std@@2V0locale@2@A */
865 locale_id collate_short_id
= {0};
867 /* ??_7?$collate@_W@std@@6B@ */
868 extern const vtable_ptr MSVCP_collate_wchar_vtable
;
869 /* ??_7?$collate@G@std@@6B@ */
870 extern const vtable_ptr MSVCP_collate_short_vtable
;
872 /* ?_Init@?$collate@_W@std@@IAEXABV_Locinfo@2@@Z */
873 /* ?_Init@?$collate@_W@std@@IEAAXAEBV_Locinfo@2@@Z */
874 /* ?_Init@?$collate@G@std@@IAEXABV_Locinfo@2@@Z */
875 /* ?_Init@?$collate@G@std@@IEAAXAEBV_Locinfo@2@@Z */
876 DEFINE_THISCALL_WRAPPER(collate_wchar__Init
, 8)
877 void __thiscall
collate_wchar__Init(collate
*this, const _Locinfo
*locinfo
)
879 TRACE("(%p %p)\n", this, locinfo
);
880 _Locinfo__Getcoll(locinfo
, &this->coll
);
883 /* ??0?$collate@_W@std@@IAE@PBDI@Z */
884 /* ??0?$collate@_W@std@@IEAA@PEBD_K@Z */
885 DEFINE_THISCALL_WRAPPER(collate_wchar_ctor_name
, 12)
886 collate
* __thiscall
collate_wchar_ctor_name(collate
*this, const char *name
, MSVCP_size_t refs
)
890 TRACE("(%p %s %lu)\n", this, name
, refs
);
892 locale_facet_ctor_refs(&this->facet
, refs
);
893 this->facet
.vtable
= &MSVCP_collate_wchar_vtable
;
895 _Locinfo_ctor_cstr(&locinfo
, name
);
896 collate_wchar__Init(this, &locinfo
);
897 _Locinfo_dtor(&locinfo
);
901 /* ??0?$collate@G@std@@IAE@PBDI@Z */
902 /* ??0?$collate@G@std@@IEAA@PEBD_K@Z */
903 DEFINE_THISCALL_WRAPPER(collate_short_ctor_name
, 12)
904 collate
* __thiscall
collate_short_ctor_name(collate
*this, const char *name
, MSVCP_size_t refs
)
906 collate
*ret
= collate_wchar_ctor_name(this, name
, refs
);
907 ret
->facet
.vtable
= &MSVCP_collate_short_vtable
;
911 /* ??0?$collate@_W@std@@QAE@ABV_Locinfo@1@I@Z */
912 /* ??0?$collate@_W@std@@QEAA@AEBV_Locinfo@1@_K@Z */
913 DEFINE_THISCALL_WRAPPER(collate_wchar_ctor_locinfo
, 12)
914 collate
* __thiscall
collate_wchar_ctor_locinfo(collate
*this, _Locinfo
*locinfo
, MSVCP_size_t refs
)
916 TRACE("(%p %p %lu)\n", this, locinfo
, refs
);
918 locale_facet_ctor_refs(&this->facet
, refs
);
919 this->facet
.vtable
= &MSVCP_collate_wchar_vtable
;
920 collate_wchar__Init(this, locinfo
);
924 /* ??0?$collate@G@std@@QAE@ABV_Locinfo@1@I@Z */
925 /* ??0?$collate@G@std@@QEAA@AEBV_Locinfo@1@_K@Z */
926 DEFINE_THISCALL_WRAPPER(collate_short_ctor_locinfo
, 12)
927 collate
* __thiscall
collate_short_ctor_locinfo(collate
*this, _Locinfo
*locinfo
, MSVCP_size_t refs
)
929 collate
*ret
= collate_wchar_ctor_locinfo(this, locinfo
, refs
);
930 ret
->facet
.vtable
= &MSVCP_collate_short_vtable
;
934 /* ??0?$collate@_W@std@@QAE@I@Z */
935 /* ??0?$collate@_W@std@@QEAA@_K@Z */
936 DEFINE_THISCALL_WRAPPER(collate_wchar_ctor_refs
, 8)
937 collate
* __thiscall
collate_wchar_ctor_refs(collate
*this, MSVCP_size_t refs
)
939 return collate_wchar_ctor_name(this, "C", refs
);
942 /* ??0?$collate@G@std@@QAE@I@Z */
943 /* ??0?$collate@G@std@@QEAA@_K@Z */
944 DEFINE_THISCALL_WRAPPER(collate_short_ctor_refs
, 8)
945 collate
* __thiscall
collate_short_ctor_refs(collate
*this, MSVCP_size_t refs
)
947 collate
*ret
= collate_wchar_ctor_refs(this, refs
);
948 ret
->facet
.vtable
= &MSVCP_collate_short_vtable
;
952 /* ??1?$collate@_W@std@@MAE@XZ */
953 /* ??1?$collate@_W@std@@MEAA@XZ */
954 /* ??1?$collate@G@std@@MAE@XZ */
955 /* ??1?$collate@G@std@@MEAA@XZ */
956 DEFINE_THISCALL_WRAPPER(collate_wchar_dtor
, 4)
957 void __thiscall
collate_wchar_dtor(collate
*this)
959 TRACE("(%p)\n", this);
962 DEFINE_THISCALL_WRAPPER(MSVCP_collate_wchar_vector_dtor
, 8)
963 collate
* __thiscall
MSVCP_collate_wchar_vector_dtor(collate
*this, unsigned int flags
)
965 TRACE("(%p %x)\n", this, flags
);
967 /* we have an array, with the number of elements stored before the first object */
968 int i
, *ptr
= (int *)this-1;
970 for(i
=*ptr
-1; i
>=0; i
--)
971 collate_wchar_dtor(this+i
);
972 MSVCRT_operator_delete(ptr
);
974 collate_wchar_dtor(this);
976 MSVCRT_operator_delete(this);
982 DEFINE_THISCALL_WRAPPER(MSVCP_collate_short_vector_dtor
, 8)
983 collate
* __thiscall
MSVCP_collate_short_vector_dtor(collate
*this, unsigned int flags
)
985 return MSVCP_collate_wchar_vector_dtor(this, flags
);
988 /* ??_F?$collate@_W@std@@QAEXXZ */
989 /* ??_F?$collate@_W@std@@QEAAXXZ */
990 DEFINE_THISCALL_WRAPPER(collate_wchar_ctor
, 4)
991 collate
* __thiscall
collate_wchar_ctor(collate
*this)
993 return collate_wchar_ctor_name(this, "C", 0);
996 /* ??_F?$collate@G@std@@QAEXXZ */
997 /* ??_F?$collate@G@std@@QEAAXXZ */
998 DEFINE_THISCALL_WRAPPER(collate_short_ctor
, 4)
999 collate
* __thiscall
collate_short_ctor(collate
*this)
1001 collate
*ret
= collate_wchar_ctor(this);
1002 ret
->facet
.vtable
= &MSVCP_collate_short_vtable
;
1006 /* ?_Getcat@?$collate@_W@std@@SAIPAPBVfacet@locale@2@PBV42@@Z */
1007 /* ?_Getcat@?$collate@_W@std@@SA_KPEAPEBVfacet@locale@2@PEBV42@@Z */
1008 MSVCP_size_t __cdecl
collate_wchar__Getcat(const locale_facet
**facet
, const locale
*loc
)
1010 TRACE("(%p %p)\n", facet
, loc
);
1012 if(facet
&& !*facet
) {
1013 *facet
= MSVCRT_operator_new(sizeof(collate
));
1015 ERR("Out of memory\n");
1016 throw_exception(EXCEPTION_BAD_ALLOC
, NULL
);
1019 collate_wchar_ctor_name((collate
*)*facet
,
1020 MSVCP_basic_string_char_c_str(&loc
->ptr
->name
), 0);
1026 /* ?_Getcat@?$collate@G@std@@SAIPAPBVfacet@locale@2@PBV42@@Z */
1027 /* ?_Getcat@?$collate@G@std@@SA_KPEAPEBVfacet@locale@2@PEBV42@@Z */
1028 MSVCP_size_t __cdecl
collate_short__Getcat(const locale_facet
**facet
, const locale
*loc
)
1030 if(facet
&& !*facet
) {
1031 collate_wchar__Getcat(facet
, loc
);
1032 (*(locale_facet
**)facet
)->vtable
= &MSVCP_collate_short_vtable
;
1039 int __cdecl
_Wcscoll(const wchar_t *first1
, const wchar_t *last1
, const wchar_t *first2
,
1040 const wchar_t *last2
, const _Collvec
*coll
)
1044 TRACE("(%s %s)\n", debugstr_wn(first1
, last1
-first1
), debugstr_wn(first2
, last2
-first2
));
1047 lcid
= coll
->handle
;
1049 lcid
= ___lc_handle_func()[LC_COLLATE
];
1050 return CompareStringW(lcid
, 0, first1
, last1
-first1
, first2
, last2
-first2
)-2;
1053 /* ?do_compare@?$collate@_W@std@@MBEHPB_W000@Z */
1054 /* ?do_compare@?$collate@_W@std@@MEBAHPEB_W000@Z */
1055 /* ?do_compare@?$collate@G@std@@MBEHPBG000@Z */
1056 /* ?do_compare@?$collate@G@std@@MEBAHPEBG000@Z */
1057 DEFINE_THISCALL_WRAPPER(collate_wchar_do_compare
, 20)
1058 #define call_collate_wchar_do_compare(this, first1, last1, first2, last2) CALL_VTBL_FUNC(this, 4, int, \
1059 (const collate*, const wchar_t*, const wchar_t*, const wchar_t*, const wchar_t*), \
1060 (this, first1, last1, first2, last2))
1061 int __thiscall
collate_wchar_do_compare(const collate
*this, const wchar_t *first1
,
1062 const wchar_t *last1
, const wchar_t *first2
, const wchar_t *last2
)
1064 TRACE("(%p %p %p %p %p)\n", this, first1
, last1
, first2
, last2
);
1065 return _Wcscoll(first1
, last1
, first2
, last2
, &this->coll
);
1068 /* ?compare@?$collate@_W@std@@QBEHPB_W000@Z */
1069 /* ?compare@?$collate@_W@std@@QEBAHPEB_W000@Z */
1070 /* ?compare@?$collate@G@std@@QBEHPBG000@Z */
1071 /* ?compare@?$collate@G@std@@QEBAHPEBG000@Z */
1072 DEFINE_THISCALL_WRAPPER(collate_wchar_compare
, 20)
1073 int __thiscall
collate_wchar_compare(const collate
*this, const wchar_t *first1
,
1074 const wchar_t *last1
, const wchar_t *first2
, const wchar_t *last2
)
1076 TRACE("(%p %p %p %p %p)\n", this, first1
, last1
, first2
, last2
);
1077 return call_collate_wchar_do_compare(this, first1
, last1
, first2
, last2
);
1080 /* ?do_hash@?$collate@_W@std@@MBEJPB_W0@Z */
1081 /* ?do_hash@?$collate@_W@std@@MEBAJPEB_W0@Z */
1082 /* ?do_hash@?$collate@G@std@@MBEJPBG0@Z */
1083 /* ?do_hash@?$collate@G@std@@MEBAJPEBG0@Z */
1084 DEFINE_THISCALL_WRAPPER(collate_wchar_do_hash
, 12)
1085 #define call_collate_wchar_do_hash(this, first, last) CALL_VTBL_FUNC(this, 12, LONG, \
1086 (const collate*, const wchar_t*, const wchar_t*), (this, first, last))
1087 LONG __thiscall
collate_wchar_do_hash(const collate
*this,
1088 const wchar_t *first
, const wchar_t *last
)
1092 TRACE("(%p %p %p)\n", this, first
, last
);
1094 for(; first
<last
; first
++)
1095 ret
= (ret
<<8 | ret
>>24) + *first
;
1099 /* ?hash@?$collate@_W@std@@QBEJPB_W0@Z */
1100 /* ?hash@?$collate@_W@std@@QEBAJPEB_W0@Z */
1101 /* ?hash@?$collate@G@std@@QBEJPBG0@Z */
1102 /* ?hash@?$collate@G@std@@QEBAJPEBG0@Z */
1103 DEFINE_THISCALL_WRAPPER(collate_wchar_hash
, 12)
1104 LONG __thiscall
collate_wchar_hash(const collate
*this,
1105 const wchar_t *first
, const wchar_t *last
)
1107 TRACE("(%p %p %p)\n", this, first
, last
);
1108 return call_collate_wchar_do_hash(this, first
, last
);
1111 /* ?do_transform@?$collate@_W@std@@MBE?AV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@2@PB_W0@Z */
1112 /* ?do_transform@?$collate@_W@std@@MEBA?AV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@2@PEB_W0@Z */
1113 /* ?do_transform@?$collate@G@std@@MBE?AV?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@2@PBG0@Z */
1114 /* ?do_transform@?$collate@G@std@@MEBA?AV?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@2@PEBG0@Z */
1115 DEFINE_THISCALL_WRAPPER(collate_wchar_do_transform
, 16)
1116 basic_string_wchar
* __thiscall
collate_wchar_do_transform(const collate
*this,
1117 basic_string_wchar
*ret
, const wchar_t *first
, const wchar_t *last
)
1119 FIXME("(%p %p %p) stub\n", this, first
, last
);
1123 /* ?transform@?$collate@_W@std@@QBE?AV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@2@PB_W0@Z */
1124 /* ?transform@?$collate@_W@std@@QEBA?AV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@2@PEB_W0@Z */
1125 /* ?transform@?$collate@G@std@@QBE?AV?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@2@PBG0@Z */
1126 /* ?transform@?$collate@G@std@@QEBA?AV?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@2@PEBG0@Z */
1127 DEFINE_THISCALL_WRAPPER(collate_wchar_transform
, 16)
1128 basic_string_wchar
* __thiscall
collate_wchar_transform(const collate
*this,
1129 basic_string_wchar
*ret
, const wchar_t *first
, const wchar_t *last
)
1131 FIXME("(%p %p %p) stub\n", this, first
, last
);
1135 /* ??_7ctype_base@std@@6B@ */
1136 extern const vtable_ptr MSVCP_ctype_base_vtable
;
1138 /* ??0ctype_base@std@@QAE@I@Z */
1139 /* ??0ctype_base@std@@QEAA@_K@Z */
1140 DEFINE_THISCALL_WRAPPER(ctype_base_ctor_refs
, 8)
1141 ctype_base
* __thiscall
ctype_base_ctor_refs(ctype_base
*this, MSVCP_size_t refs
)
1143 TRACE("(%p %lu)\n", this, refs
);
1144 locale_facet_ctor_refs(&this->facet
, refs
);
1145 this->facet
.vtable
= &MSVCP_ctype_base_vtable
;
1149 /* ??_Fctype_base@std@@QAEXXZ */
1150 /* ??_Fctype_base@std@@QEAAXXZ */
1151 DEFINE_THISCALL_WRAPPER(ctype_base_ctor
, 4)
1152 ctype_base
* __thiscall
ctype_base_ctor(ctype_base
*this)
1154 TRACE("(%p)\n", this);
1155 locale_facet_ctor_refs(&this->facet
, 0);
1156 this->facet
.vtable
= &MSVCP_ctype_base_vtable
;
1160 /* ??1ctype_base@std@@UAE@XZ */
1161 /* ??1ctype_base@std@@UEAA@XZ */
1162 DEFINE_THISCALL_WRAPPER(ctype_base_dtor
, 4)
1163 void __thiscall
ctype_base_dtor(ctype_base
*this)
1165 TRACE("(%p)\n", this);
1168 DEFINE_THISCALL_WRAPPER(MSVCP_ctype_base_vector_dtor
, 8)
1169 ctype_base
* __thiscall
MSVCP_ctype_base_vector_dtor(ctype_base
*this, unsigned int flags
)
1171 TRACE("(%p %x)\n", this, flags
);
1173 /* we have an array, with the number of elements stored before the first object */
1174 int i
, *ptr
= (int *)this-1;
1176 for(i
=*ptr
-1; i
>=0; i
--)
1177 ctype_base_dtor(this+i
);
1178 MSVCRT_operator_delete(ptr
);
1180 ctype_base_dtor(this);
1182 MSVCRT_operator_delete(this);
1188 /* ?_Xran@ctype_base@std@@KAXXZ */
1189 void __cdecl
ctype_base__Xran(void)
1191 throw_exception(EXCEPTION_OUT_OF_RANGE
, "out of range in ctype<T>");
1194 /* ?id@?$ctype@D@std@@2V0locale@2@A */
1195 locale_id ctype_char_id
= {0};
1196 /* ?table_size@?$ctype@D@std@@2IB */
1197 /* ?table_size@?$ctype@D@std@@2_KB */
1198 MSVCP_size_t ctype_char_table_size
= 256;
1200 /* ??_7?$ctype@D@std@@6B@ */
1201 extern const vtable_ptr MSVCP_ctype_char_vtable
;
1203 /* ?_Id_func@?$ctype@D@std@@SAAAVid@locale@2@XZ */
1204 /* ?_Id_func@?$ctype@D@std@@SAAEAVid@locale@2@XZ */
1205 locale_id
* __cdecl
ctype_char__Id_func(void)
1208 return &ctype_char_id
;
1211 /* ?_Init@?$ctype@D@std@@IAEXABV_Locinfo@2@@Z */
1212 /* ?_Init@?$ctype@D@std@@IEAAXAEBV_Locinfo@2@@Z */
1213 DEFINE_THISCALL_WRAPPER(ctype_char__Init
, 8)
1214 void __thiscall
ctype_char__Init(ctype_char
*this, _Locinfo
*locinfo
)
1216 TRACE("(%p %p)\n", this, locinfo
);
1217 _Locinfo__Getctype(locinfo
, &this->ctype
);
1220 /* ?_Tidy@?$ctype@D@std@@IAEXXZ */
1221 /* ?_Tidy@?$ctype@D@std@@IEAAXXZ */
1222 DEFINE_THISCALL_WRAPPER(ctype_char__Tidy
, 4)
1223 void __thiscall
ctype_char__Tidy(ctype_char
*this)
1225 TRACE("(%p)\n", this);
1227 if(this->ctype
.delfl
)
1228 free((short*)this->ctype
.table
);
1231 /* ?classic_table@?$ctype@D@std@@KAPBFXZ */
1232 /* ?classic_table@?$ctype@D@std@@KAPEBFXZ */
1233 const short* __cdecl
ctype_char_classic_table(void)
1236 return &((short*)GetProcAddress(GetModuleHandleA("msvcrt.dll"), "_ctype"))[1];
1239 /* ??0?$ctype@D@std@@QAE@ABV_Locinfo@1@I@Z */
1240 /* ??0?$ctype@D@std@@QEAA@AEBV_Locinfo@1@_K@Z */
1241 DEFINE_THISCALL_WRAPPER(ctype_char_ctor_locinfo
, 12)
1242 ctype_char
* __thiscall
ctype_char_ctor_locinfo(ctype_char
*this,
1243 _Locinfo
*locinfo
, MSVCP_size_t refs
)
1245 TRACE("(%p %p %lu)\n", this, locinfo
, refs
);
1246 ctype_base_ctor_refs(&this->base
, refs
);
1247 this->base
.facet
.vtable
= &MSVCP_ctype_char_vtable
;
1248 ctype_char__Init(this, locinfo
);
1252 /* ??0?$ctype@D@std@@QAE@PBF_NI@Z */
1253 /* ??0?$ctype@D@std@@QEAA@PEBF_N_K@Z */
1254 DEFINE_THISCALL_WRAPPER(ctype_char_ctor_table
, 16)
1255 ctype_char
* __thiscall
ctype_char_ctor_table(ctype_char
*this,
1256 const short *table
, MSVCP_bool
delete, MSVCP_size_t refs
)
1260 TRACE("(%p %p %d %lu)\n", this, table
, delete, refs
);
1262 ctype_base_ctor_refs(&this->base
, refs
);
1263 this->base
.facet
.vtable
= &MSVCP_ctype_char_vtable
;
1265 _Locinfo_ctor(&locinfo
);
1266 ctype_char__Init(this, &locinfo
);
1267 _Locinfo_dtor(&locinfo
);
1270 ctype_char__Tidy(this);
1271 this->ctype
.table
= table
;
1272 this->ctype
.delfl
= delete;
1277 /* ??_F?$ctype@D@std@@QAEXXZ */
1278 /* ??_F?$ctype@D@std@@QEAAXXZ */
1279 DEFINE_THISCALL_WRAPPER(ctype_char_ctor
, 4)
1280 ctype_char
* __thiscall
ctype_char_ctor(ctype_char
*this)
1282 return ctype_char_ctor_table(this, NULL
, FALSE
, 0);
1285 /* ??1?$ctype@D@std@@MAE@XZ */
1286 /* ??1?$ctype@D@std@@MEAA@XZ */
1287 DEFINE_THISCALL_WRAPPER(ctype_char_dtor
, 4)
1288 void __thiscall
ctype_char_dtor(ctype_char
*this)
1290 TRACE("(%p)\n", this);
1291 ctype_char__Tidy(this);
1294 DEFINE_THISCALL_WRAPPER(MSVCP_ctype_char_vector_dtor
, 8)
1295 ctype_char
* __thiscall
MSVCP_ctype_char_vector_dtor(ctype_char
*this, unsigned int flags
)
1297 TRACE("(%p %x)\n", this, flags
);
1299 /* we have an array, with the number of elements stored before the first object */
1300 int i
, *ptr
= (int *)this-1;
1302 for(i
=*ptr
-1; i
>=0; i
--)
1303 ctype_char_dtor(this+i
);
1304 MSVCRT_operator_delete(ptr
);
1306 ctype_char_dtor(this);
1308 MSVCRT_operator_delete(this);
1314 /* ?do_narrow@?$ctype@D@std@@MBEDDD@Z */
1315 /* ?do_narrow@?$ctype@D@std@@MEBADDD@Z */
1316 DEFINE_THISCALL_WRAPPER(ctype_char_do_narrow_ch
, 12)
1317 #define call_ctype_char_do_narrow_ch(this, ch, unused) CALL_VTBL_FUNC(this, 36, \
1318 char, (const ctype_char*, char, char), (this, ch, unused))
1319 char __thiscall
ctype_char_do_narrow_ch(const ctype_char
*this, char ch
, char unused
)
1321 TRACE("(%p %c %c)\n", this, ch
, unused
);
1325 /* ?do_narrow@?$ctype@D@std@@MBEPBDPBD0DPAD@Z */
1326 /* ?do_narrow@?$ctype@D@std@@MEBAPEBDPEBD0DPEAD@Z */
1327 DEFINE_THISCALL_WRAPPER(ctype_char_do_narrow
, 20)
1328 #define call_ctype_char_do_narrow(this, first, last, unused, dest) CALL_VTBL_FUNC(this, 32, \
1329 const char*, (const ctype_char*, const char*, const char*, char, char*), \
1330 (this, first, last, unused, dest))
1331 const char* __thiscall
ctype_char_do_narrow(const ctype_char
*this,
1332 const char *first
, const char *last
, char unused
, char *dest
)
1334 TRACE("(%p %p %p %p)\n", this, first
, last
, dest
);
1335 memcpy(dest
, first
, last
-first
);
1339 /* ?_Do_narrow_s@?$ctype@D@std@@MBEPBDPBD0DPADI@Z */
1340 /* ?_Do_narrow_s@?$ctype@D@std@@MEBAPEBDPEBD0DPEAD_K@Z */
1341 DEFINE_THISCALL_WRAPPER(ctype_char__Do_narrow_s
, 24)
1342 #define call_ctype_char__Do_narrow_s(this, first, last, unused, dest, size) CALL_VTBL_FUNC(this, 40, \
1343 const char*, (const ctype_char*, const char*, const char*, char, char*, MSVCP_size_t), \
1344 (this, first, last, unused, dest, size))
1345 const char* __thiscall
ctype_char__Do_narrow_s(const ctype_char
*this, const char *first
,
1346 const char *last
, char unused
, char *dest
, MSVCP_size_t size
)
1348 TRACE("(%p %p %p %p %lu)\n", this, first
, last
, dest
, size
);
1349 memcpy_s(dest
, size
, first
, last
-first
);
1353 /* ?narrow@?$ctype@D@std@@QBEDDD@Z */
1354 /* ?narrow@?$ctype@D@std@@QEBADDD@Z */
1355 DEFINE_THISCALL_WRAPPER(ctype_char_narrow_ch
, 12)
1356 char __thiscall
ctype_char_narrow_ch(const ctype_char
*this, char ch
, char dflt
)
1358 TRACE("(%p %c %c)\n", this, ch
, dflt
);
1359 return call_ctype_char_do_narrow_ch(this, ch
, dflt
);
1362 /* ?narrow@?$ctype@D@std@@QBEPBDPBD0DPAD@Z */
1363 /* ?narrow@?$ctype@D@std@@QEBAPEBDPEBD0DPEAD@Z */
1364 DEFINE_THISCALL_WRAPPER(ctype_char_narrow
, 20)
1365 const char* __thiscall
ctype_char_narrow(const ctype_char
*this,
1366 const char *first
, const char *last
, char dflt
, char *dest
)
1368 TRACE("(%p %p %p %c %p)\n", this, first
, last
, dflt
, dest
);
1369 return call_ctype_char_do_narrow(this, first
, last
, dflt
, dest
);
1372 /* ?_Narrow_s@?$ctype@D@std@@QBEPBDPBD0DPADI@Z */
1373 /* ?_Narrow_s@?$ctype@D@std@@QEBAPEBDPEBD0DPEAD_K@Z */
1374 DEFINE_THISCALL_WRAPPER(ctype_char__Narrow_s
, 24)
1375 const char* __thiscall
ctype_char__Narrow_s(const ctype_char
*this, const char *first
,
1376 const char *last
, char dflt
, char *dest
, MSVCP_size_t size
)
1378 TRACE("(%p %p %p %p %lu)\n", this, first
, last
, dest
, size
);
1379 return call_ctype_char__Do_narrow_s(this, first
, last
, dflt
, dest
, size
);
1382 /* ?do_widen@?$ctype@D@std@@MBEDD@Z */
1383 /* ?do_widen@?$ctype@D@std@@MEBADD@Z */
1384 DEFINE_THISCALL_WRAPPER(ctype_char_do_widen_ch
, 8)
1385 #define call_ctype_char_do_widen_ch(this, ch) CALL_VTBL_FUNC(this, 24, \
1386 char, (const ctype_char*, char), (this, ch))
1387 char __thiscall
ctype_char_do_widen_ch(const ctype_char
*this, char ch
)
1389 TRACE("(%p %c)\n", this, ch
);
1393 /* ?do_widen@?$ctype@D@std@@MBEPBDPBD0PAD@Z */
1394 /* ?do_widen@?$ctype@D@std@@MEBAPEBDPEBD0PEAD@Z */
1395 DEFINE_THISCALL_WRAPPER(ctype_char_do_widen
, 16)
1396 #define call_ctype_char_do_widen(this, first, last, dest) CALL_VTBL_FUNC(this, 20, \
1397 const char*, (const ctype_char*, const char*, const char*, char*), \
1398 (this, first, last, dest))
1399 const char* __thiscall
ctype_char_do_widen(const ctype_char
*this,
1400 const char *first
, const char *last
, char *dest
)
1402 TRACE("(%p %p %p %p)\n", this, first
, last
, dest
);
1403 memcpy(dest
, first
, last
-first
);
1407 /* ?_Do_widen_s@?$ctype@D@std@@MBEPBDPBD0PADI@Z */
1408 /* ?_Do_widen_s@?$ctype@D@std@@MEBAPEBDPEBD0PEAD_K@Z */
1409 DEFINE_THISCALL_WRAPPER(ctype_char__Do_widen_s
, 20)
1410 #define call_ctype_char__Do_widen_s(this, first, last, dest, size) CALL_VTBL_FUNC(this, 28, \
1411 const char*, (const ctype_char*, const char*, const char*, char*, MSVCP_size_t), \
1412 (this, first, last, dest, size))
1413 const char* __thiscall
ctype_char__Do_widen_s(const ctype_char
*this,
1414 const char *first
, const char *last
, char *dest
, MSVCP_size_t size
)
1416 TRACE("(%p %p %p %p %lu)\n", this, first
, last
, dest
, size
);
1417 memcpy_s(dest
, size
, first
, last
-first
);
1421 /* ?widen@?$ctype@D@std@@QBEDD@Z */
1422 /* ?widen@?$ctype@D@std@@QEBADD@Z */
1423 DEFINE_THISCALL_WRAPPER(ctype_char_widen_ch
, 8)
1424 char __thiscall
ctype_char_widen_ch(const ctype_char
*this, char ch
)
1426 TRACE("(%p %c)\n", this, ch
);
1427 return call_ctype_char_do_widen_ch(this, ch
);
1430 /* ?widen@?$ctype@D@std@@QBEPBDPBD0PAD@Z */
1431 /* ?widen@?$ctype@D@std@@QEBAPEBDPEBD0PEAD@Z */
1432 DEFINE_THISCALL_WRAPPER(ctype_char_widen
, 16)
1433 const char* __thiscall
ctype_char_widen(const ctype_char
*this,
1434 const char *first
, const char *last
, char *dest
)
1436 TRACE("(%p %p %p %p)\n", this, first
, last
, dest
);
1437 return call_ctype_char_do_widen(this, first
, last
, dest
);
1440 /* ?_Widen_s@?$ctype@D@std@@QBEPBDPBD0PADI@Z */
1441 /* ?_Widen_s@?$ctype@D@std@@QEBAPEBDPEBD0PEAD_K@Z */
1442 DEFINE_THISCALL_WRAPPER(ctype_char__Widen_s
, 20)
1443 const char* __thiscall
ctype_char__Widen_s(const ctype_char
*this,
1444 const char *first
, const char *last
, char *dest
, MSVCP_size_t size
)
1446 TRACE("(%p %p %p %p %lu)\n", this, first
, last
, dest
, size
);
1447 return call_ctype_char__Do_widen_s(this, first
, last
, dest
, size
);
1450 /* ?_Getcat@?$ctype@D@std@@SAIPAPBVfacet@locale@2@PBV42@@Z */
1451 /* ?_Getcat@?$ctype@D@std@@SA_KPEAPEBVfacet@locale@2@PEBV42@@Z */
1452 MSVCP_size_t __cdecl
ctype_char__Getcat(const locale_facet
**facet
, const locale
*loc
)
1454 TRACE("(%p %p)\n", facet
, loc
);
1456 if(facet
&& !*facet
) {
1459 *facet
= MSVCRT_operator_new(sizeof(ctype_char
));
1461 ERR("Out of memory\n");
1462 throw_exception(EXCEPTION_BAD_ALLOC
, NULL
);
1466 _Locinfo_ctor_cstr(&locinfo
, MSVCP_basic_string_char_c_str(&loc
->ptr
->name
));
1467 ctype_char_ctor_locinfo((ctype_char
*)*facet
, &locinfo
, 0);
1468 _Locinfo_dtor(&locinfo
);
1475 int __cdecl
_Tolower(int ch
, const _Ctypevec
*ctype
)
1479 TRACE("%d %p\n", ch
, ctype
);
1484 cp
= ___lc_codepage_func();
1486 /* Don't convert to unicode in case of C locale */
1488 if(ch
>='A' && ch
<='Z')
1497 str
[0] = (ch
>>8) & 255;
1505 if(!MultiByteToWideChar(cp
, MB_ERR_INVALID_CHARS
, str
, size
, &wide
, 1))
1508 lower
= tolowerW(wide
);
1512 WideCharToMultiByte(cp
, 0, &lower
, 1, str
, 2, NULL
, NULL
);
1514 return str
[0] + (str
[1]<<8);
1518 /* ?do_tolower@?$ctype@D@std@@MBEDD@Z */
1519 /* ?do_tolower@?$ctype@D@std@@MEBADD@Z */
1520 #define call_ctype_char_do_tolower_ch(this, ch) CALL_VTBL_FUNC(this, 8, \
1521 char, (const ctype_char*, char), (this, ch))
1522 DEFINE_THISCALL_WRAPPER(ctype_char_do_tolower_ch
, 8)
1523 char __thiscall
ctype_char_do_tolower_ch(const ctype_char
*this, char ch
)
1525 TRACE("(%p %c)\n", this, ch
);
1526 return _Tolower(ch
, &this->ctype
);
1529 /* ?do_tolower@?$ctype@D@std@@MBEPBDPADPBD@Z */
1530 /* ?do_tolower@?$ctype@D@std@@MEBAPEBDPEADPEBD@Z */
1531 #define call_ctype_char_do_tolower(this, first, last) CALL_VTBL_FUNC(this, 4, \
1532 const char*, (const ctype_char*, char*, const char*), (this, first, last))
1533 DEFINE_THISCALL_WRAPPER(ctype_char_do_tolower
, 12)
1534 const char* __thiscall
ctype_char_do_tolower(const ctype_char
*this, char *first
, const char *last
)
1536 TRACE("(%p %p %p)\n", this, first
, last
);
1537 for(; first
<last
; first
++)
1538 *first
= _Tolower(*first
, &this->ctype
);
1542 /* ?tolower@?$ctype@D@std@@QBEDD@Z */
1543 /* ?tolower@?$ctype@D@std@@QEBADD@Z */
1544 DEFINE_THISCALL_WRAPPER(ctype_char_tolower_ch
, 8)
1545 char __thiscall
ctype_char_tolower_ch(const ctype_char
*this, char ch
)
1547 TRACE("(%p %c)\n", this, ch
);
1548 return call_ctype_char_do_tolower_ch(this, ch
);
1551 /* ?tolower@?$ctype@D@std@@QBEPBDPADPBD@Z */
1552 /* ?tolower@?$ctype@D@std@@QEBAPEBDPEADPEBD@Z */
1553 DEFINE_THISCALL_WRAPPER(ctype_char_tolower
, 12)
1554 const char* __thiscall
ctype_char_tolower(const ctype_char
*this, char *first
, const char *last
)
1556 TRACE("(%p %p %p)\n", this, first
, last
);
1557 return call_ctype_char_do_tolower(this, first
, last
);
1561 int __cdecl
_Toupper(int ch
, const _Ctypevec
*ctype
)
1565 TRACE("%d %p\n", ch
, ctype
);
1570 cp
= ___lc_codepage_func();
1572 /* Don't convert to unicode in case of C locale */
1574 if(ch
>='a' && ch
<='z')
1583 str
[0] = (ch
>>8) & 255;
1591 if(!MultiByteToWideChar(cp
, MB_ERR_INVALID_CHARS
, str
, size
, &wide
, 1))
1594 upper
= toupperW(wide
);
1598 WideCharToMultiByte(cp
, 0, &upper
, 1, str
, 2, NULL
, NULL
);
1600 return str
[0] + (str
[1]<<8);
1604 /* ?do_toupper@?$ctype@D@std@@MBEDD@Z */
1605 /* ?do_toupper@?$ctype@D@std@@MEBADD@Z */
1606 #define call_ctype_char_do_toupper_ch(this, ch) CALL_VTBL_FUNC(this, 16, \
1607 char, (const ctype_char*, char), (this, ch))
1608 DEFINE_THISCALL_WRAPPER(ctype_char_do_toupper_ch
, 8)
1609 char __thiscall
ctype_char_do_toupper_ch(const ctype_char
*this, char ch
)
1611 TRACE("(%p %c)\n", this, ch
);
1612 return _Toupper(ch
, &this->ctype
);
1615 /* ?do_toupper@?$ctype@D@std@@MBEPBDPADPBD@Z */
1616 /* ?do_toupper@?$ctype@D@std@@MEBAPEBDPEADPEBD@Z */
1617 #define call_ctype_char_do_toupper(this, first, last) CALL_VTBL_FUNC(this, 12, \
1618 const char*, (const ctype_char*, char*, const char*), (this, first, last))
1619 DEFINE_THISCALL_WRAPPER(ctype_char_do_toupper
, 12)
1620 const char* __thiscall
ctype_char_do_toupper(const ctype_char
*this,
1621 char *first
, const char *last
)
1623 TRACE("(%p %p %p)\n", this, first
, last
);
1624 for(; first
<last
; first
++)
1625 *first
= _Toupper(*first
, &this->ctype
);
1629 /* ?toupper@?$ctype@D@std@@QBEDD@Z */
1630 /* ?toupper@?$ctype@D@std@@QEBADD@Z */
1631 DEFINE_THISCALL_WRAPPER(ctype_char_toupper_ch
, 8)
1632 char __thiscall
ctype_char_toupper_ch(const ctype_char
*this, char ch
)
1634 TRACE("(%p %c)\n", this, ch
);
1635 return call_ctype_char_do_toupper_ch(this, ch
);
1638 /* ?toupper@?$ctype@D@std@@QBEPBDPADPBD@Z */
1639 /* ?toupper@?$ctype@D@std@@QEBAPEBDPEADPEBD@Z */
1640 DEFINE_THISCALL_WRAPPER(ctype_char_toupper
, 12)
1641 const char* __thiscall
ctype_char_toupper(const ctype_char
*this, char *first
, const char *last
)
1643 TRACE("(%p %p %p)\n", this, first
, last
);
1644 return call_ctype_char_do_toupper(this, first
, last
);
1647 /* ?is@?$ctype@D@std@@QBE_NFD@Z */
1648 /* ?is@?$ctype@D@std@@QEBA_NFD@Z */
1649 DEFINE_THISCALL_WRAPPER(ctype_char_is_ch
, 12)
1650 MSVCP_bool __thiscall
ctype_char_is_ch(const ctype_char
*this, short mask
, char ch
)
1652 TRACE("(%p %x %c)\n", this, mask
, ch
);
1653 return (this->ctype
.table
[(unsigned char)ch
] & mask
) != 0;
1656 /* ?is@?$ctype@D@std@@QBEPBDPBD0PAF@Z */
1657 /* ?is@?$ctype@D@std@@QEBAPEBDPEBD0PEAF@Z */
1658 DEFINE_THISCALL_WRAPPER(ctype_char_is
, 16)
1659 const char* __thiscall
ctype_char_is(const ctype_char
*this, const char *first
, const char *last
, short *dest
)
1661 TRACE("(%p %p %p %p)\n", this, first
, last
, dest
);
1662 for(; first
<last
; first
++)
1663 *dest
++ = this->ctype
.table
[(unsigned char)*first
];
1667 /* ?scan_is@?$ctype@D@std@@QBEPBDFPBD0@Z */
1668 /* ?scan_is@?$ctype@D@std@@QEBAPEBDFPEBD0@Z */
1669 DEFINE_THISCALL_WRAPPER(ctype_char_scan_is
, 16)
1670 const char* __thiscall
ctype_char_scan_is(const ctype_char
*this, short mask
, const char *first
, const char *last
)
1672 TRACE("(%p %x %p %p)\n", this, mask
, first
, last
);
1673 for(; first
<last
; first
++)
1674 if(!ctype_char_is_ch(this, mask
, *first
))
1679 /* ?scan_not@?$ctype@D@std@@QBEPBDFPBD0@Z */
1680 /* ?scan_not@?$ctype@D@std@@QEBAPEBDFPEBD0@Z */
1681 DEFINE_THISCALL_WRAPPER(ctype_char_scan_not
, 16)
1682 const char* __thiscall
ctype_char_scan_not(const ctype_char
*this, short mask
, const char *first
, const char *last
)
1684 TRACE("(%p %x %p %p)\n", this, mask
, first
, last
);
1685 for(; first
<last
; first
++)
1686 if(ctype_char_is_ch(this, mask
, *first
))
1691 /* ?table@?$ctype@D@std@@IBEPBFXZ */
1692 /* ?table@?$ctype@D@std@@IEBAPEBFXZ */
1693 DEFINE_THISCALL_WRAPPER(ctype_char_table
, 4)
1694 const short* __thiscall
ctype_char_table(const ctype_char
*this)
1696 TRACE("(%p)\n", this);
1697 return this->ctype
.table
;
1700 /* ?id@?$ctype@_W@std@@2V0locale@2@A */
1701 locale_id ctype_wchar_id
= {0};
1702 /* ?id@?$ctype@G@std@@2V0locale@2@A */
1703 locale_id ctype_short_id
= {0};
1705 /* ??_7?$ctype@_W@std@@6B@ */
1706 extern const vtable_ptr MSVCP_ctype_wchar_vtable
;
1707 /* ??_7?$ctype@G@std@@6B@ */
1708 extern const vtable_ptr MSVCP_ctype_short_vtable
;
1710 /* ?_Id_func@?$ctype@_W@std@@SAAAVid@locale@2@XZ */
1711 /* ?_Id_func@?$ctype@_W@std@@SAAEAVid@locale@2@XZ */
1712 locale_id
* __cdecl
ctype_wchar__Id_func(void)
1715 return &ctype_wchar_id
;
1718 /* ?_Id_func@?$ctype@G@std@@SAAAVid@locale@2@XZ */
1719 /* ?_Id_func@?$ctype@G@std@@SAAEAVid@locale@2@XZ */
1720 locale_id
* __cdecl
ctype_short__Id_func(void)
1723 return &ctype_short_id
;
1726 /* ?_Init@?$ctype@_W@std@@IAEXABV_Locinfo@2@@Z */
1727 /* ?_Init@?$ctype@_W@std@@IEAAXAEBV_Locinfo@2@@Z */
1728 /* ?_Init@?$ctype@G@std@@IAEXABV_Locinfo@2@@Z */
1729 /* ?_Init@?$ctype@G@std@@IEAAXAEBV_Locinfo@2@@Z */
1730 DEFINE_THISCALL_WRAPPER(ctype_wchar__Init
, 8)
1731 void __thiscall
ctype_wchar__Init(ctype_wchar
*this, _Locinfo
*locinfo
)
1733 TRACE("(%p %p)\n", this, locinfo
);
1734 _Locinfo__Getctype(locinfo
, &this->ctype
);
1735 _Locinfo__Getcvt(locinfo
, &this->cvt
);
1738 /* ??0?$ctype@_W@std@@QAE@ABV_Locinfo@1@I@Z */
1739 /* ??0?$ctype@_W@std@@QEAA@AEBV_Locinfo@1@_K@Z */
1740 DEFINE_THISCALL_WRAPPER(ctype_wchar_ctor_locinfo
, 12)
1741 ctype_wchar
* __thiscall
ctype_wchar_ctor_locinfo(ctype_wchar
*this,
1742 _Locinfo
*locinfo
, MSVCP_size_t refs
)
1744 TRACE("(%p %p %lu)\n", this, locinfo
, refs
);
1745 ctype_base_ctor_refs(&this->base
, refs
);
1746 this->base
.facet
.vtable
= &MSVCP_ctype_wchar_vtable
;
1747 ctype_wchar__Init(this, locinfo
);
1751 /* ??0?$ctype@G@std@@QAE@ABV_Locinfo@1@I@Z */
1752 /* ??0?$ctype@G@std@@QEAA@AEBV_Locinfo@1@_K@Z */
1753 DEFINE_THISCALL_WRAPPER(ctype_short_ctor_locinfo
, 12)
1754 ctype_wchar
* __thiscall
ctype_short_ctor_locinfo(ctype_wchar
*this,
1755 _Locinfo
*locinfo
, MSVCP_size_t refs
)
1757 ctype_wchar
*ret
= ctype_wchar_ctor_locinfo(this, locinfo
, refs
);
1758 this->base
.facet
.vtable
= &MSVCP_ctype_short_vtable
;
1762 /* ??0?$ctype@_W@std@@QAE@I@Z */
1763 /* ??0?$ctype@_W@std@@QEAA@_K@Z */
1764 DEFINE_THISCALL_WRAPPER(ctype_wchar_ctor_refs
, 8)
1765 ctype_wchar
* __thiscall
ctype_wchar_ctor_refs(ctype_wchar
*this, MSVCP_size_t refs
)
1769 TRACE("(%p %lu)\n", this, refs
);
1771 ctype_base_ctor_refs(&this->base
, refs
);
1772 this->base
.facet
.vtable
= &MSVCP_ctype_wchar_vtable
;
1774 _Locinfo_ctor(&locinfo
);
1775 ctype_wchar__Init(this, &locinfo
);
1776 _Locinfo_dtor(&locinfo
);
1780 /* ??0?$ctype@G@std@@QAE@I@Z */
1781 /* ??0?$ctype@G@std@@QEAA@_K@Z */
1782 DEFINE_THISCALL_WRAPPER(ctype_short_ctor_refs
, 8)
1783 ctype_wchar
* __thiscall
ctype_short_ctor_refs(ctype_wchar
*this, MSVCP_size_t refs
)
1785 ctype_wchar
*ret
= ctype_wchar_ctor_refs(this, refs
);
1786 this->base
.facet
.vtable
= &MSVCP_ctype_short_vtable
;
1790 /* ??0?$ctype@G@std@@IAE@PBDI@Z */
1791 /* ??0?$ctype@G@std@@IEAA@PEBD_K@Z */
1792 DEFINE_THISCALL_WRAPPER(ctype_short_ctor_name
, 12)
1793 ctype_wchar
* __thiscall
ctype_short_ctor_name(ctype_wchar
*this,
1794 const char *name
, MSVCP_size_t refs
)
1798 TRACE("(%p %s %lu)\n", this, debugstr_a(name
), refs
);
1800 ctype_base_ctor_refs(&this->base
, refs
);
1801 this->base
.facet
.vtable
= &MSVCP_ctype_short_vtable
;
1803 _Locinfo_ctor_cstr(&locinfo
, name
);
1804 ctype_wchar__Init(this, &locinfo
);
1805 _Locinfo_dtor(&locinfo
);
1809 /* ??_F?$ctype@_W@std@@QAEXXZ */
1810 /* ??_F?$ctype@_W@std@@QEAAXXZ */
1811 DEFINE_THISCALL_WRAPPER(ctype_wchar_ctor
, 4)
1812 ctype_wchar
* __thiscall
ctype_wchar_ctor(ctype_wchar
*this)
1814 TRACE("(%p)\n", this);
1815 return ctype_short_ctor_refs(this, 0);
1818 /* ??_F?$ctype@G@std@@QAEXXZ */
1819 /* ??_F?$ctype@G@std@@QEAAXXZ */
1820 DEFINE_THISCALL_WRAPPER(ctype_short_ctor
, 4)
1821 ctype_wchar
* __thiscall
ctype_short_ctor(ctype_wchar
*this)
1823 ctype_wchar
*ret
= ctype_wchar_ctor(this);
1824 this->base
.facet
.vtable
= &MSVCP_ctype_short_vtable
;
1828 /* ??1?$ctype@_W@std@@MAE@XZ */
1829 /* ??1?$ctype@_W@std@@MEAA@XZ */
1830 /* ??1?$ctype@G@std@@MAE@XZ */
1831 /* ??1?$ctype@G@std@@MEAA@XZ */
1832 DEFINE_THISCALL_WRAPPER(ctype_wchar_dtor
, 4)
1833 void __thiscall
ctype_wchar_dtor(ctype_wchar
*this)
1835 TRACE("(%p)\n", this);
1836 if(this->ctype
.delfl
)
1837 free((void*)this->ctype
.table
);
1840 DEFINE_THISCALL_WRAPPER(MSVCP_ctype_wchar_vector_dtor
, 8)
1841 ctype_wchar
* __thiscall
MSVCP_ctype_wchar_vector_dtor(ctype_wchar
*this, unsigned int flags
)
1843 TRACE("(%p %x)\n", this, flags
);
1845 /* we have an array, with the number of elements stored before the first object */
1846 int i
, *ptr
= (int *)this-1;
1848 for(i
=*ptr
-1; i
>=0; i
--)
1849 ctype_wchar_dtor(this+i
);
1850 MSVCRT_operator_delete(ptr
);
1852 ctype_wchar_dtor(this);
1854 MSVCRT_operator_delete(this);
1860 DEFINE_THISCALL_WRAPPER(MSVCP_ctype_short_vector_dtor
, 8)
1861 ctype_wchar
* __thiscall
MSVCP_ctype_short_vector_dtor(ctype_wchar
*this, unsigned int flags
)
1863 return MSVCP_ctype_wchar_vector_dtor(this, flags
);
1867 int __cdecl
_Wcrtomb(char *s
, wchar_t wch
, int *state
, const _Cvtvec
*cvt
)
1872 TRACE("%p %d %p %p\n", s
, wch
, state
, cvt
);
1877 cp
= ___lc_codepage_func();
1889 size
= WideCharToMultiByte(cp
, 0, &wch
, 1, s
, MB_LEN_MAX
, NULL
, &def
);
1898 /* ?_Donarrow@?$ctype@_W@std@@IBED_WD@Z */
1899 /* ?_Donarrow@?$ctype@_W@std@@IEBAD_WD@Z */
1900 /* ?_Donarrow@?$ctype@G@std@@IBEDGD@Z */
1901 /* ?_Donarrow@?$ctype@G@std@@IEBADGD@Z */
1902 DEFINE_THISCALL_WRAPPER(ctype_wchar__Donarrow
, 12)
1903 char __thiscall
ctype_wchar__Donarrow(const ctype_wchar
*this, wchar_t ch
, char dflt
)
1905 char buf
[MB_LEN_MAX
];
1907 TRACE("(%p %d %d)\n", this, ch
, dflt
);
1909 return _Wcrtomb(buf
, ch
, NULL
, &this->cvt
)==1 ? buf
[0] : dflt
;
1912 /* ?do_narrow@?$ctype@_W@std@@MBED_WD@Z */
1913 /* ?do_narrow@?$ctype@_W@std@@MEBAD_WD@Z */
1914 /* ?do_narrow@?$ctype@G@std@@MBEDGD@Z */
1915 /* ?do_narrow@?$ctype@G@std@@MEBADGD@Z */
1916 DEFINE_THISCALL_WRAPPER(ctype_wchar_do_narrow_ch
, 12)
1917 #define call_ctype_wchar_do_narrow_ch(this, ch, dflt) CALL_VTBL_FUNC(this, 52, \
1918 char, (const ctype_wchar*, wchar_t, char), (this, ch, dflt))
1919 char __thiscall
ctype_wchar_do_narrow_ch(const ctype_wchar
*this, wchar_t ch
, char dflt
)
1921 return ctype_wchar__Donarrow(this, ch
, dflt
);
1924 /* ?do_narrow@?$ctype@_W@std@@MBEPB_WPB_W0DPAD@Z */
1925 /* ?do_narrow@?$ctype@_W@std@@MEBAPEB_WPEB_W0DPEAD@Z */
1926 /* ?do_narrow@?$ctype@G@std@@MBEPBGPBG0DPAD@Z */
1927 /* ?do_narrow@?$ctype@G@std@@MEBAPEBGPEBG0DPEAD@Z */
1928 DEFINE_THISCALL_WRAPPER(ctype_wchar_do_narrow
, 20)
1929 #define call_ctype_wchar_do_narrow(this, first, last, dflt, dest) CALL_VTBL_FUNC(this, 48, \
1930 const wchar_t*, (const ctype_wchar*, const wchar_t*, const wchar_t*, char, char*), \
1931 (this, first, last, dflt, dest))
1932 const wchar_t* __thiscall
ctype_wchar_do_narrow(const ctype_wchar
*this,
1933 const wchar_t *first
, const wchar_t *last
, char dflt
, char *dest
)
1935 TRACE("(%p %p %p %d %p)\n", this, first
, last
, dflt
, dest
);
1936 for(; first
<last
; first
++)
1937 *dest
++ = ctype_wchar__Donarrow(this, *first
, dflt
);
1941 /* ?_Do_narrow_s@?$ctype@_W@std@@MBEPB_WPB_W0DPADI@Z */
1942 /* ?_Do_narrow_s@?$ctype@_W@std@@MEBAPEB_WPEB_W0DPEAD_K@Z */
1943 /* ?_Do_narrow_s@?$ctype@G@std@@MBEPBGPBG0DPADI@Z */
1944 /* ?_Do_narrow_s@?$ctype@G@std@@MEBAPEBGPEBG0DPEAD_K@Z */
1945 DEFINE_THISCALL_WRAPPER(ctype_wchar__Do_narrow_s
, 24)
1946 #define call_ctype_wchar__Do_narrow_s(this, first, last, dflt, dest, size) CALL_VTBL_FUNC(this, 56, \
1947 const wchar_t*, (const ctype_wchar*, const wchar_t*, const wchar_t*, char, char*, MSVCP_size_t), \
1948 (this, first, last, dflt, dest, size))
1949 const wchar_t* __thiscall
ctype_wchar__Do_narrow_s(const ctype_wchar
*this,
1950 const wchar_t *first
, const wchar_t *last
, char dflt
, char *dest
, MSVCP_size_t size
)
1952 TRACE("(%p %p %p %d %p %lu)\n", this, first
, last
, dflt
, dest
, size
);
1953 /* This function converts all multi-byte characters to dflt,
1954 * thanks to it result size is known before converting */
1955 if(last
-first
> size
)
1957 return ctype_wchar_do_narrow(this, first
, last
, dflt
, dest
);
1960 /* ?narrow@?$ctype@_W@std@@QBED_WD@Z */
1961 /* ?narrow@?$ctype@_W@std@@QEBAD_WD@Z */
1962 /* ?narrow@?$ctype@G@std@@QBEDGD@Z */
1963 /* ?narrow@?$ctype@G@std@@QEBADGD@Z */
1964 DEFINE_THISCALL_WRAPPER(ctype_wchar_narrow_ch
, 12)
1965 char __thiscall
ctype_wchar_narrow_ch(const ctype_wchar
*this, wchar_t ch
, char dflt
)
1967 TRACE("(%p %d %d)\n", this, ch
, dflt
);
1968 return call_ctype_wchar_do_narrow_ch(this, ch
, dflt
);
1971 /* ?narrow@?$ctype@_W@std@@QBEPB_WPB_W0DPAD@Z */
1972 /* ?narrow@?$ctype@_W@std@@QEBAPEB_WPEB_W0DPEAD@Z */
1973 /* ?narrow@?$ctype@G@std@@QBEPBGPBG0DPAD@Z */
1974 /* ?narrow@?$ctype@G@std@@QEBAPEBGPEBG0DPEAD@Z */
1975 DEFINE_THISCALL_WRAPPER(ctype_wchar_narrow
, 20)
1976 const wchar_t* __thiscall
ctype_wchar_narrow(const ctype_wchar
*this,
1977 const wchar_t *first
, const wchar_t *last
, char dflt
, char *dest
)
1979 TRACE("(%p %p %p %d %p)\n", this, first
, last
, dflt
, dest
);
1980 return call_ctype_wchar_do_narrow(this, first
, last
, dflt
, dest
);
1983 /* ?_Narrow_s@?$ctype@_W@std@@QBEPB_WPB_W0DPADI@Z */
1984 /* ?_Narrow_s@?$ctype@_W@std@@QEBAPEB_WPEB_W0DPEAD_K@Z */
1985 /* ?_Narrow_s@?$ctype@G@std@@QBEPBGPBG0DPADI@Z */
1986 /* ?_Narrow_s@?$ctype@G@std@@QEBAPEBGPEBG0DPEAD_K@Z */
1987 DEFINE_THISCALL_WRAPPER(ctype_wchar__Narrow_s
, 24)
1988 const wchar_t* __thiscall
ctype_wchar__Narrow_s(const ctype_wchar
*this, const wchar_t *first
,
1989 const wchar_t *last
, char dflt
, char *dest
, MSVCP_size_t size
)
1991 TRACE("(%p %p %p %d %p %lu)\n", this, first
, last
, dflt
, dest
, size
);
1992 return call_ctype_wchar__Do_narrow_s(this, first
, last
, dflt
, dest
, size
);
1996 int __cdecl
_Mbrtowc(wchar_t *out
, const char *in
, MSVCP_size_t len
, int *state
, const _Cvtvec
*cvt
)
2002 TRACE("(%p %p %lu %p %p)\n", out
, in
, len
, state
, cvt
);
2010 cp
= ___lc_codepage_func();
2014 *out
= (unsigned char)*in
;
2021 ((char*)state
)[1] = *in
;
2023 if(!MultiByteToWideChar(cp
, MB_ERR_INVALID_CHARS
, (char*)state
, 2, out
, out
? 1 : 0)) {
2033 GetCPInfo(cp
, &cp_info
);
2035 for(i
=0; i
<MAX_LEADBYTES
; i
+=2) {
2036 if(!cp_info
.LeadByte
[i
+1])
2038 if((unsigned char)*in
>=cp_info
.LeadByte
[i
] && (unsigned char)*in
<=cp_info
.LeadByte
[i
+1]) {
2046 *state
= (unsigned char)*in
;
2050 if(!MultiByteToWideChar(cp
, MB_ERR_INVALID_CHARS
, in
, 2, out
, out
? 1 : 0)) {
2057 if(!MultiByteToWideChar(cp
, MB_ERR_INVALID_CHARS
, in
, 1, out
, out
? 1 : 0)) {
2064 /* ?_Dowiden@?$ctype@_W@std@@IBE_WD@Z */
2065 /* ?_Dowiden@?$ctype@_W@std@@IEBA_WD@Z */
2066 /* ?_Dowiden@?$ctype@G@std@@IBEGD@Z */
2067 /* ?_Dowiden@?$ctype@G@std@@IEBAGD@Z */
2068 DEFINE_THISCALL_WRAPPER(ctype_wchar__Dowiden
, 8)
2069 wchar_t __thiscall
ctype_wchar__Dowiden(const ctype_wchar
*this, char ch
)
2073 TRACE("(%p %d)\n", this, ch
);
2074 return _Mbrtowc(&ret
, &ch
, 1, &state
, &this->cvt
)<0 ? WEOF
: ret
;
2077 /* ?do_widen@?$ctype@_W@std@@MBE_WD@Z */
2078 /* ?do_widen@?$ctype@_W@std@@MEBA_WD@Z */
2079 /* ?do_widen@?$ctype@G@std@@MBEGD@Z */
2080 /* ?do_widen@?$ctype@G@std@@MEBAGD@Z */
2081 DEFINE_THISCALL_WRAPPER(ctype_wchar_do_widen_ch
, 8)
2082 #define call_ctype_wchar_do_widen_ch(this, ch) CALL_VTBL_FUNC(this, 40, \
2083 wchar_t, (const ctype_wchar*, char), (this, ch))
2084 wchar_t __thiscall
ctype_wchar_do_widen_ch(const ctype_wchar
*this, char ch
)
2086 return ctype_wchar__Dowiden(this, ch
);
2089 /* ?do_widen@?$ctype@_W@std@@MBEPBDPBD0PA_W@Z */
2090 /* ?do_widen@?$ctype@_W@std@@MEBAPEBDPEBD0PEA_W@Z */
2091 /* ?do_widen@?$ctype@G@std@@MBEPBDPBD0PAG@Z */
2092 /* ?do_widen@?$ctype@G@std@@MEBAPEBDPEBD0PEAG@Z */
2093 DEFINE_THISCALL_WRAPPER(ctype_wchar_do_widen
, 16)
2094 #define call_ctype_wchar_do_widen(this, first, last, dest) CALL_VTBL_FUNC(this, 36, \
2095 const char*, (const ctype_wchar*, const char*, const char*, wchar_t*), \
2096 (this, first, last, dest))
2097 const char* __thiscall
ctype_wchar_do_widen(const ctype_wchar
*this,
2098 const char *first
, const char *last
, wchar_t *dest
)
2100 TRACE("(%p %p %p %p)\n", this, first
, last
, dest
);
2101 for(; first
<last
; first
++)
2102 *dest
++ = ctype_wchar__Dowiden(this, *first
);
2106 /* ?_Do_widen_s@?$ctype@_W@std@@MBEPBDPBD0PA_WI@Z */
2107 /* ?_Do_widen_s@?$ctype@_W@std@@MEBAPEBDPEBD0PEA_W_K@Z */
2108 /* ?_Do_widen_s@?$ctype@G@std@@MBEPBDPBD0PAGI@Z */
2109 /* ?_Do_widen_s@?$ctype@G@std@@MEBAPEBDPEBD0PEAG_K@Z */
2110 DEFINE_THISCALL_WRAPPER(ctype_wchar__Do_widen_s
, 20)
2111 #define call_ctype_wchar__Do_widen_s(this, first, last, dest, size) CALL_VTBL_FUNC(this, 44, \
2112 const char*, (const ctype_wchar*, const char*, const char*, wchar_t*, MSVCP_size_t), \
2113 (this, first, last, dest, size))
2114 const char* __thiscall
ctype_wchar__Do_widen_s(const ctype_wchar
*this,
2115 const char *first
, const char *last
, wchar_t *dest
, MSVCP_size_t size
)
2117 TRACE("(%p %p %p %p %lu)\n", this, first
, last
, dest
, size
);
2118 /* This function converts all multi-byte characters to WEOF,
2119 * thanks to it result size is known before converting */
2120 if(size
< last
-first
)
2122 return ctype_wchar_do_widen(this, first
, last
, dest
);
2125 /* ?widen@?$ctype@_W@std@@QBE_WD@Z */
2126 /* ?widen@?$ctype@_W@std@@QEBA_WD@Z */
2127 /* ?widen@?$ctype@G@std@@QBEGD@Z */
2128 /* ?widen@?$ctype@G@std@@QEBAGD@Z */
2129 DEFINE_THISCALL_WRAPPER(ctype_wchar_widen_ch
, 8)
2130 wchar_t __thiscall
ctype_wchar_widen_ch(const ctype_wchar
*this, char ch
)
2132 TRACE("(%p %d)\n", this, ch
);
2133 return call_ctype_wchar_do_widen_ch(this, ch
);
2136 /* ?widen@?$ctype@_W@std@@QBEPBDPBD0PA_W@Z */
2137 /* ?widen@?$ctype@_W@std@@QEBAPEBDPEBD0PEA_W@Z */
2138 /* ?widen@?$ctype@G@std@@QBEPBDPBD0PAG@Z */
2139 /* ?widen@?$ctype@G@std@@QEBAPEBDPEBD0PEAG@Z */
2140 DEFINE_THISCALL_WRAPPER(ctype_wchar_widen
, 16)
2141 const char* __thiscall
ctype_wchar_widen(const ctype_wchar
*this,
2142 const char *first
, const char *last
, wchar_t *dest
)
2144 TRACE("(%p %p %p %p)\n", this, first
, last
, dest
);
2145 return call_ctype_wchar_do_widen(this, first
, last
, dest
);
2148 /* ?_Widen_s@?$ctype@_W@std@@QBEPBDPBD0PA_WI@Z */
2149 /* ?_Widen_s@?$ctype@_W@std@@QEBAPEBDPEBD0PEA_W_K@Z */
2150 /* ?_Widen_s@?$ctype@G@std@@QBEPBDPBD0PAGI@Z */
2151 /* ?_Widen_s@?$ctype@G@std@@QEBAPEBDPEBD0PEAG_K@Z */
2152 DEFINE_THISCALL_WRAPPER(ctype_wchar__Widen_s
, 20)
2153 const char* __thiscall
ctype_wchar__Widen_s(const ctype_wchar
*this,
2154 const char *first
, const char *last
, wchar_t *dest
, MSVCP_size_t size
)
2156 TRACE("(%p %p %p %p %lu)\n", this, first
, last
, dest
, size
);
2157 return call_ctype_wchar__Do_widen_s(this, first
, last
, dest
, size
);
2160 /* ?_Getcat@?$ctype@_W@std@@SAIPAPBVfacet@locale@2@PBV42@@Z */
2161 /* ?_Getcat@?$ctype@_W@std@@SA_KPEAPEBVfacet@locale@2@PEBV42@@Z */
2162 MSVCP_size_t __cdecl
ctype_wchar__Getcat(const locale_facet
**facet
, const locale
*loc
)
2164 TRACE("(%p %p)\n", facet
, loc
);
2166 if(facet
&& !*facet
) {
2169 *facet
= MSVCRT_operator_new(sizeof(ctype_wchar
));
2171 ERR("Out of memory\n");
2172 throw_exception(EXCEPTION_BAD_ALLOC
, NULL
);
2176 _Locinfo_ctor_cstr(&locinfo
, MSVCP_basic_string_char_c_str(&loc
->ptr
->name
));
2177 ctype_wchar_ctor_locinfo((ctype_wchar
*)*facet
, &locinfo
, 0);
2178 _Locinfo_dtor(&locinfo
);
2184 /* ?_Getcat@?$ctype@G@std@@SAIPAPBVfacet@locale@2@PBV42@@Z */
2185 /* ?_Getcat@?$ctype@G@std@@SA_KPEAPEBVfacet@locale@2@PEBV42@@Z */
2186 MSVCP_size_t __cdecl
ctype_short__Getcat(const locale_facet
**facet
, const locale
*loc
)
2188 if(facet
&& !*facet
) {
2189 ctype_wchar__Getcat(facet
, loc
);
2190 (*(locale_facet
**)facet
)->vtable
= &MSVCP_ctype_short_vtable
;
2197 wchar_t __cdecl
_Towlower(wchar_t ch
, const _Ctypevec
*ctype
)
2199 TRACE("(%d %p)\n", ch
, ctype
);
2200 return tolowerW(ch
);
2203 /* ?do_tolower@?$ctype@_W@std@@MBE_W_W@Z */
2204 /* ?do_tolower@?$ctype@_W@std@@MEBA_W_W@Z */
2205 /* ?do_tolower@?$ctype@G@std@@MBEGG@Z */
2206 /* ?do_tolower@?$ctype@G@std@@MEBAGG@Z */
2207 DEFINE_THISCALL_WRAPPER(ctype_wchar_do_tolower_ch
, 8)
2208 #define call_ctype_wchar_do_tolower_ch(this, ch) CALL_VTBL_FUNC(this, 24, \
2209 wchar_t, (const ctype_wchar*, wchar_t), (this, ch))
2210 wchar_t __thiscall
ctype_wchar_do_tolower_ch(const ctype_wchar
*this, wchar_t ch
)
2212 return _Towlower(ch
, &this->ctype
);
2215 /* ?do_tolower@?$ctype@_W@std@@MBEPB_WPA_WPB_W@Z */
2216 /* ?do_tolower@?$ctype@_W@std@@MEBAPEB_WPEA_WPEB_W@Z */
2217 /* ?do_tolower@?$ctype@G@std@@MBEPBGPAGPBG@Z */
2218 /* ?do_tolower@?$ctype@G@std@@MEBAPEBGPEAGPEBG@Z */
2219 DEFINE_THISCALL_WRAPPER(ctype_wchar_do_tolower
, 12)
2220 #define call_ctype_wchar_do_tolower(this, first, last) CALL_VTBL_FUNC(this, 20, \
2221 const wchar_t*, (const ctype_wchar*, wchar_t*, const wchar_t*), \
2222 (this, first, last))
2223 const wchar_t* __thiscall
ctype_wchar_do_tolower(const ctype_wchar
*this,
2224 wchar_t *first
, const wchar_t *last
)
2226 TRACE("(%p %p %p)\n", this, first
, last
);
2227 for(; first
<last
; first
++)
2228 *first
= _Towlower(*first
, &this->ctype
);
2232 /* ?tolower@?$ctype@_W@std@@QBE_W_W@Z */
2233 /* ?tolower@?$ctype@_W@std@@QEBA_W_W@Z */
2234 /* ?tolower@?$ctype@G@std@@QBEGG@Z */
2235 /* ?tolower@?$ctype@G@std@@QEBAGG@Z */
2236 DEFINE_THISCALL_WRAPPER(ctype_wchar_tolower_ch
, 8)
2237 wchar_t __thiscall
ctype_wchar_tolower_ch(const ctype_wchar
*this, wchar_t ch
)
2239 TRACE("(%p %d)\n", this, ch
);
2240 return call_ctype_wchar_do_tolower_ch(this, ch
);
2243 /* ?tolower@?$ctype@_W@std@@QBEPB_WPA_WPB_W@Z */
2244 /* ?tolower@?$ctype@_W@std@@QEBAPEB_WPEA_WPEB_W@Z */
2245 /* ?tolower@?$ctype@G@std@@QBEPBGPAGPBG@Z */
2246 /* ?tolower@?$ctype@G@std@@QEBAPEBGPEAGPEBG@Z */
2247 DEFINE_THISCALL_WRAPPER(ctype_wchar_tolower
, 12)
2248 const wchar_t* __thiscall
ctype_wchar_tolower(const ctype_wchar
*this,
2249 wchar_t *first
, const wchar_t *last
)
2251 TRACE("(%p %p %p)\n", this, first
, last
);
2252 return call_ctype_wchar_do_tolower(this, first
, last
);
2256 wchar_t __cdecl
_Towupper(wchar_t ch
, const _Ctypevec
*ctype
)
2258 TRACE("(%d %p)\n", ch
, ctype
);
2259 return toupperW(ch
);
2262 /* ?do_toupper@?$ctype@_W@std@@MBE_W_W@Z */
2263 /* ?do_toupper@?$ctype@_W@std@@MEBA_W_W@Z */
2264 /* ?do_toupper@?$ctype@G@std@@MBEGG@Z */
2265 /* ?do_toupper@?$ctype@G@std@@MEBAGG@Z */
2266 DEFINE_THISCALL_WRAPPER(ctype_wchar_do_toupper_ch
, 8)
2267 #define call_ctype_wchar_do_toupper_ch(this, ch) CALL_VTBL_FUNC(this, 32, \
2268 wchar_t, (const ctype_wchar*, wchar_t), (this, ch))
2269 wchar_t __thiscall
ctype_wchar_do_toupper_ch(const ctype_wchar
*this, wchar_t ch
)
2271 return _Towupper(ch
, &this->ctype
);
2274 /* ?do_toupper@?$ctype@_W@std@@MBEPB_WPA_WPB_W@Z */
2275 /* ?do_toupper@?$ctype@_W@std@@MEBAPEB_WPEA_WPEB_W@Z */
2276 /* ?do_toupper@?$ctype@G@std@@MBEPBGPAGPBG@Z */
2277 /* ?do_toupper@?$ctype@G@std@@MEBAPEBGPEAGPEBG@Z */
2278 DEFINE_THISCALL_WRAPPER(ctype_wchar_do_toupper
, 12)
2279 #define call_ctype_wchar_do_toupper(this, first, last) CALL_VTBL_FUNC(this, 28, \
2280 const wchar_t*, (const ctype_wchar*, wchar_t*, const wchar_t*), \
2281 (this, first, last))
2282 const wchar_t* __thiscall
ctype_wchar_do_toupper(const ctype_wchar
*this,
2283 wchar_t *first
, const wchar_t *last
)
2285 TRACE("(%p %p %p)\n", this, first
, last
);
2286 for(; first
<last
; first
++)
2287 *first
= _Towupper(*first
, &this->ctype
);
2291 /* ?toupper@?$ctype@_W@std@@QBE_W_W@Z */
2292 /* ?toupper@?$ctype@_W@std@@QEBA_W_W@Z */
2293 /* ?toupper@?$ctype@G@std@@QBEGG@Z */
2294 /* ?toupper@?$ctype@G@std@@QEBAGG@Z */
2295 DEFINE_THISCALL_WRAPPER(ctype_wchar_toupper_ch
, 8)
2296 wchar_t __thiscall
ctype_wchar_toupper_ch(const ctype_wchar
*this, wchar_t ch
)
2298 TRACE("(%p %d)\n", this, ch
);
2299 return call_ctype_wchar_do_toupper_ch(this, ch
);
2302 /* ?toupper@?$ctype@_W@std@@QBEPB_WPA_WPB_W@Z */
2303 /* ?toupper@?$ctype@_W@std@@QEBAPEB_WPEA_WPEB_W@Z */
2304 /* ?toupper@?$ctype@G@std@@QBEPBGPAGPBG@Z */
2305 /* ?toupper@?$ctype@G@std@@QEBAPEBGPEAGPEBG@Z */
2306 DEFINE_THISCALL_WRAPPER(ctype_wchar_toupper
, 12)
2307 const wchar_t* __thiscall
ctype_wchar_toupper(const ctype_wchar
*this,
2308 wchar_t *first
, const wchar_t *last
)
2310 TRACE("(%p %p %p)\n", this, first
, last
);
2311 return call_ctype_wchar_do_toupper(this, first
, last
);
2315 const wchar_t* __cdecl
_Getwctypes(const wchar_t *first
, const wchar_t *last
,
2316 short *mask
, const _Ctypevec
*ctype
)
2318 TRACE("(%p %p %p %p)\n", first
, last
, mask
, ctype
);
2319 GetStringTypeW(CT_CTYPE1
, first
, last
-first
, (WORD
*)mask
);
2324 short __cdecl
_Getwctype(wchar_t ch
, const _Ctypevec
*ctype
)
2327 _Getwctypes(&ch
, &ch
+1, &mask
, ctype
);
2331 /* ?do_is@?$ctype@_W@std@@MBE_NF_W@Z */
2332 /* ?do_is@?$ctype@_W@std@@MEBA_NF_W@Z */
2333 /* ?do_is@?$ctype@G@std@@MBE_NFG@Z */
2334 /* ?do_is@?$ctype@G@std@@MEBA_NFG@Z */
2335 DEFINE_THISCALL_WRAPPER(ctype_wchar_do_is_ch
, 12)
2336 #define call_ctype_wchar_do_is_ch(this, mask, ch) CALL_VTBL_FUNC(this, 8, \
2337 MSVCP_bool, (const ctype_wchar*, short, wchar_t), (this, mask, ch))
2338 MSVCP_bool __thiscall
ctype_wchar_do_is_ch(const ctype_wchar
*this, short mask
, wchar_t ch
)
2340 TRACE("(%p %x %d)\n", this, mask
, ch
);
2341 return (_Getwctype(ch
, &this->ctype
) & mask
) != 0;
2344 /* ?do_is@?$ctype@_W@std@@MBEPB_WPB_W0PAF@Z */
2345 /* ?do_is@?$ctype@_W@std@@MEBAPEB_WPEB_W0PEAF@Z */
2346 /* ?do_is@?$ctype@G@std@@MBEPBGPBG0PAF@Z */
2347 /* ?do_is@?$ctype@G@std@@MEBAPEBGPEBG0PEAF@Z */
2348 DEFINE_THISCALL_WRAPPER(ctype_wchar_do_is
, 16)
2349 #define call_ctype_wchar_do_is(this, first, last, dest) CALL_VTBL_FUNC(this, 4, \
2350 const wchar_t*, (const ctype_wchar*, const wchar_t*, const wchar_t*, short*), \
2351 (this, first, last, dest))
2352 const wchar_t* __thiscall
ctype_wchar_do_is(const ctype_wchar
*this,
2353 const wchar_t *first
, const wchar_t *last
, short *dest
)
2355 TRACE("(%p %p %p %p)\n", this, first
, last
, dest
);
2356 return _Getwctypes(first
, last
, dest
, &this->ctype
);
2359 /* ?is@?$ctype@_W@std@@QBE_NF_W@Z */
2360 /* ?is@?$ctype@_W@std@@QEBA_NF_W@Z */
2361 /* ?is@?$ctype@G@std@@QBE_NFG@Z */
2362 /* ?is@?$ctype@G@std@@QEBA_NFG@Z */
2363 DEFINE_THISCALL_WRAPPER(ctype_wchar_is_ch
, 12)
2364 MSVCP_bool __thiscall
ctype_wchar_is_ch(const ctype_wchar
*this, short mask
, wchar_t ch
)
2366 TRACE("(%p %x %d)\n", this, mask
, ch
);
2367 return call_ctype_wchar_do_is_ch(this, mask
, ch
);
2370 /* ?is@?$ctype@_W@std@@QBEPB_WPB_W0PAF@Z */
2371 /* ?is@?$ctype@_W@std@@QEBAPEB_WPEB_W0PEAF@Z */
2372 /* ?is@?$ctype@G@std@@QBEPBGPBG0PAF@Z */
2373 /* ?is@?$ctype@G@std@@QEBAPEBGPEBG0PEAF@Z */
2374 DEFINE_THISCALL_WRAPPER(ctype_wchar_is
, 16)
2375 const wchar_t* __thiscall
ctype_wchar_is(const ctype_wchar
*this,
2376 const wchar_t *first
, const wchar_t *last
, short *dest
)
2378 TRACE("(%p %p %p %p)\n", this, first
, last
, dest
);
2379 return call_ctype_wchar_do_is(this, first
, last
, dest
);
2382 /* ?do_scan_is@?$ctype@_W@std@@MBEPB_WFPB_W0@Z */
2383 /* ?do_scan_is@?$ctype@_W@std@@MEBAPEB_WFPEB_W0@Z */
2384 /* ?do_scan_is@?$ctype@G@std@@MBEPBGFPBG0@Z */
2385 /* ?do_scan_is@?$ctype@G@std@@MEBAPEBGFPEBG0@Z */
2386 DEFINE_THISCALL_WRAPPER(ctype_wchar_do_scan_is
, 16)
2387 #define call_ctype_wchar_do_scan_is(this, mask, first, last) CALL_VTBL_FUNC(this, 12, \
2388 const wchar_t*, (const ctype_wchar*, short, const wchar_t*, const wchar_t*), \
2389 (this, mask, first, last))
2390 const wchar_t* __thiscall
ctype_wchar_do_scan_is(const ctype_wchar
*this,
2391 short mask
, const wchar_t *first
, const wchar_t *last
)
2393 TRACE("(%p %d %p %p)\n", this, mask
, first
, last
);
2394 for(; first
<last
; first
++)
2395 if(!ctype_wchar_is_ch(this, mask
, *first
))
2400 /* ?scan_is@?$ctype@_W@std@@QBEPB_WFPB_W0@Z */
2401 /* ?scan_is@?$ctype@_W@std@@QEBAPEB_WFPEB_W0@Z */
2402 /* ?scan_is@?$ctype@G@std@@QBEPBGFPBG0@Z */
2403 /* ?scan_is@?$ctype@G@std@@QEBAPEBGFPEBG0@Z */
2404 DEFINE_THISCALL_WRAPPER(ctype_wchar_scan_is
, 16)
2405 const wchar_t* __thiscall
ctype_wchar_scan_is(const ctype_wchar
*this,
2406 short mask
, const wchar_t *first
, const wchar_t *last
)
2408 TRACE("(%p %x %p %p)\n", this, mask
, first
, last
);
2409 return call_ctype_wchar_do_scan_is(this, mask
, first
, last
);
2412 /* ?do_scan_not@?$ctype@_W@std@@MBEPB_WFPB_W0@Z */
2413 /* ?do_scan_not@?$ctype@_W@std@@MEBAPEB_WFPEB_W0@Z */
2414 /* ?do_scan_not@?$ctype@G@std@@MBEPBGFPBG0@Z */
2415 /* ?do_scan_not@?$ctype@G@std@@MEBAPEBGFPEBG0@Z */
2416 DEFINE_THISCALL_WRAPPER(ctype_wchar_do_scan_not
, 16)
2417 #define call_ctype_wchar_do_scan_not(this, mask, first, last) CALL_VTBL_FUNC(this, 16, \
2418 const wchar_t*, (const ctype_wchar*, short, const wchar_t*, const wchar_t*), \
2419 (this, mask, first, last))
2420 const wchar_t* __thiscall
ctype_wchar_do_scan_not(const ctype_wchar
*this,
2421 short mask
, const wchar_t *first
, const wchar_t *last
)
2423 TRACE("(%p %x %p %p)\n", this, mask
, first
, last
);
2424 for(; first
<last
; first
++)
2425 if(ctype_wchar_is_ch(this, mask
, *first
))
2430 /* ?scan_not@?$ctype@_W@std@@QBEPB_WFPB_W0@Z */
2431 /* ?scan_not@?$ctype@_W@std@@QEBAPEB_WFPEB_W0@Z */
2432 /* ?scan_not@?$ctype@G@std@@QBEPBGFPBG0@Z */
2433 /* ?scan_not@?$ctype@G@std@@QEBAPEBGFPEBG0@Z */
2434 DEFINE_THISCALL_WRAPPER(ctype_wchar_scan_not
, 16)
2435 const wchar_t* __thiscall
ctype_wchar_scan_not(const ctype_wchar
*this,
2436 short mask
, const wchar_t *first
, const wchar_t *last
)
2438 TRACE("(%p %x %p %p)\n", this, mask
, first
, last
);
2439 return call_ctype_wchar_do_scan_not(this, mask
, first
, last
);
2442 /* ?id@?$numpunct@D@std@@2V0locale@2@A */
2443 locale_id numpunct_char_id
= {0};
2445 /* ??_7?$numpunct@D@std@@6B@ */
2446 extern const vtable_ptr MSVCP_numpunct_char_vtable
;
2448 /* ?_Init@?$numpunct@D@std@@IAEXABV_Locinfo@2@_N@Z */
2449 /* ?_Init@?$numpunct@D@std@@IEAAXAEBV_Locinfo@2@_N@Z */
2450 DEFINE_THISCALL_WRAPPER(numpunct_char__Init
, 12)
2451 void __thiscall
numpunct_char__Init(numpunct_char
*this, _Locinfo
*locinfo
, MSVCP_bool isdef
)
2455 TRACE("(%p %p %d)\n", this, locinfo
, isdef
);
2457 len
= strlen(_Locinfo__Getfalse(locinfo
))+1;
2458 this->false_name
= MSVCRT_operator_new(len
);
2459 if(this->false_name
)
2460 memcpy((char*)this->false_name
, _Locinfo__Getfalse(locinfo
), len
);
2462 len
= strlen(_Locinfo__Gettrue(locinfo
))+1;
2463 this->true_name
= MSVCRT_operator_new(len
);
2465 memcpy((char*)this->true_name
, _Locinfo__Gettrue(locinfo
), len
);
2468 this->grouping
= MSVCRT_operator_new(1);
2470 *(char*)this->grouping
= 0;
2475 const struct lconv
*lc
= _Locinfo__Getlconv(locinfo
);
2477 len
= strlen(lc
->grouping
)+1;
2478 this->grouping
= MSVCRT_operator_new(len
);
2480 memcpy((char*)this->grouping
, lc
->grouping
, len
);
2482 this->dp
= lc
->decimal_point
[0];
2483 this->sep
= lc
->thousands_sep
[0];
2486 if(!this->false_name
|| !this->true_name
|| !this->grouping
) {
2487 MSVCRT_operator_delete((char*)this->grouping
);
2488 MSVCRT_operator_delete((char*)this->false_name
);
2489 MSVCRT_operator_delete((char*)this->true_name
);
2491 ERR("Out of memory\n");
2492 throw_exception(EXCEPTION_BAD_ALLOC
, NULL
);
2496 /* ?_Tidy@?$numpunct@D@std@@AAEXXZ */
2497 /* ?_Tidy@?$numpunct@D@std@@AEAAXXZ */
2498 DEFINE_THISCALL_WRAPPER(numpunct_char__Tidy
, 4)
2499 void __thiscall
numpunct_char__Tidy(numpunct_char
*this)
2501 TRACE("(%p)\n", this);
2503 MSVCRT_operator_delete((char*)this->grouping
);
2504 MSVCRT_operator_delete((char*)this->false_name
);
2505 MSVCRT_operator_delete((char*)this->true_name
);
2508 /* ??0?$numpunct@D@std@@QAE@ABV_Locinfo@1@I_N@Z */
2509 /* ??0?$numpunct@D@std@@QEAA@AEBV_Locinfo@1@_K_N@Z */
2510 DEFINE_THISCALL_WRAPPER(numpunct_char_ctor_locinfo
, 16)
2511 numpunct_char
* __thiscall
numpunct_char_ctor_locinfo(numpunct_char
*this,
2512 _Locinfo
*locinfo
, MSVCP_size_t refs
, MSVCP_bool usedef
)
2514 TRACE("(%p %p %lu %d)\n", this, locinfo
, refs
, usedef
);
2515 locale_facet_ctor_refs(&this->facet
, refs
);
2516 this->facet
.vtable
= &MSVCP_numpunct_char_vtable
;
2517 numpunct_char__Init(this, locinfo
, usedef
);
2521 /* ??0?$numpunct@D@std@@IAE@PBDI_N@Z */
2522 /* ??0?$numpunct@D@std@@IEAA@PEBD_K_N@Z */
2523 DEFINE_THISCALL_WRAPPER(numpunct_char_ctor_name
, 16)
2524 numpunct_char
* __thiscall
numpunct_char_ctor_name(numpunct_char
*this,
2525 const char *name
, MSVCP_size_t refs
, MSVCP_bool usedef
)
2529 TRACE("(%p %s %lu %d)\n", this, debugstr_a(name
), refs
, usedef
);
2530 locale_facet_ctor_refs(&this->facet
, refs
);
2531 this->facet
.vtable
= &MSVCP_numpunct_char_vtable
;
2533 _Locinfo_ctor_cstr(&locinfo
, name
);
2534 numpunct_char__Init(this, &locinfo
, usedef
);
2535 _Locinfo_dtor(&locinfo
);
2539 /* ??0?$numpunct@D@std@@QAE@I@Z */
2540 /* ??0?$numpunct@D@std@@QEAA@_K@Z */
2541 DEFINE_THISCALL_WRAPPER(numpunct_char_ctor_refs
, 8)
2542 numpunct_char
* __thiscall
numpunct_char_ctor_refs(numpunct_char
*this, MSVCP_size_t refs
)
2544 TRACE("(%p %lu)\n", this, refs
);
2545 return numpunct_char_ctor_name(this, "C", refs
, FALSE
);
2548 /* ??_F?$numpunct@D@std@@QAEXXZ */
2549 /* ??_F?$numpunct@D@std@@QEAAXXZ */
2550 DEFINE_THISCALL_WRAPPER(numpunct_char_ctor
, 4)
2551 numpunct_char
* __thiscall
numpunct_char_ctor(numpunct_char
*this)
2553 return numpunct_char_ctor_refs(this, 0);
2556 /* ??1?$numpunct@D@std@@MAE@XZ */
2557 /* ??1?$numpunct@D@std@@MEAA@XZ */
2558 DEFINE_THISCALL_WRAPPER(numpunct_char_dtor
, 4)
2559 void __thiscall
numpunct_char_dtor(numpunct_char
*this)
2561 TRACE("(%p)\n", this);
2562 numpunct_char__Tidy(this);
2565 DEFINE_THISCALL_WRAPPER(MSVCP_numpunct_char_vector_dtor
, 8)
2566 numpunct_char
* __thiscall
MSVCP_numpunct_char_vector_dtor(numpunct_char
*this, unsigned int flags
)
2568 TRACE("(%p %x)\n", this, flags
);
2570 /* we have an array, with the number of elements stored before the first object */
2571 int i
, *ptr
= (int *)this-1;
2573 for(i
=*ptr
-1; i
>=0; i
--)
2574 numpunct_char_dtor(this+i
);
2575 MSVCRT_operator_delete(ptr
);
2577 numpunct_char_dtor(this);
2579 MSVCRT_operator_delete(this);
2585 /* ?_Getcat@?$numpunct@D@std@@SAIPAPBVfacet@locale@2@PBV42@@Z */
2586 /* ?_Getcat@?$numpunct@D@std@@SA_KPEAPEBVfacet@locale@2@PEBV42@@Z */
2587 MSVCP_size_t __cdecl
numpunct_char__Getcat(const locale_facet
**facet
, const locale
*loc
)
2589 TRACE("(%p %p)\n", facet
, loc
);
2591 if(facet
&& !*facet
) {
2592 *facet
= MSVCRT_operator_new(sizeof(numpunct_char
));
2594 ERR("Out of memory\n");
2595 throw_exception(EXCEPTION_BAD_ALLOC
, NULL
);
2598 numpunct_char_ctor_name((numpunct_char
*)*facet
,
2599 MSVCP_basic_string_char_c_str(&loc
->ptr
->name
), 0, TRUE
);
2605 /* ?do_decimal_point@?$numpunct@D@std@@MBEDXZ */
2606 /* ?do_decimal_point@?$numpunct@D@std@@MEBADXZ */
2607 DEFINE_THISCALL_WRAPPER(numpunct_char_do_decimal_point
, 4)
2608 #define call_numpunct_char_do_decimal_point(this) CALL_VTBL_FUNC(this, 4, \
2609 char, (const numpunct_char *this), (this))
2610 char __thiscall
numpunct_char_do_decimal_point(const numpunct_char
*this)
2612 TRACE("(%p)\n", this);
2616 /* ?decimal_point@?$numpunct@D@std@@QBEDXZ */
2617 /* ?decimal_point@?$numpunct@D@std@@QEBADXZ */
2618 DEFINE_THISCALL_WRAPPER(numpunct_char_decimal_point
, 4)
2619 char __thiscall
numpunct_char_decimal_point(const numpunct_char
*this)
2621 TRACE("(%p)\n", this);
2622 return call_numpunct_char_do_decimal_point(this);
2625 /* ?do_thousands_sep@?$numpunct@D@std@@MBEDXZ */
2626 /* ?do_thousands_sep@?$numpunct@D@std@@MEBADXZ */
2627 DEFINE_THISCALL_WRAPPER(numpunct_char_do_thousands_sep
, 4)
2628 #define call_numpunct_char_do_thousands_sep(this) CALL_VTBL_FUNC(this, 8, \
2629 char, (const numpunct_char*), (this))
2630 char __thiscall
numpunct_char_do_thousands_sep(const numpunct_char
*this)
2632 TRACE("(%p)\n", this);
2636 /* ?thousands_sep@?$numpunct@D@std@@QBEDXZ */
2637 /* ?thousands_sep@?$numpunct@D@std@@QEBADXZ */
2638 DEFINE_THISCALL_WRAPPER(numpunct_char_thousands_sep
, 4)
2639 char __thiscall
numpunct_char_thousands_sep(const numpunct_char
*this)
2641 TRACE("(%p)\n", this);
2642 return call_numpunct_char_do_thousands_sep(this);
2645 /* ?do_grouping@?$numpunct@D@std@@MBE?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@2@XZ */
2646 /* ?do_grouping@?$numpunct@D@std@@MEBA?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@2@XZ */
2647 DEFINE_THISCALL_WRAPPER(numpunct_char_do_grouping
, 8)
2648 #define call_numpunct_char_do_grouping(this, ret) CALL_VTBL_FUNC(this, 12, \
2649 basic_string_char*, (const numpunct_char*, basic_string_char*), (this, ret))
2650 basic_string_char
* __thiscall
numpunct_char_do_grouping(
2651 const numpunct_char
*this, basic_string_char
*ret
)
2653 TRACE("(%p)\n", this);
2654 return MSVCP_basic_string_char_ctor_cstr(ret
, this->grouping
);
2657 /* ?grouping@?$numpunct@D@std@@QBE?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@2@XZ */
2658 /* ?grouping@?$numpunct@D@std@@QEBA?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@2@XZ */
2659 DEFINE_THISCALL_WRAPPER(numpunct_char_grouping
, 8)
2660 basic_string_char
* __thiscall
numpunct_char_grouping(const numpunct_char
*this, basic_string_char
*ret
)
2662 TRACE("(%p)\n", this);
2663 return call_numpunct_char_do_grouping(this, ret
);
2666 /* ?do_falsename@?$numpunct@D@std@@MBE?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@2@XZ */
2667 /* ?do_falsename@?$numpunct@D@std@@MEBA?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@2@XZ */
2668 DEFINE_THISCALL_WRAPPER(numpunct_char_do_falsename
, 8)
2669 #define call_numpunct_char_do_falsename(this, ret) CALL_VTBL_FUNC(this, 16, \
2670 basic_string_char*, (const numpunct_char*, basic_string_char*), (this, ret))
2671 basic_string_char
* __thiscall
numpunct_char_do_falsename(
2672 const numpunct_char
*this, basic_string_char
*ret
)
2674 TRACE("(%p)\n", this);
2675 return MSVCP_basic_string_char_ctor_cstr(ret
, this->false_name
);
2678 /* ?falsename@?$numpunct@D@std@@QBE?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@2@XZ */
2679 /* ?falsename@?$numpunct@D@std@@QEBA?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@2@XZ */
2680 DEFINE_THISCALL_WRAPPER(numpunct_char_falsename
, 8)
2681 basic_string_char
* __thiscall
numpunct_char_falsename(const numpunct_char
*this, basic_string_char
*ret
)
2683 TRACE("(%p)\n", this);
2684 return call_numpunct_char_do_falsename(this, ret
);
2687 /* ?do_truename@?$numpunct@D@std@@MBE?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@2@XZ */
2688 /* ?do_truename@?$numpunct@D@std@@MEBA?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@2@XZ */
2689 DEFINE_THISCALL_WRAPPER(numpunct_char_do_truename
, 8)
2690 #define call_numpunct_char_do_truename(this, ret) CALL_VTBL_FUNC(this, 20, \
2691 basic_string_char*, (const numpunct_char*, basic_string_char*), (this, ret))
2692 basic_string_char
* __thiscall
numpunct_char_do_truename(
2693 const numpunct_char
*this, basic_string_char
*ret
)
2695 TRACE("(%p)\n", this);
2696 return MSVCP_basic_string_char_ctor_cstr(ret
, this->true_name
);
2699 /* ?truename@?$numpunct@D@std@@QBE?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@2@XZ */
2700 /* ?truename@?$numpunct@D@std@@QEBA?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@2@XZ */
2701 DEFINE_THISCALL_WRAPPER(numpunct_char_truename
, 8)
2702 basic_string_char
* __thiscall
numpunct_char_truename(const numpunct_char
*this, basic_string_char
*ret
)
2704 TRACE("(%p)\n", this);
2705 return call_numpunct_char_do_truename(this, ret
);
2708 /* ?id@?$numpunct@_W@std@@2V0locale@2@A */
2709 locale_id numpunct_wchar_id
= {0};
2710 /* ?id@?$numpunct@G@std@@2V0locale@2@A */
2711 locale_id numpunct_short_id
= {0};
2713 /* ??_7?$numpunct@_W@std@@6B@ */
2714 extern const vtable_ptr MSVCP_numpunct_wchar_vtable
;
2715 /* ??_7?$numpunct@G@std@@6B@ */
2716 extern const vtable_ptr MSVCP_numpunct_short_vtable
;
2718 /* ?_Init@?$numpunct@_W@std@@IAEXABV_Locinfo@2@_N@Z */
2719 /* ?_Init@?$numpunct@_W@std@@IEAAXAEBV_Locinfo@2@_N@Z */
2720 /* ?_Init@?$numpunct@G@std@@IAEXABV_Locinfo@2@_N@Z */
2721 /* ?_Init@?$numpunct@G@std@@IEAAXAEBV_Locinfo@2@_N@Z */
2722 DEFINE_THISCALL_WRAPPER(numpunct_wchar__Init
, 12)
2723 void __thiscall
numpunct_wchar__Init(numpunct_wchar
*this, _Locinfo
*locinfo
, MSVCP_bool isdef
)
2725 const char *to_convert
;
2729 TRACE("(%p %p %d)\n", this, locinfo
, isdef
);
2731 _Locinfo__Getcvt(locinfo
, &cvt
);
2733 to_convert
= _Locinfo__Getfalse(locinfo
);
2734 len
= MultiByteToWideChar(cvt
.page
, 0, to_convert
, -1, NULL
, 0);
2735 this->false_name
= MSVCRT_operator_new(len
*sizeof(WCHAR
));
2736 if(this->false_name
)
2737 MultiByteToWideChar(cvt
.page
, 0, to_convert
, -1,
2738 (wchar_t*)this->false_name
, len
);
2740 to_convert
= _Locinfo__Gettrue(locinfo
);
2741 len
= MultiByteToWideChar(cvt
.page
, 0, to_convert
, -1, NULL
, 0);
2742 this->true_name
= MSVCRT_operator_new(len
*sizeof(WCHAR
));
2744 MultiByteToWideChar(cvt
.page
, 0, to_convert
, -1,
2745 (wchar_t*)this->true_name
, len
);
2748 this->grouping
= MSVCRT_operator_new(1);
2750 *(char*)this->grouping
= 0;
2755 const struct lconv
*lc
= _Locinfo__Getlconv(locinfo
);
2757 len
= strlen(lc
->grouping
)+1;
2758 this->grouping
= MSVCRT_operator_new(len
);
2760 memcpy((char*)this->grouping
, lc
->grouping
, len
);
2762 this->dp
= lc
->decimal_point
[0];
2763 this->sep
= lc
->thousands_sep
[0];
2766 if(!this->false_name
|| !this->true_name
|| !this->grouping
) {
2767 MSVCRT_operator_delete((char*)this->grouping
);
2768 MSVCRT_operator_delete((wchar_t*)this->false_name
);
2769 MSVCRT_operator_delete((wchar_t*)this->true_name
);
2771 ERR("Out of memory\n");
2772 throw_exception(EXCEPTION_BAD_ALLOC
, NULL
);
2776 /* ?_Tidy@?$numpunct@_W@std@@AAEXXZ */
2777 /* ?_Tidy@?$numpunct@_W@std@@AEAAXXZ */
2778 /* ?_Tidy@?$numpunct@G@std@@AAEXXZ */
2779 /* ?_Tidy@?$numpunct@G@std@@AEAAXXZ */
2780 DEFINE_THISCALL_WRAPPER(numpunct_wchar__Tidy
, 4)
2781 void __thiscall
numpunct_wchar__Tidy(numpunct_wchar
*this)
2783 TRACE("(%p)\n", this);
2785 MSVCRT_operator_delete((char*)this->grouping
);
2786 MSVCRT_operator_delete((wchar_t*)this->false_name
);
2787 MSVCRT_operator_delete((wchar_t*)this->true_name
);
2790 /* ??0?$numpunct@_W@std@@QAE@ABV_Locinfo@1@I_N@Z */
2791 /* ??0?$numpunct@_W@std@@QEAA@AEBV_Locinfo@1@_K_N@Z */
2792 DEFINE_THISCALL_WRAPPER(numpunct_wchar_ctor_locinfo
, 16)
2793 numpunct_wchar
* __thiscall
numpunct_wchar_ctor_locinfo(numpunct_wchar
*this,
2794 _Locinfo
*locinfo
, MSVCP_size_t refs
, MSVCP_bool usedef
)
2796 TRACE("(%p %p %lu %d)\n", this, locinfo
, refs
, usedef
);
2797 locale_facet_ctor_refs(&this->facet
, refs
);
2798 this->facet
.vtable
= &MSVCP_numpunct_wchar_vtable
;
2799 numpunct_wchar__Init(this, locinfo
, usedef
);
2803 /* ??0?$numpunct@G@std@@QAE@ABV_Locinfo@1@I_N@Z */
2804 /* ??0?$numpunct@G@std@@QEAA@AEBV_Locinfo@1@_K_N@Z */
2805 DEFINE_THISCALL_WRAPPER(numpunct_short_ctor_locinfo
, 16)
2806 numpunct_wchar
* __thiscall
numpunct_short_ctor_locinfo(numpunct_wchar
*this,
2807 _Locinfo
*locinfo
, MSVCP_size_t refs
, MSVCP_bool usedef
)
2809 numpunct_wchar_ctor_locinfo(this, locinfo
, refs
, usedef
);
2810 this->facet
.vtable
= &MSVCP_numpunct_short_vtable
;
2814 /* ??0?$numpunct@_W@std@@IAE@PBDI_N@Z */
2815 /* ??0?$numpunct@_W@std@@IEAA@PEBD_K_N@Z */
2816 DEFINE_THISCALL_WRAPPER(numpunct_wchar_ctor_name
, 16)
2817 numpunct_wchar
* __thiscall
numpunct_wchar_ctor_name(numpunct_wchar
*this,
2818 const char *name
, MSVCP_size_t refs
, MSVCP_bool usedef
)
2822 TRACE("(%p %s %lu %d)\n", this, debugstr_a(name
), refs
, usedef
);
2823 locale_facet_ctor_refs(&this->facet
, refs
);
2824 this->facet
.vtable
= &MSVCP_numpunct_wchar_vtable
;
2826 _Locinfo_ctor_cstr(&locinfo
, name
);
2827 numpunct_wchar__Init(this, &locinfo
, usedef
);
2828 _Locinfo_dtor(&locinfo
);
2832 /* ??0?$numpunct@G@std@@IAE@PBDI_N@Z */
2833 /* ??0?$numpunct@G@std@@IEAA@PEBD_K_N@Z */
2834 DEFINE_THISCALL_WRAPPER(numpunct_short_ctor_name
, 16)
2835 numpunct_wchar
* __thiscall
numpunct_short_ctor_name(numpunct_wchar
*this,
2836 const char *name
, MSVCP_size_t refs
, MSVCP_bool usedef
)
2838 numpunct_wchar_ctor_name(this, name
, refs
, usedef
);
2839 this->facet
.vtable
= &MSVCP_numpunct_short_vtable
;
2843 /* ??0?$numpunct@_W@std@@QAE@I@Z */
2844 /* ??0?$numpunct@_W@std@@QEAA@_K@Z */
2845 DEFINE_THISCALL_WRAPPER(numpunct_wchar_ctor_refs
, 8)
2846 numpunct_wchar
* __thiscall
numpunct_wchar_ctor_refs(numpunct_wchar
*this, MSVCP_size_t refs
)
2848 TRACE("(%p %lu)\n", this, refs
);
2849 return numpunct_wchar_ctor_name(this, "C", refs
, FALSE
);
2852 /* ??0?$numpunct@G@std@@QAE@I@Z */
2853 /* ??0?$numpunct@G@std@@QEAA@_K@Z */
2854 DEFINE_THISCALL_WRAPPER(numpunct_short_ctor_refs
, 8)
2855 numpunct_wchar
* __thiscall
numpunct_short_ctor_refs(numpunct_wchar
*this, MSVCP_size_t refs
)
2857 numpunct_wchar_ctor_refs(this, refs
);
2858 this->facet
.vtable
= &MSVCP_numpunct_short_vtable
;
2862 /* ??_F?$numpunct@_W@std@@QAEXXZ */
2863 /* ??_F?$numpunct@_W@std@@QEAAXXZ */
2864 DEFINE_THISCALL_WRAPPER(numpunct_wchar_ctor
, 4)
2865 numpunct_wchar
* __thiscall
numpunct_wchar_ctor(numpunct_wchar
*this)
2867 return numpunct_wchar_ctor_refs(this, 0);
2870 /* ??_F?$numpunct@G@std@@QAEXXZ */
2871 /* ??_F?$numpunct@G@std@@QEAAXXZ */
2872 DEFINE_THISCALL_WRAPPER(numpunct_short_ctor
, 4)
2873 numpunct_wchar
* __thiscall
numpunct_short_ctor(numpunct_wchar
*this)
2875 return numpunct_short_ctor_refs(this, 0);
2878 /* ??1?$numpunct@_W@std@@MAE@XZ */
2879 /* ??1?$numpunct@_W@std@@MEAA@XZ */
2880 /* ??1?$numpunct@G@std@@MAE@XZ */
2881 /* ??1?$numpunct@G@std@@MEAA@XZ */
2882 DEFINE_THISCALL_WRAPPER(numpunct_wchar_dtor
, 4)
2883 void __thiscall
numpunct_wchar_dtor(numpunct_wchar
*this)
2885 TRACE("(%p)\n", this);
2886 numpunct_wchar__Tidy(this);
2889 DEFINE_THISCALL_WRAPPER(MSVCP_numpunct_wchar_vector_dtor
, 8)
2890 numpunct_wchar
* __thiscall
MSVCP_numpunct_wchar_vector_dtor(numpunct_wchar
*this, unsigned int flags
)
2892 TRACE("(%p %x)\n", this, flags
);
2894 /* we have an array, with the number of elements stored before the first object */
2895 int i
, *ptr
= (int *)this-1;
2897 for(i
=*ptr
-1; i
>=0; i
--)
2898 numpunct_wchar_dtor(this+i
);
2899 MSVCRT_operator_delete(ptr
);
2901 numpunct_wchar_dtor(this);
2903 MSVCRT_operator_delete(this);
2909 DEFINE_THISCALL_WRAPPER(MSVCP_numpunct_short_vector_dtor
, 8)
2910 numpunct_wchar
* __thiscall
MSVCP_numpunct_short_vector_dtor(numpunct_wchar
*this, unsigned int flags
)
2912 return MSVCP_numpunct_wchar_vector_dtor(this, flags
);
2915 /* ?_Getcat@?$numpunct@_W@std@@SAIPAPBVfacet@locale@2@PBV42@@Z */
2916 /* ?_Getcat@?$numpunct@_W@std@@SA_KPEAPEBVfacet@locale@2@PEBV42@@Z */
2917 MSVCP_size_t __cdecl
numpunct_wchar__Getcat(const locale_facet
**facet
, const locale
*loc
)
2919 TRACE("(%p %p)\n", facet
, loc
);
2921 if(facet
&& !*facet
) {
2922 *facet
= MSVCRT_operator_new(sizeof(numpunct_wchar
));
2924 ERR("Out of memory\n");
2925 throw_exception(EXCEPTION_BAD_ALLOC
, NULL
);
2928 numpunct_wchar_ctor_name((numpunct_wchar
*)*facet
,
2929 MSVCP_basic_string_char_c_str(&loc
->ptr
->name
), 0, TRUE
);
2935 /* ?_Getcat@?$numpunct@G@std@@SAIPAPBVfacet@locale@2@PBV42@@Z */
2936 /* ?_Getcat@?$numpunct@G@std@@SA_KPEAPEBVfacet@locale@2@PEBV42@@Z */
2937 MSVCP_size_t __cdecl
numpunct_short__Getcat(const locale_facet
**facet
, const locale
*loc
)
2939 TRACE("(%p %p)\n", facet
, loc
);
2941 if(facet
&& !*facet
) {
2942 *facet
= MSVCRT_operator_new(sizeof(numpunct_wchar
));
2944 ERR("Out of memory\n");
2945 throw_exception(EXCEPTION_BAD_ALLOC
, NULL
);
2948 numpunct_short_ctor_name((numpunct_wchar
*)*facet
,
2949 MSVCP_basic_string_char_c_str(&loc
->ptr
->name
), 0, TRUE
);
2955 /* ?do_decimal_point@?$numpunct@_W@std@@MBE_WXZ */
2956 /* ?do_decimal_point@?$numpunct@_W@std@@MEBA_WXZ */
2957 /* ?do_decimal_point@?$numpunct@G@std@@MBEGXZ */
2958 /* ?do_decimal_point@?$numpunct@G@std@@MEBAGXZ */
2959 DEFINE_THISCALL_WRAPPER(numpunct_wchar_do_decimal_point
, 4)
2960 #define call_numpunct_wchar_do_decimal_point(this) CALL_VTBL_FUNC(this, 4, \
2961 wchar_t, (const numpunct_wchar *this), (this))
2962 wchar_t __thiscall
numpunct_wchar_do_decimal_point(const numpunct_wchar
*this)
2964 TRACE("(%p)\n", this);
2968 /* ?decimal_point@?$numpunct@_W@std@@QBE_WXZ */
2969 /* ?decimal_point@?$numpunct@_W@std@@QEBA_WXZ */
2970 /* ?decimal_point@?$numpunct@G@std@@QBEGXZ */
2971 /* ?decimal_point@?$numpunct@G@std@@QEBAGXZ */
2972 DEFINE_THISCALL_WRAPPER(numpunct_wchar_decimal_point
, 4)
2973 wchar_t __thiscall
numpunct_wchar_decimal_point(const numpunct_wchar
*this)
2975 TRACE("(%p)\n", this);
2976 return call_numpunct_wchar_do_decimal_point(this);
2979 /* ?do_thousands_sep@?$numpunct@_W@std@@MBE_WXZ */
2980 /* ?do_thousands_sep@?$numpunct@_W@std@@MEBA_WXZ */
2981 /* ?do_thousands_sep@?$numpunct@G@std@@MBEGXZ */
2982 /* ?do_thousands_sep@?$numpunct@G@std@@MEBAGXZ */
2983 DEFINE_THISCALL_WRAPPER(numpunct_wchar_do_thousands_sep
, 4)
2984 #define call_numpunct_wchar_do_thousands_sep(this) CALL_VTBL_FUNC(this, 8, \
2985 wchar_t, (const numpunct_wchar *this), (this))
2986 wchar_t __thiscall
numpunct_wchar_do_thousands_sep(const numpunct_wchar
*this)
2988 TRACE("(%p)\n", this);
2992 /* ?thousands_sep@?$numpunct@_W@std@@QBE_WXZ */
2993 /* ?thousands_sep@?$numpunct@_W@std@@QEBA_WXZ */
2994 /* ?thousands_sep@?$numpunct@G@std@@QBEGXZ */
2995 /* ?thousands_sep@?$numpunct@G@std@@QEBAGXZ */
2996 DEFINE_THISCALL_WRAPPER(numpunct_wchar_thousands_sep
, 4)
2997 wchar_t __thiscall
numpunct_wchar_thousands_sep(const numpunct_wchar
*this)
2999 TRACE("(%p)\n", this);
3000 return call_numpunct_wchar_do_thousands_sep(this);
3003 /* ?do_grouping@?$numpunct@_W@std@@MBE?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@2@XZ */
3004 /* ?do_grouping@?$numpunct@_W@std@@MEBA?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@2@XZ */
3005 /* ?do_grouping@?$numpunct@G@std@@MBE?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@2@XZ */
3006 /* ?do_grouping@?$numpunct@G@std@@MEBA?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@2@XZ */
3007 DEFINE_THISCALL_WRAPPER(numpunct_wchar_do_grouping
, 8)
3008 #define call_numpunct_wchar_do_grouping(this, ret) CALL_VTBL_FUNC(this, 12, \
3009 basic_string_char*, (const numpunct_wchar*, basic_string_char*), (this, ret))
3010 basic_string_char
* __thiscall
numpunct_wchar_do_grouping(const numpunct_wchar
*this, basic_string_char
*ret
)
3012 TRACE("(%p)\n", this);
3013 return MSVCP_basic_string_char_ctor_cstr(ret
, this->grouping
);
3016 /* ?grouping@?$numpunct@_W@std@@QBE?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@2@XZ */
3017 /* ?grouping@?$numpunct@_W@std@@QEBA?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@2@XZ */
3018 /* ?grouping@?$numpunct@G@std@@QBE?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@2@XZ */
3019 /* ?grouping@?$numpunct@G@std@@QEBA?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@2@XZ */
3020 DEFINE_THISCALL_WRAPPER(numpunct_wchar_grouping
, 8)
3021 basic_string_char
* __thiscall
numpunct_wchar_grouping(const numpunct_wchar
*this, basic_string_char
*ret
)
3023 TRACE("(%p)\n", this);
3024 return call_numpunct_wchar_do_grouping(this, ret
);
3027 /* ?do_falsename@?$numpunct@_W@std@@MBE?AV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@2@XZ */
3028 /* ?do_falsename@?$numpunct@_W@std@@MEBA?AV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@2@XZ */
3029 /* ?do_falsename@?$numpunct@G@std@@MBE?AV?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@2@XZ */
3030 /* ?do_falsename@?$numpunct@G@std@@MEBA?AV?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@2@XZ */
3031 DEFINE_THISCALL_WRAPPER(numpunct_wchar_do_falsename
, 8)
3032 #define call_numpunct_wchar_do_falsename(this, ret) CALL_VTBL_FUNC(this, 16, \
3033 basic_string_wchar*, (const numpunct_wchar*, basic_string_wchar*), (this, ret))
3034 basic_string_wchar
* __thiscall
numpunct_wchar_do_falsename(const numpunct_wchar
*this, basic_string_wchar
*ret
)
3036 TRACE("(%p)\n", this);
3037 return MSVCP_basic_string_wchar_ctor_cstr(ret
, this->false_name
);
3040 /* ?falsename@?$numpunct@_W@std@@QBE?AV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@2@XZ */
3041 /* ?falsename@?$numpunct@_W@std@@QEBA?AV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@2@XZ */
3042 /* ?falsename@?$numpunct@G@std@@QBE?AV?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@2@XZ */
3043 /* ?falsename@?$numpunct@G@std@@QEBA?AV?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@2@XZ */
3044 DEFINE_THISCALL_WRAPPER(numpunct_wchar_falsename
, 8)
3045 basic_string_wchar
* __thiscall
numpunct_wchar_falsename(const numpunct_wchar
*this, basic_string_wchar
*ret
)
3047 TRACE("(%p)\n", this);
3048 return call_numpunct_wchar_do_falsename(this, ret
);
3051 /* ?do_truename@?$numpunct@_W@std@@MBE?AV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@2@XZ */
3052 /* ?do_truename@?$numpunct@_W@std@@MEBA?AV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@2@XZ */
3053 /* ?do_truename@?$numpunct@G@std@@MBE?AV?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@2@XZ */
3054 /* ?do_truename@?$numpunct@G@std@@MEBA?AV?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@2@XZ */
3055 DEFINE_THISCALL_WRAPPER(numpunct_wchar_do_truename
, 8)
3056 #define call_numpunct_wchar_do_truename(this, ret) CALL_VTBL_FUNC(this, 20, \
3057 basic_string_wchar*, (const numpunct_wchar*, basic_string_wchar*), (this, ret))
3058 basic_string_wchar
* __thiscall
numpunct_wchar_do_truename(const numpunct_wchar
*this, basic_string_wchar
*ret
)
3060 TRACE("(%p)\n", this);
3061 return MSVCP_basic_string_wchar_ctor_cstr(ret
, this->true_name
);
3064 /* ?truename@?$numpunct@_W@std@@QBE?AV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@2@XZ */
3065 /* ?truename@?$numpunct@_W@std@@QEBA?AV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@2@XZ */
3066 /* ?truename@?$numpunct@G@std@@QBE?AV?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@2@XZ */
3067 /* ?truename@?$numpunct@G@std@@QEBA?AV?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@2@XZ */
3068 DEFINE_THISCALL_WRAPPER(numpunct_wchar_truename
, 8)
3069 basic_string_wchar
* __thiscall
numpunct_wchar_truename(const numpunct_wchar
*this, basic_string_wchar
*ret
)
3071 TRACE("(%p)\n", this);
3072 return call_numpunct_wchar_do_truename(this, ret
);
3075 /* ?id@?$num_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@2V0locale@2@A */
3076 locale_id num_get_wchar_id
= {0};
3077 /* ?id@?$num_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@2V0locale@2@A */
3078 locale_id num_get_short_id
= {0};
3080 /* ??_7?$num_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@6B@ */
3081 extern const vtable_ptr MSVCP_num_get_wchar_vtable
;
3082 /* ??_7?$num_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@6B@ */
3083 extern const vtable_ptr MSVCP_num_get_short_vtable
;
3085 /* ?_Init@?$num_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@IAEXABV_Locinfo@2@@Z */
3086 /* ?_Init@?$num_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@IEAAXAEBV_Locinfo@2@@Z */
3087 /* ?_Init@?$num_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@IAEXABV_Locinfo@2@@Z */
3088 /* ?_Init@?$num_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@IEAAXAEBV_Locinfo@2@@Z */
3089 DEFINE_THISCALL_WRAPPER(num_get_wchar_ctor__Init
, 8)
3090 void __thiscall
num_get_wchar_ctor__Init(num_get
*this, const _Locinfo
*locinfo
)
3092 FIXME("(%p %p) stub\n", this, locinfo
);
3095 /* ??0?$num_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@QAE@ABV_Locinfo@1@I@Z */
3096 /* ??0?$num_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@QEAA@AEBV_Locinfo@1@_K@Z */
3097 DEFINE_THISCALL_WRAPPER(num_get_wchar_ctor_locinfo
, 12)
3098 num_get
* __thiscall
num_get_wchar_ctor_locinfo(num_get
*this,
3099 _Locinfo
*locinfo
, MSVCP_size_t refs
)
3101 FIXME("(%p %p %lu) stub\n", this, locinfo
, refs
);
3105 /* ??0?$num_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@QAE@ABV_Locinfo@1@I@Z */
3106 /* ??0?$num_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@QEAA@AEBV_Locinfo@1@_K@Z */
3107 DEFINE_THISCALL_WRAPPER(num_get_short_ctor_locinfo
, 12)
3108 num_get
* __thiscall
num_get_short_ctor_locinfo(num_get
*this,
3109 _Locinfo
*locinfo
, MSVCP_size_t refs
)
3111 FIXME("(%p %p %lu) stub\n", this, locinfo
, refs
);
3115 /* ??0?$num_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@QAE@I@Z */
3116 /* ??0?$num_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@QEAA@_K@Z */
3117 DEFINE_THISCALL_WRAPPER(num_get_wchar_ctor_refs
, 8)
3118 num_get
* __thiscall
num_get_wchar_ctor_refs(num_get
*this, MSVCP_size_t refs
)
3120 FIXME("(%p %lu) stub\n", this, refs
);
3124 /* ??0?$num_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@QAE@I@Z */
3125 /* ??0?$num_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@QEAA@_K@Z */
3126 DEFINE_THISCALL_WRAPPER(num_get_short_ctor_refs
, 8)
3127 num_get
* __thiscall
num_get_short_ctor_refs(num_get
*this, MSVCP_size_t refs
)
3129 FIXME("(%p %lu) stub\n", this, refs
);
3133 /* ??_F?$num_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@QAEXXZ */
3134 /* ??_F?$num_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@QEAAXXZ */
3135 DEFINE_THISCALL_WRAPPER(num_get_wchar_ctor
, 4)
3136 num_get
* __thiscall
num_get_wchar_ctor(num_get
*this)
3138 FIXME("(%p) stub\n", this);
3142 /* ??_F?$num_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@QAEXXZ */
3143 /* ??_F?$num_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@QEAAXXZ */
3144 DEFINE_THISCALL_WRAPPER(num_get_short_ctor
, 4)
3145 num_get
* __thiscall
num_get_short_ctor(num_get
*this)
3147 FIXME("(%p) stub\n", this);
3151 /* ??1?$num_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@MAE@XZ */
3152 /* ??1?$num_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@MEAA@XZ */
3153 /* ??1?$num_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@MAE@XZ */
3154 /* ??1?$num_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@MEAA@XZ */
3155 DEFINE_THISCALL_WRAPPER(num_get_wchar_dtor
, 4)
3156 void __thiscall
num_get_wchar_dtor(num_get
*this)
3158 FIXME("(%p) stub\n", this);
3161 DEFINE_THISCALL_WRAPPER(MSVCP_num_get_wchar_vector_dtor
, 8)
3162 num_get
* __thiscall
MSVCP_num_get_wchar_vector_dtor(num_get
*this, unsigned int flags
)
3164 TRACE("(%p %x)\n", this, flags
);
3166 /* we have an array, with the number of elements stored before the first object */
3167 int i
, *ptr
= (int *)this-1;
3169 for(i
=*ptr
-1; i
>=0; i
--)
3170 num_get_wchar_dtor(this+i
);
3171 MSVCRT_operator_delete(ptr
);
3173 num_get_wchar_dtor(this);
3175 MSVCRT_operator_delete(this);
3181 DEFINE_THISCALL_WRAPPER(MSVCP_num_get_short_vector_dtor
, 8)
3182 num_get
* __thiscall
MSVCP_num_get_short_vector_dtor(num_get
*this, unsigned int flags
)
3184 return MSVCP_num_get_wchar_vector_dtor(this, flags
);
3187 /* ?_Getcat@?$num_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@SAIPAPBVfacet@locale@2@PBV42@@Z */
3188 /* ?_Getcat@?$num_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@SA_KPEAPEBVfacet@locale@2@PEBV42@@Z */
3189 MSVCP_size_t __cdecl
num_get_wchar__Getcat(const locale_facet
**facet
, const locale
*loc
)
3191 FIXME("(%p %p) stub\n", facet
, loc
);
3195 /* ?_Getcat@?$num_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@SAIPAPBVfacet@locale@2@PBV42@@Z */
3196 /* ?_Getcat@?$num_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@SA_KPEAPEBVfacet@locale@2@PEBV42@@Z */
3197 MSVCP_size_t __cdecl
num_get_short__Getcat(const locale_facet
**facet
, const locale
*loc
)
3199 FIXME("(%p %p) stub\n", facet
, loc
);
3203 /* ?_Getffld@?$num_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@ABAHPADAAV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@2@1ABVlocale@2@@Z */
3204 /* ?_Getffld@?$num_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@AEBAHPEADAEAV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@2@1AEBVlocale@2@@Z */
3205 /* ?_Getffld@?$num_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@ABAHPADAAV?$istreambuf_iterator@GU?$char_traits@G@std@@@2@1ABVlocale@2@@Z */
3206 /* ?_Getffld@?$num_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@AEBAHPEADAEAV?$istreambuf_iterator@GU?$char_traits@G@std@@@2@1AEBVlocale@2@@Z */
3207 int __cdecl
num_get_wchar__Getffld(num_get
*this, char *dest
, istreambuf_iterator_wchar
*first
,
3208 istreambuf_iterator_wchar
*last
, const locale
*loc
)
3210 FIXME("(%p %p %p %p) stub\n", dest
, first
, last
, loc
);
3214 /* ?_Getffldx@?$num_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@ABAHPADAAV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@2@1AAVios_base@2@PAH@Z */
3215 /* ?_Getffldx@?$num_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@AEBAHPEADAEAV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@2@1AEAVios_base@2@PEAH@Z */
3216 /* ?_Getffldx@?$num_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@ABAHPADAAV?$istreambuf_iterator@GU?$char_traits@G@std@@@2@1AAVios_base@2@PAH@Z */
3217 /* ?_Getffldx@?$num_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@AEBAHPEADAEAV?$istreambuf_iterator@GU?$char_traits@G@std@@@2@1AEAVios_base@2@PEAH@Z */
3218 int __cdecl
num_get_wchar__Getffldx(num_get
*this, char *dest
, istreambuf_iterator_wchar
*first
,
3219 istreambuf_iterator_wchar
*last
, struct _ios_base
*ios
, int *phexexp
)
3221 FIXME("(%p %p %p %p %p) stub\n", dest
, first
, last
, ios
, phexexp
);
3225 /* ?_Getifld@?$num_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@ABAHPADAAV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@2@1HABVlocale@2@@Z */
3226 /* ?_Getifld@?$num_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@AEBAHPEADAEAV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@2@1HAEBVlocale@2@@Z */
3227 /* ?_Getifld@?$num_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@ABAHPADAAV?$istreambuf_iterator@GU?$char_traits@G@std@@@2@1HABVlocale@2@@Z */
3228 /* ?_Getifld@?$num_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@AEBAHPEADAEAV?$istreambuf_iterator@GU?$char_traits@G@std@@@2@1HAEBVlocale@2@@Z */
3229 int __cdecl
num_get_wchar__Getifld(num_get
*this, char *dest
, istreambuf_iterator_wchar
*first
,
3230 istreambuf_iterator_wchar
*last
, int fmtflags
, const locale
*loc
)
3232 FIXME("(%p %p %p %04x %p) stub\n", dest
, first
, last
, fmtflags
, loc
);
3236 /* ?_Hexdig@?$num_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@ABEH_W000@Z */
3237 /* ?_Hexdig@?$num_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@AEBAH_W000@Z */
3238 /* ?_Hexdig@?$num_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@ABEHGGGG@Z */
3239 /* ?_Hexdig@?$num_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@AEBAHGGGG@Z */
3240 DEFINE_THISCALL_WRAPPER(MSVCP_num_get_wchar__Hexdig
, 20)
3241 int __thiscall
MSVCP_num_get_wchar__Hexdig(num_get
*this, wchar_t dig
, wchar_t e0
, wchar_t al
, wchar_t au
)
3243 FIXME("(%p %c %c %c %c) stub\n", this, dig
, e0
, al
, au
);
3247 /* ?do_get@?$num_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@MBE?AV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@2@V32@0AAVios_base@2@AAHAAPAX@Z */
3248 /* ?do_get@?$num_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@MEBA?AV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@2@V32@0AEAVios_base@2@AEAHAEAPEAX@Z */
3249 /* ?do_get@?$num_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@MBE?AV?$istreambuf_iterator@GU?$char_traits@G@std@@@2@V32@0AAVios_base@2@AAHAAPAX@Z */
3250 /* ?do_get@?$num_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@MEBA?AV?$istreambuf_iterator@GU?$char_traits@G@std@@@2@V32@0AEAVios_base@2@AEAHAEAPEAX@Z */
3251 DEFINE_THISCALL_WRAPPER(num_get_wchar_do_get_void
,36)
3252 istreambuf_iterator_wchar
*__thiscall
num_get_wchar_do_get_void(const num_get
*this, istreambuf_iterator_wchar
*ret
,
3253 istreambuf_iterator_wchar first
, istreambuf_iterator_wchar last
, struct _ios_base
*base
, int *state
, void **pval
)
3255 FIXME("(%p %p %p %p %p) stub\n", this, ret
, base
, state
, pval
);
3259 /* ?get@?$num_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@QBE?AV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@2@V32@0AAVios_base@2@AAHAAPAX@Z */
3260 /* ?get@?$num_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@QEBA?AV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@2@V32@0AEAVios_base@2@AEAHAEAPEAX@Z */
3261 /* ?get@?$num_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@QBE?AV?$istreambuf_iterator@GU?$char_traits@G@std@@@2@V32@0AAVios_base@2@AAHAAPAX@Z */
3262 /* ?get@?$num_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@QEBA?AV?$istreambuf_iterator@GU?$char_traits@G@std@@@2@V32@0AEAVios_base@2@AEAHAEAPEAX@Z */
3263 DEFINE_THISCALL_WRAPPER(num_get_wchar_get_void
,36)
3264 istreambuf_iterator_wchar
*__thiscall
num_get_wchar_get_void(const num_get
*this, istreambuf_iterator_wchar
*ret
,
3265 istreambuf_iterator_wchar first
, istreambuf_iterator_wchar last
, struct _ios_base
*base
, int *state
, void **pval
)
3267 FIXME("(%p %p %p %p %p) stub\n", this, ret
, base
, state
, pval
);
3271 /* ?do_get@?$num_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@MBE?AV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@2@V32@0AAVios_base@2@AAHAAO@Z */
3272 /* ?do_get@?$num_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@MEBA?AV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@2@V32@0AEAVios_base@2@AEAHAEAO@Z */
3273 /* ?do_get@?$num_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@MBE?AV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@2@V32@0AAVios_base@2@AAHAAN@Z */
3274 /* ?do_get@?$num_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@MEBA?AV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@2@V32@0AEAVios_base@2@AEAHAEAN@Z */
3275 /* ?do_get@?$num_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@MBE?AV?$istreambuf_iterator@GU?$char_traits@G@std@@@2@V32@0AAVios_base@2@AAHAAO@Z */
3276 /* ?do_get@?$num_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@MEBA?AV?$istreambuf_iterator@GU?$char_traits@G@std@@@2@V32@0AEAVios_base@2@AEAHAEAO@Z */
3277 /* ?do_get@?$num_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@MBE?AV?$istreambuf_iterator@GU?$char_traits@G@std@@@2@V32@0AAVios_base@2@AAHAAN@Z */
3278 /* ?do_get@?$num_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@MEBA?AV?$istreambuf_iterator@GU?$char_traits@G@std@@@2@V32@0AEAVios_base@2@AEAHAEAN@Z */
3279 DEFINE_THISCALL_WRAPPER(num_get_wchar_do_get_double
,36)
3280 istreambuf_iterator_wchar
*__thiscall
num_get_wchar_do_get_double(const num_get
*this, istreambuf_iterator_wchar
*ret
,
3281 istreambuf_iterator_wchar first
, istreambuf_iterator_wchar last
, struct _ios_base
*base
, int *state
, double *pval
)
3283 FIXME("(%p %p %p %p %p) stub\n", this, ret
, base
, state
, pval
);
3287 /* ?get@?$num_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@QBE?AV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@2@V32@0AAVios_base@2@AAHAAO@Z */
3288 /* ?get@?$num_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@QEBA?AV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@2@V32@0AEAVios_base@2@AEAHAEAO@Z */
3289 /* ?get@?$num_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@QBE?AV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@2@V32@0AAVios_base@2@AAHAAN@Z */
3290 /* ?get@?$num_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@QEBA?AV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@2@V32@0AEAVios_base@2@AEAHAEAN@Z */
3291 /* ?get@?$num_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@QBE?AV?$istreambuf_iterator@GU?$char_traits@G@std@@@2@V32@0AAVios_base@2@AAHAAO@Z */
3292 /* ?get@?$num_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@QEBA?AV?$istreambuf_iterator@GU?$char_traits@G@std@@@2@V32@0AEAVios_base@2@AEAHAEAO@Z */
3293 /* ?get@?$num_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@QBE?AV?$istreambuf_iterator@GU?$char_traits@G@std@@@2@V32@0AAVios_base@2@AAHAAN@Z */
3294 /* ?get@?$num_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@QEBA?AV?$istreambuf_iterator@GU?$char_traits@G@std@@@2@V32@0AEAVios_base@2@AEAHAEAN@Z */
3295 DEFINE_THISCALL_WRAPPER(num_get_wchar_get_double
,36)
3296 istreambuf_iterator_wchar
*__thiscall
num_get_wchar_get_double(const num_get
*this, istreambuf_iterator_wchar
*ret
,
3297 istreambuf_iterator_wchar first
, istreambuf_iterator_wchar last
, struct _ios_base
*base
, int *state
, double *pval
)
3299 FIXME("(%p %p %p %p %p) stub\n", this, ret
, base
, state
, pval
);
3303 /* ?do_get@?$num_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@MBE?AV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@2@V32@0AAVios_base@2@AAHAAM@Z */
3304 /* ?do_get@?$num_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@MEBA?AV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@2@V32@0AEAVios_base@2@AEAHAEAM@Z */
3305 /* ?do_get@?$num_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@MBE?AV?$istreambuf_iterator@GU?$char_traits@G@std@@@2@V32@0AAVios_base@2@AAHAAM@Z */
3306 /* ?do_get@?$num_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@MEBA?AV?$istreambuf_iterator@GU?$char_traits@G@std@@@2@V32@0AEAVios_base@2@AEAHAEAM@Z */
3307 DEFINE_THISCALL_WRAPPER(num_get_wchar_do_get_float
,36)
3308 istreambuf_iterator_wchar
*__thiscall
num_get_wchar_do_get_float(const num_get
*this, istreambuf_iterator_wchar
*ret
,
3309 istreambuf_iterator_wchar first
, istreambuf_iterator_wchar last
, struct _ios_base
*base
, int *state
, float *pval
)
3311 FIXME("(%p %p %p %p %p) stub\n", this, ret
, base
, state
, pval
);
3315 /* ?get@?$num_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@QBE?AV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@2@V32@0AAVios_base@2@AAHAAM@Z */
3316 /* ?get@?$num_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@QEBA?AV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@2@V32@0AEAVios_base@2@AEAHAEAM@Z */
3317 /* ?get@?$num_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@QBE?AV?$istreambuf_iterator@GU?$char_traits@G@std@@@2@V32@0AAVios_base@2@AAHAAM@Z */
3318 /* ?get@?$num_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@QEBA?AV?$istreambuf_iterator@GU?$char_traits@G@std@@@2@V32@0AEAVios_base@2@AEAHAEAM@Z */
3319 DEFINE_THISCALL_WRAPPER(num_get_wchar_get_float
,36)
3320 istreambuf_iterator_wchar
*__thiscall
num_get_wchar_get_float(const num_get
*this, istreambuf_iterator_wchar
*ret
,
3321 istreambuf_iterator_wchar first
, istreambuf_iterator_wchar last
, struct _ios_base
*base
, int *state
, float *pval
)
3323 FIXME("(%p %p %p %p %p) stub\n", this, ret
, base
, state
, pval
);
3327 /* ?do_get@?$num_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@MBE?AV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@2@V32@0AAVios_base@2@AAHAA_K@Z */
3328 /* ?do_get@?$num_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@MEBA?AV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@2@V32@0AEAVios_base@2@AEAHAEA_K@Z */
3329 /* ?do_get@?$num_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@MBE?AV?$istreambuf_iterator@GU?$char_traits@G@std@@@2@V32@0AAVios_base@2@AAHAA_K@Z */
3330 /* ?do_get@?$num_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@MEBA?AV?$istreambuf_iterator@GU?$char_traits@G@std@@@2@V32@0AEAVios_base@2@AEAHAEA_K@Z */
3331 DEFINE_THISCALL_WRAPPER(num_get_wchar_do_get_uint64
,36)
3332 istreambuf_iterator_wchar
*__thiscall
num_get_wchar_do_get_uint64(const num_get
*this, istreambuf_iterator_wchar
*ret
,
3333 istreambuf_iterator_wchar first
, istreambuf_iterator_wchar last
, struct _ios_base
*base
, int *state
, ULONGLONG
*pval
)
3335 FIXME("(%p %p %p %p %p) stub\n", this, ret
, base
, state
, pval
);
3339 /* ?get@?$num_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@QBE?AV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@2@V32@0AAVios_base@2@AAHAA_K@Z */
3340 /* ?get@?$num_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@QEBA?AV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@2@V32@0AEAVios_base@2@AEAHAEA_K@Z */
3341 /* ?get@?$num_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@QBE?AV?$istreambuf_iterator@GU?$char_traits@G@std@@@2@V32@0AAVios_base@2@AAHAA_K@Z */
3342 /* ?get@?$num_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@QEBA?AV?$istreambuf_iterator@GU?$char_traits@G@std@@@2@V32@0AEAVios_base@2@AEAHAEA_K@Z */
3343 DEFINE_THISCALL_WRAPPER(num_get_wchar_get_uint64
,36)
3344 istreambuf_iterator_wchar
*__thiscall
num_get_wchar_get_uint64(const num_get
*this, istreambuf_iterator_wchar
*ret
,
3345 istreambuf_iterator_wchar first
, istreambuf_iterator_wchar last
, struct _ios_base
*base
, int *state
, ULONGLONG
*pval
)
3347 FIXME("(%p %p %p %p %p) stub\n", this, ret
, base
, state
, pval
);
3351 /* ?do_get@?$num_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@MBE?AV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@2@V32@0AAVios_base@2@AAHAA_J@Z */
3352 /* ?do_get@?$num_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@MEBA?AV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@2@V32@0AEAVios_base@2@AEAHAEA_J@Z */
3353 /* ?do_get@?$num_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@MBE?AV?$istreambuf_iterator@GU?$char_traits@G@std@@@2@V32@0AAVios_base@2@AAHAA_J@Z */
3354 /* ?do_get@?$num_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@MEBA?AV?$istreambuf_iterator@GU?$char_traits@G@std@@@2@V32@0AEAVios_base@2@AEAHAEA_J@Z */
3355 DEFINE_THISCALL_WRAPPER(num_get_wchar_do_get_int64
,36)
3356 istreambuf_iterator_wchar
*__thiscall
num_get_wchar_do_get_int64(const num_get
*this, istreambuf_iterator_wchar
*ret
,
3357 istreambuf_iterator_wchar first
, istreambuf_iterator_wchar last
, struct _ios_base
*base
, int *state
, LONGLONG
*pval
)
3359 FIXME("(%p %p %p %p %p) stub\n", this, ret
, base
, state
, pval
);
3363 /* ?get@?$num_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@QBE?AV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@2@V32@0AAVios_base@2@AAHAA_J@Z */
3364 /* ?get@?$num_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@QEBA?AV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@2@V32@0AEAVios_base@2@AEAHAEA_J@Z */
3365 /* ?get@?$num_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@QBE?AV?$istreambuf_iterator@GU?$char_traits@G@std@@@2@V32@0AAVios_base@2@AAHAA_J@Z */
3366 /* ?get@?$num_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@QEBA?AV?$istreambuf_iterator@GU?$char_traits@G@std@@@2@V32@0AEAVios_base@2@AEAHAEA_J@Z */
3367 DEFINE_THISCALL_WRAPPER(num_get_wchar_get_int64
,36)
3368 istreambuf_iterator_wchar
*__thiscall
num_get_wchar_get_int64(const num_get
*this, istreambuf_iterator_wchar
*ret
,
3369 istreambuf_iterator_wchar first
, istreambuf_iterator_wchar last
, struct _ios_base
*base
, int *state
, LONGLONG
*pval
)
3371 FIXME("(%p %p %p %p %p) stub\n", this, ret
, base
, state
, pval
);
3375 /* ?do_get@?$num_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@MBE?AV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@2@V32@0AAVios_base@2@AAHAAK@Z */
3376 /* ?do_get@?$num_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@MEBA?AV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@2@V32@0AEAVios_base@2@AEAHAEAK@Z */
3377 /* ?do_get@?$num_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@MBE?AV?$istreambuf_iterator@GU?$char_traits@G@std@@@2@V32@0AAVios_base@2@AAHAAK@Z */
3378 /* ?do_get@?$num_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@MEBA?AV?$istreambuf_iterator@GU?$char_traits@G@std@@@2@V32@0AEAVios_base@2@AEAHAEAK@Z */
3379 DEFINE_THISCALL_WRAPPER(num_get_wchar_do_get_ulong
,36)
3380 istreambuf_iterator_wchar
*__thiscall
num_get_wchar_do_get_ulong(const num_get
*this, istreambuf_iterator_wchar
*ret
,
3381 istreambuf_iterator_wchar first
, istreambuf_iterator_wchar last
, struct _ios_base
*base
, int *state
, ULONG
*pval
)
3383 FIXME("(%p %p %p %p %p) stub\n", this, ret
, base
, state
, pval
);
3387 /* ?get@?$num_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@QBE?AV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@2@V32@0AAVios_base@2@AAHAAK@Z */
3388 /* ?get@?$num_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@QEBA?AV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@2@V32@0AEAVios_base@2@AEAHAEAK@Z */
3389 /* ?get@?$num_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@QBE?AV?$istreambuf_iterator@GU?$char_traits@G@std@@@2@V32@0AAVios_base@2@AAHAAK@Z */
3390 /* ?get@?$num_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@QEBA?AV?$istreambuf_iterator@GU?$char_traits@G@std@@@2@V32@0AEAVios_base@2@AEAHAEAK@Z */
3391 DEFINE_THISCALL_WRAPPER(num_get_wchar_get_ulong
,36)
3392 istreambuf_iterator_wchar
*__thiscall
num_get_wchar_get_ulong(const num_get
*this, istreambuf_iterator_wchar
*ret
,
3393 istreambuf_iterator_wchar first
, istreambuf_iterator_wchar last
, struct _ios_base
*base
, int *state
, ULONG
*pval
)
3395 FIXME("(%p %p %p %p %p) stub\n", this, ret
, base
, state
, pval
);
3399 /* ?do_get@?$num_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@MBE?AV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@2@V32@0AAVios_base@2@AAHAAJ@Z */
3400 /* ?do_get@?$num_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@MEBA?AV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@2@V32@0AEAVios_base@2@AEAHAEAJ@Z */
3401 /* ?do_get@?$num_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@MBE?AV?$istreambuf_iterator@GU?$char_traits@G@std@@@2@V32@0AAVios_base@2@AAHAAJ@Z */
3402 /* ?do_get@?$num_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@MEBA?AV?$istreambuf_iterator@GU?$char_traits@G@std@@@2@V32@0AEAVios_base@2@AEAHAEAJ@Z */
3403 DEFINE_THISCALL_WRAPPER(num_get_wchar_do_get_long
,36)
3404 istreambuf_iterator_wchar
*__thiscall
num_get_wchar_do_get_long(const num_get
*this, istreambuf_iterator_wchar
*ret
,
3405 istreambuf_iterator_wchar first
, istreambuf_iterator_wchar last
, struct _ios_base
*base
, int *state
, LONG
*pval
)
3407 FIXME("(%p %p %p %p %p) stub\n", this, ret
, base
, state
, pval
);
3411 /* ?get@?$num_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@QBE?AV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@2@V32@0AAVios_base@2@AAHAAJ@Z */
3412 /* ?get@?$num_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@QEBA?AV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@2@V32@0AEAVios_base@2@AEAHAEAJ@Z */
3413 /* ?get@?$num_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@QBE?AV?$istreambuf_iterator@GU?$char_traits@G@std@@@2@V32@0AAVios_base@2@AAHAAJ@Z */
3414 /* ?get@?$num_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@QEBA?AV?$istreambuf_iterator@GU?$char_traits@G@std@@@2@V32@0AEAVios_base@2@AEAHAEAJ@Z */
3415 DEFINE_THISCALL_WRAPPER(num_get_wchar_get_long
,36)
3416 istreambuf_iterator_wchar
*__thiscall
num_get_wchar_get_long(const num_get
*this, istreambuf_iterator_wchar
*ret
,
3417 istreambuf_iterator_wchar first
, istreambuf_iterator_wchar last
, struct _ios_base
*base
, int *state
, LONG
*pval
)
3419 FIXME("(%p %p %p %p %p) stub\n", this, ret
, base
, state
, pval
);
3423 /* ?do_get@?$num_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@MBE?AV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@2@V32@0AAVios_base@2@AAHAAI@Z */
3424 /* ?do_get@?$num_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@MEBA?AV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@2@V32@0AEAVios_base@2@AEAHAEAI@Z */
3425 /* ?do_get@?$num_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@MBE?AV?$istreambuf_iterator@GU?$char_traits@G@std@@@2@V32@0AAVios_base@2@AAHAAI@Z */
3426 /* ?do_get@?$num_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@MEBA?AV?$istreambuf_iterator@GU?$char_traits@G@std@@@2@V32@0AEAVios_base@2@AEAHAEAI@Z */
3427 DEFINE_THISCALL_WRAPPER(num_get_wchar_do_get_uint
,36)
3428 istreambuf_iterator_wchar
*__thiscall
num_get_wchar_do_get_uint(const num_get
*this, istreambuf_iterator_wchar
*ret
,
3429 istreambuf_iterator_wchar first
, istreambuf_iterator_wchar last
, struct _ios_base
*base
, int *state
, unsigned int *pval
)
3431 FIXME("(%p %p %p %p %p) stub\n", this, ret
, base
, state
, pval
);
3435 /* ?get@?$num_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@QBE?AV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@2@V32@0AAVios_base@2@AAHAAI@Z */
3436 /* ?get@?$num_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@QEBA?AV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@2@V32@0AEAVios_base@2@AEAHAEAI@Z */
3437 /* ?get@?$num_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@QBE?AV?$istreambuf_iterator@GU?$char_traits@G@std@@@2@V32@0AAVios_base@2@AAHAAI@Z */
3438 /* ?get@?$num_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@QEBA?AV?$istreambuf_iterator@GU?$char_traits@G@std@@@2@V32@0AEAVios_base@2@AEAHAEAI@Z */
3439 DEFINE_THISCALL_WRAPPER(num_get_wchar_get_uint
,36)
3440 istreambuf_iterator_wchar
*__thiscall
num_get_wchar_get_uint(const num_get
*this, istreambuf_iterator_wchar
*ret
,
3441 istreambuf_iterator_wchar first
, istreambuf_iterator_wchar last
, struct _ios_base
*base
, int *state
, unsigned int *pval
)
3443 FIXME("(%p %p %p %p %p) stub\n", this, ret
, base
, state
, pval
);
3447 /* ?do_get@?$num_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@MBE?AV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@2@V32@0AAVios_base@2@AAHAAG@Z */
3448 /* ?do_get@?$num_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@MEBA?AV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@2@V32@0AEAVios_base@2@AEAHAEAG@Z */
3449 /* ?do_get@?$num_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@MBE?AV?$istreambuf_iterator@GU?$char_traits@G@std@@@2@V32@0AAVios_base@2@AAHAAG@Z */
3450 /* ?do_get@?$num_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@MEBA?AV?$istreambuf_iterator@GU?$char_traits@G@std@@@2@V32@0AEAVios_base@2@AEAHAEAG@Z */
3451 DEFINE_THISCALL_WRAPPER(num_get_wchar_do_get_ushort
,36)
3452 istreambuf_iterator_wchar
*__thiscall
num_get_wchar_do_get_ushort(const num_get
*this, istreambuf_iterator_wchar
*ret
,
3453 istreambuf_iterator_wchar first
, istreambuf_iterator_wchar last
, struct _ios_base
*base
, int *state
, unsigned short *pval
)
3455 FIXME("(%p %p %p %p %p) stub\n", this, ret
, base
, state
, pval
);
3459 /* ?get@?$num_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@QBE?AV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@2@V32@0AAVios_base@2@AAHAAG@Z */
3460 /* ?get@?$num_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@QEBA?AV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@2@V32@0AEAVios_base@2@AEAHAEAG@Z */
3461 /* ?get@?$num_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@QBE?AV?$istreambuf_iterator@GU?$char_traits@G@std@@@2@V32@0AAVios_base@2@AAHAAG@ */
3462 /* ?get@?$num_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@QEBA?AV?$istreambuf_iterator@GU?$char_traits@G@std@@@2@V32@0AEAVios_base@2@AEAHAEAG@Z */
3463 DEFINE_THISCALL_WRAPPER(num_get_wchar_get_ushort
,36)
3464 istreambuf_iterator_wchar
*__thiscall
num_get_wchar_get_ushort(const num_get
*this, istreambuf_iterator_wchar
*ret
,
3465 istreambuf_iterator_wchar first
, istreambuf_iterator_wchar last
, struct _ios_base
*base
, int *state
, unsigned short *pval
)
3467 FIXME("(%p %p %p %p %p) stub\n", this, ret
, base
, state
, pval
);
3471 /* ?do_get@?$num_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@MBE?AV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@2@V32@0AAVios_base@2@AAHAA_N@Z */
3472 /* ?do_get@?$num_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@MEBA?AV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@2@V32@0AEAVios_base@2@AEAHAEA_N@Z */
3473 /* ?do_get@?$num_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@MBE?AV?$istreambuf_iterator@GU?$char_traits@G@std@@@2@V32@0AAVios_base@2@AAHAA_N@Z */
3474 /* ?do_get@?$num_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@MEBA?AV?$istreambuf_iterator@GU?$char_traits@G@std@@@2@V32@0AEAVios_base@2@AEAHAEA_N@Z */
3475 DEFINE_THISCALL_WRAPPER(num_get_wchar_do_get_bool
,36)
3476 istreambuf_iterator_wchar
*__thiscall
num_get_wchar_do_get_bool(const num_get
*this, istreambuf_iterator_wchar
*ret
,
3477 istreambuf_iterator_wchar first
, istreambuf_iterator_wchar last
, struct _ios_base
*base
, int *state
, MSVCP_bool
*pval
)
3479 FIXME("(%p %p %p %p %p) stub\n", this, ret
, base
, state
, pval
);
3483 /* ?get@?$num_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@QBE?AV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@2@V32@0AAVios_base@2@AAHAA_N@Z */
3484 /* ?get@?$num_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@QEBA?AV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@2@V32@0AEAVios_base@2@AEAHAEA_N@Z */
3485 /* ?get@?$num_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@QBE?AV?$istreambuf_iterator@GU?$char_traits@G@std@@@2@V32@0AAVios_base@2@AAHAA_N@Z */
3486 /* ?get@?$num_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@QEBA?AV?$istreambuf_iterator@GU?$char_traits@G@std@@@2@V32@0AEAVios_base@2@AEAHAEA_N@Z */
3487 DEFINE_THISCALL_WRAPPER(num_get_wchar_get_bool
,36)
3488 istreambuf_iterator_wchar
*__thiscall
num_get_wchar_get_bool(const num_get
*this, istreambuf_iterator_wchar
*ret
,
3489 istreambuf_iterator_wchar first
, istreambuf_iterator_wchar last
, struct _ios_base
*base
, int *state
, MSVCP_bool
*pval
)
3491 FIXME("(%p %p %p %p %p) stub\n", this, ret
, base
, state
, pval
);
3495 /* ?id@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@2V0locale@2@A */
3496 locale_id num_get_char_id
= {0};
3498 /* ??_7?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@6B@ */
3499 extern const vtable_ptr MSVCP_num_get_char_vtable
;
3501 /* ?_Init@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@IAEXABV_Locinfo@2@@Z */
3502 /* ?_Init@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@IEAAXAEBV_Locinfo@2@@Z */
3503 DEFINE_THISCALL_WRAPPER(num_get_char_ctor__Init
, 8)
3504 void __thiscall
num_get_char_ctor__Init(num_get
*this, const _Locinfo
*locinfo
)
3506 FIXME("(%p %p) stub\n", this, locinfo
);
3509 /* ??0?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@QAE@ABV_Locinfo@1@I@Z */
3510 /* ??0?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@QEAA@AEBV_Locinfo@1@_K@Z */
3511 DEFINE_THISCALL_WRAPPER(num_get_char_ctor_locinfo
, 12)
3512 num_get
* __thiscall
num_get_char_ctor_locinfo(num_get
*this,
3513 _Locinfo
*locinfo
, MSVCP_size_t refs
)
3515 FIXME("(%p %p %lu) stub\n", this, locinfo
, refs
);
3519 /* ??0?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@QAE@I@Z */
3520 /* ??0?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@QEAA@_K@Z */
3521 DEFINE_THISCALL_WRAPPER(num_get_char_ctor_refs
, 8)
3522 num_get
* __thiscall
num_get_char_ctor_refs(num_get
*this, MSVCP_size_t refs
)
3524 FIXME("(%p %lu) stub\n", this, refs
);
3528 /* ??_F?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@QAEXXZ */
3529 /* ??_F?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@QEAAXXZ */
3530 DEFINE_THISCALL_WRAPPER(num_get_char_ctor
, 4)
3531 num_get
* __thiscall
num_get_char_ctor(num_get
*this)
3533 FIXME("(%p) stub\n", this);
3537 /* ??1?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MAE@XZ */
3538 /* ??1?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MEAA@XZ */
3539 DEFINE_THISCALL_WRAPPER(num_get_char_dtor
, 4)
3540 void __thiscall
num_get_char_dtor(num_get
*this)
3542 FIXME("(%p) stub\n", this);
3545 DEFINE_THISCALL_WRAPPER(MSVCP_num_get_char_vector_dtor
, 8)
3546 num_get
* __thiscall
MSVCP_num_get_char_vector_dtor(num_get
*this, unsigned int flags
)
3548 TRACE("(%p %x)\n", this, flags
);
3550 /* we have an array, with the number of elements stored before the first object */
3551 int i
, *ptr
= (int *)this-1;
3553 for(i
=*ptr
-1; i
>=0; i
--)
3554 num_get_char_dtor(this+i
);
3555 MSVCRT_operator_delete(ptr
);
3557 num_get_char_dtor(this);
3559 MSVCRT_operator_delete(this);
3565 /* ?_Getcat@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@SAIPAPBVfacet@locale@2@PBV42@@Z */
3566 /* ?_Getcat@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@SA_KPEAPEBVfacet@locale@2@PEBV42@@Z */
3567 MSVCP_size_t __cdecl
num_get_char__Getcat(const locale_facet
**facet
, const locale
*loc
)
3569 FIXME("(%p %p) stub\n", facet
, loc
);
3573 /* ?_Getffld@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@ABAHPADAAV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@1ABVlocale@2@@Z */
3574 /* ?_Getffld@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@AEBAHPEADAEAV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@1AEBVlocale@2@@Z */
3575 int __cdecl
num_get_char__Getffld(num_get
*this, char *dest
, istreambuf_iterator_char
*first
,
3576 istreambuf_iterator_char
*last
, const locale
*loc
)
3578 FIXME("(%p %p %p %p) stub\n", dest
, first
, last
, loc
);
3582 /* ?_Getffldx@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@ABAHPADAAV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@1AAVios_base@2@PAH@Z */
3583 /* ?_Getffldx@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@AEBAHPEADAEAV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@1AEAVios_base@2@PEAH@Z */
3584 int __cdecl
num_get_char__Getffldx(num_get
*this, char *dest
, istreambuf_iterator_char
*first
,
3585 istreambuf_iterator_char
*last
, struct _ios_base
*ios
, int *phexexp
)
3587 FIXME("(%p %p %p %p %p) stub\n", dest
, first
, last
, ios
, phexexp
);
3591 /* ?_Getifld@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@ABAHPADAAV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@1HABVlocale@2@@Z */
3592 /* ?_Getifld@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@AEBAHPEADAEAV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@1HAEBVlocale@2@@Z */
3593 int __cdecl
num_get_char__Getifld(num_get
*this, char *dest
, istreambuf_iterator_char
*first
,
3594 istreambuf_iterator_char
*last
, int fmtflags
, const locale
*loc
)
3596 FIXME("(%p %p %p %04x %p) stub\n", dest
, first
, last
, fmtflags
, loc
);
3600 /* ?_Hexdig@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@ABEHD000@Z */
3601 /* ?_Hexdig@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@AEBAHD000@Z */
3602 DEFINE_THISCALL_WRAPPER(MSVCP_num_get_char__Hexdig
, 20)
3603 int __thiscall
MSVCP_num_get_char__Hexdig(num_get
*this, char dig
, char e0
, char al
, char au
)
3605 FIXME("(%p %c %c %c %c) stub\n", this, dig
, e0
, al
, au
);
3609 /* ?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MBE?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AAVios_base@2@AAHAAPAX@Z */
3610 /* ?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MEBA?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AEAVios_base@2@AEAHAEAPEAX@Z */
3611 DEFINE_THISCALL_WRAPPER(num_get_char_do_get_void
,36)
3612 istreambuf_iterator_char
*__thiscall
num_get_char_do_get_void(const num_get
*this, istreambuf_iterator_char
*ret
,
3613 istreambuf_iterator_char first
, istreambuf_iterator_char last
, struct _ios_base
*base
, int *state
, void **pval
)
3615 FIXME("(%p %p %p %p %p) stub\n", this, ret
, base
, state
, pval
);
3619 /* ?get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@QBE?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AAVios_base@2@AAHAAPAX@Z */
3620 /* ?get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@QEBA?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AEAVios_base@2@AEAHAEAPEAX@Z */
3621 DEFINE_THISCALL_WRAPPER(num_get_char_get_void
,36)
3622 istreambuf_iterator_char
*__thiscall
num_get_char_get_void(const num_get
*this, istreambuf_iterator_char
*ret
,
3623 istreambuf_iterator_char first
, istreambuf_iterator_char last
, struct _ios_base
*base
, int *state
, void **pval
)
3625 FIXME("(%p %p %p %p %p) stub\n", this, ret
, base
, state
, pval
);
3629 /* ?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MBE?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AAVios_base@2@AAHAAO@Z */
3630 /* ?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MEBA?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AEAVios_base@2@AEAHAEAO@Z */
3631 /* ?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MBE?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AAVios_base@2@AAHAAN@Z */
3632 /* ?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MEBA?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AEAVios_base@2@AEAHAEAN@Z */
3633 DEFINE_THISCALL_WRAPPER(num_get_char_do_get_double
,36)
3634 istreambuf_iterator_char
*__thiscall
num_get_char_do_get_double(const num_get
*this, istreambuf_iterator_char
*ret
,
3635 istreambuf_iterator_char first
, istreambuf_iterator_char last
, struct _ios_base
*base
, int *state
, double *pval
)
3637 FIXME("(%p %p %p %p %p) stub\n", this, ret
, base
, state
, pval
);
3641 /* ?get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@QBE?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AAVios_base@2@AAHAAO@Z */
3642 /* ?get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@QEBA?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AEAVios_base@2@AEAHAEAO@Z */
3643 /* ?get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@QBE?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AAVios_base@2@AAHAAN@Z */
3644 /* ?get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@QEBA?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AEAVios_base@2@AEAHAEAN@Z */
3645 DEFINE_THISCALL_WRAPPER(num_get_char_get_double
,36)
3646 istreambuf_iterator_char
*__thiscall
num_get_char_get_double(const num_get
*this, istreambuf_iterator_char
*ret
,
3647 istreambuf_iterator_char first
, istreambuf_iterator_char last
, struct _ios_base
*base
, int *state
, double *pval
)
3649 FIXME("(%p %p %p %p %p) stub\n", this, ret
, base
, state
, pval
);
3653 /* ?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MBE?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AAVios_base@2@AAHAAM@Z */
3654 /* ?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MEBA?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AEAVios_base@2@AEAHAEAM@Z */
3655 DEFINE_THISCALL_WRAPPER(num_get_char_do_get_float
,36)
3656 istreambuf_iterator_char
*__thiscall
num_get_char_do_get_float(const num_get
*this, istreambuf_iterator_char
*ret
,
3657 istreambuf_iterator_char first
, istreambuf_iterator_char last
, struct _ios_base
*base
, int *state
, float *pval
)
3659 FIXME("(%p %p %p %p %p) stub\n", this, ret
, base
, state
, pval
);
3663 /* ?get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@QBE?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AAVios_base@2@AAHAAM@Z */
3664 /* ?get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@QEBA?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AEAVios_base@2@AEAHAEAM@Z */
3665 DEFINE_THISCALL_WRAPPER(num_get_char_get_float
,36)
3666 istreambuf_iterator_char
*__thiscall
num_get_char_get_float(const num_get
*this, istreambuf_iterator_char
*ret
,
3667 istreambuf_iterator_char first
, istreambuf_iterator_char last
, struct _ios_base
*base
, int *state
, float *pval
)
3669 FIXME("(%p %p %p %p %p) stub\n", this, ret
, base
, state
, pval
);
3673 /* ?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MBE?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AAVios_base@2@AAHAA_K@Z */
3674 /* ?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MEBA?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AEAVios_base@2@AEAHAEA_K@Z */
3675 DEFINE_THISCALL_WRAPPER(num_get_char_do_get_uint64
,36)
3676 istreambuf_iterator_char
*__thiscall
num_get_char_do_get_uint64(const num_get
*this, istreambuf_iterator_char
*ret
,
3677 istreambuf_iterator_char first
, istreambuf_iterator_char last
, struct _ios_base
*base
, int *state
, ULONGLONG
*pval
)
3679 FIXME("(%p %p %p %p %p) stub\n", this, ret
, base
, state
, pval
);
3683 /* ?get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@QBE?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AAVios_base@2@AAHAA_K@Z */
3684 /* ?get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@QEBA?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AEAVios_base@2@AEAHAEA_K@Z */
3685 DEFINE_THISCALL_WRAPPER(num_get_char_get_uint64
,36)
3686 istreambuf_iterator_char
*__thiscall
num_get_char_get_uint64(const num_get
*this, istreambuf_iterator_char
*ret
,
3687 istreambuf_iterator_char first
, istreambuf_iterator_char last
, struct _ios_base
*base
, int *state
, ULONGLONG
*pval
)
3689 FIXME("(%p %p %p %p %p) stub\n", this, ret
, base
, state
, pval
);
3693 /* ?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MBE?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AAVios_base@2@AAHAA_J@Z */
3694 /* ?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MEBA?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AEAVios_base@2@AEAHAEA_J@Z */
3695 DEFINE_THISCALL_WRAPPER(num_get_char_do_get_int64
,36)
3696 istreambuf_iterator_char
*__thiscall
num_get_char_do_get_int64(const num_get
*this, istreambuf_iterator_char
*ret
,
3697 istreambuf_iterator_char first
, istreambuf_iterator_char last
, struct _ios_base
*base
, int *state
, LONGLONG
*pval
)
3699 FIXME("(%p %p %p %p %p) stub\n", this, ret
, base
, state
, pval
);
3703 /* ?get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@QBE?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AAVios_base@2@AAHAA_J@Z */
3704 /* ?get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@QEBA?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AEAVios_base@2@AEAHAEA_J@Z */
3705 DEFINE_THISCALL_WRAPPER(num_get_char_get_int64
,36)
3706 istreambuf_iterator_char
*__thiscall
num_get_char_get_int64(const num_get
*this, istreambuf_iterator_char
*ret
,
3707 istreambuf_iterator_char first
, istreambuf_iterator_char last
, struct _ios_base
*base
, int *state
, LONGLONG
*pval
)
3709 FIXME("(%p %p %p %p %p) stub\n", this, ret
, base
, state
, pval
);
3713 /* ?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MBE?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AAVios_base@2@AAHAAK@Z */
3714 /* ?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MEBA?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AEAVios_base@2@AEAHAEAK@Z */
3715 DEFINE_THISCALL_WRAPPER(num_get_char_do_get_ulong
,36)
3716 istreambuf_iterator_char
*__thiscall
num_get_char_do_get_ulong(const num_get
*this, istreambuf_iterator_char
*ret
,
3717 istreambuf_iterator_char first
, istreambuf_iterator_char last
, struct _ios_base
*base
, int *state
, ULONG
*pval
)
3719 FIXME("(%p %p %p %p %p) stub\n", this, ret
, base
, state
, pval
);
3723 /* ?get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@QBE?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AAVios_base@2@AAHAAK@Z */
3724 /* ?get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@QEBA?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AEAVios_base@2@AEAHAEAK@Z */
3725 DEFINE_THISCALL_WRAPPER(num_get_char_get_ulong
,36)
3726 istreambuf_iterator_char
*__thiscall
num_get_char_get_ulong(const num_get
*this, istreambuf_iterator_char
*ret
,
3727 istreambuf_iterator_char first
, istreambuf_iterator_char last
, struct _ios_base
*base
, int *state
, ULONG
*pval
)
3729 FIXME("(%p %p %p %p %p) stub\n", this, ret
, base
, state
, pval
);
3733 /* ?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MBE?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AAVios_base@2@AAHAAJ@Z */
3734 /* ?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MEBA?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AEAVios_base@2@AEAHAEAJ@Z */
3735 DEFINE_THISCALL_WRAPPER(num_get_char_do_get_long
,36)
3736 istreambuf_iterator_char
*__thiscall
num_get_char_do_get_long(const num_get
*this, istreambuf_iterator_char
*ret
,
3737 istreambuf_iterator_char first
, istreambuf_iterator_char last
, struct _ios_base
*base
, int *state
, LONG
*pval
)
3739 FIXME("(%p %p %p %p %p) stub\n", this, ret
, base
, state
, pval
);
3743 /* ?get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@QBE?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AAVios_base@2@AAHAAJ@Z */
3744 /* ?get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@QEBA?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AEAVios_base@2@AEAHAEAJ@Z */
3745 DEFINE_THISCALL_WRAPPER(num_get_char_get_long
,36)
3746 istreambuf_iterator_char
*__thiscall
num_get_char_get_long(const num_get
*this, istreambuf_iterator_char
*ret
,
3747 istreambuf_iterator_char first
, istreambuf_iterator_char last
, struct _ios_base
*base
, int *state
, LONG
*pval
)
3749 FIXME("(%p %p %p %p %p) stub\n", this, ret
, base
, state
, pval
);
3753 /* ?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MBE?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AAVios_base@2@AAHAAI@Z */
3754 /* ?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MEBA?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AEAVios_base@2@AEAHAEAI@Z */
3755 DEFINE_THISCALL_WRAPPER(num_get_char_do_get_uint
,36)
3756 istreambuf_iterator_char
*__thiscall
num_get_char_do_get_uint(const num_get
*this, istreambuf_iterator_char
*ret
,
3757 istreambuf_iterator_char first
, istreambuf_iterator_char last
, struct _ios_base
*base
, int *state
, unsigned int *pval
)
3759 FIXME("(%p %p %p %p %p) stub\n", this, ret
, base
, state
, pval
);
3763 /* ?get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@QBE?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AAVios_base@2@AAHAAI@Z */
3764 /* ?get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@QEBA?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AEAVios_base@2@AEAHAEAI@Z */
3765 DEFINE_THISCALL_WRAPPER(num_get_char_get_uint
,36)
3766 istreambuf_iterator_char
*__thiscall
num_get_char_get_uint(const num_get
*this, istreambuf_iterator_char
*ret
,
3767 istreambuf_iterator_char first
, istreambuf_iterator_char last
, struct _ios_base
*base
, int *state
, unsigned int *pval
)
3769 FIXME("(%p %p %p %p %p) stub\n", this, ret
, base
, state
, pval
);
3773 /* ?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MBE?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AAVios_base@2@AAHAAG@Z */
3774 /* ?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MEBA?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AEAVios_base@2@AEAHAEAG@Z */
3775 DEFINE_THISCALL_WRAPPER(num_get_char_do_get_ushort
,36)
3776 istreambuf_iterator_char
*__thiscall
num_get_char_do_get_ushort(const num_get
*this, istreambuf_iterator_char
*ret
,
3777 istreambuf_iterator_char first
, istreambuf_iterator_char last
, struct _ios_base
*base
, int *state
, unsigned short *pval
)
3779 FIXME("(%p %p %p %p %p) stub\n", this, ret
, base
, state
, pval
);
3783 /* ?get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@QBE?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AAVios_base@2@AAHAAG@Z */
3784 /* ?get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@QEBA?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AEAVios_base@2@AEAHAEAG@Z */
3785 DEFINE_THISCALL_WRAPPER(num_get_char_get_ushort
,36)
3786 istreambuf_iterator_char
*__thiscall
num_get_char_get_ushort(const num_get
*this, istreambuf_iterator_char
*ret
,
3787 istreambuf_iterator_char first
, istreambuf_iterator_char last
, struct _ios_base
*base
, int *state
, unsigned short *pval
)
3789 FIXME("(%p %p %p %p %p) stub\n", this, ret
, base
, state
, pval
);
3793 /* ?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MBE?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AAVios_base@2@AAHAA_N@Z */
3794 /* ?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MEBA?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AEAVios_base@2@AEAHAEA_N@Z */
3795 DEFINE_THISCALL_WRAPPER(num_get_char_do_get_bool
,36)
3796 istreambuf_iterator_char
*__thiscall
num_get_char_do_get_bool(const num_get
*this, istreambuf_iterator_char
*ret
,
3797 istreambuf_iterator_char first
, istreambuf_iterator_char last
, struct _ios_base
*base
, int *state
, MSVCP_bool
*pval
)
3799 FIXME("(%p %p %p %p %p) stub\n", this, ret
, base
, state
, pval
);
3803 /* ?get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@QBE?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AAVios_base@2@AAHAA_N@Z */
3804 /* ?get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@QEBA?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AEAVios_base@2@AEAHAEA_N@Z */
3805 DEFINE_THISCALL_WRAPPER(num_get_char_get_bool
,36)
3806 istreambuf_iterator_char
*__thiscall
num_get_char_get_bool(const num_get
*this, istreambuf_iterator_char
*ret
,
3807 istreambuf_iterator_char first
, istreambuf_iterator_char last
, struct _ios_base
*base
, int *state
, MSVCP_bool
*pval
)
3809 FIXME("(%p %p %p %p %p) stub\n", this, ret
, base
, state
, pval
);
3813 /* ??0_Locimp@locale@std@@AAE@_N@Z */
3814 /* ??0_Locimp@locale@std@@AEAA@_N@Z */
3815 DEFINE_THISCALL_WRAPPER(locale__Locimp_ctor_transparent
, 8)
3816 locale__Locimp
* __thiscall
locale__Locimp_ctor_transparent(locale__Locimp
*this, MSVCP_bool transparent
)
3818 TRACE("(%p %d)\n", this, transparent
);
3820 memset(this, 0, sizeof(locale__Locimp
));
3821 locale_facet_ctor_refs(&this->facet
, 1);
3822 this->transparent
= transparent
;
3823 MSVCP_basic_string_char_ctor_cstr(&this->name
, "*");
3827 /* ??_F_Locimp@locale@std@@QAEXXZ */
3828 /* ??_F_Locimp@locale@std@@QEAAXXZ */
3829 DEFINE_THISCALL_WRAPPER(locale__Locimp_ctor
, 4)
3830 locale__Locimp
* __thiscall
locale__Locimp_ctor(locale__Locimp
*this)
3832 return locale__Locimp_ctor_transparent(this, FALSE
);
3835 /* ??0_Locimp@locale@std@@AAE@ABV012@@Z */
3836 /* ??0_Locimp@locale@std@@AEAA@AEBV012@@Z */
3837 DEFINE_THISCALL_WRAPPER(locale__Locimp_copy_ctor
, 8)
3838 locale__Locimp
* __thiscall
locale__Locimp_copy_ctor(locale__Locimp
*this, const locale__Locimp
*copy
)
3843 TRACE("(%p %p)\n", this, copy
);
3845 _Lockit_ctor_locktype(&lock
, _LOCK_LOCALE
);
3846 memcpy(this, copy
, sizeof(locale__Locimp
));
3847 locale_facet_ctor_refs(&this->facet
, 1);
3848 if(copy
->facetvec
) {
3849 this->facetvec
= MSVCRT_operator_new(copy
->facet_cnt
*sizeof(locale_facet
*));
3850 if(!this->facetvec
) {
3851 _Lockit_dtor(&lock
);
3852 ERR("Out of memory\n");
3853 throw_exception(EXCEPTION_BAD_ALLOC
, NULL
);
3856 for(i
=0; i
<this->facet_cnt
; i
++)
3857 if(this->facetvec
[i
])
3858 locale_facet__Incref(this->facetvec
[i
]);
3860 MSVCP_basic_string_char_copy_ctor(&this->name
, ©
->name
);
3861 _Lockit_dtor(&lock
);
3865 /* ?_Locimp_ctor@_Locimp@locale@std@@CAXPAV123@ABV123@@Z */
3866 /* ?_Locimp_ctor@_Locimp@locale@std@@CAXPEAV123@AEBV123@@Z */
3867 locale__Locimp
* __cdecl
locale__Locimp__Locimp_ctor(locale__Locimp
*this, const locale__Locimp
*copy
)
3869 return locale__Locimp_copy_ctor(this, copy
);
3872 /* ??1_Locimp@locale@std@@MAE@XZ */
3873 /* ??1_Locimp@locale@std@@MEAA@XZ */
3874 DEFINE_THISCALL_WRAPPER(locale__Locimp_dtor
, 4)
3875 void __thiscall
locale__Locimp_dtor(locale__Locimp
*this)
3877 TRACE("(%p)\n", this);
3879 if(locale_facet__Decref(&this->facet
)) {
3881 for(i
=0; i
<this->facet_cnt
; i
++)
3882 if(this->facetvec
[i
] && locale_facet__Decref(this->facetvec
[i
]))
3883 call_locale_facet_vector_dtor(this->facetvec
[i
], 0);
3885 MSVCRT_operator_delete(this->facetvec
);
3886 MSVCP_basic_string_char_dtor(&this->name
);
3890 /* ?_Locimp_dtor@_Locimp@locale@std@@CAXPAV123@@Z */
3891 /* ?_Locimp_dtor@_Locimp@locale@std@@CAXPEAV123@@Z */
3892 void __cdecl
locale__Locimp__Locimp_dtor(locale__Locimp
*this)
3894 locale__Locimp_dtor(this);
3897 DEFINE_THISCALL_WRAPPER(MSVCP_locale__Locimp_vector_dtor
, 8)
3898 locale__Locimp
* __thiscall
MSVCP_locale__Locimp_vector_dtor(locale__Locimp
*this, unsigned int flags
)
3900 TRACE("(%p %x)\n", this, flags
);
3902 /* we have an array, with the number of elements stored before the first object */
3903 int i
, *ptr
= (int *)this-1;
3905 for(i
=*ptr
-1; i
>=0; i
--)
3906 locale__Locimp_dtor(this+i
);
3907 MSVCRT_operator_delete(ptr
);
3909 locale__Locimp_dtor(this);
3911 MSVCRT_operator_delete(this);
3917 /* ?_Locimp_Addfac@_Locimp@locale@std@@CAXPAV123@PAVfacet@23@I@Z */
3918 /* ?_Locimp_Addfac@_Locimp@locale@std@@CAXPEAV123@PEAVfacet@23@_K@Z */
3919 void __cdecl
locale__Locimp__Locimp_Addfac(locale__Locimp
*locimp
, locale_facet
*facet
, MSVCP_size_t id
)
3923 TRACE("(%p %p %lu)\n", locimp
, facet
, id
);
3925 _Lockit_ctor_locktype(&lock
, _LOCK_LOCALE
);
3926 if(id
>= locimp
->facet_cnt
) {
3927 MSVCP_size_t new_size
= id
+1;
3928 locale_facet
**new_facetvec
;
3930 if(new_size
< locale_id__Id_cnt
+1)
3931 new_size
= locale_id__Id_cnt
+1;
3933 new_facetvec
= MSVCRT_operator_new(sizeof(locale_facet
*)*new_size
);
3935 _Lockit_dtor(&lock
);
3936 ERR("Out of memory\n");
3937 throw_exception(EXCEPTION_BAD_ALLOC
, NULL
);
3941 memset(new_facetvec
, 0, sizeof(locale_facet
*)*new_size
);
3942 memcpy(new_facetvec
, locimp
->facetvec
, sizeof(locale_facet
*)*locimp
->facet_cnt
);
3943 MSVCRT_operator_delete(locimp
->facetvec
);
3944 locimp
->facetvec
= new_facetvec
;
3945 locimp
->facet_cnt
= new_size
;
3948 if(locimp
->facetvec
[id
] && locale_facet__Decref(locimp
->facetvec
[id
]))
3949 call_locale_facet_vector_dtor(locimp
->facetvec
[id
], 0);
3951 locimp
->facetvec
[id
] = facet
;
3953 locale_facet__Incref(facet
);
3954 _Lockit_dtor(&lock
);
3957 /* ?_Addfac@_Locimp@locale@std@@AAEXPAVfacet@23@I@Z */
3958 /* ?_Addfac@_Locimp@locale@std@@AEAAXPEAVfacet@23@_K@Z */
3959 DEFINE_THISCALL_WRAPPER(locale__Locimp__Addfac
, 12)
3960 void __thiscall
locale__Locimp__Addfac(locale__Locimp
*this, locale_facet
*facet
, MSVCP_size_t id
)
3962 locale__Locimp__Locimp_Addfac(this, facet
, id
);
3965 /* ?_Clocptr_func@_Locimp@locale@std@@CAAAPAV123@XZ */
3966 /* ?_Clocptr_func@_Locimp@locale@std@@CAAEAPEAV123@XZ */
3967 locale__Locimp
** __cdecl
locale__Locimp__Clocptr_func(void)
3973 /* ?_Makeloc@_Locimp@locale@std@@CAPAV123@ABV_Locinfo@3@HPAV123@PBV23@@Z */
3974 /* ?_Makeloc@_Locimp@locale@std@@CAPEAV123@AEBV_Locinfo@3@HPEAV123@PEBV23@@Z */
3975 locale__Locimp
* __cdecl
locale__Locimp__Makeloc(const _Locinfo
*locinfo
, category cat
, locale__Locimp
*locimp
, const locale
*loc
)
3977 FIXME("(%p %d %p %p) stub\n", locinfo
, cat
, locimp
, loc
);
3981 /* ?_Makeushloc@_Locimp@locale@std@@CAXABV_Locinfo@3@HPAV123@PBV23@@Z */
3982 /* ?_Makeushloc@_Locimp@locale@std@@CAXAEBV_Locinfo@3@HPEAV123@PEBV23@@Z */
3983 void __cdecl
locale__Locimp__Makeushloc(const _Locinfo
*locinfo
, category cat
, locale__Locimp
*locimp
, const locale
*loc
)
3985 FIXME("(%p %d %p %p) stub\n", locinfo
, cat
, locimp
, loc
);
3988 /* ?_Makewloc@_Locimp@locale@std@@CAXABV_Locinfo@3@HPAV123@PBV23@@Z */
3989 /* ?_Makewloc@_Locimp@locale@std@@CAXAEBV_Locinfo@3@HPEAV123@PEBV23@@Z */
3990 void __cdecl
locale__Locimp__Makewloc(const _Locinfo
*locinfo
, category cat
, locale__Locimp
*locimp
, const locale
*loc
)
3992 FIXME("(%p %d %p %p) stub\n", locinfo
, cat
, locimp
, loc
);
3995 /* ?_Makexloc@_Locimp@locale@std@@CAXABV_Locinfo@3@HPAV123@PBV23@@Z */
3996 /* ?_Makexloc@_Locimp@locale@std@@CAXAEBV_Locinfo@3@HPEAV123@PEBV23@@Z */
3997 void __cdecl
locale__Locimp__Makexloc(const _Locinfo
*locinfo
, category cat
, locale__Locimp
*locimp
, const locale
*loc
)
3999 FIXME("(%p %d %p %p) stub\n", locinfo
, cat
, locimp
, loc
);
4002 /* ??_7_Locimp@locale@std@@6B@ */
4003 const vtable_ptr MSVCP_locale__Locimp_vtable
[] = {
4004 (vtable_ptr
)THISCALL_NAME(MSVCP_locale__Locimp_vector_dtor
)
4007 /* ??0locale@std@@AAE@PAV_Locimp@01@@Z */
4008 /* ??0locale@std@@AEAA@PEAV_Locimp@01@@Z */
4009 DEFINE_THISCALL_WRAPPER(locale_ctor_locimp
, 8)
4010 locale
* __thiscall
locale_ctor_locimp(locale
*this, locale__Locimp
*locimp
)
4012 TRACE("(%p %p)\n", this, locimp
);
4013 /* Don't change locimp reference counter */
4018 /* ??0locale@std@@QAE@ABV01@0H@Z */
4019 /* ??0locale@std@@QEAA@AEBV01@0H@Z */
4020 DEFINE_THISCALL_WRAPPER(locale_ctor_locale_locale
, 16)
4021 locale
* __thiscall
locale_ctor_locale_locale(locale
*this, const locale
*loc
, const locale
*other
, category cat
)
4023 FIXME("(%p %p %p %d) stub\n", this, loc
, other
, cat
);
4027 /* ??0locale@std@@QAE@ABV01@@Z */
4028 /* ??0locale@std@@QEAA@AEBV01@@Z */
4029 DEFINE_THISCALL_WRAPPER(locale_copy_ctor
, 8)
4030 locale
* __thiscall
locale_copy_ctor(locale
*this, const locale
*copy
)
4032 TRACE("(%p %p)\n", this, copy
);
4033 this->ptr
= copy
->ptr
;
4034 locale_facet__Incref(&this->ptr
->facet
);
4038 /* ??0locale@std@@QAE@ABV01@PBDH@Z */
4039 /* ??0locale@std@@QEAA@AEBV01@PEBDH@Z */
4040 DEFINE_THISCALL_WRAPPER(locale_ctor_locale_cstr
, 16)
4041 locale
* __thiscall
locale_ctor_locale_cstr(locale
*this, const locale
*loc
, const char *locname
, category cat
)
4043 FIXME("(%p %p %s %d) stub\n", this, loc
, locname
, cat
);
4047 /* ??0locale@std@@QAE@PBDH@Z */
4048 /* ??0locale@std@@QEAA@PEBDH@Z */
4049 DEFINE_THISCALL_WRAPPER(locale_ctor_cstr
, 12)
4050 locale
* __thiscall
locale_ctor_cstr(locale
*this, const char *locname
, category cat
)
4052 FIXME("(%p %s %d) stub\n", this, locname
, cat
);
4056 /* ??0locale@std@@QAE@W4_Uninitialized@1@@Z */
4057 /* ??0locale@std@@QEAA@W4_Uninitialized@1@@Z */
4058 DEFINE_THISCALL_WRAPPER(locale_ctor_uninitialized
, 8)
4059 locale
* __thiscall
locale_ctor_uninitialized(locale
*this, int uninitialized
)
4061 TRACE("(%p)\n", this);
4066 /* ??0locale@std@@QAE@XZ */
4067 /* ??0locale@std@@QEAA@XZ */
4068 DEFINE_THISCALL_WRAPPER(locale_ctor
, 4)
4069 locale
* __thiscall
locale_ctor(locale
*this)
4071 TRACE("(%p)\n", this);
4072 this->ptr
= MSVCRT_operator_new(sizeof(locale__Locimp
));
4074 ERR("Out of memory\n");
4075 throw_exception(EXCEPTION_BAD_ALLOC
, NULL
);
4079 locale__Locimp_ctor(this->ptr
);
4083 /* ??1locale@std@@QAE@XZ */
4084 /* ??1locale@std@@QEAA@XZ */
4085 DEFINE_THISCALL_WRAPPER(locale_dtor
, 4)
4086 void __thiscall
locale_dtor(locale
*this)
4088 TRACE("(%p)\n", this);
4090 locale__Locimp_dtor(this->ptr
);
4093 DEFINE_THISCALL_WRAPPER(MSVCP_locale_vector_dtor
, 8)
4094 locale
* __thiscall
MSVCP_locale_vector_dtor(locale
*this, unsigned int flags
)
4096 TRACE("(%p %x)\n", this, flags
);
4098 /* we have an array, with the number of elements stored before the first object */
4099 int i
, *ptr
= (int *)this-1;
4101 for(i
=*ptr
-1; i
>=0; i
--)
4102 locale_dtor(this+i
);
4103 MSVCRT_operator_delete(ptr
);
4107 MSVCRT_operator_delete(this);
4113 /* ??4locale@std@@QAEAAV01@ABV01@@Z */
4114 /* ??4locale@std@@QEAAAEAV01@AEBV01@@Z */
4115 DEFINE_THISCALL_WRAPPER(locale_operator_assign
, 8)
4116 locale
* __thiscall
locale_operator_assign(locale
*this, const locale
*loc
)
4118 FIXME("(%p %p) stub\n", this, loc
);
4122 /* ??8locale@std@@QBE_NABV01@@Z */
4123 /* ??8locale@std@@QEBA_NAEBV01@@Z */
4124 DEFINE_THISCALL_WRAPPER(locale_operator_equal
, 8)
4125 MSVCP_bool __thiscall
locale_operator_equal(const locale
*this, const locale
*loc
)
4127 FIXME("(%p %p) stub\n", this, loc
);
4131 /* ??9locale@std@@QBE_NABV01@@Z */
4132 /* ??9locale@std@@QEBA_NAEBV01@@Z */
4133 DEFINE_THISCALL_WRAPPER(locale_operator_not_equal
, 8)
4134 MSVCP_bool __thiscall
locale_operator_not_equal(const locale
*this, locale
const *loc
)
4136 FIXME("(%p %p) stub\n", this, loc
);
4140 /* ?_Addfac@locale@std@@QAEAAV12@PAVfacet@12@II@Z */
4141 /* ?_Addfac@locale@std@@QEAAAEAV12@PEAVfacet@12@_K1@Z */
4142 DEFINE_THISCALL_WRAPPER(locale__Addfac
, 16)
4143 locale
* __thiscall
locale__Addfac(locale
*this, locale_facet
*facet
, MSVCP_size_t id
, MSVCP_size_t catmask
)
4145 TRACE("(%p %p %lu %lu)\n", this, facet
, id
, catmask
);
4147 if(this->ptr
->facet
.refs
> 1) {
4148 locale__Locimp
*new_ptr
= MSVCRT_operator_new(sizeof(locale__Locimp
));
4150 ERR("Out of memory\n");
4151 throw_exception(EXCEPTION_BAD_ALLOC
, NULL
);
4154 locale__Locimp_copy_ctor(new_ptr
, this->ptr
);
4155 locale_facet__Decref(&this->ptr
->facet
);
4156 this->ptr
= new_ptr
;
4159 locale__Locimp__Addfac(this->ptr
, facet
, id
);
4162 MSVCP_basic_string_char_dtor(&this->ptr
->name
);
4163 MSVCP_basic_string_char_ctor_cstr(&this->ptr
->name
, "*");
4168 /* ?_Getfacet@locale@std@@QBEPBVfacet@12@I@Z */
4169 /* ?_Getfacet@locale@std@@QEBAPEBVfacet@12@_K@Z */
4170 DEFINE_THISCALL_WRAPPER(locale__Getfacet
, 8)
4171 const locale_facet
* __thiscall
locale__Getfacet(const locale
*this, MSVCP_size_t id
)
4173 FIXME("(%p %lu) stub\n", this, id
);
4177 /* ?_Init@locale@std@@CAPAV_Locimp@12@XZ */
4178 /* ?_Init@locale@std@@CAPEAV_Locimp@12@XZ */
4179 locale__Locimp
* __cdecl
locale__Init(void)
4185 /* ?_Getgloballocale@locale@std@@CAPAV_Locimp@12@XZ */
4186 /* ?_Getgloballocale@locale@std@@CAPEAV_Locimp@12@XZ */
4187 locale__Locimp
* __cdecl
locale__Getgloballocale(void)
4193 /* ?_Setgloballocale@locale@std@@CAXPAX@Z */
4194 /* ?_Setgloballocale@locale@std@@CAXPEAX@Z */
4195 void __cdecl
locale__Setgloballocale(void *locimp
)
4197 FIXME("(%p) stub\n", locimp
);
4200 /* ?classic@locale@std@@SAABV12@XZ */
4201 /* ?classic@locale@std@@SAAEBV12@XZ */
4202 const locale
* __cdecl
locale_classic(void)
4208 /* ?name@locale@std@@QBE?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@2@XZ */
4209 /* ?name@locale@std@@QEBA?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@2@XZ */
4210 DEFINE_THISCALL_WRAPPER(locale_name
, 8)
4211 basic_string_char
* __thiscall
locale_name(const locale
*this, basic_string_char
*ret
)
4213 TRACE( "(%p)\n", this);
4214 MSVCP_basic_string_char_copy_ctor(ret
, &this->ptr
->name
);
4218 DEFINE_RTTI_DATA(locale_facet
, 0, 0, NULL
, NULL
, NULL
, ".?AVfacet@locale@std@@");
4219 DEFINE_RTTI_DATA(collate_char
, 0, 1, &locale_facet_rtti_base_descriptor
, NULL
, NULL
, ".?AV?$collate@D@std@@");
4220 DEFINE_RTTI_DATA(collate_wchar
, 0, 1, &locale_facet_rtti_base_descriptor
, NULL
, NULL
, ".?AV?$collate@_W@std@@");
4221 DEFINE_RTTI_DATA(collate_short
, 0, 1, &locale_facet_rtti_base_descriptor
, NULL
, NULL
, ".?AV?$collate@G@std@@");
4222 DEFINE_RTTI_DATA(ctype_base
, 0, 1, &locale_facet_rtti_base_descriptor
, NULL
, NULL
, ".?AUctype_base@std@@");
4223 DEFINE_RTTI_DATA(ctype_char
, 0, 2, &ctype_base_rtti_base_descriptor
, &locale_facet_rtti_base_descriptor
, NULL
, ".?AV?$ctype@D@std@@");
4224 DEFINE_RTTI_DATA(ctype_wchar
, 0, 2, &ctype_base_rtti_base_descriptor
, &locale_facet_rtti_base_descriptor
, NULL
, ".?AV?$ctype@_W@std@@");
4225 DEFINE_RTTI_DATA(ctype_short
, 0, 2, &ctype_base_rtti_base_descriptor
, &locale_facet_rtti_base_descriptor
, NULL
, ".?AV?$ctype@G@std@@");
4226 DEFINE_RTTI_DATA(numpunct_char
, 0, 1, &locale_facet_rtti_base_descriptor
, NULL
, NULL
, ".?AV?$numpunct@D@std@@");
4227 DEFINE_RTTI_DATA(numpunct_wchar
, 0, 1, &locale_facet_rtti_base_descriptor
, NULL
, NULL
, ".?AV?$numpunct@_W@std@@");
4228 DEFINE_RTTI_DATA(numpunct_short
, 0, 1, &locale_facet_rtti_base_descriptor
, NULL
, NULL
, ".?AV?$numpunct@G@std@@");
4229 DEFINE_RTTI_DATA(num_get_char
, 0, 1, &locale_facet_rtti_base_descriptor
, NULL
, NULL
, ".?AV?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@");
4230 DEFINE_RTTI_DATA(num_get_wchar
, 0, 1, &locale_facet_rtti_base_descriptor
, NULL
, NULL
, ".?AV?$num_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@");
4231 DEFINE_RTTI_DATA(num_get_short
, 0, 1, &locale_facet_rtti_base_descriptor
, NULL
, NULL
, ".?AV?$num_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@");
4234 void __asm_dummy_vtables(void) {
4236 __ASM_VTABLE(locale_facet
, "");
4237 __ASM_VTABLE(collate_char
,
4238 VTABLE_ADD_FUNC(collate_char_do_compare
)
4239 VTABLE_ADD_FUNC(collate_char_do_transform
)
4240 VTABLE_ADD_FUNC(collate_char_do_hash
));
4241 __ASM_VTABLE(collate_wchar
,
4242 VTABLE_ADD_FUNC(collate_wchar_do_compare
)
4243 VTABLE_ADD_FUNC(collate_wchar_do_transform
)
4244 VTABLE_ADD_FUNC(collate_wchar_do_hash
));
4245 __ASM_VTABLE(collate_short
,
4246 VTABLE_ADD_FUNC(collate_wchar_do_compare
)
4247 VTABLE_ADD_FUNC(collate_wchar_do_transform
)
4248 VTABLE_ADD_FUNC(collate_wchar_do_hash
));
4249 __ASM_VTABLE(ctype_base
, "");
4250 __ASM_VTABLE(ctype_char
,
4251 VTABLE_ADD_FUNC(ctype_char_do_tolower
)
4252 VTABLE_ADD_FUNC(ctype_char_do_tolower_ch
)
4253 VTABLE_ADD_FUNC(ctype_char_do_toupper
)
4254 VTABLE_ADD_FUNC(ctype_char_do_toupper_ch
)
4255 VTABLE_ADD_FUNC(ctype_char_do_widen
)
4256 VTABLE_ADD_FUNC(ctype_char_do_widen_ch
)
4257 VTABLE_ADD_FUNC(ctype_char__Do_widen_s
)
4258 VTABLE_ADD_FUNC(ctype_char_do_narrow
)
4259 VTABLE_ADD_FUNC(ctype_char_do_narrow_ch
)
4260 VTABLE_ADD_FUNC(ctype_char__Do_narrow_s
));
4261 __ASM_VTABLE(ctype_wchar
,
4262 VTABLE_ADD_FUNC(ctype_wchar_do_is
)
4263 VTABLE_ADD_FUNC(ctype_wchar_do_is_ch
)
4264 VTABLE_ADD_FUNC(ctype_wchar_do_scan_is
)
4265 VTABLE_ADD_FUNC(ctype_wchar_do_scan_not
)
4266 VTABLE_ADD_FUNC(ctype_wchar_do_tolower
)
4267 VTABLE_ADD_FUNC(ctype_wchar_do_tolower_ch
)
4268 VTABLE_ADD_FUNC(ctype_wchar_do_toupper
)
4269 VTABLE_ADD_FUNC(ctype_wchar_do_toupper_ch
)
4270 VTABLE_ADD_FUNC(ctype_wchar_do_widen
)
4271 VTABLE_ADD_FUNC(ctype_wchar_do_widen_ch
)
4272 VTABLE_ADD_FUNC(ctype_wchar__Do_widen_s
)
4273 VTABLE_ADD_FUNC(ctype_wchar_do_narrow
)
4274 VTABLE_ADD_FUNC(ctype_wchar_do_narrow_ch
)
4275 VTABLE_ADD_FUNC(ctype_wchar__Do_narrow_s
));
4276 __ASM_VTABLE(ctype_short
,
4277 VTABLE_ADD_FUNC(ctype_wchar_do_is
)
4278 VTABLE_ADD_FUNC(ctype_wchar_do_is_ch
)
4279 VTABLE_ADD_FUNC(ctype_wchar_do_scan_is
)
4280 VTABLE_ADD_FUNC(ctype_wchar_do_scan_not
)
4281 VTABLE_ADD_FUNC(ctype_wchar_do_tolower
)
4282 VTABLE_ADD_FUNC(ctype_wchar_do_tolower_ch
)
4283 VTABLE_ADD_FUNC(ctype_wchar_do_toupper
)
4284 VTABLE_ADD_FUNC(ctype_wchar_do_toupper_ch
)
4285 VTABLE_ADD_FUNC(ctype_wchar_do_widen
)
4286 VTABLE_ADD_FUNC(ctype_wchar_do_widen_ch
)
4287 VTABLE_ADD_FUNC(ctype_wchar__Do_widen_s
)
4288 VTABLE_ADD_FUNC(ctype_wchar_do_narrow
)
4289 VTABLE_ADD_FUNC(ctype_wchar_do_narrow_ch
)
4290 VTABLE_ADD_FUNC(ctype_wchar__Do_narrow_s
));
4291 __ASM_VTABLE(numpunct_char
,
4292 VTABLE_ADD_FUNC(numpunct_char_do_decimal_point
)
4293 VTABLE_ADD_FUNC(numpunct_char_do_thousands_sep
)
4294 VTABLE_ADD_FUNC(numpunct_char_do_grouping
)
4295 VTABLE_ADD_FUNC(numpunct_char_do_falsename
)
4296 VTABLE_ADD_FUNC(numpunct_char_do_truename
));
4297 __ASM_VTABLE(numpunct_wchar
,
4298 VTABLE_ADD_FUNC(numpunct_wchar_do_decimal_point
)
4299 VTABLE_ADD_FUNC(numpunct_wchar_do_thousands_sep
)
4300 VTABLE_ADD_FUNC(numpunct_wchar_do_grouping
)
4301 VTABLE_ADD_FUNC(numpunct_wchar_do_falsename
)
4302 VTABLE_ADD_FUNC(numpunct_wchar_do_truename
));
4303 __ASM_VTABLE(numpunct_short
,
4304 VTABLE_ADD_FUNC(numpunct_wchar_do_decimal_point
)
4305 VTABLE_ADD_FUNC(numpunct_wchar_do_thousands_sep
)
4306 VTABLE_ADD_FUNC(numpunct_wchar_do_grouping
)
4307 VTABLE_ADD_FUNC(numpunct_wchar_do_falsename
)
4308 VTABLE_ADD_FUNC(numpunct_wchar_do_truename
));
4309 __ASM_VTABLE(num_get_char
,
4310 VTABLE_ADD_FUNC(num_get_char_do_get_void
)
4311 VTABLE_ADD_FUNC(num_get_char_do_get_double
)
4312 VTABLE_ADD_FUNC(num_get_char_do_get_double
)
4313 VTABLE_ADD_FUNC(num_get_char_do_get_float
)
4314 VTABLE_ADD_FUNC(num_get_char_do_get_uint64
)
4315 VTABLE_ADD_FUNC(num_get_char_do_get_int64
)
4316 VTABLE_ADD_FUNC(num_get_char_do_get_ulong
)
4317 VTABLE_ADD_FUNC(num_get_char_do_get_long
)
4318 VTABLE_ADD_FUNC(num_get_char_do_get_uint
)
4319 VTABLE_ADD_FUNC(num_get_char_do_get_ushort
)
4320 VTABLE_ADD_FUNC(num_get_char_do_get_bool
));
4321 __ASM_VTABLE(num_get_short
,
4322 VTABLE_ADD_FUNC(num_get_wchar_do_get_void
)
4323 VTABLE_ADD_FUNC(num_get_wchar_do_get_double
)
4324 VTABLE_ADD_FUNC(num_get_wchar_do_get_double
)
4325 VTABLE_ADD_FUNC(num_get_wchar_do_get_float
)
4326 VTABLE_ADD_FUNC(num_get_wchar_do_get_uint64
)
4327 VTABLE_ADD_FUNC(num_get_wchar_do_get_int64
)
4328 VTABLE_ADD_FUNC(num_get_wchar_do_get_ulong
)
4329 VTABLE_ADD_FUNC(num_get_wchar_do_get_long
)
4330 VTABLE_ADD_FUNC(num_get_wchar_do_get_uint
)
4331 VTABLE_ADD_FUNC(num_get_wchar_do_get_ushort
)
4332 VTABLE_ADD_FUNC(num_get_wchar_do_get_bool
));
4333 __ASM_VTABLE(num_get_wchar
,
4334 VTABLE_ADD_FUNC(num_get_wchar_do_get_void
)
4335 VTABLE_ADD_FUNC(num_get_wchar_do_get_double
)
4336 VTABLE_ADD_FUNC(num_get_wchar_do_get_double
)
4337 VTABLE_ADD_FUNC(num_get_wchar_do_get_float
)
4338 VTABLE_ADD_FUNC(num_get_wchar_do_get_uint64
)
4339 VTABLE_ADD_FUNC(num_get_wchar_do_get_int64
)
4340 VTABLE_ADD_FUNC(num_get_wchar_do_get_ulong
)
4341 VTABLE_ADD_FUNC(num_get_wchar_do_get_long
)
4342 VTABLE_ADD_FUNC(num_get_wchar_do_get_uint
)
4343 VTABLE_ADD_FUNC(num_get_wchar_do_get_ushort
)
4344 VTABLE_ADD_FUNC(num_get_wchar_do_get_bool
));