[#45518] [ruby-trunk - Bug #6302][Open] irb で math-mode 中でも conf.math_mode に nil を代入すると math-mode を抜ける事ができる — "sho-h (Sho Hashimoto)" <sho-h@...>
5 messages
2012/04/15
[#45530] [ruby-trunk - Feature #6311][Open] memmem()によるrb_memsearch()の高速化 — "Glass_saga (Masaki Matsushita)" <glass.saga@...>
12 messages
2012/04/17
[#45533] Re: [ruby-cvs:42559] naruse:r35383 (trunk): Revert r35339-35343 because of no tests. — Yukihiro Matsumoto <matz@...>
まつもと ゆきひろです
6 messages
2012/04/18
[#45534] Re: [ruby-cvs:42559] naruse:r35383 (trunk): Revert r35339-35343 because of no tests.
— Hiroshi Nakamura <nahi@...>
2012/04/18
(2012/04/19 2:02), Yukihiro Matsumoto wrote:
[#45535] Re: [ruby-cvs:42559] naruse:r35383 (trunk): Revert r35339-35343 because of no tests.
— "NARUSE, Yui" <naruse@...>
2012/04/19
2012年4月19日6:10 Hiroshi Nakamura <nahi@ruby-lang.org>:
[#45541] drb SSL test timeout — Tanaka Akira <akr@...>
Debian wheezy において、test_drbssl.rb のテストで 100秒の timeout にひっかかります。
10 messages
2012/04/21
[#45542] Re: drb SSL test timeout
— Masatoshi SEKI <m_seki@...>
2012/04/21
咳といいます。
[#45547] Re: drb SSL test timeout
— Tanaka Akira <akr@...>
2012/04/22
2012年4月22日6:52 Masatoshi SEKI <m_seki@mva.biglobe.ne.jp>:
[#45548] Re: drb SSL test timeout
— Masatoshi SEKI <m_seki@...>
2012/04/22
咳といいます。
[#45571] [ruby-trunk - Feature #6349][Open] Iconv の復活を希望します — "kyanagi (Kouhei Yanagita)" <redmine@...>
7 messages
2012/04/24
[#45572] Re: [ruby-dev:45571] [ruby-trunk - Feature #6349][Open] Iconv の復活を希望します
— "Martin J. Dürst" <duerst@...>
2012/04/24
やなぎたさん、こんにちは。
[ruby-dev:45582] [ruby-trunk - Bug #4281] irb don't start up when Encoding.defalut_internal isn't 'utf-8'
From:
"mame (Yusuke Endoh)" <mame@...>
Date:
2012-04-25 10:45:32 UTC
List:
ruby-dev #45582
Issue #4281 has been updated by mame (Yusuke Endoh).
Assignee changed from yugui (Yuki Sonoda) to keiju (Keiju Ishitsuka)
Target version changed from 1.9.3 to 2.0.0
いしつかさん
Yugui さんから反応ないみたいなんで、いしつかさんの方で対応して頂けますでしょうか。
とりあえず trunk でお願いします。
バックポートが必要かどうかは、trunk の後で考えましょう。
--
Yusuke Endoh <mame@tsg.ne.jp>
----------------------------------------
Bug #4281: irb don't start up when Encoding.defalut_internal isn't 'utf-8'
https://bugs.ruby-lang.org/issues/4281#change-26192
Author: authorNari (Narihiro Nakamura)
Status: Assigned
Priority: Normal
Assignee: keiju (Keiju Ishitsuka)
Category: lib
Target version: 2.0.0
ruby -v: ruby 1.9.2p136 (2010-12-25 revision 30365) [i686-linux]
=begin
nariです。
以下のようにすると irb が起動しません。
$ ruby -S -E cp932:cp932 irb
/home/nari/.rvm/rubies/ruby-1.9.2-p136/lib/ruby/1.9.1/irb/locale.rb:135:in `eval': /home/nari/.rvm/rubies/ruby-1.9.2-p136/lib/ruby/1.9.1/irb/lc/ja/error.rb:16: invalid multibyte char (UTF-8) (SyntaxError)
/home/nari/.rvm/rubies/ruby-1.9.2-p136/lib/ruby/1.9.1/irb/lc/ja/error.rb:16: invalid multibyte char (UTF-8)
/home/nari/.rvm/rubies/ruby-1.9.2-p136/lib/ruby/1.9.1/irb/lc/ja/error.rb:16: syntax error, unexpected $end, expecting keyword_end
def_exception :UnrecognizedSwitch, 'スイッチ(%s)が分りません'
^
from /home/nari/.rvm/rubies/ruby-1.9.2-p136/lib/ruby/1.9.1/irb/locale.rb:135:in `real_load'
from /home/nari/.rvm/rubies/ruby-1.9.2-p136/lib/ruby/1.9.1/irb/locale.rb:125:in `block in load'
from /home/nari/.rvm/rubies/ruby-1.9.2-p136/lib/ruby/1.9.1/irb/locale.rb:123:in `each'
from /home/nari/.rvm/rubies/ruby-1.9.2-p136/lib/ruby/1.9.1/irb/locale.rb:123:in `load'
from /home/nari/.rvm/rubies/ruby-1.9.2-p136/lib/ruby/1.9.1/irb/init.rb:122:in `init_error'
from /home/nari/.rvm/rubies/ruby-1.9.2-p136/lib/ruby/1.9.1/irb/init.rb:17:in `setup'
from /home/nari/.rvm/rubies/ruby-1.9.2-p136/lib/ruby/1.9.1/irb.rb:53:in `start'
from /home/nari/.rvm/rubies/ruby-1.9.2-p136/bin/irb:16:in `<main>'
再現コードは以下です。
$ cat /tmp/t.rb
require "irb"
Encoding.default_internal = "cp932"
Encoding.default_external = "cp932"
# pathはRubyのインストール先に合わせて変えてください
path = "/home/nari/.rvm/rubies/ruby-1.9.2-p136/lib/ruby/1.9.1/irb/lc/ja/error.rb"
src = IRB::MagicFile.open(path){|f| f.read}
p src
eval(src)
$ ruby /tmp/t.rb
#<Encoding:Windows-31J>
/tmp/t.rb:8:in `eval': (eval):16: invalid multibyte char (UTF-8) (SyntaxError)
(eval):16: invalid multibyte char (UTF-8)
(eval):16: syntax error, unexpected $end, expecting keyword_end
def_exception :UnrecognizedSwitch, 'スイッチ(%s)が分りません'
^
from /tmp/t.rb:8:in `<main>'
cp932に変換された文字列(src)の中に、utf-8を指定するマジックコメントが入っ
ており、utf-8の文字列としてeval()されるのが原因のようです。
Encoding.default_internalが指定されるようなケースまで標準ライブラリが対
応する必要はないのかもしれませんが、情報共有の意味も込めて報告しておき
ます。
この問題については以下のパッチで直ることを確認しています。
diff --git a/lib/irb/magic-file.rb b/lib/irb/magic-file.rb
index 8612620..339ed60 100644
--- a/lib/irb/magic-file.rb
+++ b/lib/irb/magic-file.rb
@@ -8,9 +8,10 @@ module IRB
line = io.gets
line = io.gets if line[0,2] == "#!"
encoding = detect_encoding(line)
+ internal_encoding = encoding
encoding ||= default_src_encoding
io.rewind
- io.set_encoding(encoding, nil)
+ io.set_encoding(encoding, internal_encoding)
if block_given?
begin
=end
--
http://bugs.ruby-lang.org/