xref: /haiku/headers/posix/langinfo.h (revision bc3791e86710f2a40dc8dd61d6a997e9df1aceec)
1a3f66598SOliver Tappe /*
20fae8733SScott McCreary  * Copyright 2010 Haiku Inc. All Rights Reserved.
3a3f66598SOliver Tappe  * Distributed under the terms of the MIT License.
4a3f66598SOliver Tappe  */
5a3f66598SOliver Tappe #ifndef _LANGINFO_H_
6a3f66598SOliver Tappe #define _LANGINFO_H_
7a3f66598SOliver Tappe 
8a3f66598SOliver Tappe 
9a3f66598SOliver Tappe #include <locale.h>
10a3f66598SOliver Tappe #include <nl_types.h>
11a3f66598SOliver Tappe #include <sys/cdefs.h>
12a3f66598SOliver Tappe 
13a3f66598SOliver Tappe 
14a3f66598SOliver Tappe enum {
15a3f66598SOliver Tappe 	CODESET,	/* codeset name */
16a3f66598SOliver Tappe 	D_T_FMT,	/* string for formatting date and time */
17a3f66598SOliver Tappe 	D_FMT,		/* date format string */
18a3f66598SOliver Tappe 	T_FMT,		/* time format string */
19a3f66598SOliver Tappe 	T_FMT_AMPM,	/* a.m. or p.m. time formatting string */
20a3f66598SOliver Tappe 	AM_STR,		/* Ante Meridian affix */
21a3f66598SOliver Tappe 	PM_STR,		/* Post Meridian affix */
22a3f66598SOliver Tappe 
23a3f66598SOliver Tappe 	/* week day names */
24a3f66598SOliver Tappe 	DAY_1,
25a3f66598SOliver Tappe 	DAY_2,
26a3f66598SOliver Tappe 	DAY_3,
27a3f66598SOliver Tappe 	DAY_4,
28a3f66598SOliver Tappe 	DAY_5,
29a3f66598SOliver Tappe 	DAY_6,
30a3f66598SOliver Tappe 	DAY_7,
31a3f66598SOliver Tappe 
32a3f66598SOliver Tappe 	/* abbreviated week day names */
33a3f66598SOliver Tappe 	ABDAY_1,
34a3f66598SOliver Tappe 	ABDAY_2,
35a3f66598SOliver Tappe 	ABDAY_3,
36a3f66598SOliver Tappe 	ABDAY_4,
37a3f66598SOliver Tappe 	ABDAY_5,
38a3f66598SOliver Tappe 	ABDAY_6,
39a3f66598SOliver Tappe 	ABDAY_7,
40a3f66598SOliver Tappe 
41a3f66598SOliver Tappe 	/* month names */
42a3f66598SOliver Tappe 	MON_1,
43a3f66598SOliver Tappe 	MON_2,
44a3f66598SOliver Tappe 	MON_3,
45a3f66598SOliver Tappe 	MON_4,
46a3f66598SOliver Tappe 	MON_5,
47a3f66598SOliver Tappe 	MON_6,
48a3f66598SOliver Tappe 	MON_7,
49a3f66598SOliver Tappe 	MON_8,
50a3f66598SOliver Tappe 	MON_9,
51a3f66598SOliver Tappe 	MON_10,
52a3f66598SOliver Tappe 	MON_11,
53a3f66598SOliver Tappe 	MON_12,
54a3f66598SOliver Tappe 
55a3f66598SOliver Tappe 	/* abbreviated month names */
56a3f66598SOliver Tappe 	ABMON_1,
57a3f66598SOliver Tappe 	ABMON_2,
58a3f66598SOliver Tappe 	ABMON_3,
59a3f66598SOliver Tappe 	ABMON_4,
60a3f66598SOliver Tappe 	ABMON_5,
61a3f66598SOliver Tappe 	ABMON_6,
62a3f66598SOliver Tappe 	ABMON_7,
63a3f66598SOliver Tappe 	ABMON_8,
64a3f66598SOliver Tappe 	ABMON_9,
65a3f66598SOliver Tappe 	ABMON_10,
66a3f66598SOliver Tappe 	ABMON_11,
67a3f66598SOliver Tappe 	ABMON_12,
68a3f66598SOliver Tappe 
69a3f66598SOliver Tappe 	ERA,			/* era description segments */
70a3f66598SOliver Tappe 	ERA_D_FMT,		/* era date format string */
71a3f66598SOliver Tappe 	ERA_D_T_FMT,	/* era date and time format string */
72a3f66598SOliver Tappe 	ERA_T_FMT,		/* era time format string */
73a3f66598SOliver Tappe 	ALT_DIGITS,		/* alternative symbols for digits */
74a3f66598SOliver Tappe 
75a3f66598SOliver Tappe 	RADIXCHAR,		/* radix char */
76a3f66598SOliver Tappe 	THOUSEP,		/* separator for thousands */
77a3f66598SOliver Tappe 
78a3f66598SOliver Tappe 	YESEXPR,		/* affirmative response expression */
79a3f66598SOliver Tappe 	NOEXPR,			/* negative response expression */
80a3f66598SOliver Tappe 
81a3f66598SOliver Tappe 	CRNCYSTR,		/* currency symbol */
82a3f66598SOliver Tappe 
83a3f66598SOliver Tappe 	_NL_LANGINFO_LAST
84a3f66598SOliver Tappe };
85a3f66598SOliver Tappe 
86*bc3791e8SOliver Tappe // According to the POSIX base specs v7, the above need to be available as
87*bc3791e8SOliver Tappe // symbolic constants, so we define them individually to their respective
88*bc3791e8SOliver Tappe // enumeration name.
89*bc3791e8SOliver Tappe #define CODESET CODESET
90*bc3791e8SOliver Tappe #define D_T_FMT D_T_FMT
91*bc3791e8SOliver Tappe #define D_FMT D_FMT
92*bc3791e8SOliver Tappe #define T_FMT T_FMT
93*bc3791e8SOliver Tappe #define T_FMT_AMPM T_FMT_AMPM
94*bc3791e8SOliver Tappe #define AM_STR AM_STR
95*bc3791e8SOliver Tappe #define PM_STR PM_STR
96*bc3791e8SOliver Tappe #define DAY_1 DAY_1
97*bc3791e8SOliver Tappe #define DAY_2 DAY_2
98*bc3791e8SOliver Tappe #define DAY_3 DAY_3
99*bc3791e8SOliver Tappe #define DAY_4 DAY_4
100*bc3791e8SOliver Tappe #define DAY_5 DAY_5
101*bc3791e8SOliver Tappe #define DAY_6 DAY_6
102*bc3791e8SOliver Tappe #define DAY_7 DAY_7
103*bc3791e8SOliver Tappe #define ABDAY_1 ABDAY_1
104*bc3791e8SOliver Tappe #define ABDAY_2 ABDAY_2
105*bc3791e8SOliver Tappe #define ABDAY_3 ABDAY_3
106*bc3791e8SOliver Tappe #define ABDAY_4 ABDAY_4
107*bc3791e8SOliver Tappe #define ABDAY_5 ABDAY_5
108*bc3791e8SOliver Tappe #define ABDAY_6 ABDAY_6
109*bc3791e8SOliver Tappe #define ABDAY_7 ABDAY_7
110*bc3791e8SOliver Tappe #define MON_1 MON_1
111*bc3791e8SOliver Tappe #define MON_2 MON_2
112*bc3791e8SOliver Tappe #define MON_3 MON_3
113*bc3791e8SOliver Tappe #define MON_4 MON_4
114*bc3791e8SOliver Tappe #define MON_5 MON_5
115*bc3791e8SOliver Tappe #define MON_6 MON_6
116*bc3791e8SOliver Tappe #define MON_7 MON_7
117*bc3791e8SOliver Tappe #define MON_8 MON_8
118*bc3791e8SOliver Tappe #define MON_9 MON_9
119*bc3791e8SOliver Tappe #define MON_10 MON_10
120*bc3791e8SOliver Tappe #define MON_11 MON_11
121*bc3791e8SOliver Tappe #define MON_12 MON_12
122*bc3791e8SOliver Tappe #define ABMON_1 ABMON_1
123*bc3791e8SOliver Tappe #define ABMON_2 ABMON_2
124*bc3791e8SOliver Tappe #define ABMON_3 ABMON_3
125*bc3791e8SOliver Tappe #define ABMON_4 ABMON_4
126*bc3791e8SOliver Tappe #define ABMON_5 ABMON_5
127*bc3791e8SOliver Tappe #define ABMON_6 ABMON_6
128*bc3791e8SOliver Tappe #define ABMON_7 ABMON_7
129*bc3791e8SOliver Tappe #define ABMON_8 ABMON_8
130*bc3791e8SOliver Tappe #define ABMON_9 ABMON_9
131*bc3791e8SOliver Tappe #define ABMON_10 ABMON_10
132*bc3791e8SOliver Tappe #define ABMON_11 ABMON_11
133*bc3791e8SOliver Tappe #define ABMON_12 ABMON_12
134*bc3791e8SOliver Tappe #define ERA ERA
135*bc3791e8SOliver Tappe #define ERA_D_FMT ERA_D_FMT
136*bc3791e8SOliver Tappe #define ERA_D_T_FMT ERA_D_T_FMT
137*bc3791e8SOliver Tappe #define ERA_T_FMT ERA_T_FMT
138*bc3791e8SOliver Tappe #define ALT_DIGITS ALT_DIGITS
139*bc3791e8SOliver Tappe #define RADIXCHAR RADIXCHAR
140*bc3791e8SOliver Tappe #define THOUSEP THOUSEP
141*bc3791e8SOliver Tappe #define YESEXPR YESEXPR
142*bc3791e8SOliver Tappe #define NOEXPR NOEXPR
143*bc3791e8SOliver Tappe #define CRNCYSTR CRNCYSTR
144*bc3791e8SOliver Tappe 
145a3f66598SOliver Tappe __BEGIN_DECLS
146a3f66598SOliver Tappe 
147a3f66598SOliver Tappe extern char*	nl_langinfo(nl_item item);
148a3f66598SOliver Tappe 
149a3f66598SOliver Tappe __END_DECLS
150a3f66598SOliver Tappe 
151a3f66598SOliver Tappe 
152a3f66598SOliver Tappe #endif /* _LANGINFO_H_ */
153