[#41278] [BUG:1.9] BINARY should not be ASCII-compatible — Yugui <yugui@...>

WXVndWkbJEIkRyQ5ISMbKEIKCgo+IBskQiRHISIkKiQqJGAkTSQzJDMkXiRHJE41RE9AJEclKyVQ

15 messages 2010/05/11

[#41407] [Bug #3339] win32ole test failure — Usaku NAKAMURA <redmine@...>

Bug #3339: win32ole test failure

20 messages 2010/05/25
[#41411] Re: [Bug #3339] win32ole test failure — Masaki Suketa <masaki.suketa@...> 2010/05/25

助田です。

[#41412] Re: [Bug #3339] win32ole test failure — "U.Nakamura" <usa@...> 2010/05/25

こんにちは、なかむら(う)です。

[ruby-dev:41461] Re: [Bug #3360](Closed) rdoc fails when including BOM

From: Nobuyoshi Nakada <nobu@...>
Date: 2010-05-29 16:11:37 UTC
List: ruby-dev #41461
なかだです。

At Sun, 30 May 2010 00:36:49 +0900,
whiteleaf wrote in [ruby-dev:41460]:
> --charset オプションは「html の charset を指定する」という解釈ですと、
> encode しないほうが正しい挙動といえなくもないですが、やっぱり
> 2つ以上の異なるエンコーディングのファイルを対象にする場合は
> charset と中身のエンコーディングは揃えてほしいところです。

そのへんが確信がなかったこともあり、別のissueと考えてそのままに
しました。

> それと遠藤さんのパッチですと、
> ASCII-8BIT のデータを encode してしまう可能性がある(Encoding::UndefinedConversionError)
> ので、force_encoding をした場合のみ encode するべきです。
> (私のパッチではそう処理していたはずです)

BOMもmagic commentもない場合は、US-ASCIIとして処理すべきでしょう。


diff --git a/lib/rdoc/rdoc.rb b/lib/rdoc/rdoc.rb
index 3c08b5e..d605a26 100644
--- a/lib/rdoc/rdoc.rb
+++ b/lib/rdoc/rdoc.rb
@@ -411,9 +411,8 @@ The internal error was:
       if /coding[=:]\s*([^\s;]+)/i =~ content[%r"\A(?:#!.*\n)?.*\n"]
         enc = ::Encoding.find($1)
       end
-      if enc ||= (Encoding::UTF_8 if utf8)
-        content.force_encoding(enc)
-      end
+      enc ||= (utf8 ? Encoding::UTF_8 : Encoding::US_ASCII)
+      content.encode!(@options.charset, enc)
     end
 
     content


-- 
--- 僕の前にBugはない。
--- 僕の後ろにBugはできる。
    中田 伸悦

In This Thread