msvcp90: Added std::locale::facet class stub.

This commit is contained in:
Piotr Caban 2011-06-22 14:02:58 +02:00 committed by Alexandre Julliard
parent 32787ec0dd
commit 95891e4f56
3 changed files with 126 additions and 15 deletions

View File

@ -6,6 +6,7 @@ EXTRAINCL = -I$(top_srcdir)/include/msvcrt
C_SRCS = \ C_SRCS = \
exception.c \ exception.c \
ios.c \ ios.c \
locale.c \
math.c \ math.c \
memory.c \ memory.c \
misc.c \ misc.c \

110
dlls/msvcp90/locale.c Normal file
View File

@ -0,0 +1,110 @@
/*
* Copyright 2010 Piotr Caban for CodeWeavers
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
*/
#include "config.h"
#include <stdarg.h>
#include "msvcp90.h"
#include "windef.h"
#include "winbase.h"
#include "wine/debug.h"
WINE_DEFAULT_DEBUG_CHANNEL(msvcp90);
typedef struct _locale_facet {
const vtable_ptr *vtable;
MSVCP_size_t refs;
} locale_facet;
static const vtable_ptr MSVCP_locale_facet_vtable[];
/* ??_Ffacet@locale@std@@QAEXXZ */
/* ??_Ffacet@locale@std@@QEAAXXZ */
DEFINE_THISCALL_WRAPPER(locale_facet_ctor, 4)
locale_facet* __thiscall locale_facet_ctor(locale_facet *this)
{
FIXME("(%p) stub\n", this);
this->vtable = MSVCP_locale_facet_vtable;
return NULL;
}
/* ??0facet@locale@std@@IAE@I@Z */
/* ??0facet@locale@std@@IEAA@_K@Z */
DEFINE_THISCALL_WRAPPER(locale_facet_ctor_refs, 8)
locale_facet* __thiscall locale_facet_ctor_refs(locale_facet *this, MSVCP_size_t refs)
{
FIXME("(%p %lu) stub\n", this, refs);
return NULL;
}
/* ??1facet@locale@std@@UAE@XZ */
/* ??1facet@locale@std@@UEAA@XZ */
DEFINE_THISCALL_WRAPPER(locale_facet_dtor, 4)
void __thiscall locale_facet_dtor(locale_facet *this)
{
FIXME("(%p) stub\n", this);
}
DEFINE_THISCALL_WRAPPER(MSVCP_locale_facet_vector_dtor, 8)
locale_facet* __thiscall MSVCP_locale_facet_vector_dtor(locale_facet *this, unsigned int flags)
{
TRACE("(%p %x) stub\n", this, flags);
if(flags & 2) {
/* we have an array, with the number of elements stored before the first object */
int i, *ptr = (int *)this-1;
for(i=*ptr-1; i>=0; i--)
locale_facet_dtor(this+i);
MSVCRT_operator_delete(ptr);
} else {
locale_facet_dtor(this);
if(flags & 1)
MSVCRT_operator_delete(this);
}
return this;
}
/* ?_Incref@facet@locale@std@@QAEXXZ */
/* ?_Incref@facet@locale@std@@QEAAXXZ */
DEFINE_THISCALL_WRAPPER(locale_facet__Incref, 4)
void __thiscall locale_facet__Incref(locale_facet *this)
{
FIXME("(%p) stub\n", this);
}
/* ?_Decref@facet@locale@std@@QAEPAV123@XZ */
/* ?_Decref@facet@locale@std@@QEAAPEAV123@XZ */
DEFINE_THISCALL_WRAPPER(locale_facet__Decref, 4)
locale_facet* __thiscall locale_facet__Decref(locale_facet *this)
{
FIXME("(%p) stub\n", this);
return NULL;
}
/* ?_Getcat@facet@locale@std@@SAIPAPBV123@PBV23@@Z */
/* ?_Getcat@facet@locale@std@@SA_KPEAPEBV123@PEBV23@@Z */
MSVCP_size_t __cdecl locale_facet__Getcat(const locale_facet **facet, const /*locale*/void *loc)
{
FIXME("(%p %p) stub\n", facet, loc);
return 0;
}
static const vtable_ptr MSVCP_locale_facet_vtable[] = {
(vtable_ptr)THISCALL_NAME(MSVCP_locale_facet_vector_dtor)
};

View File

@ -1096,8 +1096,8 @@
@ stub -arch=win64 ??0codecvt_base@std@@QEAA@_K@Z @ stub -arch=win64 ??0codecvt_base@std@@QEAA@_K@Z
@ stub -arch=win32 ??0ctype_base@std@@QAE@I@Z @ stub -arch=win32 ??0ctype_base@std@@QAE@I@Z
@ stub -arch=win64 ??0ctype_base@std@@QEAA@_K@Z @ stub -arch=win64 ??0ctype_base@std@@QEAA@_K@Z
@ stub -arch=win32 ??0facet@locale@std@@IAE@I@Z @ thiscall -arch=win32 ??0facet@locale@std@@IAE@I@Z(ptr long) locale_facet_ctor_refs
@ stub -arch=win64 ??0facet@locale@std@@IEAA@_K@Z @ cdecl -arch=win64 ??0facet@locale@std@@IEAA@_K@Z(ptr long) locale_facet_ctor_refs
@ stub -arch=win32 ??0id@locale@std@@QAE@I@Z @ stub -arch=win32 ??0id@locale@std@@QAE@I@Z
@ stub -arch=win64 ??0id@locale@std@@QEAA@_K@Z @ stub -arch=win64 ??0id@locale@std@@QEAA@_K@Z
@ thiscall -arch=win32 ??0ios_base@std@@IAE@XZ(ptr) ios_base_ctor @ thiscall -arch=win32 ??0ios_base@std@@IAE@XZ(ptr) ios_base_ctor
@ -1330,8 +1330,8 @@
@ stub -arch=win64 ??1codecvt_base@std@@UEAA@XZ @ stub -arch=win64 ??1codecvt_base@std@@UEAA@XZ
@ stub -arch=win32 ??1ctype_base@std@@UAE@XZ @ stub -arch=win32 ??1ctype_base@std@@UAE@XZ
@ stub -arch=win64 ??1ctype_base@std@@UEAA@XZ @ stub -arch=win64 ??1ctype_base@std@@UEAA@XZ
@ stub -arch=win32 ??1facet@locale@std@@UAE@XZ @ thiscall -arch=win32 ??1facet@locale@std@@UAE@XZ(ptr) locale_facet_dtor
@ stub -arch=win64 ??1facet@locale@std@@UEAA@XZ @ cdecl -arch=win64 ??1facet@locale@std@@UEAA@XZ(ptr) locale_facet_dtor
@ thiscall -arch=win32 ??1ios_base@std@@UAE@XZ(ptr) ios_base_dtor @ thiscall -arch=win32 ??1ios_base@std@@UAE@XZ(ptr) ios_base_dtor
@ cdecl -arch=win64 ??1ios_base@std@@UEAA@XZ(ptr) ios_base_dtor @ cdecl -arch=win64 ??1ios_base@std@@UEAA@XZ(ptr) ios_base_dtor
@ stub -arch=win32 ??1locale@std@@QAE@XZ @ stub -arch=win32 ??1locale@std@@QAE@XZ
@ -1392,8 +1392,8 @@
@ stub -arch=win64 ??4?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAAEAV01@G@Z @ stub -arch=win64 ??4?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAAEAV01@G@Z
@ stub -arch=win32 ??4?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV01@PBG@Z @ stub -arch=win32 ??4?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV01@PBG@Z
@ stub -arch=win64 ??4?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAAEAV01@PEBG@Z @ stub -arch=win64 ??4?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAAEAV01@PEBG@Z
@ thiscall -arch=win32 ??4?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV01@ABV01@@Z(ptr ptr) MSVCP_basic_string_char_assign @ thiscall -arch=win32 ??4?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV01@ABV01@@Z(ptr ptr) MSVCP_basic_string_wchar_assign
@ cdecl -arch=win64 ??4?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAAEAV01@AEBV01@@Z(ptr ptr) MSVCP_basic_string_char_assign @ cdecl -arch=win64 ??4?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAAEAV01@AEBV01@@Z(ptr ptr) MSVCP_basic_string_wchar_assign
@ stub -arch=win32 ??4?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV01@PB_W@Z @ stub -arch=win32 ??4?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV01@PB_W@Z
@ stub -arch=win64 ??4?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAAEAV01@PEB_W@Z @ stub -arch=win64 ??4?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAAEAV01@PEB_W@Z
@ stub -arch=win32 ??4?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV01@_W@Z @ stub -arch=win32 ??4?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV01@_W@Z
@ -2085,8 +2085,8 @@
@ stub -arch=win64 ??_Fcodecvt_base@std@@QEAAXXZ @ stub -arch=win64 ??_Fcodecvt_base@std@@QEAAXXZ
@ stub -arch=win32 ??_Fctype_base@std@@QAEXXZ @ stub -arch=win32 ??_Fctype_base@std@@QAEXXZ
@ stub -arch=win64 ??_Fctype_base@std@@QEAAXXZ @ stub -arch=win64 ??_Fctype_base@std@@QEAAXXZ
@ stub -arch=win32 ??_Ffacet@locale@std@@QAEXXZ @ thiscall -arch=win32 ??_Ffacet@locale@std@@QAEXXZ(ptr) locale_facet_ctor
@ stub -arch=win64 ??_Ffacet@locale@std@@QEAAXXZ @ cdecl -arch=win64 ??_Ffacet@locale@std@@QEAAXXZ(ptr) locale_facet_ctor
@ stub -arch=win32 ??_Fid@locale@std@@QAEXXZ @ stub -arch=win32 ??_Fid@locale@std@@QAEXXZ
@ stub -arch=win64 ??_Fid@locale@std@@QEAAXXZ @ stub -arch=win64 ??_Fid@locale@std@@QEAAXXZ
@ stub -arch=win32 ??_Fmessages_base@std@@QAEXXZ @ stub -arch=win32 ??_Fmessages_base@std@@QAEXXZ
@ -2158,8 +2158,8 @@
@ stub -arch=win64 ?_Cout_func@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@1@XZ @ stub -arch=win64 ?_Cout_func@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@1@XZ
@ stub -arch=win32 ?_Debug_message@std@@YAXPBD0@Z @ stub -arch=win32 ?_Debug_message@std@@YAXPBD0@Z
@ stub -arch=win64 ?_Debug_message@std@@YAXPEBD0@Z @ stub -arch=win64 ?_Debug_message@std@@YAXPEBD0@Z
@ stub -arch=win32 ?_Decref@facet@locale@std@@QAEPAV123@XZ @ thiscall -arch=win32 ?_Decref@facet@locale@std@@QAEPAV123@XZ(ptr) locale_facet__Decref
@ stub -arch=win64 ?_Decref@facet@locale@std@@QEAAPEAV123@XZ @ cdecl -arch=win64 ?_Decref@facet@locale@std@@QEAAPEAV123@XZ(ptr) locale_facet__Decref
@ stub -arch=win32 ?_Do_narrow_s@?$ctype@D@std@@MBEPBDPBD0DPADI@Z @ stub -arch=win32 ?_Do_narrow_s@?$ctype@D@std@@MBEPBDPBD0DPADI@Z
@ stub -arch=win64 ?_Do_narrow_s@?$ctype@D@std@@MEBAPEBDPEBD0DPEAD_K@Z @ stub -arch=win64 ?_Do_narrow_s@?$ctype@D@std@@MEBAPEBDPEBD0DPEAD_K@Z
@ stub -arch=win32 ?_Do_narrow_s@?$ctype@G@std@@MBEPBGPBG0DPADI@Z @ stub -arch=win32 ?_Do_narrow_s@?$ctype@G@std@@MBEPBGPBG0DPADI@Z
@ -2299,8 +2299,8 @@
@ stub -arch=win64 ?_Getcat@?$time_put@GV?$ostreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@SA_KPEAPEBVfacet@locale@2@PEBV42@@Z @ stub -arch=win64 ?_Getcat@?$time_put@GV?$ostreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@SA_KPEAPEBVfacet@locale@2@PEBV42@@Z
@ stub -arch=win32 ?_Getcat@?$time_put@_WV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@SAIPAPBVfacet@locale@2@PBV42@@Z @ stub -arch=win32 ?_Getcat@?$time_put@_WV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@SAIPAPBVfacet@locale@2@PBV42@@Z
@ stub -arch=win64 ?_Getcat@?$time_put@_WV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@SA_KPEAPEBVfacet@locale@2@PEBV42@@Z @ stub -arch=win64 ?_Getcat@?$time_put@_WV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@SA_KPEAPEBVfacet@locale@2@PEBV42@@Z
@ stub -arch=win32 ?_Getcat@facet@locale@std@@SAIPAPBV123@PBV23@@Z @ cdecl -arch=win32 ?_Getcat@facet@locale@std@@SAIPAPBV123@PBV23@@Z(ptr ptr) locale_facet__Getcat
@ stub -arch=win64 ?_Getcat@facet@locale@std@@SA_KPEAPEBV123@PEBV23@@Z @ cdecl -arch=win64 ?_Getcat@facet@locale@std@@SA_KPEAPEBV123@PEBV23@@Z(ptr ptr) locale_facet__Getcat
@ stub -arch=win32 ?_Getcoll@_Locinfo@std@@QBE?AU_Collvec@@XZ @ stub -arch=win32 ?_Getcoll@_Locinfo@std@@QBE?AU_Collvec@@XZ
@ stub -arch=win64 ?_Getcoll@_Locinfo@std@@QEBA?AU_Collvec@@XZ @ stub -arch=win64 ?_Getcoll@_Locinfo@std@@QEBA?AU_Collvec@@XZ
@ stub -arch=win32 ?_Getctype@_Locinfo@std@@QBE?AU_Ctypevec@@XZ @ stub -arch=win32 ?_Getctype@_Locinfo@std@@QBE?AU_Ctypevec@@XZ
@ -2420,8 +2420,8 @@
@ stub -arch=win64 ?_Ifmt@?$num_put@GV?$ostreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@AEBAPEADPEADPEBDH@Z @ stub -arch=win64 ?_Ifmt@?$num_put@GV?$ostreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@AEBAPEADPEADPEBDH@Z
@ stub -arch=win32 ?_Ifmt@?$num_put@_WV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@ABAPADPADPBDH@Z @ stub -arch=win32 ?_Ifmt@?$num_put@_WV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@ABAPADPADPBDH@Z
@ stub -arch=win64 ?_Ifmt@?$num_put@_WV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@AEBAPEADPEADPEBDH@Z @ stub -arch=win64 ?_Ifmt@?$num_put@_WV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@AEBAPEADPEADPEBDH@Z
@ stub -arch=win32 ?_Incref@facet@locale@std@@QAEXXZ @ thiscall -arch=win32 ?_Incref@facet@locale@std@@QAEXXZ(ptr) locale_facet__Incref
@ stub -arch=win64 ?_Incref@facet@locale@std@@QEAAXXZ @ cdecl -arch=win64 ?_Incref@facet@locale@std@@QEAAXXZ(ptr) locale_facet__Incref
@ extern ?_Index@ios_base@std@@0HA ios_base_Index @ extern ?_Index@ios_base@std@@0HA ios_base_Index
@ cdecl -arch=win32 ?_Index_func@ios_base@std@@CAAAHXZ() ios_base_Index_func @ cdecl -arch=win32 ?_Index_func@ios_base@std@@CAAAHXZ() ios_base_Index_func
@ cdecl -arch=win64 ?_Index_func@ios_base@std@@CAAEAHXZ() ios_base_Index_func @ cdecl -arch=win64 ?_Index_func@ios_base@std@@CAAEAHXZ() ios_base_Index_func
@ -3735,7 +3735,7 @@
@ cdecl ?eof@?$char_traits@G@std@@SAGXZ() MSVCP_char_traits_short_eof @ cdecl ?eof@?$char_traits@G@std@@SAGXZ() MSVCP_char_traits_short_eof
@ cdecl ?eof@?$char_traits@_W@std@@SAGXZ() MSVCP_char_traits_wchar_eof @ cdecl ?eof@?$char_traits@_W@std@@SAGXZ() MSVCP_char_traits_wchar_eof
@ thiscall -arch=win32 ?eof@ios_base@std@@QBE_NXZ(ptr) ios_base_eof @ thiscall -arch=win32 ?eof@ios_base@std@@QBE_NXZ(ptr) ios_base_eof
@ thiscall -arch=win64 ?eof@ios_base@std@@QEBA_NXZ(ptr) ios_base_eof @ cdecl -arch=win64 ?eof@ios_base@std@@QEBA_NXZ(ptr) ios_base_eof
@ stub -arch=win32 ?epptr@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IBEPADXZ @ stub -arch=win32 ?epptr@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IBEPADXZ
@ stub -arch=win64 ?epptr@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEBAPEADXZ @ stub -arch=win64 ?epptr@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEBAPEADXZ
@ stub -arch=win32 ?epptr@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IBEPAGXZ @ stub -arch=win32 ?epptr@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IBEPAGXZ