annotate gcc/ada/locales.c @ 145:1830386684a0

gcc-9.2.0
author anatofuz
date Thu, 13 Feb 2020 11:34:05 +0900
parents 84e7813d76e9
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
111
kono
parents:
diff changeset
1 /****************************************************************************
kono
parents:
diff changeset
2 * *
kono
parents:
diff changeset
3 * GNAT COMPILER COMPONENTS *
kono
parents:
diff changeset
4 * *
kono
parents:
diff changeset
5 * L O C A L E S *
kono
parents:
diff changeset
6 * *
kono
parents:
diff changeset
7 * C Implementation File *
kono
parents:
diff changeset
8 * *
145
1830386684a0 gcc-9.2.0
anatofuz
parents: 131
diff changeset
9 * Copyright (C) 2010-2019, Free Software Foundation, Inc. *
111
kono
parents:
diff changeset
10 * *
kono
parents:
diff changeset
11 * GNAT is free software; you can redistribute it and/or modify it under *
kono
parents:
diff changeset
12 * terms of the GNU General Public License as published by the Free Soft- *
kono
parents:
diff changeset
13 * ware Foundation; either version 3, or (at your option) any later ver- *
kono
parents:
diff changeset
14 * sion. GNAT is distributed in the hope that it will be useful, but WITH- *
kono
parents:
diff changeset
15 * OUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY *
kono
parents:
diff changeset
16 * or FITNESS FOR A PARTICULAR PURPOSE. *
kono
parents:
diff changeset
17 * *
kono
parents:
diff changeset
18 * As a special exception under Section 7 of GPL version 3, you are granted *
kono
parents:
diff changeset
19 * additional permissions described in the GCC Runtime Library Exception, *
kono
parents:
diff changeset
20 * version 3.1, as published by the Free Software Foundation. *
kono
parents:
diff changeset
21 * *
kono
parents:
diff changeset
22 * You should have received a copy of the GNU General Public License and *
kono
parents:
diff changeset
23 * a copy of the GCC Runtime Library Exception along with this program; *
kono
parents:
diff changeset
24 * see the files COPYING3 and COPYING.RUNTIME respectively. If not, see *
kono
parents:
diff changeset
25 * <http://www.gnu.org/licenses/>. *
kono
parents:
diff changeset
26 * *
kono
parents:
diff changeset
27 * GNAT was originally developed by the GNAT team at New York University. *
kono
parents:
diff changeset
28 * Extensive contributions were provided by Ada Core Technologies Inc. *
kono
parents:
diff changeset
29 * *
kono
parents:
diff changeset
30 ****************************************************************************/
kono
parents:
diff changeset
31
kono
parents:
diff changeset
32 /* This file provides OS-dependent support for the Ada.Locales package. */
kono
parents:
diff changeset
33
131
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
34 #include <locale.h>
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
35 #include <ctype.h>
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
36 #include <stddef.h>
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
37
111
kono
parents:
diff changeset
38 typedef char char4 [4];
kono
parents:
diff changeset
39
131
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
40 /* Table containing equivalences between ISO_639_1 codes and their ISO_639_3
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
41 alpha-3 code plus their language name. */
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
42
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
43 static char* iso_639[] =
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
44 {
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
45 "aa", "aar", "Afar",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
46 "ab", "abk", "Abkhazian",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
47 "ae", "ave", "Avestan",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
48 "af", "afr", "Afrikaans",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
49 "ak", "aka", "Akan",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
50 "am", "amh", "Amharic",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
51 "an", "arg", "Aragonese",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
52 "ar", "ara", "Arabic",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
53 "as", "asm", "Assamese",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
54 "av", "ava", "Avaric",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
55 "ay", "aym", "Aymara",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
56 "az", "aze", "Azerbaijani",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
57
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
58 "ba", "bak", "Bashkir",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
59 "be", "bel", "Belarusian",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
60 "bg", "bul", "Bulgarian",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
61 "bi", "bis", "Bislama",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
62 "bm", "bam", "Bambara",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
63 "bn", "ben", "Bengali",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
64 "bo", "bod", "Tibetan",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
65 "br", "bre", "Breton",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
66 "bs", "bos", "Bosnian",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
67
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
68 "ca", "cat", "Catalan",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
69 "ce", "che", "Chechen",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
70 "ch", "cha", "Chamorro",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
71 "co", "cos", "Corsican",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
72 "cr", "cre", "Cree",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
73 "cs", "ces", "Czech",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
74 "cu", "chu", "Church Slavic",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
75 "cv", "chv", "Chuvash",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
76 "cy", "cym", "Welsh",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
77
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
78 "da", "dan", "Danish",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
79 "de", "deu", "German",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
80 "dv", "div", "Divehi",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
81 "dz", "dzo", "Dzongkha",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
82
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
83 "ee", "ewe", "Ewe",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
84 "el", "ell", "Modern Greek",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
85 "en", "eng", "English",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
86 "eo", "epo", "Esperanto",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
87 "es", "spa", "Spanish",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
88 "et", "est", "Estonian",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
89 "eu", "eus", "Basque",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
90
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
91 "fa", "fas", "Persian",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
92 "ff", "ful", "Fulah",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
93 "fi", "fin", "Finnish",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
94 "fj", "fij", "Fijian",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
95 "fo", "fao", "Faroese",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
96 "fr", "fra", "French",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
97 "fy", "fry", "Western Frisian",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
98
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
99 "ga", "gle", "Irish",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
100 "gd", "gla", "Scottish Gaelic",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
101 "gl", "glg", "Galician",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
102 "gn", "grn", "Guarani",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
103 "gu", "guj", "Gujarati",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
104 "gv", "glv", "Manx",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
105
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
106 "ha", "hau", "Hausa",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
107 "he", "heb", "Hebrew",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
108 "hi", "hin", "Hindi",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
109 "ho", "hmo", "Hiri Motu",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
110 "hr", "hrv", "Croatian",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
111 "ht", "hat", "Haitian",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
112 "hu", "hun", "Hungarian",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
113 "hy", "hye", "Armenian",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
114 "hz", "her", "Herero",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
115
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
116 "ia", "ina", "Interlingua",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
117 "id", "ind", "Indonesian",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
118 "ie", "ile", "Interlingue",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
119 "ig", "ibo", "Igbo",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
120 "ii", "iii", "Sichuan Yi",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
121 "ik", "ipk", "Inupiaq",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
122 "io", "ido", "Ido",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
123 "is", "isl", "Icelandic",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
124 "it", "ita", "Italian",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
125 "iu", "iku", "Inuktitut",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
126
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
127 "ja", "jpn", "Japanese",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
128 "jv", "jav", "Javanese",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
129
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
130 "ka", "kat", "Georgian",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
131 "kg", "kon", "Kongo",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
132 "ki", "kik", "Kikuyu",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
133 "kj", "kua", "Kuanyama",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
134 "kk", "kaz", "Kazakh",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
135 "kl", "kal", "Kalaallisut",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
136 "km", "khm", "Central Khmer",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
137 "kn", "kan", "Kannada",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
138 "ko", "kor", "Korean",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
139 "kr", "kau", "Kanuri",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
140 "ks", "kas", "Kashmiri",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
141 "ku", "kur", "Kurdish",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
142 "kv", "kom", "Komi",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
143 "kw", "cor", "Cornish",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
144 "ky", "kir", "Kirghiz",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
145
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
146 "la", "lat", "Latin",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
147 "lb", "ltz", "Luxembourgish",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
148 "lg", "lug", "Ganda",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
149 "li", "lim", "Limburgan",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
150 "ln", "lin", "Lingala",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
151 "lo", "lao", "Lao",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
152 "lt", "lit", "Lithuanian",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
153 "lu", "lub", "Luba-Katanga",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
154 "lv", "lav", "Latvian",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
155
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
156 "mg", "mlg", "Malagasy",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
157 "mh", "mah", "Marshallese",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
158 "mi", "mri", "Maori",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
159 "mk", "mkd", "Macedonian",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
160 "ml", "mal", "Malayalam",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
161 "mn", "mon", "Mongolian",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
162 "mr", "mar", "Marathi",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
163 "ms", "msa", "Malay",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
164 "mt", "mlt", "Maltese",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
165 "my", "mya", "Burmese",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
166
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
167 "na", "nau", "Nauru",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
168 "nb", "nob", "Norwegian Bokmal",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
169 "nd", "nde", "North Ndebele",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
170 "ne", "nep", "Nepali",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
171 "ng", "ndo", "Ndonga",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
172 "nl", "nld", "Dutch",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
173 "nn", "nno", "Norwegian Nynorsk",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
174 "no", "nor", "Norwegian",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
175 "nr", "nbl", "South Ndebele",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
176 "nv", "nav", "Navajo",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
177 "ny", "nya", "Nyanja",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
178
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
179 "oc", "oci", "Occitan",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
180 "oj", "oji", "Ojibwa",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
181 "om", "orm", "Oromo",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
182 "or", "ori", "Oriya",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
183 "os", "oss", "Ossetian",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
184
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
185 "pa", "pan", "Panjabi",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
186 "pi", "pli", "Pali",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
187 "pl", "pol", "Polish",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
188 "ps", "pus", "Pushto",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
189 "pt", "por", "Portuguese",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
190
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
191 "qu", "que", "Quechua",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
192
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
193 "rm", "roh", "Romansh",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
194 "rn", "run", "Rundi",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
195 "ro", "ron", "Romanian",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
196 "ru", "rus", "Russian",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
197 "rw", "kin", "Kinyarwanda",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
198
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
199 "sa", "san", "Sanskrit",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
200 "sc", "srd", "Sardinian",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
201 "sd", "snd", "Sindhi",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
202 "se", "sme", "Northern Sami",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
203 "sg", "sag", "Sango",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
204 "sh", "hbs", "Serbo-Croatian",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
205 "si", "sin", "Sinhala",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
206 "sk", "slk", "Slovak",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
207 "sl", "slv", "Slovenian",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
208 "sm", "smo", "Samoan",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
209 "sn", "sna", "Shona",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
210 "so", "som", "Somali",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
211 "sq", "sqi", "Albanian",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
212 "sr", "srp", "Serbian",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
213 "ss", "ssw", "Swati",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
214 "st", "sot", "Southern Sotho",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
215 "su", "sun", "Sundanese",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
216 "sv", "swe", "Swedish",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
217 "sw", "swa", "Swahili",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
218
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
219 "ta", "tam", "Tamil",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
220 "te", "tel", "Telugu",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
221 "tg", "tgk", "Tajik",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
222 "th", "tha", "Thai",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
223 "ti", "tir", "Tigrinya",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
224 "tk", "tuk", "Turkmen",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
225 "tl", "tgl", "Tagalog",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
226 "tn", "tsn", "Tswana",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
227 "to", "ton", "Tonga",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
228 "tr", "tur", "Turkish",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
229 "ts", "tso", "Tsonga",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
230 "tt", "tat", "Tatar",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
231 "tw", "twi", "Twi",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
232 "ty", "tah", "Tahitian",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
233
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
234 "ug", "uig", "Uighur",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
235 "uk", "ukr", "Ukrainian",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
236 "ur", "urd", "Urdu",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
237 "uz", "uzb", "Uzbek",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
238
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
239 "ve", "ven", "Venda",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
240 "vi", "vie", "Vietnamese",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
241 "vo", "vol", "Volapuk",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
242
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
243 "wa", "wln", "Walloon",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
244 "wo", "wol", "Wolof",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
245
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
246 "xh", "xho", "Xhosa",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
247
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
248 "yi", "yid", "Yiddish",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
249 "yo", "yor", "Yoruba",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
250
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
251 "za", "zha", "Zhuang",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
252 "zh", "zho", "Chinese",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
253 "zu", "zul", "Zulu"
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
254 };
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
255
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
256 /* Table containing equivalences between ISO_3166 alpha-2 codes and country
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
257 names. This table has several entries for codes that have several valid
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
258 country names. */
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
259
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
260 static char* iso_3166[] =
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
261 {
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
262 "AU", "Australia",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
263 "AD", "Andorra",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
264 "AE", "United Arab Emirates",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
265 "AF", "Afghanistan",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
266 "AG", "Antigua and Barbuda",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
267 "AI", "Anguilla",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
268 "AL", "Albania",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
269 "AM", "Armenia",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
270 "AN", "Netherlands Antilles",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
271 "AO", "Angola",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
272 "AQ", "Antarctica",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
273 "AR", "Argentina",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
274 "AS", "American Samoa",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
275 "AT", "Austria",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
276 "AU", "Australia",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
277 "AW", "Aruba",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
278 "AX", "Aland Islands",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
279 "AZ", "Azerbaijan",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
280
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
281 "BA", "Bosnia and Herzegovina",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
282 "BB", "Barbados",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
283 "BD", "Bangladesh",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
284 "BE", "Belgium",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
285 "BF", "Burkina Faso",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
286 "BG", "Bulgaria",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
287 "BH", "Bahrain",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
288 "BI", "Burundi",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
289 "BJ", "Benin",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
290 "BL", "Saint Barthélemy",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
291 "BM", "Bermuda",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
292 "BN", "Brunei Darussalam",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
293 "BO", "Bolivia, Plurinational State of",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
294 "BQ", "Bonaire, Sint Eustatius and Saba",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
295 "BR", "Brazil",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
296 "BS", "Bahamas",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
297 "BT", "Bhutan",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
298 "BV", "Bouvet Island",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
299 "BW", "Botswana",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
300 "BY", "Belarus",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
301 "BZ", "Belize",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
302
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
303 "CA", "Canada",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
304 "CC", "Cocos (Keeling) Islands",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
305 "CD", "Congo, Democratic Republic of the",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
306 "CF", "Central African Republic",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
307 "CG", "Congo",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
308 "CH", "Switzerland",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
309 "CI", "Côte d'Ivoire",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
310 "CK", "Cook Islands",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
311 "CL", "Chile",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
312 "CM", "Cameroon",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
313 "CN", "China",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
314 "CN", "People’s Republic of China",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
315 "CN", "PR China",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
316 "CN", "PR-China",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
317 "CO", "Colombia",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
318 "CR", "Costa Rica",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
319 "CS", "Czechoslovakia",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
320 "CU", "Cuba",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
321 "CV", "Cape Verde",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
322 "CW", "Curaçao",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
323 "CX", "Christmas Island",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
324 "CY", "Cyprus",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
325 "CZ", "Czech Republic",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
326
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
327 "DE", "Germany",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
328 "DJ", "Djibouti",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
329 "DK", "Denmark",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
330 "DM", "Dominica",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
331 "DO", "Dominican Republic",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
332 "DZ", "Algeria",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
333
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
334 "EC", "Ecuador",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
335 "EE", "Estonia",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
336 "EG", "Egypt",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
337 "EH", "Western Sahara",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
338 "ER", "Eritrea",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
339 "ES", "Spain",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
340 "ET", "Ethiopia",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
341
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
342 "FI", "Finland",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
343 "FG", "Fiji",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
344 "FK", "Falkland Islands (Malvinas)",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
345 "FM", "Micronesia, Federated States of",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
346 "FO", "Faroe Islands",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
347 "FR", "France",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
348
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
349 "GA", "Gabon",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
350 "GB", "United Kingdom",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
351 "GB", "United-Kingdom",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
352 "GB", "England",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
353 "GB", "Britain",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
354 "GB", "Great Britain",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
355 "GD", "Grenada",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
356 "GE", "Georgia",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
357 "GF", "French Guiana",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
358 "GG", "Guernsey",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
359 "GH", "Ghana",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
360 "GI", "Gibraltar",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
361 "GL", "Greenland",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
362 "GM", "Gambia",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
363 "GN", "Guinea",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
364 "GP", "Guadeloupe",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
365 "GQ", "Equatorial Guinea",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
366 "GR", "Greece",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
367 "GS", "South Georgia and the South Sandwich Islands",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
368 "GT", "Guatemala",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
369 "GU", "Guam",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
370 "GW", "Guinea-Bissau",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
371 "GY", "Guyana",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
372
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
373 "HK", "Hong Kong",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
374 "HK", "Hong-Kong",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
375 "HM", "Heard Island and McDonald Islands",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
376 "HN", "Honduras",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
377 "HR", "Croatia",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
378 "HT", "Haiti",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
379 "HU", "Hungary",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
380
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
381 "ID", "Indonesia",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
382 "IE", "Ireland",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
383 "IL", "Israel",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
384 "IM", "Isle of Man",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
385 "IN", "India",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
386 "IO", "British Indian Ocean Territory",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
387 "IQ", "Iraq",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
388 "IR", "Iran",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
389 "IR", "Iran, Islamic Republic of",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
390 "IS", "Iceland",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
391 "IT", "Italy",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
392
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
393 "JE", "Jersey",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
394 "JM", "Jamaica",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
395 "JO", "Jordan",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
396 "JP", "Japan",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
397
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
398 "KE", "Kenya",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
399 "KG", "Kyrgyzstan",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
400 "KH", "Cambodia",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
401 "KI", "Kiribati",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
402 "KM", "Comoros",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
403 "KN", "Saint Kitts and Nevis",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
404 "KP", "Korea, Democratic People's Republic of",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
405 "KR", "Korea, Republic of",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
406 "KW", "Kuwait",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
407 "KY", "Cayman Islands",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
408 "KZ", "Kazakhstan",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
409
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
410 "LA", "Lao People's Democratic Republic",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
411 "LB", "Lebanon",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
412 "LC", "Saint Lucia",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
413 "LI", "Liechtenstein",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
414 "LK", "Sri Lanka",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
415 "LR", "Liberia",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
416 "LS", "Lesotho",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
417 "LT", "Lithuania",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
418 "LU", "Luxembourg",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
419 "LV", "Latvia",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
420 "LY", "Libya",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
421
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
422 "MA", "Morocco",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
423 "MC", "Monaco",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
424 "MD", "Moldova, Republic of",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
425 "ME", "Montenegro",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
426 "MF", "Saint Martin",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
427 "MG", "Madagascar",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
428 "MH", "Marshall Islands",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
429 "MK", "Macedonia",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
430 "ML", "Mali",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
431 "MM", "Myanmar",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
432 "MN", "Mongolia",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
433 "MO", "Macao",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
434 "MP", "Northern Mariana Islands",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
435 "MQ", "Martinique",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
436 "MR", "Mauritania",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
437 "MS", "Montserrat",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
438 "MT", "Malta",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
439 "MU", "Mauritius",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
440 "MV", "Maldives",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
441 "MW", "Malawi",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
442 "MX", "Mexico",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
443 "MY", "Malaysia",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
444 "MZ", "Mozambique",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
445
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
446 "NA", "Namibia",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
447 "NC", "New Caledonia",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
448 "NE", "Niger",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
449 "NF", "Norfolk Island",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
450 "NG", "Nigeria",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
451 "NI", "Nicaragua",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
452 "NL", "Netherlands",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
453 "NL", "Holland",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
454 "NO", "Norway",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
455 "NP", "Nepal",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
456 "NR", "Nauru",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
457 "NU", "Niue",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
458 "NZ", "New Zealand",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
459 "NZ", "New-Zealand",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
460
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
461 "OM", "Oman",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
462
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
463 "PA", "Panama",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
464 "PE", "Peru",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
465 "PF", "French Polynesia",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
466 "PG", "Papua New Guinea",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
467 "PH", "Philippines",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
468 "PK", "Pakistan",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
469 "PL", "Poland",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
470 "PM", "Saint Pierre and Miquelon",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
471 "PN", "Pitcairn",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
472 "PR", "Puerto Rico",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
473 "PS", "Palestine, State of",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
474 "PT", "Portugal",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
475 "PW", "Palau",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
476 "PY", "Paraguay",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
477
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
478 "QA", "Qatar",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
479
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
480 "RE", "Réunion",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
481 "RO", "Romania",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
482 "RS", "Serbia",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
483 "RU", "Russian Federation",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
484 "RW", "Rwanda",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
485
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
486 "SA", "Saudi Arabia",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
487 "SB", "Solomon Islands",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
488 "SC", "Seychelles",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
489 "SD", "Sudan",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
490 "SE", "Sweden",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
491 "SG", "Singapore",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
492 "SH", "Saint Helena, Ascension and Tristan da Cunha",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
493 "SI", "Slovenia",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
494 "SJ", "Svalbard and Jan Mayen",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
495 "SK", "Slovakia",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
496 "SL", "Sierra Leone",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
497 "SM", "San Marino",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
498 "SN", "Senegal",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
499 "SO", "Somalia",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
500 "SR", "Suriname",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
501 "SS", "South Sudan",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
502 "SV", "El Salvador",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
503 "SX", "Sint Maarten (Dutch part)",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
504 "SY", "Syrian Arab Republic",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
505 "SZ", "Swaziland",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
506
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
507 "TC", "Turks and Caicos Islands",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
508 "TD", "Chad",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
509 "TF", "French Southern Territories",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
510 "TG", "Togo",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
511 "TH", "Thailand",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
512 "TJ", "Tajikistan",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
513 "TK", "Tokelau",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
514 "TL", "Timor-Leste",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
515 "TM", "Turkmenistan",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
516 "TN", "Tunisia",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
517 "TO", "Tonga",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
518 "TP", "East Timor",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
519 "TR", "Turkey",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
520 "TT", "Trinidad and Tobago",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
521 "TV", "Tuvalu",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
522 "TW", "Taiwan",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
523 "TW", "Taiwan, Province of China",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
524 "TZ", "Tanzania",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
525 "TZ", "Tanzania, United Republic of",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
526
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
527 "UA", "Ukraine",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
528 "UG", "Uganda",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
529 "UM", "United States Minor Outlying Islands",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
530 "US", "United States",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
531 "US", "United States of America",
145
1830386684a0 gcc-9.2.0
anatofuz
parents: 131
diff changeset
532 "US", "United-States",
131
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
533 "UY", "Uruguay",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
534 "UZ", "Uzbekistan",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
535
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
536 "VA", "Holy See (Vatican City State)",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
537 "VC", "Saint Vincent and the Grenadines",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
538 "VE", "Venezuela",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
539 "VE", "Venezuela, Bolivarian Republic of",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
540 "VG", "Virgin Islands, British",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
541 "VI", "Virgin Islands, U.S.",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
542 "VN", "Viet Nam",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
543 "VU", "Vanuatu",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
544 "WF", "Wallis and Futuna",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
545 "WS", "Samoa",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
546
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
547 "YE", "Yemen",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
548 "YT", "Mayotte",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
549 "YU", "Yugoslavia",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
550
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
551 "ZA", "South Africa",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
552 "ZM", "Zambia",
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
553 "ZW", "Zimbabwe"
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
554 };
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
555
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
556 /* Utility function to perform case insensitive string comparison. Returns 1
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
557 if both strings are equal and 0 otherwise. */
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
558
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
559 static int
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
560 str_case_equals (const char *s1, const char *s2) {
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
561 while (*s1 != '\0' && *s2 != '\0' && tolower(*s1) == tolower(*s2)) {
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
562 s1++;
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
563 s2++;
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
564 }
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
565
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
566 return (*s1 == '\0') && (*s2 == '\0');
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
567 }
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
568
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
569 /* Utility function to copy length characters of a string. The target string
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
570 must have space to store the extra string null terminator. */
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
571
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
572 static void
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
573 str_copy (char *target, char *source, int length) {
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
574 for (; length > 0; source++, target++, length--) {
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
575 *target = *source;
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
576 }
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
577
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
578 *target = '\0';
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
579 }
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
580
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
581 /* Utility function to search for the last byte of the lc_all string to be
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
582 processed. Required because in some targets (for example, AIX), the
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
583 string returned by setlocale() has duplicates. */
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
584
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
585 static char*
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
586 str_get_last_byte (char *lc_all) {
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
587 char* first_space = NULL;
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
588 char* second_space = NULL;
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
589 char* last_byte = NULL;
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
590 char* s1 = lc_all;
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
591
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
592 /* Search for the 1st space (if any) */
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
593 while (*s1 != ' ' && *s1 != '\0')
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
594 s1++;
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
595
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
596 if (*s1 == '\0') {
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
597 last_byte = s1;
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
598
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
599 } else {
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
600 first_space = s1;
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
601
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
602 /* Skip this space and search for the 2nd one (if available) */
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
603 s1++;
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
604 while (*s1 != ' ' && *s1 != '\0')
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
605 s1++;
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
606
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
607 if (*s1 == '\0') {
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
608 last_byte = s1;
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
609
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
610 } else {
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
611 second_space=s1;
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
612
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
613 /* Search for the last byte of lc_all */
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
614 while (*s1 != '\0')
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
615 s1++;
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
616
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
617 last_byte = s1;
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
618
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
619 /* Check if the two strings match */
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
620 {
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
621 int len1 = first_space - lc_all;
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
622 int len2 = second_space - first_space - 1;
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
623
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
624 if (len1 == len2) {
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
625 char* p1 = lc_all;
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
626 char* p2 = first_space + 1;
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
627
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
628 /* Compare their contents */
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
629 while (*p1 == *p2 && p2 != second_space) {
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
630 p1++;
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
631 p2++;
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
632 }
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
633
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
634 /* if the two strings match then update the last byte */
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
635
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
636 if (p2 == second_space) {
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
637 last_byte = first_space;
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
638 }
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
639 }
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
640 }
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
641 }
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
642 }
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
643
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
644 return last_byte;
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
645 }
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
646
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
647 /* Utility function to search in the iso_639_1 table for an iso-639-1 code;
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
648 returns the corresponding iso-639-3 code or NULL if not found. */
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
649
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
650 static char*
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
651 iso_639_1_to_639_3(char* iso_639_1_code) {
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
652 int len = sizeof(iso_639)/sizeof(iso_639[0]);
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
653 char **p = iso_639;
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
654 int j;
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
655
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
656 for (j=0; j < len/3; j++) {
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
657 char* s1 = iso_639_1_code;
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
658 char* s2 = *p;
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
659
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
660 if (s1[0]==s2[0] && s1[1]==s2[1]) {
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
661 p++;
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
662 return *p;
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
663 }
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
664
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
665 p = p + 3;
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
666 }
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
667
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
668 return NULL;
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
669 }
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
670
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
671 /* Utility function to search in the iso_639_1 table for a language name;
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
672 returns the corresponding iso-639-3 code or NULL if not found. */
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
673
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
674 static char*
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
675 language_name_to_639_3(char* name) {
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
676 int len = sizeof(iso_639)/sizeof(iso_639[0]);
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
677 char **p = iso_639;
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
678 int j;
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
679
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
680 p = p + 2;
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
681 for (j=0; j < len/3; j++) {
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
682 if (str_case_equals(name, *p)) {
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
683 p--;
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
684 return *p;
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
685 }
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
686
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
687 p = p + 3;
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
688 }
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
689
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
690 return NULL;
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
691 }
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
692
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
693 /* Utility function to search in the iso_3166 table for a country name;
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
694 returns the corresponding iso-3166 code or NULL if not found. */
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
695
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
696 static char*
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
697 country_name_to_3166 (char* name) {
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
698 int len = sizeof(iso_3166)/sizeof(iso_3166[0]);
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
699 char **p = iso_3166;
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
700 int j;
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
701
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
702 p++;
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
703 for (j=0; j < len/2; j++) {
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
704 if (str_case_equals(name, *p)) {
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
705 p--;
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
706 return *p;
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
707 }
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
708
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
709 p = p + 2;
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
710 }
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
711
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
712 return NULL;
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
713 }
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
714
111
kono
parents:
diff changeset
715 /*
kono
parents:
diff changeset
716 c_get_language_code needs to fill in the Alpha-3 encoding of the
kono
parents:
diff changeset
717 language code (3 lowercase letters). That should be "und" if the
kono
parents:
diff changeset
718 language is unknown. [see Ada.Locales]
kono
parents:
diff changeset
719 */
131
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
720 void
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
721 c_get_language_code (char4 p) {
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
722 char* Saved_Locale = setlocale(LC_ALL, NULL);
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
723 char iso_639_3_code[] = "und"; /* Language Unknown */
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
724 char* lc_all;
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
725 char* result;
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
726
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
727 /* Get locales set in the environment */
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
728
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
729 setlocale(LC_ALL, "");
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
730 lc_all = setlocale(LC_ALL, NULL);
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
731
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
732 /* The string returned by setlocale has the following format:
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
733
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
734 language[_territory][.code-set][@modifier]
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
735
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
736 where language is an ISO 639 language code, territory is an ISO 3166
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
737 country code, and codeset is a character set or encoding identifier
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
738 like ISO-8859-1 or UTF-8.
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
739 */
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
740
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
741 if (lc_all != NULL) {
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
742 char* s = lc_all;
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
743 int lang_length = 0;
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
744
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
745 /* Copy the language part (which may be an ISO-639-1 code, an ISO-639-3
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
746 code, or a language name) adding a string terminator */
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
747
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
748 while (*s != '_' && *s != '.' && *s != '@' && *s != '\0')
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
749 s++;
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
750
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
751 lang_length = s - lc_all;
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
752
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
753 /* Handle conversion of ISO-639-1 to ISO-639-3 */
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
754
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
755 if (lang_length == 2) {
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
756 char iso_639_1[3];
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
757 char* to_iso_639_3;
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
758
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
759 /* Duplicate the ISO-639-1 code adding the null terminator required to
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
760 search for the equivalent ISO-639-3 code; we cannot just append the
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
761 null terminator since the pointer may reference non-writable memory.
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
762 */
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
763
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
764 str_copy(iso_639_1, lc_all, lang_length);
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
765 to_iso_639_3 = iso_639_1_to_639_3(iso_639_1);
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
766
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
767 if (to_iso_639_3)
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
768 str_copy(iso_639_3_code, to_iso_639_3, 3);
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
769
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
770 /* Copy the ISO-639-3 code (adding a null terminator) */
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
771
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
772 } else if (lang_length == 3) {
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
773 str_copy(iso_639_3_code, lc_all, lang_length);
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
774
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
775 /* Handle conversion of language name to ISO-639-3 */
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
776
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
777 } else if (lang_length > 3) {
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
778 char name_copy[lang_length + 1];
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
779 char* to_iso_639_3;
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
780
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
781 /* Duplicate the ISO-639-1 code adding the null terminator required to
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
782 search for the equivalent ISO-639-3 code; we cannot just append the
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
783 null terminator since the pointer may reference non-writable memory.
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
784 */
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
785
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
786 str_copy(name_copy, lc_all, lang_length);
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
787 to_iso_639_3 = language_name_to_639_3(name_copy);
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
788
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
789 if (to_iso_639_3)
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
790 str_copy(iso_639_3_code, to_iso_639_3, 3);
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
791 }
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
792 }
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
793
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
794 /* Copy out the computed ISO_639_3 code */
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
795
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
796 result = iso_639_3_code;
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
797 for (; *result != '\0'; p++, result++)
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
798 *p = *result;
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
799
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
800 /* Restore the original locale settings */
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
801
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
802 setlocale(LC_ALL, Saved_Locale);
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
803
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
804 return;
111
kono
parents:
diff changeset
805 }
kono
parents:
diff changeset
806
kono
parents:
diff changeset
807 /*
kono
parents:
diff changeset
808 c_get_country_code needs to fill in the Alpha-2 encoding of the
kono
parents:
diff changeset
809 country code (2 uppercase letters). That should be "ZZ" if the
kono
parents:
diff changeset
810 country is unknown. [see Ada.Locales]
kono
parents:
diff changeset
811 */
131
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
812 void
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
813 c_get_country_code (char4 p) {
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
814 char* Saved_Locale = setlocale(LC_ALL, NULL);
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
815 char iso_3166_code[] = "ZZ"; /* Country Unknown */
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
816 char* lc_all;
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
817 char* result;
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
818
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
819 /* Get locales set in the environment */
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
820
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
821 setlocale(LC_ALL, "");
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
822 lc_all = setlocale(LC_ALL, NULL);
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
823
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
824 /* The string returned by setlocale has the following format:
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
825
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
826 language[_territory][.code-set][@modifier]
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
827
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
828 where language is an ISO 639 language code, territory is an ISO 3166
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
829 country code, and codeset is a character set or encoding identifier
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
830 like ISO-8859-1 or UTF-8.
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
831 */
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
832
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
833 if (lc_all != NULL) {
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
834 char* s1 = lc_all;
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
835 char* s2 = NULL;
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
836 char* last_byte = str_get_last_byte(lc_all);
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
837 int country_length = 0;
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
838
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
839 /* Search for the beginning of the country code */
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
840
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
841 s1 = lc_all;
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
842 while (*s1 != '_' && *s1 != '.' && *s1 != '@' && s1 != last_byte)
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
843 s1++;
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
844
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
845 if (*s1 == '_') {
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
846 s1++;
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
847 s2 = s1;
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
848
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
849 while (*s2 != '.' && *s2 != '@' && s2 != last_byte)
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
850 s2++;
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
851
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
852 country_length = s2 - s1;
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
853
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
854 if (country_length == 2) {
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
855 str_copy(iso_3166_code, s1, country_length);
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
856
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
857 /* setlocale returned us the country name */
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
858
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
859 } else if (country_length > 3) {
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
860 char name_copy[country_length + 1];
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
861 char* to_3166;
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
862
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
863 str_copy(name_copy, s1, country_length);
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
864 to_3166 = country_name_to_3166(name_copy);
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
865
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
866 if (to_3166)
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
867 str_copy(iso_3166_code, to_3166, 2);
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
868 }
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
869 }
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
870 }
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
871
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
872 /* Copy out the computed ISO_3166 code */
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
873
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
874 result = iso_3166_code;
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
875 for (; *result != '\0'; p++, result++)
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
876 *p = *result;
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
877
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
878 /* Restore the original locale settings */
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
879
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
880 setlocale(LC_ALL, Saved_Locale);
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
881
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
882 return;
111
kono
parents:
diff changeset
883 }