annotate lib/localcharset.c @ 2304:9bddfd20456d

Guard some #includes with `#if HAVE_...'.
author Jim Meyering <jim@meyering.net>
date Wed, 01 Mar 2000 13:21:23 +0000
parents 295e005b5209
children 056ab4fe3d27
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
2303
295e005b5209 new file, from Bruno
Jim Meyering <jim@meyering.net>
parents:
diff changeset
1 /* Determine a canonical name for the current locale's character encoding.
295e005b5209 new file, from Bruno
Jim Meyering <jim@meyering.net>
parents:
diff changeset
2
295e005b5209 new file, from Bruno
Jim Meyering <jim@meyering.net>
parents:
diff changeset
3 Copyright (C) 2000 Free Software Foundation, Inc.
295e005b5209 new file, from Bruno
Jim Meyering <jim@meyering.net>
parents:
diff changeset
4
295e005b5209 new file, from Bruno
Jim Meyering <jim@meyering.net>
parents:
diff changeset
5 This program is free software; you can redistribute it and/or modify it
295e005b5209 new file, from Bruno
Jim Meyering <jim@meyering.net>
parents:
diff changeset
6 under the terms of the GNU Library General Public License as published
295e005b5209 new file, from Bruno
Jim Meyering <jim@meyering.net>
parents:
diff changeset
7 by the Free Software Foundation; either version 2, or (at your option)
295e005b5209 new file, from Bruno
Jim Meyering <jim@meyering.net>
parents:
diff changeset
8 any later version.
295e005b5209 new file, from Bruno
Jim Meyering <jim@meyering.net>
parents:
diff changeset
9
295e005b5209 new file, from Bruno
Jim Meyering <jim@meyering.net>
parents:
diff changeset
10 This program is distributed in the hope that it will be useful,
295e005b5209 new file, from Bruno
Jim Meyering <jim@meyering.net>
parents:
diff changeset
11 but WITHOUT ANY WARRANTY; without even the implied warranty of
295e005b5209 new file, from Bruno
Jim Meyering <jim@meyering.net>
parents:
diff changeset
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
295e005b5209 new file, from Bruno
Jim Meyering <jim@meyering.net>
parents:
diff changeset
13 Library General Public License for more details.
295e005b5209 new file, from Bruno
Jim Meyering <jim@meyering.net>
parents:
diff changeset
14
295e005b5209 new file, from Bruno
Jim Meyering <jim@meyering.net>
parents:
diff changeset
15 You should have received a copy of the GNU Library General Public
295e005b5209 new file, from Bruno
Jim Meyering <jim@meyering.net>
parents:
diff changeset
16 License along with this program; if not, write to the Free Software
295e005b5209 new file, from Bruno
Jim Meyering <jim@meyering.net>
parents:
diff changeset
17 Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
295e005b5209 new file, from Bruno
Jim Meyering <jim@meyering.net>
parents:
diff changeset
18 USA. */
295e005b5209 new file, from Bruno
Jim Meyering <jim@meyering.net>
parents:
diff changeset
19
295e005b5209 new file, from Bruno
Jim Meyering <jim@meyering.net>
parents:
diff changeset
20 /* Written by Bruno Haible <haible@clisp.cons.org>. */
295e005b5209 new file, from Bruno
Jim Meyering <jim@meyering.net>
parents:
diff changeset
21
295e005b5209 new file, from Bruno
Jim Meyering <jim@meyering.net>
parents:
diff changeset
22 #ifdef HAVE_CONFIG_H
295e005b5209 new file, from Bruno
Jim Meyering <jim@meyering.net>
parents:
diff changeset
23 # include <config.h>
295e005b5209 new file, from Bruno
Jim Meyering <jim@meyering.net>
parents:
diff changeset
24 #endif
295e005b5209 new file, from Bruno
Jim Meyering <jim@meyering.net>
parents:
diff changeset
25
2304
9bddfd20456d Guard some #includes with `#if HAVE_...'.
Jim Meyering <jim@meyering.net>
parents: 2303
diff changeset
26 #if HAVE_STDDEF_H
9bddfd20456d Guard some #includes with `#if HAVE_...'.
Jim Meyering <jim@meyering.net>
parents: 2303
diff changeset
27 # include <stddef.h>
9bddfd20456d Guard some #includes with `#if HAVE_...'.
Jim Meyering <jim@meyering.net>
parents: 2303
diff changeset
28 #endif
9bddfd20456d Guard some #includes with `#if HAVE_...'.
Jim Meyering <jim@meyering.net>
parents: 2303
diff changeset
29
2303
295e005b5209 new file, from Bruno
Jim Meyering <jim@meyering.net>
parents:
diff changeset
30 #include <stdio.h>
2304
9bddfd20456d Guard some #includes with `#if HAVE_...'.
Jim Meyering <jim@meyering.net>
parents: 2303
diff changeset
31 #if HAVE_STRING_H
9bddfd20456d Guard some #includes with `#if HAVE_...'.
Jim Meyering <jim@meyering.net>
parents: 2303
diff changeset
32 # include <string.h>
9bddfd20456d Guard some #includes with `#if HAVE_...'.
Jim Meyering <jim@meyering.net>
parents: 2303
diff changeset
33 #else
9bddfd20456d Guard some #includes with `#if HAVE_...'.
Jim Meyering <jim@meyering.net>
parents: 2303
diff changeset
34 # include <strings.h>
9bddfd20456d Guard some #includes with `#if HAVE_...'.
Jim Meyering <jim@meyering.net>
parents: 2303
diff changeset
35 #endif
2303
295e005b5209 new file, from Bruno
Jim Meyering <jim@meyering.net>
parents:
diff changeset
36 #if HAVE_STDLIB_H
295e005b5209 new file, from Bruno
Jim Meyering <jim@meyering.net>
parents:
diff changeset
37 # include <stdlib.h>
295e005b5209 new file, from Bruno
Jim Meyering <jim@meyering.net>
parents:
diff changeset
38 #endif
295e005b5209 new file, from Bruno
Jim Meyering <jim@meyering.net>
parents:
diff changeset
39
295e005b5209 new file, from Bruno
Jim Meyering <jim@meyering.net>
parents:
diff changeset
40 #if HAVE_LANGINFO_CODESET
295e005b5209 new file, from Bruno
Jim Meyering <jim@meyering.net>
parents:
diff changeset
41 # include <langinfo.h>
295e005b5209 new file, from Bruno
Jim Meyering <jim@meyering.net>
parents:
diff changeset
42 #else
295e005b5209 new file, from Bruno
Jim Meyering <jim@meyering.net>
parents:
diff changeset
43 # if HAVE_SETLOCALE
295e005b5209 new file, from Bruno
Jim Meyering <jim@meyering.net>
parents:
diff changeset
44 # include <locale.h>
295e005b5209 new file, from Bruno
Jim Meyering <jim@meyering.net>
parents:
diff changeset
45 # endif
295e005b5209 new file, from Bruno
Jim Meyering <jim@meyering.net>
parents:
diff changeset
46 #endif
295e005b5209 new file, from Bruno
Jim Meyering <jim@meyering.net>
parents:
diff changeset
47
295e005b5209 new file, from Bruno
Jim Meyering <jim@meyering.net>
parents:
diff changeset
48 char *xmalloc ();
295e005b5209 new file, from Bruno
Jim Meyering <jim@meyering.net>
parents:
diff changeset
49 char *xrealloc ();
295e005b5209 new file, from Bruno
Jim Meyering <jim@meyering.net>
parents:
diff changeset
50
295e005b5209 new file, from Bruno
Jim Meyering <jim@meyering.net>
parents:
diff changeset
51 /* Pointer to the contents of the charset.alias file, if it has already been
295e005b5209 new file, from Bruno
Jim Meyering <jim@meyering.net>
parents:
diff changeset
52 read, else NULL. Its format is:
295e005b5209 new file, from Bruno
Jim Meyering <jim@meyering.net>
parents:
diff changeset
53 ALIAS_1 '\0' CANONICAL_1 '\0' ... ALIAS_n '\0' CANONICAL_n '\0' '\0' */
295e005b5209 new file, from Bruno
Jim Meyering <jim@meyering.net>
parents:
diff changeset
54 static char * volatile charset_aliases;
295e005b5209 new file, from Bruno
Jim Meyering <jim@meyering.net>
parents:
diff changeset
55
295e005b5209 new file, from Bruno
Jim Meyering <jim@meyering.net>
parents:
diff changeset
56 /* Return a pointer to the contents of the charset.alias file. */
295e005b5209 new file, from Bruno
Jim Meyering <jim@meyering.net>
parents:
diff changeset
57 static const char *
295e005b5209 new file, from Bruno
Jim Meyering <jim@meyering.net>
parents:
diff changeset
58 get_charset_aliases ()
295e005b5209 new file, from Bruno
Jim Meyering <jim@meyering.net>
parents:
diff changeset
59 {
295e005b5209 new file, from Bruno
Jim Meyering <jim@meyering.net>
parents:
diff changeset
60 char *cp;
295e005b5209 new file, from Bruno
Jim Meyering <jim@meyering.net>
parents:
diff changeset
61
295e005b5209 new file, from Bruno
Jim Meyering <jim@meyering.net>
parents:
diff changeset
62 cp = charset_aliases;
295e005b5209 new file, from Bruno
Jim Meyering <jim@meyering.net>
parents:
diff changeset
63 if (cp == NULL)
295e005b5209 new file, from Bruno
Jim Meyering <jim@meyering.net>
parents:
diff changeset
64 {
295e005b5209 new file, from Bruno
Jim Meyering <jim@meyering.net>
parents:
diff changeset
65 FILE *fp;
295e005b5209 new file, from Bruno
Jim Meyering <jim@meyering.net>
parents:
diff changeset
66
295e005b5209 new file, from Bruno
Jim Meyering <jim@meyering.net>
parents:
diff changeset
67 fp = fopen (LIBDIR "/" "charset.alias", "r");
295e005b5209 new file, from Bruno
Jim Meyering <jim@meyering.net>
parents:
diff changeset
68 if (fp == NULL)
295e005b5209 new file, from Bruno
Jim Meyering <jim@meyering.net>
parents:
diff changeset
69 /* File not found, treat it as empty. */
295e005b5209 new file, from Bruno
Jim Meyering <jim@meyering.net>
parents:
diff changeset
70 cp = "";
295e005b5209 new file, from Bruno
Jim Meyering <jim@meyering.net>
parents:
diff changeset
71 else
295e005b5209 new file, from Bruno
Jim Meyering <jim@meyering.net>
parents:
diff changeset
72 {
295e005b5209 new file, from Bruno
Jim Meyering <jim@meyering.net>
parents:
diff changeset
73 /* Parse the file's contents. */
295e005b5209 new file, from Bruno
Jim Meyering <jim@meyering.net>
parents:
diff changeset
74 int c;
295e005b5209 new file, from Bruno
Jim Meyering <jim@meyering.net>
parents:
diff changeset
75 char buf1[50+1];
295e005b5209 new file, from Bruno
Jim Meyering <jim@meyering.net>
parents:
diff changeset
76 char buf2[50+1];
295e005b5209 new file, from Bruno
Jim Meyering <jim@meyering.net>
parents:
diff changeset
77 char *res_ptr = NULL;
295e005b5209 new file, from Bruno
Jim Meyering <jim@meyering.net>
parents:
diff changeset
78 size_t res_size = 0;
295e005b5209 new file, from Bruno
Jim Meyering <jim@meyering.net>
parents:
diff changeset
79 size_t l1, l2;
295e005b5209 new file, from Bruno
Jim Meyering <jim@meyering.net>
parents:
diff changeset
80
295e005b5209 new file, from Bruno
Jim Meyering <jim@meyering.net>
parents:
diff changeset
81 for (;;)
295e005b5209 new file, from Bruno
Jim Meyering <jim@meyering.net>
parents:
diff changeset
82 {
295e005b5209 new file, from Bruno
Jim Meyering <jim@meyering.net>
parents:
diff changeset
83 c = getc (fp);
295e005b5209 new file, from Bruno
Jim Meyering <jim@meyering.net>
parents:
diff changeset
84 if (c == EOF)
295e005b5209 new file, from Bruno
Jim Meyering <jim@meyering.net>
parents:
diff changeset
85 break;
295e005b5209 new file, from Bruno
Jim Meyering <jim@meyering.net>
parents:
diff changeset
86 if (c == '\n' || c == ' ' || c == '\t')
295e005b5209 new file, from Bruno
Jim Meyering <jim@meyering.net>
parents:
diff changeset
87 continue;
295e005b5209 new file, from Bruno
Jim Meyering <jim@meyering.net>
parents:
diff changeset
88 if (c == '#')
295e005b5209 new file, from Bruno
Jim Meyering <jim@meyering.net>
parents:
diff changeset
89 {
295e005b5209 new file, from Bruno
Jim Meyering <jim@meyering.net>
parents:
diff changeset
90 /* Skip comment, to end of line. */
295e005b5209 new file, from Bruno
Jim Meyering <jim@meyering.net>
parents:
diff changeset
91 do
295e005b5209 new file, from Bruno
Jim Meyering <jim@meyering.net>
parents:
diff changeset
92 c = getc (fp);
295e005b5209 new file, from Bruno
Jim Meyering <jim@meyering.net>
parents:
diff changeset
93 while (!(c == EOF || c == '\n'));
295e005b5209 new file, from Bruno
Jim Meyering <jim@meyering.net>
parents:
diff changeset
94 if (c == EOF)
295e005b5209 new file, from Bruno
Jim Meyering <jim@meyering.net>
parents:
diff changeset
95 break;
295e005b5209 new file, from Bruno
Jim Meyering <jim@meyering.net>
parents:
diff changeset
96 continue;
295e005b5209 new file, from Bruno
Jim Meyering <jim@meyering.net>
parents:
diff changeset
97 }
295e005b5209 new file, from Bruno
Jim Meyering <jim@meyering.net>
parents:
diff changeset
98 ungetc (c, fp);
295e005b5209 new file, from Bruno
Jim Meyering <jim@meyering.net>
parents:
diff changeset
99 if (fscanf(fp, "%50s %50s", buf1, buf2) < 2)
295e005b5209 new file, from Bruno
Jim Meyering <jim@meyering.net>
parents:
diff changeset
100 break;
295e005b5209 new file, from Bruno
Jim Meyering <jim@meyering.net>
parents:
diff changeset
101 l1 = strlen (buf1);
295e005b5209 new file, from Bruno
Jim Meyering <jim@meyering.net>
parents:
diff changeset
102 l2 = strlen (buf2);
295e005b5209 new file, from Bruno
Jim Meyering <jim@meyering.net>
parents:
diff changeset
103 if (res_size == 0)
295e005b5209 new file, from Bruno
Jim Meyering <jim@meyering.net>
parents:
diff changeset
104 {
295e005b5209 new file, from Bruno
Jim Meyering <jim@meyering.net>
parents:
diff changeset
105 res_size = l1 + 1 + l2 + 1;
295e005b5209 new file, from Bruno
Jim Meyering <jim@meyering.net>
parents:
diff changeset
106 res_ptr = xmalloc (res_size + 1);
295e005b5209 new file, from Bruno
Jim Meyering <jim@meyering.net>
parents:
diff changeset
107 }
295e005b5209 new file, from Bruno
Jim Meyering <jim@meyering.net>
parents:
diff changeset
108 else
295e005b5209 new file, from Bruno
Jim Meyering <jim@meyering.net>
parents:
diff changeset
109 {
295e005b5209 new file, from Bruno
Jim Meyering <jim@meyering.net>
parents:
diff changeset
110 res_size += l1 + 1 + l2 + 1;
295e005b5209 new file, from Bruno
Jim Meyering <jim@meyering.net>
parents:
diff changeset
111 res_ptr = xrealloc (res_ptr, res_size + 1);
295e005b5209 new file, from Bruno
Jim Meyering <jim@meyering.net>
parents:
diff changeset
112 }
295e005b5209 new file, from Bruno
Jim Meyering <jim@meyering.net>
parents:
diff changeset
113 strcpy (res_ptr + res_size - (l2 + 1) - (l1 + 1), buf1);
295e005b5209 new file, from Bruno
Jim Meyering <jim@meyering.net>
parents:
diff changeset
114 strcpy (res_ptr + res_size - (l2 + 1), buf2);
295e005b5209 new file, from Bruno
Jim Meyering <jim@meyering.net>
parents:
diff changeset
115 }
295e005b5209 new file, from Bruno
Jim Meyering <jim@meyering.net>
parents:
diff changeset
116 fclose (fp);
295e005b5209 new file, from Bruno
Jim Meyering <jim@meyering.net>
parents:
diff changeset
117 if (res_size == 0)
295e005b5209 new file, from Bruno
Jim Meyering <jim@meyering.net>
parents:
diff changeset
118 cp = "";
295e005b5209 new file, from Bruno
Jim Meyering <jim@meyering.net>
parents:
diff changeset
119 else
295e005b5209 new file, from Bruno
Jim Meyering <jim@meyering.net>
parents:
diff changeset
120 {
295e005b5209 new file, from Bruno
Jim Meyering <jim@meyering.net>
parents:
diff changeset
121 *(res_ptr + res_size) = '\0';
295e005b5209 new file, from Bruno
Jim Meyering <jim@meyering.net>
parents:
diff changeset
122 cp = res_ptr;
295e005b5209 new file, from Bruno
Jim Meyering <jim@meyering.net>
parents:
diff changeset
123 }
295e005b5209 new file, from Bruno
Jim Meyering <jim@meyering.net>
parents:
diff changeset
124 }
295e005b5209 new file, from Bruno
Jim Meyering <jim@meyering.net>
parents:
diff changeset
125
295e005b5209 new file, from Bruno
Jim Meyering <jim@meyering.net>
parents:
diff changeset
126 charset_aliases = cp;
295e005b5209 new file, from Bruno
Jim Meyering <jim@meyering.net>
parents:
diff changeset
127 }
295e005b5209 new file, from Bruno
Jim Meyering <jim@meyering.net>
parents:
diff changeset
128
295e005b5209 new file, from Bruno
Jim Meyering <jim@meyering.net>
parents:
diff changeset
129 return cp;
295e005b5209 new file, from Bruno
Jim Meyering <jim@meyering.net>
parents:
diff changeset
130 }
295e005b5209 new file, from Bruno
Jim Meyering <jim@meyering.net>
parents:
diff changeset
131
295e005b5209 new file, from Bruno
Jim Meyering <jim@meyering.net>
parents:
diff changeset
132 /* Determine the current locale's character encoding, and canonicalize it
295e005b5209 new file, from Bruno
Jim Meyering <jim@meyering.net>
parents:
diff changeset
133 into one of the canonical names listed in config.charset.
295e005b5209 new file, from Bruno
Jim Meyering <jim@meyering.net>
parents:
diff changeset
134 The result must not be freed; it is statically allocated.
295e005b5209 new file, from Bruno
Jim Meyering <jim@meyering.net>
parents:
diff changeset
135 If the canonical name cannot be determined, the result is a non-canonical
295e005b5209 new file, from Bruno
Jim Meyering <jim@meyering.net>
parents:
diff changeset
136 name or NULL. */
295e005b5209 new file, from Bruno
Jim Meyering <jim@meyering.net>
parents:
diff changeset
137
295e005b5209 new file, from Bruno
Jim Meyering <jim@meyering.net>
parents:
diff changeset
138 #ifdef STATIC
295e005b5209 new file, from Bruno
Jim Meyering <jim@meyering.net>
parents:
diff changeset
139 STATIC
295e005b5209 new file, from Bruno
Jim Meyering <jim@meyering.net>
parents:
diff changeset
140 #endif
295e005b5209 new file, from Bruno
Jim Meyering <jim@meyering.net>
parents:
diff changeset
141 const char *
295e005b5209 new file, from Bruno
Jim Meyering <jim@meyering.net>
parents:
diff changeset
142 locale_charset ()
295e005b5209 new file, from Bruno
Jim Meyering <jim@meyering.net>
parents:
diff changeset
143 {
295e005b5209 new file, from Bruno
Jim Meyering <jim@meyering.net>
parents:
diff changeset
144 const char *codeset;
295e005b5209 new file, from Bruno
Jim Meyering <jim@meyering.net>
parents:
diff changeset
145 const char *aliases;
295e005b5209 new file, from Bruno
Jim Meyering <jim@meyering.net>
parents:
diff changeset
146
295e005b5209 new file, from Bruno
Jim Meyering <jim@meyering.net>
parents:
diff changeset
147 #if HAVE_LANGINFO_CODESET
295e005b5209 new file, from Bruno
Jim Meyering <jim@meyering.net>
parents:
diff changeset
148
295e005b5209 new file, from Bruno
Jim Meyering <jim@meyering.net>
parents:
diff changeset
149 /* Most systems support nl_langinfo (CODESET) nowadays. */
295e005b5209 new file, from Bruno
Jim Meyering <jim@meyering.net>
parents:
diff changeset
150 codeset = nl_langinfo (CODESET);
295e005b5209 new file, from Bruno
Jim Meyering <jim@meyering.net>
parents:
diff changeset
151
295e005b5209 new file, from Bruno
Jim Meyering <jim@meyering.net>
parents:
diff changeset
152 #else
295e005b5209 new file, from Bruno
Jim Meyering <jim@meyering.net>
parents:
diff changeset
153
295e005b5209 new file, from Bruno
Jim Meyering <jim@meyering.net>
parents:
diff changeset
154 /* On old systems which lack it, use setlocale and getenv. */
295e005b5209 new file, from Bruno
Jim Meyering <jim@meyering.net>
parents:
diff changeset
155 const char *locale = NULL;
295e005b5209 new file, from Bruno
Jim Meyering <jim@meyering.net>
parents:
diff changeset
156
295e005b5209 new file, from Bruno
Jim Meyering <jim@meyering.net>
parents:
diff changeset
157 # if HAVE_SETLOCALE
295e005b5209 new file, from Bruno
Jim Meyering <jim@meyering.net>
parents:
diff changeset
158 locale = setlocale (LC_CTYPE, NULL);
295e005b5209 new file, from Bruno
Jim Meyering <jim@meyering.net>
parents:
diff changeset
159 # endif
295e005b5209 new file, from Bruno
Jim Meyering <jim@meyering.net>
parents:
diff changeset
160 if (locale == NULL)
295e005b5209 new file, from Bruno
Jim Meyering <jim@meyering.net>
parents:
diff changeset
161 {
295e005b5209 new file, from Bruno
Jim Meyering <jim@meyering.net>
parents:
diff changeset
162 locale = getenv ("LC_ALL");
295e005b5209 new file, from Bruno
Jim Meyering <jim@meyering.net>
parents:
diff changeset
163 if (locale == NULL)
295e005b5209 new file, from Bruno
Jim Meyering <jim@meyering.net>
parents:
diff changeset
164 {
295e005b5209 new file, from Bruno
Jim Meyering <jim@meyering.net>
parents:
diff changeset
165 locale = getenv ("LC_CTYPE");
295e005b5209 new file, from Bruno
Jim Meyering <jim@meyering.net>
parents:
diff changeset
166 if (locale == NULL)
295e005b5209 new file, from Bruno
Jim Meyering <jim@meyering.net>
parents:
diff changeset
167 locale = getenv ("LANG");
295e005b5209 new file, from Bruno
Jim Meyering <jim@meyering.net>
parents:
diff changeset
168 }
295e005b5209 new file, from Bruno
Jim Meyering <jim@meyering.net>
parents:
diff changeset
169 }
295e005b5209 new file, from Bruno
Jim Meyering <jim@meyering.net>
parents:
diff changeset
170
295e005b5209 new file, from Bruno
Jim Meyering <jim@meyering.net>
parents:
diff changeset
171 /* On some old systems, one used to set locale = "iso8859_1". On others,
295e005b5209 new file, from Bruno
Jim Meyering <jim@meyering.net>
parents:
diff changeset
172 you set it to "language_COUNTRY.charset". In any case, we resolve it
295e005b5209 new file, from Bruno
Jim Meyering <jim@meyering.net>
parents:
diff changeset
173 through the charset.alias file. */
295e005b5209 new file, from Bruno
Jim Meyering <jim@meyering.net>
parents:
diff changeset
174 codeset = locale;
295e005b5209 new file, from Bruno
Jim Meyering <jim@meyering.net>
parents:
diff changeset
175
295e005b5209 new file, from Bruno
Jim Meyering <jim@meyering.net>
parents:
diff changeset
176 #endif
295e005b5209 new file, from Bruno
Jim Meyering <jim@meyering.net>
parents:
diff changeset
177
295e005b5209 new file, from Bruno
Jim Meyering <jim@meyering.net>
parents:
diff changeset
178 if (codeset != NULL)
295e005b5209 new file, from Bruno
Jim Meyering <jim@meyering.net>
parents:
diff changeset
179 {
295e005b5209 new file, from Bruno
Jim Meyering <jim@meyering.net>
parents:
diff changeset
180 /* Resolve alias. */
295e005b5209 new file, from Bruno
Jim Meyering <jim@meyering.net>
parents:
diff changeset
181 for (aliases = get_charset_aliases ();
295e005b5209 new file, from Bruno
Jim Meyering <jim@meyering.net>
parents:
diff changeset
182 *aliases != '\0';
295e005b5209 new file, from Bruno
Jim Meyering <jim@meyering.net>
parents:
diff changeset
183 aliases += strlen (aliases) + 1, aliases += strlen (aliases) + 1)
295e005b5209 new file, from Bruno
Jim Meyering <jim@meyering.net>
parents:
diff changeset
184 if (!strcmp (codeset, aliases))
295e005b5209 new file, from Bruno
Jim Meyering <jim@meyering.net>
parents:
diff changeset
185 {
295e005b5209 new file, from Bruno
Jim Meyering <jim@meyering.net>
parents:
diff changeset
186 codeset = aliases + strlen (aliases) + 1;
295e005b5209 new file, from Bruno
Jim Meyering <jim@meyering.net>
parents:
diff changeset
187 break;
295e005b5209 new file, from Bruno
Jim Meyering <jim@meyering.net>
parents:
diff changeset
188 }
295e005b5209 new file, from Bruno
Jim Meyering <jim@meyering.net>
parents:
diff changeset
189 }
295e005b5209 new file, from Bruno
Jim Meyering <jim@meyering.net>
parents:
diff changeset
190
295e005b5209 new file, from Bruno
Jim Meyering <jim@meyering.net>
parents:
diff changeset
191 return codeset;
295e005b5209 new file, from Bruno
Jim Meyering <jim@meyering.net>
parents:
diff changeset
192 }