* encoding.c (rb_filesystem_encoding, rb_locale_charmap): uses

codepage on cygwin.  [ruby-core:20994]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@21311 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
nobu 2009-01-04 06:41:43 +00:00
Родитель 775529991f
Коммит ef7057fe2f
3 изменённых файлов: 19 добавлений и 5 удалений

Просмотреть файл

@ -1,3 +1,8 @@
Sun Jan 4 15:41:37 2009 Nobuyoshi Nakada <nobu@ruby-lang.org>
* encoding.c (rb_filesystem_encoding, rb_locale_charmap): uses
codepage on cygwin. [ruby-core:20994]
Sun Jan 4 11:58:43 2009 Nobuyoshi Nakada <nobu@ruby-lang.org>
* numeric.c (ruby_float_step): extracted from num_step().

Просмотреть файл

@ -565,7 +565,8 @@ beos*|haiku*) ac_cv_func_link=no
esac
LIBS="$LIBS" # m lib is include in root under BeOS/Haiku
;;
cygwin*) ;;
cygwin*) ac_cv_header_langinfo_h=no # nl_langinfo(CODESET) returns US-ASCII regardless locale.
;;
mingw*) LIBS="-lshell32 -lws2_32 $LIBS"
ac_cv_header_a_out_h=no
ac_cv_header_pwd_h=no

Просмотреть файл

@ -13,11 +13,19 @@
#include "ruby/encoding.h"
#include "regenc.h"
#include <ctype.h>
#ifdef HAVE_LANGINFO_H
#ifndef NO_LOCALE_CHARMAP
#if defined __CYGWIN__
#include <windows.h>
#elif defined HAVE_LANGINFO_H
#include <langinfo.h>
#endif
#endif
#include "ruby/util.h"
#if defined _WIN32 || defined __CYGWIN__
#define USE_CODEPAGE_LOCALE 1
#endif
static ID id_encoding;
VALUE rb_cEncoding;
static VALUE rb_encoding_list;
@ -1025,7 +1033,7 @@ rb_encoding *
rb_filesystem_encoding(void)
{
rb_encoding *enc;
#if defined _WIN32
#if defined USE_CODEPAGE_LOCALE
enc = rb_locale_encoding();
#elif defined __APPLE__
enc = rb_enc_find("UTF8-MAC");
@ -1204,12 +1212,12 @@ rb_locale_charmap(VALUE klass)
{
#if defined NO_LOCALE_CHARMAP
return rb_usascii_str_new2("ASCII-8BIT");
#elif defined USE_CODEPAGE_LOCALE
return rb_sprintf("CP%d", GetACP());
#elif defined HAVE_LANGINFO_H
char *codeset;
codeset = nl_langinfo(CODESET);
return rb_usascii_str_new2(codeset);
#elif defined _WIN32
return rb_sprintf("CP%d", GetACP());
#else
return Qnil;
#endif