Home | History | Annotate | Download | only in include
      1 /**
      2  * This file has no copyright assigned and is placed in the Public Domain.
      3  * This file is part of the mingw-w64 runtime package.
      4  * No warranty is given; refer to the file DISCLAIMER.PD within this package.
      5  */
      6 #ifndef _XLOCINFO
      7 #define _XLOCINFO
      8 #include <ctype.h>
      9 #include <locale.h>
     10 #include <wchar.h>
     11 #include <yvals.h>
     12 
     13 #pragma pack(push,_CRT_PACKING)
     14 
     15 _C_STD_BEGIN
     16 _C_LIB_DECL
     17 
     18 #define _XA 0x100
     19 #define _XS 0x000
     20 #define _BB _CONTROL
     21 #define _CN _SPACE
     22 #define _DI _DIGIT
     23 #define _LO _LOWER
     24 #define _PU _PUNCT
     25 #define _SP _BLANK
     26 #define _UP _UPPER
     27 #define _XD _HEX
     28 
     29 #define _X_ALL LC_ALL
     30 #define _X_COLLATE LC_COLLATE
     31 #define _X_CTYPE LC_CTYPE
     32 #define _X_MONETARY LC_MONETARY
     33 #define _X_NUMERIC LC_NUMERIC
     34 #define _X_TIME LC_TIME
     35 #define _X_MAX LC_MAX
     36 #define _X_MESSAGES 6
     37 #define _NCAT 7
     38 
     39 #define _CATMASK(n) ((1 << (n)) >> 1)
     40 #define _M_COLLATE _CATMASK(_X_COLLATE)
     41 #define _M_CTYPE _CATMASK(_X_CTYPE)
     42 #define _M_MONETARY _CATMASK(_X_MONETARY)
     43 #define _M_NUMERIC _CATMASK(_X_NUMERIC)
     44 #define _M_TIME _CATMASK(_X_TIME)
     45 #define _M_MESSAGES _CATMASK(_X_MESSAGES)
     46 #define _M_ALL (_CATMASK(_NCAT) - 1)
     47 
     48 typedef struct _Collvec {
     49   unsigned long _Hand;
     50   unsigned int _Page;
     51 } _Collvec;
     52 
     53 typedef struct _Ctypevec {
     54   unsigned long _Hand;
     55   unsigned int _Page;
     56   const short *_Table;
     57   int _Delfl;
     58 } _Ctypevec;
     59 
     60 typedef struct _Cvtvec {
     61   unsigned long _Hand;
     62   unsigned int _Page;
     63 } _Cvtvec;
     64 
     65 _CRTIMP _Collvec __cdecl _Getcoll();
     66 _CRTIMP _Ctypevec __cdecl _Getctype();
     67 _CRTIMP _Cvtvec __cdecl _Getcvt();
     68 _CRTIMP int __cdecl _Getdateorder();
     69 _CRTIMP int __cdecl _Mbrtowc(wchar_t *,const char *,size_t,mbstate_t *,const _Cvtvec *);
     70 _CRTIMP float __cdecl _Stof(const char *,char **,long);
     71 _CRTIMP double __cdecl _Stod(const char *,char **,long);
     72 _CRTIMP long double __cdecl _Stold(const char *,char **,long);
     73 _CRTIMP int __cdecl _Strcoll(const char *,const char *,const char *,const char *,const _Collvec *);
     74 _CRTIMP size_t __cdecl _Strxfrm(char *_String1,char *_End1,const char *,const char *,const _Collvec *);
     75 _CRTIMP int __cdecl _Tolower(int,const _Ctypevec *);
     76 _CRTIMP int __cdecl _Toupper(int,const _Ctypevec *);
     77 _CRTIMP int __cdecl _Wcrtomb(char *,wchar_t,mbstate_t *,const _Cvtvec *);
     78 _CRTIMP int __cdecl _Wcscoll(const wchar_t *,const wchar_t *,const wchar_t *,const wchar_t *,const _Collvec *);
     79 _CRTIMP size_t __cdecl _Wcsxfrm(wchar_t *_String1,wchar_t *_End1,const wchar_t *,const wchar_t *,const _Collvec *);
     80 _CRTIMP short __cdecl _Getwctype(wchar_t,const _Ctypevec *);
     81 _CRTIMP const wchar_t *__cdecl _Getwctypes(const wchar_t *,const wchar_t *,short*,const _Ctypevec*);
     82 _CRTIMP wchar_t __cdecl _Towlower(wchar_t,const _Ctypevec *);
     83 _CRTIMP wchar_t __cdecl _Towupper(wchar_t,const _Ctypevec *);
     84 _END_C_LIB_DECL
     85 _C_STD_END
     86 
     87 _C_LIB_DECL
     88 _CRTIMP void *__cdecl _Gettnames();
     89 _CRTIMP char *__cdecl _Getdays();
     90 _CRTIMP char *__cdecl _Getmonths();
     91 _CRTIMP size_t __cdecl _Strftime(char *,size_t _Maxsize,const char *,const struct tm *,void *);
     92 _END_C_LIB_DECL
     93 
     94 _C_LIB_DECL
     95 _locale_t __cdecl _GetLocaleForCP(unsigned int);
     96 _END_C_LIB_DECL
     97 
     98 #pragma pack(pop)
     99 #endif
    100