master
  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 _INC_LOCALE
  7#define _INC_LOCALE
  8
  9#include <crtdefs.h>
 10
 11#ifdef __cplusplus
 12#include <stdio.h>
 13#endif
 14
 15#pragma pack(push,_CRT_PACKING)
 16
 17#ifdef __cplusplus
 18extern "C" {
 19#endif
 20
 21#ifndef NULL
 22#ifdef __cplusplus
 23#ifndef _WIN64
 24#define NULL 0
 25#else
 26#define NULL 0LL
 27#endif  /* W64 */
 28#else
 29#define NULL ((void *)0)
 30#endif
 31#endif
 32
 33#define LC_ALL 0
 34#define LC_COLLATE 1
 35#define LC_CTYPE 2
 36#define LC_MONETARY 3
 37#define LC_NUMERIC 4
 38#define LC_TIME 5
 39
 40#define LC_MIN LC_ALL
 41#define LC_MAX LC_TIME
 42
 43#ifndef _LCONV_DEFINED
 44#define _LCONV_DEFINED
 45  struct lconv {
 46    char *decimal_point;
 47    char *thousands_sep;
 48    char *grouping;
 49    char *int_curr_symbol;
 50    char *currency_symbol;
 51    char *mon_decimal_point;
 52    char *mon_thousands_sep;
 53    char *mon_grouping;
 54    char *positive_sign;
 55    char *negative_sign;
 56    char int_frac_digits;
 57    char frac_digits;
 58    char p_cs_precedes;
 59    char p_sep_by_space;
 60    char n_cs_precedes;
 61    char n_sep_by_space;
 62    char p_sign_posn;
 63    char n_sign_posn;
 64#if __MSVCRT_VERSION__ >= 0xA00 || _WIN32_WINNT >= 0x601
 65    wchar_t* _W_decimal_point;
 66    wchar_t* _W_thousands_sep;
 67    wchar_t* _W_int_curr_symbol;
 68    wchar_t* _W_currency_symbol;
 69    wchar_t* _W_mon_decimal_point;
 70    wchar_t* _W_mon_thousands_sep;
 71    wchar_t* _W_positive_sign;
 72    wchar_t* _W_negative_sign;
 73#endif
 74  };
 75#endif
 76
 77#ifndef _CONFIG_LOCALE_SWT
 78#define _CONFIG_LOCALE_SWT
 79
 80#define _ENABLE_PER_THREAD_LOCALE 0x1
 81#define _DISABLE_PER_THREAD_LOCALE 0x2
 82#define _ENABLE_PER_THREAD_LOCALE_GLOBAL 0x10
 83#define _DISABLE_PER_THREAD_LOCALE_GLOBAL 0x20
 84#define _ENABLE_PER_THREAD_LOCALE_NEW 0x100
 85#define _DISABLE_PER_THREAD_LOCALE_NEW 0x200
 86
 87#endif
 88
 89  int __cdecl _configthreadlocale(int _Flag);
 90  char *__cdecl setlocale(int _Category,const char *_Locale);
 91  _CRTIMP struct lconv *__cdecl localeconv(void);
 92  _CRTIMP _locale_t __cdecl _get_current_locale(void);
 93  _CRTIMP _locale_t __cdecl _create_locale(int _Category,const char *_Locale);
 94  _CRTIMP void __cdecl _free_locale(_locale_t _Locale);
 95  _locale_t __cdecl __get_current_locale(void);
 96  _locale_t __cdecl __create_locale(int _Category,const char *_Locale);
 97  void __cdecl __free_locale(_locale_t _Locale);
 98
 99  _CRTIMP unsigned int __cdecl ___lc_codepage_func(void);
100
101#ifndef _WLOCALE_DEFINED
102#define _WLOCALE_DEFINED
103  _CRTIMP wchar_t *__cdecl _wsetlocale(int _Category,const wchar_t *_Locale);
104#endif
105
106#if __MSVCRT_VERSION__ >= 0xB00
107  _CRTIMP _locale_t __cdecl _wcreate_locale(int _Category, const wchar_t *_Locale);
108#endif
109
110#ifdef __CHAR_UNSIGNED__
111/* Pull in the constructor from 'charmax.c'.  */
112extern int __mingw_initcharmax;
113__MINGW_SELECTANY int* __mingw_reference_charmax = &__mingw_initcharmax;
114#endif
115
116#ifdef __cplusplus
117}
118#endif
119
120#pragma pack(pop)
121#endif