aboutsummaryrefslogtreecommitdiff
path: root/arch/all/core/include/locale.h
blob: 4f07e887cf94d230d85b9dd769438834cfc1385a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
/* ****************************************************************************
 * Locales.
 * Copyright (C) 2017 Thomas "Cakeisalie5" Touhey <thomas@touhey.fr>
 * ************************************************************************* */
#include <cdefs.h>
#include <stddef.h>

/* Locale types provided by libcarrot. */

#define LC_ALL       0
#define LC_COLLATE   1
#define LC_CTYPE     2
#define LC_MONETARY  3
#define LC_NUMERIC   4
#define LC_TIME      5

/* Set the locale. */

extern char *setlocale _OF((int __category, const char *__locale)) __THROW;

/* `struct lconv` is the structure containing members related to the
 * formatting of numeric values. */

struct lconv {
	char *decimal_point;     /* decimal-point character used to format
	                          * nonmonetary quantities. */
	char *thousands_sep;     /* character used to separate groups of digits
	                          * before the decimal-point character in
	                          * formatted nonmonetary quantities. */
	char *grouping;          /* string whose elements indicate the size of
	                          * each group of digits in formatted nonmonetary
	                          * quantities. */

	char *mon_decimal_point; /* decimal-point used to format monetary
	                          * quantities. */
	char *mon_thousands_sep; /* separator for groups of digits before the
	                          * decimal-point in formatted monetary
	                          * quantities. */
	char *mon_grouping;      /* string whose elements indicate the size of
	                          * each group of digits in formatted monetary
	                          * quantities. */

	char *positive_sign;     /* string used to indicate a nonnegative-valued
	                          * formatted monetary quantity. */
	char *negative_sign;     /* string used to indicate a negative-valued
	                          * formatted monetary quantity. */

	char *currency_symbol;   /* local currency symbol applicable to the current
	                          * locale. */
	char frac_digits;        /* number of fractional digits (those after the
	                          * decimal-point) to be displayed in a locally
	                          * formatted monetary quantity. */

	char p_cs_precedes;      /* 1 or 0 if the `currency_symbol` respectively
	                          * precedes or succeeds the value for a
	                          * nonnegative locally formatted monetary
	                          * quantity. */
	char n_cs_precedes;      /* 1 or 0 if the `currency_symbol` respectively
	                          * precedes or succeeds the value for a
	                          * negative locally formatted
	                          * monetary quantity. */

	char p_sep_by_space;     /* value indicating the separation of the
	                          * `currency_symbol`, the sign string, and the
	                          * value for a nonnegative locally formatted
	                          * monetary quantity. */
	char n_sep_by_space;     /* value indicating the separation of the
	                          * `currency_symbol`, the sign string, and the
	                          * value for a negative locally formatted
	                          * monetary quantity. */

	char p_sign_posn;        /* value indicating the positioning of the
	                          * `positive_sign` for a nonnegative locally
	                          * formatted monetary quantity. */
	char n_sign_posn;        /* value indicating the positioning of the
	                          * `negative_sign` for a negative locally
	                          * formatted monetary quantity. */

	char *int_curr_symbol;   /* international currency symbol applicable to the
	                          * current locale. */
	char int_frac_digits;    /* number of fractional digits to be displayed in
	                          * an internationally formatted monetary
	                          * quantity. */

	char int_p_cs_precedes;  /* 1 or 0 if the `int_curr_symbol` respectively
	                          * precedes or succeeds the value for a
	                          * nonnegative internationally formatted
	                          * monetary quantity. */
	char int_n_cs_precedes;  /* 1 or 0 if the `int_curr_symbol` respectively
	                          * precedes or succeeds the value for a negative
	                          * internationally formatted
	                          * monetary quantity. */

	char int_p_sep_by_space; /* value indicating the separation of the
	                          * `int_curr_symbol`, the sign string, and the
	                          * value for a nonnegative internationally
	                          * formatted monetary quantity. */
	char int_n_sep_by_space; /* value indicating the separation of the
	                          * `int_curr_symbol`, the sign string, and the
	                          * value for a negative internationally
	                          * formatted monetary quantity. */

	char int_p_sign_posn;    /* value indicating the positioning of the
	                          * `positive_sign` for a nonnegative
	                          * internationally formatted monetary quantity. */
	char int_n_sign_posn;    /* value indicating the positioning of the
	                          * `negative_sign` for a negative internationally
	                          * formatted monetary quantity. */
};

/* Get the locale numerical conversion thing. */

extern struct lconv *localeconv _OF((void)) __THROW;