Actions
Bug #179
closedconfusion about treating filesystem encoding
Description
=begin
こんにちは、なかむら(う)です。
ぶら下げどころが決め切れなかった¶
先日成瀬さんが入れてくださったfilesystem encoding対応ですが、
rb_encodingとencoding indexを混同しています。
rb_encodingの比較が有効なのかどうか確信がなかったので、encoding
indexで統一してみました。
rb_encoding*の比較が有効ならそっちに揃えた方がシンプルにな¶
るとは思います。¶
rb_utf8_encindex()はなんでないんだろう?
Index: io.c
--- io.c (revision 17396)
+++ io.c (working copy)
@@ -4107,16 +4107,16 @@ rb_open_file(int argc, VALUE *argv, VALU
static int fs_encoding;
int fname_encoding = rb_enc_get_index(fname);
if (!fs_encoding)
-
fs_encoding = rb_filesystem_encoding();
- if (rb_usascii_encoding() != fname_encoding
-
&& rb_ascii8bit_encoding() != fname_encoding
-
fs_encoding = rb_enc_to_index(rb_filesystem_encoding());
- if (rb_usascii_encindex() != fname_encoding
-
&& rb_ascii8bit_encindex() != fname_encoding
#if defined APPLE
-
&& rb_utf8_encoding() != fname_encoding
-
&& rb_enc_to_index(rb_utf8_encoding()) != fname_encoding
#endif
&& fs_encoding != fname_encoding) {
static VALUE fs_enc;
if (!fs_enc)
-
fs_enc = rb_enc_from_encoding(fs_encoding);
-
}fs_enc = rb_enc_from_encoding(rb_enc_from_index(fs_encoding)); fname = rb_str_transcode(fname, fs_enc);
}
それでは。
--
U.Nakamura usa@garbagecollect.jp
=end
Updated by naruse (Yui NARUSE) over 16 years ago
- Status changed from Open to Closed
- % Done changed from 0 to 100
=begin
Applied in changeset r17403.
=end
Updated by naruse (Yui NARUSE) over 16 years ago
=begin
成瀬です。
U.Nakamura wrote:
rb_utf8_encindex()はなんでないんだろう?
そういえばこの理由ですが、単に現時点で UTF-8 の index を扱うコードが
Ruby 本体にないからです。
逆にいえば、US-ASCII や ASCII-8BIT があるのは、
string.c とかでそういうコードがあるから。
--
NARUSE, Yui naruse@airemix.jp
=end
Actions
Like0
Like0Like0