[w3m-dev 04240] nl_langinfo() requires setlocale()

[email protected] (Hironori SAKAMOTO) Fri, 18 May 2007 23:20:39 +0900
Newsgroups gmane.comp.web.w3m.devel
Message-ID <[email protected]>
$B:dK\$G$9!#(B

#define HAVE_LANGINFO_CODESET $B$+$D(B #undef ENABLE_NLS $B$N>l9g$K(B
setlocale() $B$,8F$P$l$F$$$J$$$?$a$K!"(Bnl_langinfo() $B$,<:GT$7$F$$$?(B
$B$N$G=$@5$7$^$7$?!#(B
($B$b$&$"$^$jL5$$$H;W$$$^$9$,!"(Bnl_langinfo() $B$,Ie$C$F$$$k(B OS $B$b(B
 $BB8:_$7$?$N$G(B US-ASCII $B$rJV$7$?>l9g$O!"0JA0$N(B nl_langinfo() $B$,(B
 $BL5$$$N>l9g$N%3!<%I$r;H$&MM$K$7$F$_$^$7$?!#(B)

$B$"$H!"(B#if ENABLE_NLS $B"*(B #ifdef ENABLE_NLS $B$H$+!"(B#ifdef USE_M17N
$B$G0O$`I,MW$,$"$kItJ,$r=$@5$7$^$7$?!#(B
-----------------------------------
$B:dK\(B $B9@B'(B <[email protected]>

--- fm.h.orig	Fri May 18 23:09:01 2007
+++ fm.h	Fri May 18 23:09:17 2007
@@ -53,7 +53,7 @@
 #define setlocale(category, locale)	/* empty */
 #endif
 
-#if ENABLE_NLS
+#ifdef ENABLE_NLS
 #include <libintl.h>
 #define _(String) gettext (String)
 #define N_(String) (String)
--- main.c.orig	Fri May 18 22:49:36 2007
+++ main.c	Fri May 18 22:54:50 2007
@@ -383,8 +383,10 @@
 #endif
 #endif
     GC_init();
-#if ENABLE_NLS
+#if defined(ENABLE_NLS) || (defined(USE_M17N) && defined(HAVE_LANGINFO_CODESET))
     setlocale(LC_ALL, "");
+#endif
+#ifdef ENABLE_NLS
     bindtextdomain(PACKAGE, LOCALEDIR);
     textdomain(PACKAGE);
 #endif
--- menu.c.orig	Fri May 18 22:49:39 2007
+++ menu.c	Fri May 18 22:50:31 2007
@@ -1711,7 +1711,7 @@
 #ifdef USE_M17N
     if (!MainMenuEncode) {
 	MenuItem *item;
-#if ENABLE_NLS
+#ifdef ENABLE_NLS
 	/* FIXME: charset that gettext(3) returns */
 	MainMenuCharset = SystemCharset;
 #endif
--- rc.c.orig	Fri May 18 22:49:46 2007
+++ rc.c	Fri May 18 22:52:08 2007
@@ -790,9 +790,11 @@
     char *t = NULL;
     char *cmt;
 
-#if ENABLE_NLS
+#ifdef USE_M17N
+#ifdef ENABLE_NLS
     OptionCharset = SystemCharset;	/* FIXME */
 #endif
+#endif
 
     fputs("\nconfiguration parameters\n", fp);
     for (j = 0; sections[j].name != NULL; j++) {
@@ -1310,10 +1312,10 @@
     if (optionpanel_str == NULL)
 	optionpanel_str = Sprintf(optionpanel_src1, w3m_version,
 			      html_quote(localCookie()->ptr), _(CMT_HELPER));
-#if ENABLE_NLS
+#ifdef USE_M17N
+#ifdef ENABLE_NLS
     OptionCharset = SystemCharset;	/* FIXME */
 #endif
-#ifdef USE_M17N
     if (!OptionEncode) {
 	optionpanel_str =
 	    wc_Str_conv(optionpanel_str, OptionCharset, InnerCharset);
--- libwc/charset.c.orig	Fri May 18 22:47:45 2007
+++ libwc/charset.c	Fri May 18 23:07:04 2007
@@ -376,7 +376,8 @@
 #ifdef HAVE_LANGINFO_CODESET
     {
 	char *cs = nl_langinfo(CODESET);
-	return wc_charset_to_ces(cs);
+	if (cs && strcmp(cs, "US-ASCII"))
+	    return wc_charset_to_ces(cs);
     }
 #endif
     for (n = 0; *p && *p != '.' && n < 5; p++) {