branch update for HEAD-2003021201
[reactos.git] / include / msvcrt / locale.h
1 /* 
2  * locale.h
3  *
4  * Functions and types for localization (ie. changing the appearance of
5  * output based on the standards of a certain country).
6  *
7  * This file is part of the Mingw32 package.
8  *
9  * Contributors:
10  *  Created by Colin Peters <colin@bird.fu.is.saga-u.ac.jp>
11  *
12  *  THIS SOFTWARE IS NOT COPYRIGHTED
13  *
14  *  This source code is offered for use in the public domain. You may
15  *  use, modify or distribute it freely.
16  *
17  *  This code is distributed in the hope that it will be useful but
18  *  WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
19  *  DISCLAIMED. This includes but is not limited to warranties of
20  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
21  *
22  * $Revision$
23  * $Author$
24  * $Date$
25  *
26  */
27
28 #ifndef _LOCALE_H_
29 #define _LOCALE_H_
30
31
32 /*
33  * NOTE: I have tried to test this, but I am limited by my knowledge of
34  *       locale issues. The structure does not bomb if you look at the
35  *       values, and 'decimal_point' even seems to be correct. But the
36  *       rest of the values are, by default, not particularly useful
37  *       (read meaningless and not related to the international settings
38  *       of the system).
39  */
40
41 #define LC_ALL      0
42 #define LC_COLLATE  1
43 #define LC_CTYPE    2
44 #define LC_MONETARY 3
45 #define LC_NUMERIC  4
46 #define LC_TIME     5
47 #define LC_MIN      LC_ALL
48 #define LC_MAX      LC_TIME
49
50 /*
51  * The structure returned by 'localeconv'.
52  */
53 struct lconv
54 {
55     char*   decimal_point;
56     char*   thousands_sep;
57     char*   grouping;
58     char*   int_curr_symbol;
59     char*   currency_symbol;
60     char*   mon_decimal_point;
61     char*   mon_thousands_sep;
62     char*   mon_grouping;
63     char*   positive_sign;
64     char*   negative_sign;
65     char    int_frac_digits;
66     char    frac_digits;
67     char    p_cs_precedes;
68     char    p_sep_by_space;
69     char    n_cs_precedes;
70     char    n_sep_by_space;
71     char    p_sign_posn;
72     char    n_sign_posn;
73 };
74
75 #ifdef  __cplusplus
76 extern "C" {
77 #endif
78
79 char* setlocale(int, const char*);
80 struct lconv* localeconv(void);
81
82 #ifdef  __cplusplus
83 }
84 #endif
85
86 #endif  /* Not _LOCALE_H_ */
87