浏览代码

Don't assume we're using the included libintl.

Paul Eggert 23 年之前
父节点
当前提交
61170ee840
共有 1 个文件被更改,包括 15 次插入1 次删除
  1. 15 1
      lib/unicodeio.c

+ 15 - 1
lib/unicodeio.c

@@ -48,6 +48,10 @@ extern int errno;
 # include <iconv.h>
 #endif
 
+#if HAVE_LANGINFO_CODESET && ! USE_INCLUDED_LIBINTL
+# include <langinfo.h>
+#endif
+
 #include "unicodeio.h"
 
 /* When we pass a Unicode character to iconv(), we must pass it in a
@@ -126,8 +130,18 @@ unicode_to_mb (unsigned int code,
 
   if (!initialized)
     {
+      const char *charset;
+
+#if USE_INCLUDED_LIBINTL
       extern const char *locale_charset PARAMS ((void));
-      const char *charset = locale_charset ();
+      charset = locale_charset ();
+#else
+# if HAVE_LANGINFO_CODESET
+      charset = nl_langinfo (CODESET);
+# else
+      charset = "";
+# endif
+#endif
 
       is_utf8 = !strcmp (charset, UTF8_NAME);
 #if HAVE_ICONV