Cygwin: mmap: allow remapping part of an existing anonymous mapping
[newlib-cygwin.git] / newlib / libc / include / langinfo.h
blob41d090d3710e7c92e08cd7d65660b9e4fda88a55
1 /*-
2 * Copyright (c) 2001 Alexey Zelkin <phantom@FreeBSD.org>
3 * All rights reserved.
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions
7 * are met:
8 * 1. Redistributions of source code must retain the above copyright
9 * notice, this list of conditions and the following disclaimer.
10 * 2. Redistributions in binary form must reproduce the above copyright
11 * notice, this list of conditions and the following disclaimer in the
12 * documentation and/or other materials provided with the distribution.
14 * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
15 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
16 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
17 * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
18 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
19 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
20 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
21 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
22 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
23 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
24 * SUCH DAMAGE.
26 * $FreeBSD: src/include/langinfo.h,v 1.5 2002/03/23 17:24:53 imp Exp $
29 #ifndef _LANGINFO_H_
30 #define _LANGINFO_H_
32 #include <sys/cdefs.h>
33 #include <sys/_types.h>
34 #if __POSIX_VISIBLE >= 200809
35 #include <sys/_locale.h>
36 #endif
38 #ifndef _NL_ITEM_DECLARED
39 typedef __nl_item nl_item;
40 #define _NL_ITEM_DECLARED
41 #endif
43 enum
45 /* POSIX and BSD defined items have to stick to the original values
46 to maintain backward compatibility. */
47 _NL_CTYPE_CODESET_NAME = 0, /* codeset name */
48 #define CODESET _NL_CTYPE_CODESET_NAME
49 D_T_FMT, /* string for formatting date and time */
50 #define D_T_FMT D_T_FMT
51 D_FMT, /* date format string */
52 #define D_FMT D_FMT
53 T_FMT, /* time format string */
54 #define T_FMT T_FMT
55 T_FMT_AMPM, /* a.m. or p.m. time formatting string */
56 #define T_FMT_AMPM T_FMT_AMPM
57 AM_STR, /* Ante Meridian affix */
58 #define AM_STR AM_STR
59 PM_STR, /* Post Meridian affix */
60 #define PM_STR PM_STR
62 /* week day names */
63 DAY_1,
64 #define DAY_1 DAY_1
65 DAY_2,
66 #define DAY_2 DAY_2
67 DAY_3,
68 #define DAY_3 DAY_3
69 DAY_4,
70 #define DAY_4 DAY_4
71 DAY_5,
72 #define DAY_5 DAY_5
73 DAY_6,
74 #define DAY_6 DAY_6
75 DAY_7,
76 #define DAY_7 DAY_7
78 /* abbreviated week day names */
79 ABDAY_1,
80 #define ABDAY_1 ABDAY_1
81 ABDAY_2,
82 #define ABDAY_2 ABDAY_2
83 ABDAY_3,
84 #define ABDAY_3 ABDAY_3
85 ABDAY_4,
86 #define ABDAY_4 ABDAY_4
87 ABDAY_5,
88 #define ABDAY_5 ABDAY_5
89 ABDAY_6,
90 #define ABDAY_6 ABDAY_6
91 ABDAY_7,
92 #define ABDAY_7 ABDAY_7
94 /* month names */
95 MON_1,
96 #define MON_1 MON_1
97 MON_2,
98 #define MON_2 MON_2
99 MON_3,
100 #define MON_3 MON_3
101 MON_4,
102 #define MON_4 MON_4
103 MON_5,
104 #define MON_5 MON_5
105 MON_6,
106 #define MON_6 MON_6
107 MON_7,
108 #define MON_7 MON_7
109 MON_8,
110 #define MON_8 MON_8
111 MON_9,
112 #define MON_9 MON_9
113 MON_10,
114 #define MON_10 MON_10
115 MON_11,
116 #define MON_11 MON_11
117 MON_12,
118 #define MON_12 MON_12
120 /* abbreviated month names */
121 ABMON_1,
122 #define ABMON_1 ABMON_1
123 ABMON_2,
124 #define ABMON_2 ABMON_2
125 ABMON_3,
126 #define ABMON_3 ABMON_3
127 ABMON_4,
128 #define ABMON_4 ABMON_4
129 ABMON_5,
130 #define ABMON_5 ABMON_5
131 ABMON_6,
132 #define ABMON_6 ABMON_6
133 ABMON_7,
134 #define ABMON_7 ABMON_7
135 ABMON_8,
136 #define ABMON_8 ABMON_8
137 ABMON_9,
138 #define ABMON_9 ABMON_9
139 ABMON_10,
140 #define ABMON_10 ABMON_10
141 ABMON_11,
142 #define ABMON_11 ABMON_11
143 ABMON_12,
144 #define ABMON_12 ABMON_12
146 ERA, /* era description segments */
147 #define ERA ERA
148 ERA_D_FMT, /* era date format string */
149 #define ERA_D_FMT ERA_D_FMT
150 ERA_D_T_FMT, /* era date and time format string */
151 #define ERA_D_T_FMT ERA_D_T_FMT
152 ERA_T_FMT, /* era time format string */
153 #define ERA_T_FMT ERA_T_FMT
154 ALT_DIGITS, /* alternative symbols for digits */
155 #define ALT_DIGITS ALT_DIGITS
157 RADIXCHAR, /* radix char */
158 #define RADIXCHAR RADIXCHAR
159 THOUSEP, /* separator for thousands */
160 #define THOUSEP THOUSEP
162 YESEXPR, /* affirmative response expression */
163 #define YESEXPR YESEXPR
164 NOEXPR, /* negative response expression */
165 #define NOEXPR NOEXPR
166 YESSTR, /* affirmative response for yes/no queries */
167 #define YESSTR YESSTR
168 NOSTR, /* negative response for yes/no queries */
169 #define NOSTR NOSTR
171 CRNCYSTR, /* currency symbol */
172 #define CRNCYSTR CRNCYSTR
174 D_MD_ORDER, /* month/day order (BSD extension) */
175 #define D_MD_ORDER D_MD_ORDER
177 _NL_TIME_DATE_FMT = 84, /* date fmt used by date(1) (GNU extension) */
178 #define _DATE_FMT _NL_TIME_DATE_FMT
180 #ifdef __HAVE_LOCALE_INFO__
181 _NL_CTYPE_MB_CUR_MAX,
182 _NL_MESSAGES_CODESET,
184 #ifdef __HAVE_LOCALE_INFO_EXTENDED__
186 /* NOTE:
188 Always maintain the order and position of existing entries!
189 Always append new entry to the list, prior to the definition
190 of _NL_LOCALE_EXTENDED_LAST_ENTRY. */
192 _NL_LOCALE_EXTENDED_FIRST_ENTRY,
194 _NL_CTYPE_OUTDIGIT0_MB,
195 _NL_CTYPE_OUTDIGIT1_MB,
196 _NL_CTYPE_OUTDIGIT2_MB,
197 _NL_CTYPE_OUTDIGIT3_MB,
198 _NL_CTYPE_OUTDIGIT4_MB,
199 _NL_CTYPE_OUTDIGIT5_MB,
200 _NL_CTYPE_OUTDIGIT6_MB,
201 _NL_CTYPE_OUTDIGIT7_MB,
202 _NL_CTYPE_OUTDIGIT8_MB,
203 _NL_CTYPE_OUTDIGIT9_MB,
204 _NL_CTYPE_OUTDIGIT0_WC,
205 _NL_CTYPE_OUTDIGIT1_WC,
206 _NL_CTYPE_OUTDIGIT2_WC,
207 _NL_CTYPE_OUTDIGIT3_WC,
208 _NL_CTYPE_OUTDIGIT4_WC,
209 _NL_CTYPE_OUTDIGIT5_WC,
210 _NL_CTYPE_OUTDIGIT6_WC,
211 _NL_CTYPE_OUTDIGIT7_WC,
212 _NL_CTYPE_OUTDIGIT8_WC,
213 _NL_CTYPE_OUTDIGIT9_WC,
215 _NL_TIME_CODESET,
216 _NL_TIME_WMON_1,
217 _NL_TIME_WMON_2,
218 _NL_TIME_WMON_3,
219 _NL_TIME_WMON_4,
220 _NL_TIME_WMON_5,
221 _NL_TIME_WMON_6,
222 _NL_TIME_WMON_7,
223 _NL_TIME_WMON_8,
224 _NL_TIME_WMON_9,
225 _NL_TIME_WMON_10,
226 _NL_TIME_WMON_11,
227 _NL_TIME_WMON_12,
228 _NL_TIME_WMONTH_1,
229 _NL_TIME_WMONTH_2,
230 _NL_TIME_WMONTH_3,
231 _NL_TIME_WMONTH_4,
232 _NL_TIME_WMONTH_5,
233 _NL_TIME_WMONTH_6,
234 _NL_TIME_WMONTH_7,
235 _NL_TIME_WMONTH_8,
236 _NL_TIME_WMONTH_9,
237 _NL_TIME_WMONTH_10,
238 _NL_TIME_WMONTH_11,
239 _NL_TIME_WMONTH_12,
240 _NL_TIME_WWDAY_1,
241 _NL_TIME_WWDAY_2,
242 _NL_TIME_WWDAY_3,
243 _NL_TIME_WWDAY_4,
244 _NL_TIME_WWDAY_5,
245 _NL_TIME_WWDAY_6,
246 _NL_TIME_WWDAY_7,
247 _NL_TIME_WWEEKDAY_1,
248 _NL_TIME_WWEEKDAY_2,
249 _NL_TIME_WWEEKDAY_3,
250 _NL_TIME_WWEEKDAY_4,
251 _NL_TIME_WWEEKDAY_5,
252 _NL_TIME_WWEEKDAY_6,
253 _NL_TIME_WWEEKDAY_7,
254 _NL_TIME_WT_FMT,
255 _NL_TIME_WD_FMT,
256 _NL_TIME_WD_T_FMT,
257 _NL_TIME_WAM_STR,
258 _NL_TIME_WPM_STR,
259 _NL_TIME_WDATE_FMT,
260 _NL_TIME_WT_FMT_AMPM,
261 _NL_TIME_WERA,
262 _NL_TIME_WERA_D_FMT,
263 _NL_TIME_WERA_D_T_FMT,
264 _NL_TIME_WERA_T_FMT,
265 _NL_TIME_WALT_DIGITS,
267 _NL_NUMERIC_CODESET,
268 _NL_NUMERIC_GROUPING,
269 _NL_NUMERIC_DECIMAL_POINT_WC,
270 _NL_NUMERIC_THOUSANDS_SEP_WC,
272 _NL_MONETARY_INT_CURR_SYMBOL,
273 _NL_MONETARY_CURRENCY_SYMBOL,
274 _NL_MONETARY_MON_DECIMAL_POINT,
275 _NL_MONETARY_MON_THOUSANDS_SEP,
276 _NL_MONETARY_MON_GROUPING,
277 _NL_MONETARY_POSITIVE_SIGN,
278 _NL_MONETARY_NEGATIVE_SIGN,
279 _NL_MONETARY_INT_FRAC_DIGITS,
280 _NL_MONETARY_FRAC_DIGITS,
281 _NL_MONETARY_P_CS_PRECEDES,
282 _NL_MONETARY_P_SEP_BY_SPACE,
283 _NL_MONETARY_N_CS_PRECEDES,
284 _NL_MONETARY_N_SEP_BY_SPACE,
285 _NL_MONETARY_P_SIGN_POSN,
286 _NL_MONETARY_N_SIGN_POSN,
287 _NL_MONETARY_INT_P_CS_PRECEDES,
288 _NL_MONETARY_INT_P_SEP_BY_SPACE,
289 _NL_MONETARY_INT_N_CS_PRECEDES,
290 _NL_MONETARY_INT_N_SEP_BY_SPACE,
291 _NL_MONETARY_INT_P_SIGN_POSN,
292 _NL_MONETARY_INT_N_SIGN_POSN,
293 _NL_MONETARY_CODESET,
294 _NL_MONETARY_WINT_CURR_SYMBOL,
295 _NL_MONETARY_WCURRENCY_SYMBOL,
296 _NL_MONETARY_WMON_DECIMAL_POINT,
297 _NL_MONETARY_WMON_THOUSANDS_SEP,
298 _NL_MONETARY_WPOSITIVE_SIGN,
299 _NL_MONETARY_WNEGATIVE_SIGN,
301 _NL_MESSAGES_WYESEXPR,
302 _NL_MESSAGES_WNOEXPR,
303 _NL_MESSAGES_WYESSTR,
304 _NL_MESSAGES_WNOSTR,
306 _NL_COLLATE_CODESET,
308 /* This MUST be the last entry since it's used to check for an array
309 index in nl_langinfo(). It also must not exceed _NL_LOCALE_NAME_BASE. */
310 _NL_LOCALE_EXTENDED_LAST_ENTRY
312 #endif /* __HAVE_LOCALE_INFO_EXTENDED__ */
313 #endif /* __HAVE_LOCALE_INFO__ */
317 /* As an extension, nl_langinfo can retrive the name of a locale
318 category, with this mapping from setlocale() category (other than
319 LC_ALL) to nl_item. */
320 #define _NL_LOCALE_NAME_BASE 100000
321 #if __GNU_VISIBLE
322 #define NL_LOCALE_NAME(category) (_NL_LOCALE_NAME_BASE + (category))
323 #endif
325 __BEGIN_DECLS
326 char *nl_langinfo (nl_item);
327 #if __POSIX_VISIBLE >= 200809
328 char *nl_langinfo_l (nl_item, locale_t);
329 #endif
330 __END_DECLS
332 #endif /* !_LANGINFO_H_ */