[#32945] Shift_JIS variants and UTF-16 support — "U.Nakamura" <usa@...>

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

22 messages 2008/01/07
[#32953] Re: Shift_JIS variants and UTF-16 support — Martin Duerst <duerst@...> 2008/01/07

中村さん、こんにちは。

[#32955] Re: Shift_JIS variants and UTF-16 support — Yukihiro Matsumoto <matz@...> 2008/01/07

まつもと ゆきひろです

[#32959] Re: Shift_JIS variants and UTF-16 support — "NARUSE, Yui" <naruse@...> 2008/01/07

成瀬です。

[#32960] Re: Shift_JIS variants and UTF-16 support — Yukihiro Matsumoto <matz@...> 2008/01/07

まつもと ゆきひろです

[#32992] ASCII is alias of US-ASCII; replica of dummy encoding is not a dummy — "NARUSE, Yui" <naruse@...>

成瀬です。

18 messages 2008/01/08
[#32994] Re: ASCII is alias of US-ASCII; replica of dummy encoding is not a dummy — Yukihiro Matsumoto <matz@...> 2008/01/09

まつもと ゆきひろです

[#32995] Re: ASCII is alias of US-ASCII; replica of dummy encoding is not a dummy — Martin Duerst <duerst@...> 2008/01/09

At 18:13 08/01/09, Yukihiro Matsumoto wrote:

[#33011] Re: ASCII is alias of US-ASCII; replica of dummy encoding is not a dummy — "NARUSE, Yui" <naruse@...> 2008/01/11

成瀬です。

[#33012] Re: ASCII is alias of US-ASCII; replica of dummy encoding is not a dummy — Yukihiro Matsumoto <matz@...> 2008/01/11

まつもと ゆきひろです

[#33014] Re: ASCII is alias of US-ASCII; replica of dummy encoding is not a dummy — "NARUSE, Yui" <naruse@...> 2008/01/11

成瀬です。

[#33015] Re: ASCII is alias of US-ASCII; replica of dummy encoding is not a dummy — Yukihiro Matsumoto <matz@...> 2008/01/11

まつもと ゆきひろです

[#33239] Re: [ruby-cvs:22386] Ruby:r15149 (trunk): * string.c (rb_str_each_char): move forward. — Tanaka Akira <akr@...>

In article <200801210259.m0L2x3CW017171@ci.ruby-lang.org>,

11 messages 2008/01/21
[#33240] Re: [ruby-cvs:22386] Ruby:r15149 (trunk): * string.c (rb_str_each_char): move forward. — Nobuyoshi Nakada <nobu@...> 2008/01/21

なかだです。

[#33303] Time#strftimeのエンコーディング — rubikitch@...

るびきちです。

13 messages 2008/01/23
[#33305] Re: Time#strftimeのエンコーディング — Yukihiro Matsumoto <matz@...> 2008/01/23

まつもと ゆきひろです

[#33368] summary of script encoding — "U.Nakamura" <usa@...>

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

22 messages 2008/01/25
[#33375] Re: summary of script encoding — Yukihiro Matsumoto <matz@...> 2008/01/25

まつもと ゆきひろです

[#33376] Re: summary of script encoding — "U.Nakamura" <usa@...> 2008/01/25

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

[#33387] HashからStructを作る — rubikitch@...

るびきちです。

19 messages 2008/01/25
[#33455] Re: HashからStructを作る — Yukihiro Matsumoto <matz@...> 2008/01/28

まつもと ゆきひろです

[#33505] Re: HashからStructを作る — rubikitch@... 2008/01/29

From: Yukihiro Matsumoto <matz@ruby-lang.org>

[#33507] Re: HashからStructを作る — Yukihiro Matsumoto <matz@...> 2008/01/29

まつもと ゆきひろです

[#33508] Re: HashからStructを作る — rubikitch@... 2008/01/29

From: Yukihiro Matsumoto <matz@ruby-lang.org>

[#33433] Win32OLE: set encoding to OLE string — "U.Nakamura" <usa@...>

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

16 messages 2008/01/28

[#33461] Failed to make ruby-1.8.6-p111 on MacOSX 10.5(Leopard) — MORITA Hideyuki <h-morita@...>

=1B$B?9ED$H?=3D$7$^$9!#=1B(B

19 messages 2008/01/28
[#33473] Re: Failed to make ruby-1.8.6-p111 on MacOSX 10.5(Leopard) — Nobuyoshi Nakada <nobu@...> 2008/01/28

なかだです。

[#33503] Re: Failed to make ruby-1.8.6-p111 on MacOSX 10.5(Leopard) — MORITA Hideyuki <h-morita@...> 2008/01/29

森田です。

[#33514] Re: Failed to make ruby-1.8.6-p111 on MacOSX 10.5(Leopard) — Nobuyoshi Nakada <nobu@...> 2008/01/29

なかだです。

[#33518] Re: Failed to make ruby-1.8.6-p111 on MacOSX 10.5(Leopard) — MORITA Hideyuki <h-morita@...> 2008/01/30

森田です。

[#33545] Re: Failed to make ruby-1.8.6-p111 on MacOSX 10.5(Leopard) — Ryutaro Amano <wn9r-amn@...> 2008/01/31

天野竜太郎と申します。

[#33546] Re: Failed to make ruby-1.8.6-p111 on MacOSX 10.5(Leopard) — MORITA Hideyuki <h-morita@...> 2008/01/31

森田です。

[#33547] Re: Failed to make ruby-1.8.6-p111 on MacOSX 10.5(Leopard) — Ryutaro Amano <wn9r-amn@...> 2008/01/31

天野です。

[#33551] Re: Failed to make ruby-1.8.6-p111 on MacOSX 10.5(Leopard) — MORITA Hideyuki <h-morita@...> 2008/01/31

森田です。

[#33488] 現在の script encoding の値を得る方法は? — Hidetoshi NAGAI <nagai@...>

永井@知能.九工大です.

20 messages 2008/01/29
[#33491] Re: 現在の script encoding の値を得る方法は? — Yukihiro Matsumoto <matz@...> 2008/01/29

まつもと ゆきひろです

[#33500] Re: 現在の script encoding の値を得る方法は? — Hidetoshi NAGAI <nagai@...> 2008/01/29

永井@知能.九工大です.

[#33501] Re: 現在の script encoding の値を得る方法は? — "NARUSE, Yui" <naruse@...> 2008/01/29

成瀬です。

[#33515] Re: 現在の script encoding の値を得る方法は? — Hidetoshi NAGAI <nagai@...> 2008/01/30

永井@知能.九工大です.

[#33516] Re: 現在の script encoding の値を得る方法は? — "NARUSE, Yui" <naruse@...> 2008/01/30

成瀬です。

[#33519] Re: 現在の script encoding の値を得る方法は? — Hidetoshi NAGAI <nagai@...> 2008/01/30

永井@知能.九工大です.

[#33522] Re: 現在の script encoding の値を得る方法は? — "NARUSE, Yui" <naruse@...> 2008/01/30

成瀬です。

[ruby-dev:33223] Re: Binary String

From: Hidetoshi NAGAI <nagai@...>
Date: 2008-01-20 17:13:54 UTC
List: ruby-dev #33223
永井@知能.九工大です.

先のメールに少し補足します.

From: Hidetoshi NAGAI <nagai@ai.kyutech.ac.jp>
Subject: [ruby-dev:33202] Re: Binary String
Date: Sun, 20 Jan 2008 06:58:41 +0900
Message-ID: <20080120.065836.74742027.nagai@ai.kyutech.ac.jp>

> 永井@知能.九工大です.
> 
> From: Yukihiro Matsumoto <matz@ruby-lang.org>
> Subject: [ruby-dev:33193] Re: Binary String
> Date: Sun, 20 Jan 2008 02:28:17 +0900
> Message-ID: <E1JGHUM-0004pa-8E@x61.netlab.jp>
> > 「一番すっきり」という基準がよくわからないのですが、私の主観
> > ではわからないものは全部「ASCII-8BIT」というのが一番すっきり
> > しています。
> 
> わからないものとわかる or わかるとしていいものとの両方に
> ASCII-8BIT が付くことがあるように見受けられるので...
> 
> 「何でこれが ASCII-8BIT になっちゃうの!」というケースが
> 一切無くなるのであれば,ASCII-8BIT でもいいんですが.

簡単に言ってしまうと,
「わからないものについては『わからない』って正直に言っちゃおうよ」
って話です.
そうすれば「あれにすべき」だとか「勝手に与えるべきではない」だとかで
ゴタゴタしないでしょうし,未定義を扱いたい人もそうでない人も
どちらも納得できるようにできるかもと思ってます.

> > なんだかえらく複雑ですが、default_undefinedをプログラム中から
> > 変更できるならそれは一種の大域変数なので面倒な「状態」を導入
> > することになります。スレッドセーフじゃなくなるし。それはあま
> 
> 実装の問題はよく分かっていないのですが.そうなんですか?

こんな感じのことを考えてたんですが...
------------------------------------------------------------
$ irb19
irb(main):001:0> s = '感じ'
=> "感じ"
irb(main):002:0> s.encoding
=> #<Encoding:EUC-JP>
irb(main):003:0> s2 = s.dup
=> "感じ"
irb(main):004:0> s2.force_encoding('UNDEFINED-8BIT')
=> "\xB4\xB6\xA4\xB8"
irb(main):005:0> Encoding.default_undefined
=> #<Encoding:ASCII-8BIT>
irb(main):006:0> Encoding.default_undefined = 'EUC-JP'
=> "EUC-JP"
irb(main):007:0> Encoding.default_undefined
=> #<Encoding:EUC-JP>
irb(main):008:0> s2
=> "感じ"
irb(main):009:0> s2.encoding
=> #<Encoding:UNDEFINED-8BIT>
irb(main):010:0> Encoding.default_undefined = 'ASCII-8BIT'
=> "ASCII-8BIT"
irb(main):011:0> s2
=> "\xB4\xB6\xA4\xB8"
irb(main):012:0> s2.encoding
=> #<Encoding:UNDEFINED-8BIT>
irb(main):013:0>
------------------------------------------------------------
ここでは UNDEFINED-8BIT への force_encoding を許してますが,
これは禁止してもいいのかなと思ってます.

上記動作のためのパッチは以下の通りです.
無茶なことをやってますかね?(^_^;

ついでに ENC_ALIAS("BINARY", "ASCII-8BIT") ではなく
ENC_REPLICATE("BINARY", "ASCII-8BIT") なら十分満足なんですが...

Index: encoding.c
===================================================================
--- encoding.c	(revision 15145)
+++ encoding.c	(working copy)
@@ -313,6 +313,43 @@
     return enc_replicate(idx, name, rb_enc_from_index(origidx));
 }
 
+static char* UNDEFINED_ENC = "UNDEFINED-8BIT";
+
+static VALUE
+get_default_undefined(VALUE self)
+{
+    int idx;
+
+    idx = rb_enc_find_index(UNDEFINED_ENC);
+    if (idx < 0) {
+	rb_raise(rb_eArgError, "can't find encoding name - %s", UNDEFINED_ENC);
+    }
+    return enc_base_encoding(rb_enc_from_encoding(enc_table.list[idx].enc));
+}
+
+static VALUE
+set_default_undefined(VALUE klass, VALUE enc)
+{
+    int idx;
+    rb_encoding *encoding;
+
+    if (SYMBOL_P(enc)) enc = rb_id2str(SYM2ID(enc));
+    idx = rb_enc_find_index(StringValueCStr(enc));
+    if (idx < 0) {
+	rb_raise(rb_eArgError, "unknown encoding name - %s", RSTRING_PTR(enc));
+    }
+    encoding = rb_enc_from_index(idx);
+
+    idx = rb_enc_find_index(UNDEFINED_ENC);
+    if (idx < 0) {
+	rb_raise(rb_eArgError, "can't find encoding name - %s", UNDEFINED_ENC);
+    }
+    enc_register_at(idx, UNDEFINED_ENC, encoding);
+    set_base_encoding(idx, encoding);
+
+    return rb_enc_from_encoding(encoding);
+}
+
 int
 rb_define_dummy_encoding(const char *name)
 {
@@ -1209,6 +1246,9 @@
     rb_define_method(rb_cEncoding, "_dump", enc_dump, -1);
     rb_define_singleton_method(rb_cEncoding, "_load", enc_load, 1);
 
+    rb_define_singleton_method(rb_cEncoding, "default_undefined", get_default_undefined, 0);
+    rb_define_singleton_method(rb_cEncoding, "default_undefined=", set_default_undefined, 1);
+
     rb_define_singleton_method(rb_cEncoding, "default_external", get_default_external, 0);
     rb_define_singleton_method(rb_cEncoding, "locale_charmap", rb_locale_charmap, 0);
 
Index: enc/ascii.c
===================================================================
--- enc/ascii.c	(revision 15145)
+++ enc/ascii.c	(working copy)
@@ -48,6 +48,7 @@
   onigenc_always_true_is_allowed_reverse_match
 };
 ENC_ALIAS("BINARY", "ASCII-8BIT");
+ENC_REPLICATE("UNDEFINED-8BIT", "ASCII-8BIT");
 ENC_REPLICATE("IBM437", "ASCII-8BIT");
 ENC_ALIAS("CP437", "IBM437");
 ENC_REPLICATE("IBM737", "ASCII-8BIT");


-- 
                                       永井 秀利 (九工大 知能情報)
                                           nagai@ai.kyutech.ac.jp

In This Thread