xref: /Universal-ctags/gnulib/localcharset.h (revision 820c1a8d46849a90376d8eb15b319ac05439f656)
1*820c1a8dSHiroo HAYASHI /* Determine a canonical name for the current locale's character encoding.
2*820c1a8dSHiroo HAYASHI    Copyright (C) 2000-2003, 2009-2021 Free Software Foundation, Inc.
3*820c1a8dSHiroo HAYASHI    This file is part of the GNU CHARSET Library.
4*820c1a8dSHiroo HAYASHI 
5*820c1a8dSHiroo HAYASHI    This file is free software: you can redistribute it and/or modify
6*820c1a8dSHiroo HAYASHI    it under the terms of the GNU Lesser General Public License as
7*820c1a8dSHiroo HAYASHI    published by the Free Software Foundation; either version 2.1 of the
8*820c1a8dSHiroo HAYASHI    License, or (at your option) any later version.
9*820c1a8dSHiroo HAYASHI 
10*820c1a8dSHiroo HAYASHI    This file is distributed in the hope that it will be useful,
11*820c1a8dSHiroo HAYASHI    but WITHOUT ANY WARRANTY; without even the implied warranty of
12*820c1a8dSHiroo HAYASHI    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13*820c1a8dSHiroo HAYASHI    GNU Lesser General Public License for more details.
14*820c1a8dSHiroo HAYASHI 
15*820c1a8dSHiroo HAYASHI    You should have received a copy of the GNU Lesser General Public License
16*820c1a8dSHiroo HAYASHI    along with this program.  If not, see <https://www.gnu.org/licenses/>.  */
17*820c1a8dSHiroo HAYASHI 
18*820c1a8dSHiroo HAYASHI #ifndef _LOCALCHARSET_H
19*820c1a8dSHiroo HAYASHI #define _LOCALCHARSET_H
20*820c1a8dSHiroo HAYASHI 
21*820c1a8dSHiroo HAYASHI 
22*820c1a8dSHiroo HAYASHI #ifdef __cplusplus
23*820c1a8dSHiroo HAYASHI extern "C" {
24*820c1a8dSHiroo HAYASHI #endif
25*820c1a8dSHiroo HAYASHI 
26*820c1a8dSHiroo HAYASHI 
27*820c1a8dSHiroo HAYASHI /* Determine the current locale's character encoding, and canonicalize it
28*820c1a8dSHiroo HAYASHI    into one of the canonical names listed below.
29*820c1a8dSHiroo HAYASHI    The result must not be freed; it is statically allocated.  The result
30*820c1a8dSHiroo HAYASHI    becomes invalid when setlocale() is used to change the global locale, or
31*820c1a8dSHiroo HAYASHI    when the value of one of the environment variables LC_ALL, LC_CTYPE, LANG
32*820c1a8dSHiroo HAYASHI    is changed; threads in multithreaded programs should not do this.
33*820c1a8dSHiroo HAYASHI    If the canonical name cannot be determined, the result is a non-canonical
34*820c1a8dSHiroo HAYASHI    name.  */
35*820c1a8dSHiroo HAYASHI extern const char * locale_charset (void);
36*820c1a8dSHiroo HAYASHI 
37*820c1a8dSHiroo HAYASHI /* About GNU canonical names for character encodings:
38*820c1a8dSHiroo HAYASHI 
39*820c1a8dSHiroo HAYASHI    Every canonical name must be supported by GNU libiconv.  Support by GNU libc
40*820c1a8dSHiroo HAYASHI    is also desirable.
41*820c1a8dSHiroo HAYASHI 
42*820c1a8dSHiroo HAYASHI    The name is case insensitive.  Usually an upper case MIME charset name is
43*820c1a8dSHiroo HAYASHI    preferred.
44*820c1a8dSHiroo HAYASHI 
45*820c1a8dSHiroo HAYASHI    The current list of these GNU canonical names is:
46*820c1a8dSHiroo HAYASHI 
47*820c1a8dSHiroo HAYASHI        name              MIME?             used by which systems
48*820c1a8dSHiroo HAYASHI                                     (darwin = Mac OS X, windows = native Windows)
49*820c1a8dSHiroo HAYASHI 
50*820c1a8dSHiroo HAYASHI    ASCII, ANSI_X3.4-1968       glibc solaris freebsd netbsd darwin minix cygwin
51*820c1a8dSHiroo HAYASHI    ISO-8859-1              Y   glibc aix hpux irix osf solaris freebsd netbsd openbsd darwin cygwin zos
52*820c1a8dSHiroo HAYASHI    ISO-8859-2              Y   glibc aix hpux irix osf solaris freebsd netbsd openbsd darwin cygwin zos
53*820c1a8dSHiroo HAYASHI    ISO-8859-3              Y   glibc solaris cygwin
54*820c1a8dSHiroo HAYASHI    ISO-8859-4              Y   hpux osf solaris freebsd netbsd openbsd darwin
55*820c1a8dSHiroo HAYASHI    ISO-8859-5              Y   glibc aix hpux irix osf solaris freebsd netbsd openbsd darwin cygwin zos
56*820c1a8dSHiroo HAYASHI    ISO-8859-6              Y   glibc aix hpux solaris cygwin
57*820c1a8dSHiroo HAYASHI    ISO-8859-7              Y   glibc aix hpux irix osf solaris freebsd netbsd openbsd darwin cygwin zos
58*820c1a8dSHiroo HAYASHI    ISO-8859-8              Y   glibc aix hpux osf solaris cygwin zos
59*820c1a8dSHiroo HAYASHI    ISO-8859-9              Y   glibc aix hpux irix osf solaris freebsd darwin cygwin zos
60*820c1a8dSHiroo HAYASHI    ISO-8859-13                 glibc hpux solaris freebsd netbsd openbsd darwin cygwin
61*820c1a8dSHiroo HAYASHI    ISO-8859-14                 glibc cygwin
62*820c1a8dSHiroo HAYASHI    ISO-8859-15                 glibc aix irix osf solaris freebsd netbsd openbsd darwin cygwin
63*820c1a8dSHiroo HAYASHI    KOI8-R                  Y   glibc hpux solaris freebsd netbsd openbsd darwin
64*820c1a8dSHiroo HAYASHI    KOI8-U                  Y   glibc freebsd netbsd openbsd darwin cygwin
65*820c1a8dSHiroo HAYASHI    KOI8-T                      glibc
66*820c1a8dSHiroo HAYASHI    CP437                       dos
67*820c1a8dSHiroo HAYASHI    CP775                       dos
68*820c1a8dSHiroo HAYASHI    CP850                       aix osf dos
69*820c1a8dSHiroo HAYASHI    CP852                       dos
70*820c1a8dSHiroo HAYASHI    CP855                       dos
71*820c1a8dSHiroo HAYASHI    CP856                       aix
72*820c1a8dSHiroo HAYASHI    CP857                       dos
73*820c1a8dSHiroo HAYASHI    CP861                       dos
74*820c1a8dSHiroo HAYASHI    CP862                       dos
75*820c1a8dSHiroo HAYASHI    CP864                       dos
76*820c1a8dSHiroo HAYASHI    CP865                       dos
77*820c1a8dSHiroo HAYASHI    CP866                       freebsd netbsd openbsd darwin dos
78*820c1a8dSHiroo HAYASHI    CP869                       dos
79*820c1a8dSHiroo HAYASHI    CP874                       windows dos
80*820c1a8dSHiroo HAYASHI    CP922                       aix
81*820c1a8dSHiroo HAYASHI    CP932                       aix cygwin windows dos
82*820c1a8dSHiroo HAYASHI    CP943                       aix zos
83*820c1a8dSHiroo HAYASHI    CP949                       osf darwin windows dos
84*820c1a8dSHiroo HAYASHI    CP950                       windows dos
85*820c1a8dSHiroo HAYASHI    CP1046                      aix
86*820c1a8dSHiroo HAYASHI    CP1124                      aix
87*820c1a8dSHiroo HAYASHI    CP1125                      dos
88*820c1a8dSHiroo HAYASHI    CP1129                      aix
89*820c1a8dSHiroo HAYASHI    CP1131                      freebsd darwin
90*820c1a8dSHiroo HAYASHI    CP1250                      windows
91*820c1a8dSHiroo HAYASHI    CP1251                      glibc hpux solaris freebsd netbsd openbsd darwin cygwin windows
92*820c1a8dSHiroo HAYASHI    CP1252                      aix windows
93*820c1a8dSHiroo HAYASHI    CP1253                      windows
94*820c1a8dSHiroo HAYASHI    CP1254                      windows
95*820c1a8dSHiroo HAYASHI    CP1255                      glibc windows
96*820c1a8dSHiroo HAYASHI    CP1256                      windows
97*820c1a8dSHiroo HAYASHI    CP1257                      windows
98*820c1a8dSHiroo HAYASHI    GB2312                  Y   glibc aix hpux irix solaris freebsd netbsd darwin cygwin zos
99*820c1a8dSHiroo HAYASHI    EUC-JP                  Y   glibc aix hpux irix osf solaris freebsd netbsd darwin cygwin
100*820c1a8dSHiroo HAYASHI    EUC-KR                  Y   glibc aix hpux irix osf solaris freebsd netbsd darwin cygwin zos
101*820c1a8dSHiroo HAYASHI    EUC-TW                      glibc aix hpux irix osf solaris netbsd
102*820c1a8dSHiroo HAYASHI    BIG5                    Y   glibc aix hpux osf solaris freebsd netbsd darwin cygwin zos
103*820c1a8dSHiroo HAYASHI    BIG5-HKSCS                  glibc hpux solaris netbsd darwin
104*820c1a8dSHiroo HAYASHI    GBK                         glibc aix osf solaris freebsd darwin cygwin windows dos
105*820c1a8dSHiroo HAYASHI    GB18030                     glibc hpux solaris freebsd netbsd darwin
106*820c1a8dSHiroo HAYASHI    SHIFT_JIS               Y   hpux osf solaris freebsd netbsd darwin
107*820c1a8dSHiroo HAYASHI    JOHAB                       glibc solaris windows
108*820c1a8dSHiroo HAYASHI    TIS-620                     glibc aix hpux osf solaris cygwin zos
109*820c1a8dSHiroo HAYASHI    VISCII                  Y   glibc
110*820c1a8dSHiroo HAYASHI    TCVN5712-1                  glibc
111*820c1a8dSHiroo HAYASHI    ARMSCII-8                   glibc freebsd netbsd darwin
112*820c1a8dSHiroo HAYASHI    GEORGIAN-PS                 glibc cygwin
113*820c1a8dSHiroo HAYASHI    PT154                       glibc netbsd cygwin
114*820c1a8dSHiroo HAYASHI    HP-ROMAN8                   hpux
115*820c1a8dSHiroo HAYASHI    HP-ARABIC8                  hpux
116*820c1a8dSHiroo HAYASHI    HP-GREEK8                   hpux
117*820c1a8dSHiroo HAYASHI    HP-HEBREW8                  hpux
118*820c1a8dSHiroo HAYASHI    HP-TURKISH8                 hpux
119*820c1a8dSHiroo HAYASHI    HP-KANA8                    hpux
120*820c1a8dSHiroo HAYASHI    DEC-KANJI                   osf
121*820c1a8dSHiroo HAYASHI    DEC-HANYU                   osf
122*820c1a8dSHiroo HAYASHI    UTF-8                   Y   glibc aix hpux osf solaris netbsd darwin cygwin zos
123*820c1a8dSHiroo HAYASHI 
124*820c1a8dSHiroo HAYASHI    Note: Names which are not marked as being a MIME name should not be used in
125*820c1a8dSHiroo HAYASHI    Internet protocols for information interchange (mail, news, etc.).
126*820c1a8dSHiroo HAYASHI 
127*820c1a8dSHiroo HAYASHI    Note: ASCII and ANSI_X3.4-1968 are synonymous canonical names.  Applications
128*820c1a8dSHiroo HAYASHI    must understand both names and treat them as equivalent.
129*820c1a8dSHiroo HAYASHI  */
130*820c1a8dSHiroo HAYASHI 
131*820c1a8dSHiroo HAYASHI 
132*820c1a8dSHiroo HAYASHI #ifdef __cplusplus
133*820c1a8dSHiroo HAYASHI }
134*820c1a8dSHiroo HAYASHI #endif
135*820c1a8dSHiroo HAYASHI 
136*820c1a8dSHiroo HAYASHI 
137*820c1a8dSHiroo HAYASHI #endif /* _LOCALCHARSET_H */
138