[#37248] [Feature:1.9] Enumerator#inspect — "Yusuke ENDOH" <mame@...>

遠藤です。

12 messages 2008/12/02

[#37337] [Feature #841] Object#self — "rubikitch ." <redmine@...>

Feature #841: Object#self

13 messages 2008/12/09

[#37513] Current status of 1.9.1 RC1's issues — "Yugui (Yuki Sonoda)" <yugui@...>

Hi, folks

14 messages 2008/12/20
[#37516] Re: Current status of 1.9.1 RC1's issues — Masatoshi SEKI <m_seki@...> 2008/12/20

咳といいます。

[#37576] [BUG:trunk] encoding for stdio's — "Yugui (Yuki Sonoda)" <yugui@...>

Yuguiです。

11 messages 2008/12/24

[ruby-dev:37421] Re: [Bug #854] Rake::FileList#egrep が動かない

From: "Yugui (Yuki Sonoda)" <yugui@...>
Date: 2008-12-13 08:09:13 UTC
List: ruby-dev #37421
Yuguiです。

okkez _ さんは書きました:
> 以下のような Rakefile を作って Ruby1.9.1 preview2 で動かすと動きません。
> 
> # Rakefile
> # coding: utf-8
> desc 'aaa'
> task :a do
>   p FileList['*.rb'].egrep(/require/)
> end
> 
> カレントディレクトリに SJIS で書かれたファイルが存在する場合にこけました。

これ、
 *.rbをexternal_encoding指定無しで開いてeach_lineして、
 各行に対して/require/.match(line) して、
 マッチしたらその行を出力、ということをやっていて、
  途中でdefault_externalとして壊れている行(cp932文字列リテラル)に出会って

それでArgumentError(invalid byte sequence in UTF-8)になってます。

壊れている文字列とのマッチで例外というのはそれなりにreasonableだと思って
いたんですが、このケースは確かに何か困りそうです。*.rbならまだしもmagic
commentを読めとも言えますが、*.txtの場合だってあるわけです。

これの対応策としてはエンコーディングが不明ならASCII-8BITで開け、というこ
とになりますでしょうか。

-- 
Yugui <yugui@yugui.jp>
http://yugui.jp
私は私をDumpする

In This Thread

Prev Next