1
0
Fork 0
mirror of https://github.com/ruby/ruby.git synced 2022-11-09 12:17:21 -05:00

ruby.c: fix command line encoding on cygwin

* ruby.c: cygwin does not use w32_cmdvector, command line can be
  other than UTF-8.  [ruby-dev:49519] [Bug #12184]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@54720 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
nobu 2016-04-23 00:03:37 +00:00
parent 4558e2d1b8
commit 88783116e0
3 changed files with 17 additions and 3 deletions

View file

@ -1,3 +1,8 @@
Sat Apr 23 09:03:35 2016 Nobuyoshi Nakada <nobu@ruby-lang.org>
* ruby.c: cygwin does not use w32_cmdvector, command line can be
other than UTF-8. [ruby-dev:49519] [Bug #12184]
Sat Apr 23 01:00:03 2016 Rei Odaira <Rei.Odaira@gmail.com> Sat Apr 23 01:00:03 2016 Rei Odaira <Rei.Odaira@gmail.com>
* configure.in: don't use the system-provided round(3) on AIX. * configure.in: don't use the system-provided round(3) on AIX.

2
ruby.c
View file

@ -396,7 +396,9 @@ translit_char_bin(char *p, int from, int to)
p++; p++;
} }
} }
#endif
#ifdef _WIN32
# define UTF8_PATH 1 # define UTF8_PATH 1
#endif #endif

View file

@ -720,7 +720,8 @@ class TestRubyOptions < Test::Unit::TestCase
end end
end end
if /mswin|mingw/ =~ RUBY_PLATFORM case RUBY_PLATFORM
when /mswin|mingw/
def test_command_line_glob_nonascii def test_command_line_glob_nonascii
bug10555 = '[ruby-dev:48752] [Bug #10555]' bug10555 = '[ruby-dev:48752] [Bug #10555]'
name = "\u{3042}.txt" name = "\u{3042}.txt"
@ -757,9 +758,7 @@ class TestRubyOptions < Test::Unit::TestCase
assert_in_out_err(["-e", "", "test/*"], "", [], [], bug10941) assert_in_out_err(["-e", "", "test/*"], "", [], [], bug10941)
end end
end end
end
if /mswin|mingw/ =~ RUBY_PLATFORM
Ougai = %W[\u{68ee}O\u{5916}.txt \u{68ee 9d0e 5916}.txt \u{68ee 9dd7 5916}.txt] Ougai = %W[\u{68ee}O\u{5916}.txt \u{68ee 9d0e 5916}.txt \u{68ee 9dd7 5916}.txt]
def test_command_line_glob_noncodepage def test_command_line_glob_noncodepage
with_tmpchdir do |dir| with_tmpchdir do |dir|
@ -769,6 +768,14 @@ class TestRubyOptions < Test::Unit::TestCase
assert_in_out_err(["-e", "puts ARGV", "*.txt"], "", ougai) assert_in_out_err(["-e", "puts ARGV", "*.txt"], "", ougai)
end end
end end
when /cygwin/
def test_command_line_non_ascii
assert_separately([{"LC_ALL"=>"ja_JP.SJIS"}, "-", "\u{3042}".encode("SJIS")], <<-"end;")
bug12184 = '[ruby-dev:49519] [Bug #12184]'
a = ARGV[0]
assert_equal([Encoding::SJIS, 130, 160], [a.encoding, *a.bytes], bug12184)
end;
end
end end
def test_script_is_directory def test_script_is_directory