xref: /Universal-ctags/gnulib/langinfo.in.h (revision 820c1a8d46849a90376d8eb15b319ac05439f656)
1*820c1a8dSHiroo HAYASHI /* Substitute for and wrapper around <langinfo.h>.
2*820c1a8dSHiroo HAYASHI    Copyright (C) 2009-2021 Free Software Foundation, Inc.
3*820c1a8dSHiroo HAYASHI 
4*820c1a8dSHiroo HAYASHI    This file is free software: you can redistribute it and/or modify
5*820c1a8dSHiroo HAYASHI    it under the terms of the GNU Lesser General Public License as
6*820c1a8dSHiroo HAYASHI    published by the Free Software Foundation; either version 2.1 of the
7*820c1a8dSHiroo HAYASHI    License, or (at your option) any later version.
8*820c1a8dSHiroo HAYASHI 
9*820c1a8dSHiroo HAYASHI    This file is distributed in the hope that it will be useful,
10*820c1a8dSHiroo HAYASHI    but WITHOUT ANY WARRANTY; without even the implied warranty of
11*820c1a8dSHiroo HAYASHI    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
12*820c1a8dSHiroo HAYASHI    GNU Lesser General Public License for more details.
13*820c1a8dSHiroo HAYASHI 
14*820c1a8dSHiroo HAYASHI    You should have received a copy of the GNU Lesser General Public License
15*820c1a8dSHiroo HAYASHI    along with this program.  If not, see <https://www.gnu.org/licenses/>.  */
16*820c1a8dSHiroo HAYASHI 
17*820c1a8dSHiroo HAYASHI /*
18*820c1a8dSHiroo HAYASHI  * POSIX <langinfo.h> for platforms that lack it or have an incomplete one.
19*820c1a8dSHiroo HAYASHI  * <https://pubs.opengroup.org/onlinepubs/9699919799/basedefs/langinfo.h.html>
20*820c1a8dSHiroo HAYASHI  */
21*820c1a8dSHiroo HAYASHI 
22*820c1a8dSHiroo HAYASHI #ifndef _@GUARD_PREFIX@_LANGINFO_H
23*820c1a8dSHiroo HAYASHI 
24*820c1a8dSHiroo HAYASHI #if __GNUC__ >= 3
25*820c1a8dSHiroo HAYASHI @PRAGMA_SYSTEM_HEADER@
26*820c1a8dSHiroo HAYASHI #endif
27*820c1a8dSHiroo HAYASHI @PRAGMA_COLUMNS@
28*820c1a8dSHiroo HAYASHI 
29*820c1a8dSHiroo HAYASHI /* The include_next requires a split double-inclusion guard.  */
30*820c1a8dSHiroo HAYASHI #if @HAVE_LANGINFO_H@
31*820c1a8dSHiroo HAYASHI # @INCLUDE_NEXT@ @NEXT_LANGINFO_H@
32*820c1a8dSHiroo HAYASHI #endif
33*820c1a8dSHiroo HAYASHI 
34*820c1a8dSHiroo HAYASHI #ifndef _@GUARD_PREFIX@_LANGINFO_H
35*820c1a8dSHiroo HAYASHI #define _@GUARD_PREFIX@_LANGINFO_H
36*820c1a8dSHiroo HAYASHI 
37*820c1a8dSHiroo HAYASHI 
38*820c1a8dSHiroo HAYASHI #if !@HAVE_LANGINFO_H@
39*820c1a8dSHiroo HAYASHI 
40*820c1a8dSHiroo HAYASHI /* A platform that lacks <langinfo.h>.  */
41*820c1a8dSHiroo HAYASHI 
42*820c1a8dSHiroo HAYASHI /* Assume that it also lacks <nl_types.h> and the nl_item type.  */
43*820c1a8dSHiroo HAYASHI # if !GNULIB_defined_nl_item
44*820c1a8dSHiroo HAYASHI typedef int nl_item;
45*820c1a8dSHiroo HAYASHI #  define GNULIB_defined_nl_item 1
46*820c1a8dSHiroo HAYASHI # endif
47*820c1a8dSHiroo HAYASHI 
48*820c1a8dSHiroo HAYASHI /* nl_langinfo items of the LC_CTYPE category */
49*820c1a8dSHiroo HAYASHI # define CODESET     10000
50*820c1a8dSHiroo HAYASHI /* nl_langinfo items of the LC_NUMERIC category */
51*820c1a8dSHiroo HAYASHI # define RADIXCHAR   10001
52*820c1a8dSHiroo HAYASHI # define DECIMAL_POINT RADIXCHAR
53*820c1a8dSHiroo HAYASHI # define THOUSEP     10002
54*820c1a8dSHiroo HAYASHI # define THOUSANDS_SEP THOUSEP
55*820c1a8dSHiroo HAYASHI # define GROUPING    10114
56*820c1a8dSHiroo HAYASHI /* nl_langinfo items of the LC_TIME category */
57*820c1a8dSHiroo HAYASHI # define D_T_FMT     10003
58*820c1a8dSHiroo HAYASHI # define D_FMT       10004
59*820c1a8dSHiroo HAYASHI # define T_FMT       10005
60*820c1a8dSHiroo HAYASHI # define T_FMT_AMPM  10006
61*820c1a8dSHiroo HAYASHI # define AM_STR      10007
62*820c1a8dSHiroo HAYASHI # define PM_STR      10008
63*820c1a8dSHiroo HAYASHI # define DAY_1       10009
64*820c1a8dSHiroo HAYASHI # define DAY_2       (DAY_1 + 1)
65*820c1a8dSHiroo HAYASHI # define DAY_3       (DAY_1 + 2)
66*820c1a8dSHiroo HAYASHI # define DAY_4       (DAY_1 + 3)
67*820c1a8dSHiroo HAYASHI # define DAY_5       (DAY_1 + 4)
68*820c1a8dSHiroo HAYASHI # define DAY_6       (DAY_1 + 5)
69*820c1a8dSHiroo HAYASHI # define DAY_7       (DAY_1 + 6)
70*820c1a8dSHiroo HAYASHI # define ABDAY_1     10016
71*820c1a8dSHiroo HAYASHI # define ABDAY_2     (ABDAY_1 + 1)
72*820c1a8dSHiroo HAYASHI # define ABDAY_3     (ABDAY_1 + 2)
73*820c1a8dSHiroo HAYASHI # define ABDAY_4     (ABDAY_1 + 3)
74*820c1a8dSHiroo HAYASHI # define ABDAY_5     (ABDAY_1 + 4)
75*820c1a8dSHiroo HAYASHI # define ABDAY_6     (ABDAY_1 + 5)
76*820c1a8dSHiroo HAYASHI # define ABDAY_7     (ABDAY_1 + 6)
77*820c1a8dSHiroo HAYASHI # define MON_1       10023
78*820c1a8dSHiroo HAYASHI # define MON_2       (MON_1 + 1)
79*820c1a8dSHiroo HAYASHI # define MON_3       (MON_1 + 2)
80*820c1a8dSHiroo HAYASHI # define MON_4       (MON_1 + 3)
81*820c1a8dSHiroo HAYASHI # define MON_5       (MON_1 + 4)
82*820c1a8dSHiroo HAYASHI # define MON_6       (MON_1 + 5)
83*820c1a8dSHiroo HAYASHI # define MON_7       (MON_1 + 6)
84*820c1a8dSHiroo HAYASHI # define MON_8       (MON_1 + 7)
85*820c1a8dSHiroo HAYASHI # define MON_9       (MON_1 + 8)
86*820c1a8dSHiroo HAYASHI # define MON_10      (MON_1 + 9)
87*820c1a8dSHiroo HAYASHI # define MON_11      (MON_1 + 10)
88*820c1a8dSHiroo HAYASHI # define MON_12      (MON_1 + 11)
89*820c1a8dSHiroo HAYASHI # define ALTMON_1    10200
90*820c1a8dSHiroo HAYASHI # define ALTMON_2    (ALTMON_1 + 1)
91*820c1a8dSHiroo HAYASHI # define ALTMON_3    (ALTMON_1 + 2)
92*820c1a8dSHiroo HAYASHI # define ALTMON_4    (ALTMON_1 + 3)
93*820c1a8dSHiroo HAYASHI # define ALTMON_5    (ALTMON_1 + 4)
94*820c1a8dSHiroo HAYASHI # define ALTMON_6    (ALTMON_1 + 5)
95*820c1a8dSHiroo HAYASHI # define ALTMON_7    (ALTMON_1 + 6)
96*820c1a8dSHiroo HAYASHI # define ALTMON_8    (ALTMON_1 + 7)
97*820c1a8dSHiroo HAYASHI # define ALTMON_9    (ALTMON_1 + 8)
98*820c1a8dSHiroo HAYASHI # define ALTMON_10   (ALTMON_1 + 9)
99*820c1a8dSHiroo HAYASHI # define ALTMON_11   (ALTMON_1 + 10)
100*820c1a8dSHiroo HAYASHI # define ALTMON_12   (ALTMON_1 + 11)
101*820c1a8dSHiroo HAYASHI # define ABMON_1     10035
102*820c1a8dSHiroo HAYASHI # define ABMON_2     (ABMON_1 + 1)
103*820c1a8dSHiroo HAYASHI # define ABMON_3     (ABMON_1 + 2)
104*820c1a8dSHiroo HAYASHI # define ABMON_4     (ABMON_1 + 3)
105*820c1a8dSHiroo HAYASHI # define ABMON_5     (ABMON_1 + 4)
106*820c1a8dSHiroo HAYASHI # define ABMON_6     (ABMON_1 + 5)
107*820c1a8dSHiroo HAYASHI # define ABMON_7     (ABMON_1 + 6)
108*820c1a8dSHiroo HAYASHI # define ABMON_8     (ABMON_1 + 7)
109*820c1a8dSHiroo HAYASHI # define ABMON_9     (ABMON_1 + 8)
110*820c1a8dSHiroo HAYASHI # define ABMON_10    (ABMON_1 + 9)
111*820c1a8dSHiroo HAYASHI # define ABMON_11    (ABMON_1 + 10)
112*820c1a8dSHiroo HAYASHI # define ABMON_12    (ABMON_1 + 11)
113*820c1a8dSHiroo HAYASHI # define ERA         10047
114*820c1a8dSHiroo HAYASHI # define ERA_D_FMT   10048
115*820c1a8dSHiroo HAYASHI # define ERA_D_T_FMT 10049
116*820c1a8dSHiroo HAYASHI # define ERA_T_FMT   10050
117*820c1a8dSHiroo HAYASHI # define ALT_DIGITS  10051
118*820c1a8dSHiroo HAYASHI /* nl_langinfo items of the LC_MONETARY category */
119*820c1a8dSHiroo HAYASHI # define CRNCYSTR    10052
120*820c1a8dSHiroo HAYASHI # define CURRENCY_SYMBOL   CRNCYSTR
121*820c1a8dSHiroo HAYASHI # define INT_CURR_SYMBOL   10100
122*820c1a8dSHiroo HAYASHI # define MON_DECIMAL_POINT 10101
123*820c1a8dSHiroo HAYASHI # define MON_THOUSANDS_SEP 10102
124*820c1a8dSHiroo HAYASHI # define MON_GROUPING      10103
125*820c1a8dSHiroo HAYASHI # define POSITIVE_SIGN     10104
126*820c1a8dSHiroo HAYASHI # define NEGATIVE_SIGN     10105
127*820c1a8dSHiroo HAYASHI # define FRAC_DIGITS       10106
128*820c1a8dSHiroo HAYASHI # define INT_FRAC_DIGITS   10107
129*820c1a8dSHiroo HAYASHI # define P_CS_PRECEDES     10108
130*820c1a8dSHiroo HAYASHI # define N_CS_PRECEDES     10109
131*820c1a8dSHiroo HAYASHI # define P_SEP_BY_SPACE    10110
132*820c1a8dSHiroo HAYASHI # define N_SEP_BY_SPACE    10111
133*820c1a8dSHiroo HAYASHI # define P_SIGN_POSN       10112
134*820c1a8dSHiroo HAYASHI # define N_SIGN_POSN       10113
135*820c1a8dSHiroo HAYASHI /* nl_langinfo items of the LC_MESSAGES category */
136*820c1a8dSHiroo HAYASHI # define YESEXPR     10053
137*820c1a8dSHiroo HAYASHI # define NOEXPR      10054
138*820c1a8dSHiroo HAYASHI 
139*820c1a8dSHiroo HAYASHI #else
140*820c1a8dSHiroo HAYASHI 
141*820c1a8dSHiroo HAYASHI /* A platform that has <langinfo.h>.  */
142*820c1a8dSHiroo HAYASHI 
143*820c1a8dSHiroo HAYASHI # if !@HAVE_LANGINFO_CODESET@
144*820c1a8dSHiroo HAYASHI #  define CODESET     10000
145*820c1a8dSHiroo HAYASHI #  define GNULIB_defined_CODESET 1
146*820c1a8dSHiroo HAYASHI # endif
147*820c1a8dSHiroo HAYASHI 
148*820c1a8dSHiroo HAYASHI # if !@HAVE_LANGINFO_T_FMT_AMPM@
149*820c1a8dSHiroo HAYASHI #  define T_FMT_AMPM  10006
150*820c1a8dSHiroo HAYASHI #  define GNULIB_defined_T_FMT_AMPM 1
151*820c1a8dSHiroo HAYASHI # endif
152*820c1a8dSHiroo HAYASHI 
153*820c1a8dSHiroo HAYASHI # if !@HAVE_LANGINFO_ALTMON@
154*820c1a8dSHiroo HAYASHI #  define ALTMON_1    10200
155*820c1a8dSHiroo HAYASHI #  define ALTMON_2    (ALTMON_1 + 1)
156*820c1a8dSHiroo HAYASHI #  define ALTMON_3    (ALTMON_1 + 2)
157*820c1a8dSHiroo HAYASHI #  define ALTMON_4    (ALTMON_1 + 3)
158*820c1a8dSHiroo HAYASHI #  define ALTMON_5    (ALTMON_1 + 4)
159*820c1a8dSHiroo HAYASHI #  define ALTMON_6    (ALTMON_1 + 5)
160*820c1a8dSHiroo HAYASHI #  define ALTMON_7    (ALTMON_1 + 6)
161*820c1a8dSHiroo HAYASHI #  define ALTMON_8    (ALTMON_1 + 7)
162*820c1a8dSHiroo HAYASHI #  define ALTMON_9    (ALTMON_1 + 8)
163*820c1a8dSHiroo HAYASHI #  define ALTMON_10   (ALTMON_1 + 9)
164*820c1a8dSHiroo HAYASHI #  define ALTMON_11   (ALTMON_1 + 10)
165*820c1a8dSHiroo HAYASHI #  define ALTMON_12   (ALTMON_1 + 11)
166*820c1a8dSHiroo HAYASHI #  define GNULIB_defined_ALTMON 1
167*820c1a8dSHiroo HAYASHI # endif
168*820c1a8dSHiroo HAYASHI 
169*820c1a8dSHiroo HAYASHI # if !@HAVE_LANGINFO_ERA@
170*820c1a8dSHiroo HAYASHI #  define ERA         10047
171*820c1a8dSHiroo HAYASHI #  define ERA_D_FMT   10048
172*820c1a8dSHiroo HAYASHI #  define ERA_D_T_FMT 10049
173*820c1a8dSHiroo HAYASHI #  define ERA_T_FMT   10050
174*820c1a8dSHiroo HAYASHI #  define ALT_DIGITS  10051
175*820c1a8dSHiroo HAYASHI #  define GNULIB_defined_ERA 1
176*820c1a8dSHiroo HAYASHI # endif
177*820c1a8dSHiroo HAYASHI 
178*820c1a8dSHiroo HAYASHI # if !@HAVE_LANGINFO_YESEXPR@
179*820c1a8dSHiroo HAYASHI #  define YESEXPR     10053
180*820c1a8dSHiroo HAYASHI #  define NOEXPR      10054
181*820c1a8dSHiroo HAYASHI #  define GNULIB_defined_YESEXPR 1
182*820c1a8dSHiroo HAYASHI # endif
183*820c1a8dSHiroo HAYASHI 
184*820c1a8dSHiroo HAYASHI #endif
185*820c1a8dSHiroo HAYASHI 
186*820c1a8dSHiroo HAYASHI /* The definitions of _GL_FUNCDECL_RPL etc. are copied here.  */
187*820c1a8dSHiroo HAYASHI 
188*820c1a8dSHiroo HAYASHI /* The definition of _GL_WARN_ON_USE is copied here.  */
189*820c1a8dSHiroo HAYASHI 
190*820c1a8dSHiroo HAYASHI /* Declare overridden functions.  */
191*820c1a8dSHiroo HAYASHI 
192*820c1a8dSHiroo HAYASHI 
193*820c1a8dSHiroo HAYASHI /* Return a piece of locale dependent information.
194*820c1a8dSHiroo HAYASHI    Note: The difference between nl_langinfo (CODESET) and locale_charset ()
195*820c1a8dSHiroo HAYASHI    is that the latter normalizes the encoding names to GNU conventions.  */
196*820c1a8dSHiroo HAYASHI 
197*820c1a8dSHiroo HAYASHI #if @GNULIB_NL_LANGINFO@
198*820c1a8dSHiroo HAYASHI # if @REPLACE_NL_LANGINFO@
199*820c1a8dSHiroo HAYASHI #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
200*820c1a8dSHiroo HAYASHI #   undef nl_langinfo
201*820c1a8dSHiroo HAYASHI #   define nl_langinfo rpl_nl_langinfo
202*820c1a8dSHiroo HAYASHI #  endif
203*820c1a8dSHiroo HAYASHI _GL_FUNCDECL_RPL (nl_langinfo, char *, (nl_item item));
204*820c1a8dSHiroo HAYASHI _GL_CXXALIAS_RPL (nl_langinfo, char *, (nl_item item));
205*820c1a8dSHiroo HAYASHI # else
206*820c1a8dSHiroo HAYASHI #  if !@HAVE_NL_LANGINFO@
207*820c1a8dSHiroo HAYASHI _GL_FUNCDECL_SYS (nl_langinfo, char *, (nl_item item));
208*820c1a8dSHiroo HAYASHI #  endif
209*820c1a8dSHiroo HAYASHI _GL_CXXALIAS_SYS (nl_langinfo, char *, (nl_item item));
210*820c1a8dSHiroo HAYASHI # endif
211*820c1a8dSHiroo HAYASHI _GL_CXXALIASWARN (nl_langinfo);
212*820c1a8dSHiroo HAYASHI #elif defined GNULIB_POSIXCHECK
213*820c1a8dSHiroo HAYASHI # undef nl_langinfo
214*820c1a8dSHiroo HAYASHI # if HAVE_RAW_DECL_NL_LANGINFO
215*820c1a8dSHiroo HAYASHI _GL_WARN_ON_USE (nl_langinfo, "nl_langinfo is not portable - "
216*820c1a8dSHiroo HAYASHI                  "use gnulib module nl_langinfo for portability");
217*820c1a8dSHiroo HAYASHI # endif
218*820c1a8dSHiroo HAYASHI #endif
219*820c1a8dSHiroo HAYASHI 
220*820c1a8dSHiroo HAYASHI 
221*820c1a8dSHiroo HAYASHI #endif /* _@GUARD_PREFIX@_LANGINFO_H */
222*820c1a8dSHiroo HAYASHI #endif /* _@GUARD_PREFIX@_LANGINFO_H */
223