diff options
author | yugui <yugui@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2009-01-15 15:39:56 +0000 |
---|---|---|
committer | yugui <yugui@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2009-01-15 15:39:56 +0000 |
commit | 2f2497ee534fe7cdc5ffab2bda5e7446b9f42b76 (patch) | |
tree | 3f627152b86976f39249d246480e32807b2523ef | |
parent | 2a71b1ca87fbb96e1d4fe6ed598d6e931034d0c4 (diff) |
merges r21517 and r21519 from trunk into ruby_1_9_1.
* configure.in, win32/Makefile.sub (MISSING): added langinfo on mingw
and mswin.
* encoding.c (rb_locale_charmap): use environments on mingw and mswin.
* missing/langinfo.c (nl_langinfo_codeset): MS-Windows Japanese
environment uses Windows-31J derived from Shift_JIS, not EUC-JP.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_9_1@21565 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-rw-r--r-- | ChangeLog | 10 | ||||
-rw-r--r-- | configure.in | 1 | ||||
-rw-r--r-- | encoding.c | 6 | ||||
-rw-r--r-- | missing/langinfo.c | 9 | ||||
-rw-r--r-- | win32/Makefile.sub | 2 |
5 files changed, 21 insertions, 7 deletions
@@ -1,3 +1,13 @@ +Thu Jan 15 13:10:09 2009 Nobuyoshi Nakada <nobu@ruby-lang.org> + + * configure.in, win32/Makefile.sub (MISSING): added langinfo on mingw + and mswin. + + * encoding.c (rb_locale_charmap): use environments on mingw and mswin. + + * missing/langinfo.c (nl_langinfo_codeset): MS-Windows Japanese + environment uses Windows-31J derived from Shift_JIS, not EUC-JP. + Thu Jan 15 12:10:39 2009 NAKAMURA Usaku <usa@ruby-lang.org> * win32/Makefile.sub ($(INSNS), node_name.inc, known_errors.inc, diff --git a/configure.in b/configure.in index 3f4a3e169d..5601e9a408 100644 --- a/configure.in +++ b/configure.in @@ -599,6 +599,7 @@ mingw*) LIBS="-lshell32 -lws2_32 $LIBS" rb_cv_binary_elf=no rb_cv_negative_time_t=no ac_cv_func_fcntl=yes + AC_LIBOBJ([langinfo]) ;; os2-emx*) LIBS="-lm $LIBS" ac_cv_lib_dir_opendir=no;; diff --git a/encoding.c b/encoding.c index 858f4e70e5..141796680e 100644 --- a/encoding.c +++ b/encoding.c @@ -1218,11 +1218,11 @@ rb_locale_charmap(VALUE klass) { #if defined NO_LOCALE_CHARMAP return rb_usascii_str_new2("ASCII-8BIT"); -#elif defined __CYGWIN__ +#elif defined _WIN32 || defined __CYGWIN__ const char *nl_langinfo_codeset(void); const char *codeset = nl_langinfo_codeset(); char cp[sizeof(int) * 3 + 4]; - if (codeset) { + if (!codeset) { snprintf(cp, sizeof(cp), "CP%d", GetConsoleCP()); codeset = cp; } @@ -1231,8 +1231,6 @@ rb_locale_charmap(VALUE klass) char *codeset; codeset = nl_langinfo(CODESET); return rb_usascii_str_new2(codeset); -#elif defined _WIN32 - return rb_sprintf("CP%d", GetConsoleCP()); #else return Qnil; #endif diff --git a/missing/langinfo.c b/missing/langinfo.c index bbc81f5c41..a76000bc77 100644 --- a/missing/langinfo.c +++ b/missing/langinfo.c @@ -36,7 +36,6 @@ #include <string.h> #if defined _WIN32 || defined __CYGWIN__ #include <windows.h> -int snprintf(char *, size_t, const char *, ...); #if defined _WIN32 #define strncasecmp strnicmp #endif @@ -49,6 +48,12 @@ int snprintf(char *, size_t, const char *, ...); * C/POSIX locale. Could as well one day * become "UTF-8". */ +#if defined _WIN32 || defined __CYGWIN__ +#define JA_CODESET "Windows-31J" +#else +#define JA_CODESET "EUC-JP" +#endif + #define digit(x) ((x) >= '0' && (x) <= '9') #define strstart(s, n) (strncasecmp(s, n, strlen(n)) == 0) @@ -94,7 +99,7 @@ nl_langinfo_codeset(void) if (strstart(l, "zh_TW")) return "Big5"; if (strstart(l, "zh_HK")) return "Big5HKSCS"; /* no MIME charset */ if (strstart(l, "zh")) return "GB2312"; - if (strstart(l, "ja")) return "EUC-JP"; + if (strstart(l, "ja")) return JA_CODESET; if (strstart(l, "ko")) return "EUC-KR"; if (strstart(l, "ru")) return "KOI8-R"; if (strstart(l, "uk")) return "KOI8-U"; diff --git a/win32/Makefile.sub b/win32/Makefile.sub index 124b438f64..498dec6d72 100644 --- a/win32/Makefile.sub +++ b/win32/Makefile.sub @@ -177,7 +177,7 @@ EXTLIBS = LIBS = oldnames.lib user32.lib advapi32.lib shell32.lib ws2_32.lib $(EXTLIBS) !endif !if !defined(MISSING) -MISSING = acosh.obj cbrt.obj crypt.obj erf.obj lgamma_r.obj strlcat.obj strlcpy.obj tgamma.obj win32.obj +MISSING = acosh.obj cbrt.obj crypt.obj erf.obj lgamma_r.obj strlcat.obj strlcpy.obj tgamma.obj win32.obj langinfo.obj !endif ARFLAGS = -machine:$(MACHINE) -out: |