New file localcharset.h.
authorBruno Haible <bruno@clisp.org>
Tue, 31 Dec 2002 13:20:21 +0000 (13:20 +0000)
committerBruno Haible <bruno@clisp.org>
Tue, 31 Dec 2002 13:20:21 +0000 (13:20 +0000)
lib/ChangeLog
lib/localcharset.c
lib/localcharset.h [new file with mode: 0644]
lib/unicodeio.c

index 4cbc903..aa2e9fd 100644 (file)
@@ -1,3 +1,9 @@
+2002-12-23  Bruno Haible  <bruno@clisp.org>
+
+       * localcharset.h: New file.
+       * localcharset.c: Include it.
+       * unicodeio.c: Likewise.
+
 2002-12-22  Bruno Haible  <bruno@clisp.org>
 
        * utime.c (utime_null): No need to call ftruncate if the file was
index 2b1564e..dad9730 100644 (file)
@@ -23,6 +23,9 @@
 # include <config.h>
 #endif
 
+/* Specification.  */
+#include "localcharset.h"
+
 #if HAVE_STDDEF_H
 # include <stddef.h>
 #endif
diff --git a/lib/localcharset.h b/lib/localcharset.h
new file mode 100644 (file)
index 0000000..2522e92
--- /dev/null
@@ -0,0 +1,23 @@
+/* Determine a canonical name for the current locale's character encoding.
+   Copyright (C) 2002 Free Software Foundation, Inc.
+
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 2, or (at your option)
+   any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program; if not, write to the Free Software Foundation,
+   Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
+
+/* Determine the current locale's character encoding, and canonicalize it
+   into one of the canonical names listed in config.charset.
+   The result must not be freed; it is statically allocated.
+   If the canonical name cannot be determined, the result is a non-canonical
+   name.  */
+extern const char * locale_charset (void);
index a698ca5..a146569 100644 (file)
@@ -51,6 +51,8 @@ extern int errno;
 #define _(msgid) gettext (msgid)
 #define N_(msgid) msgid
 
+#include "localcharset.h"
+
 /* When we pass a Unicode character to iconv(), we must pass it in a
    suitable encoding. The standardized Unicode encodings are
    UTF-8, UCS-2, UCS-4, UTF-16, UTF-16BE, UTF-16LE, UTF-7.
@@ -127,7 +129,6 @@ unicode_to_mb (unsigned int code,
 
   if (!initialized)
     {
-      extern const char *locale_charset PARAMS ((void));
       const char *charset = locale_charset ();
 
       is_utf8 = !strcmp (charset, UTF8_NAME);