[#32910] NKF,Kconv — Kazuhiro NISHIYAMA <zn@...>
西山和広です。
[#32913] openの"b"とencoding — Kazuhiro NISHIYAMA <zn@...>
西山和広です。
[#32922] SEGV by regexp match in while loop — Tanaka Akira <akr@...>
Debian GNU/Linux (sarge) の gcc-3.4 を使ってビルドした ruby
[#32935] queue and timeout — Tanaka Akira <akr@...>
timeout で Queue#pop に時間制限をつけた時、タイムアウト時に
まつもと ゆきひろです
[#32940] ripper cannot build on win32 — yukimi_sake <yukimi_sake@...>
雪見酒です。
[#32945] Shift_JIS variants and UTF-16 support — "U.Nakamura" <usa@...>
こんにちは、なかむら(う)です。
中村さん、こんにちは。
まつもと ゆきひろです
成瀬です。
まつもと ゆきひろです
こんにちは、なかむら(う)です。
成瀬です。
こんにちは、なかむら(う)です。
成瀬です。
こんにちは、なかむら(う)です。
まつもと ゆきひろです
[#32946] replica と alias の違い(encoding) — KIMURA Koichi <kimura.koichi@...>
木村です。
[#32987] error with open-uri (instance_eval?) — "U.Nakamura" <usa@...>
こんにちは、なかむら(う)です。
[#32988] Re: [ruby-cvs:22194] Ruby:r14957 (trunk): * encoding.c (rb_enc_init): UTF-{16,32}{BE,LE} are not builtin. — Yukihiro Matsumoto <matz@...>
まつもと ゆきひろです
[#32992] ASCII is alias of US-ASCII; replica of dummy encoding is not a dummy — "NARUSE, Yui" <naruse@...>
成瀬です。
まつもと ゆきひろです
At 18:13 08/01/09, Yukihiro Matsumoto wrote:
成瀬です。
まつもと ゆきひろです
成瀬です。
まつもと ゆきひろです
なかだです。
まつもと ゆきひろです
[#32996] binmode and ASCII-8BIT — Kazuhiro NISHIYAMA <zn@...>
西山和広です。
[#33069] Re: [ruby-cvs:22244] Ruby:r15007 (trunk): * enc/make_encdb.rb: added. search enc/*.c and make encoding database. — Yukihiro Matsumoto <matz@...>
まつもと ゆきひろです
まつもと ゆきひろです
[#33076] Encoding.compatible? and dummy encodings — sheepman <sheepman@...>
こんにちは sheepman です。
成瀬です。
まつもと ゆきひろです
[#33078] NEW REPLICA ENCODINGS AND ENCODING ALIASES — "NARUSE, Yui" <naruse@...>
成瀬です。
[#33101] String#valid_encoding? shoud be strict? — Masayoshi Takahashi <maki@...>
高橋征義です。1.9のエンコーディングとString#valid_encoding?について。
[#33139] Bignum#* might invoke GC parallelly? — "Yusuke ENDOH" <mame@...>
遠藤と申します。
[#33156] default script encoding and -K option — sheepman <sheepman@...>
こんばんは sheepman です。
こんにちは、なかむら(う)です。
まつもと ゆきひろです
[#33164] default encoding for Marshal.load — "Shugo Maeda" <shugo@...>
前田です。
まつもと ゆきひろです
[#33185] コンパイルの問題 (r15218) — Martin Duerst <duerst@...>
r15128 当たりで (実はもう少し前から) コンパイルできなくなりました。
[#33218] Re: Ruby1.9String バイト列へのインデックス アクセス — "Hisanori Kiryu" <hkiryu@...>
> ちなみに、byte のではなく bytes の方が妥当だと思います。
[#33224] printf "%0x" — Tanaka Akira <akr@...>
printf の %0x に負の整数を与えると、値によって .. がついたり
[#33226] [PATCH] warnings of enc/trans/utf_16_32.c — Nobuyoshi Nakada <nobu@...>
なかだです。
[#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>,
なかだです。
In article <20080121065650.55F60E0662@mail.bc9.jp>,
なかだです。
まつもと ゆきひろです
[#33247] requests to transcode — "U.Nakamura" <usa@...>
こんにちは、なかむら(う)です。
[#33303] Time#strftimeのエンコーディング — rubikitch@...
るびきちです。
まつもと ゆきひろです
なかだです。
西山和広です。
[#33368] summary of script encoding — "U.Nakamura" <usa@...>
こんにちは、なかむら(う)です。
まつもと ゆきひろです
こんにちは、なかむら(う)です。
まつもと ゆきひろです
永井@知能.九工大です.
[#33387] HashからStructを作る — rubikitch@...
るびきちです。
まつもと ゆきひろです
From: Yukihiro Matsumoto <matz@ruby-lang.org>
まつもと ゆきひろです
From: Yukihiro Matsumoto <matz@ruby-lang.org>
まつもと ゆきひろです
From: Yukihiro Matsumoto <matz@ruby-lang.org>
まつもと ゆきひろです
[#33399] regexp match /.../n against to UTF-8 string — Tanaka Akira <akr@...>
以下のように、つけてもいない正規表現の n オプションに関して
[#33400] /#{}/e.encoding — Tanaka Akira <akr@...>
以下のように /#{}/e の encoding が US-ASCII になります。
[#33403] wrapped String#gsub — "Park Ji-In" <tisphie@...>
こんにちは、朴 芝印です。
[#33417] コンパイルの問題 — Martin Duerst <duerst@...>
現在 (r15264 で) コンパイル使用とすると、エラーになります:
At 16:28 08/01/27, you wrote:
[#33433] Win32OLE: set encoding to OLE string — "U.Nakamura" <usa@...>
こんにちは、なかむら(う)です。
成瀬です。
助田です。
こんにちは、なかむら(う)です。
こんにちは、なかむら(う)です。
[#33452] enc/euc_kr.c (euckr_mbc_enc_len) euc_kr.c is also used by CP942 — "NARUSE, Yui" <naruse@...>
成瀬です。
まつもと ゆきひろです
成瀬です。
[#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
なかだです。
森田です。
なかだです。
森田です。
天野竜太郎と申します。
森田です。
天野です。
森田です。
天野です。
森田です。
天野です。
森田です。
天野です。
[#33488] 現在の script encoding の値を得る方法は? — Hidetoshi NAGAI <nagai@...>
永井@知能.九工大です.
まつもと ゆきひろです
永井@知能.九工大です.
成瀬です。
永井@知能.九工大です.
成瀬です。
永井@知能.九工大です.
成瀬です。
In article <47A00E86.4010701@airemix.com>,
成瀬です。
In article <47A03C9D.2090008@airemix.com>,
In article <87hcgvu1ng.fsf@fsij.org>,
[#33521] nkf の CP932 — Martin Duerst <duerst@...>
成瀬さん、皆さん、こんにちは。
[#33548] block parameter of String#gsub — "NARUSE, Yui" <naruse@...>
成瀬です。
まつもと ゆきひろです
[ruby-dev:33011] Re: ASCII is alias of US-ASCII; replica of dummy encoding is not a dummy
成瀬です。
Martin Duerst wrote:
> At 18:13 08/01/09, Yukihiro Matsumoto wrote:
>> まつもと ゆきひろです
>>
>> In message "Re: [ruby-dev:32992] ASCII is alias of US-ASCII; replica of
>> dummy encoding is not a dummy"
>> on Wed, 9 Jan 2008 03:36:27 +0900, "NARUSE, Yui" <naruse@airemix.com> writes:
>>
>> |= ASCII is alias of US-ASCII
>> |
>> |UTF-{16,32}{BE,LE} が組み込まれた絡みで、NKF を修正していて気付いたので
>> |すが、今 ASCII は ASCII-8BIT の alias なのですね。IANA Charaset では
>> |US-ASCII の alias なのですが、少々まずくありませんか。
>>
>> きっと誰も気付かないと思うけど。この点は積極的に意見を持つ人
>> にお任せします。
>
> 気がつかなかったかと思いますが、気をつかれたので、
> IANA Charset Registry の Secondary Expert Reviewer の立場として(http://www.iana.org/numbers.html#C 参考) 是非直していただきたいです。
> 「そちらで直して見ろ」と言われたらこちらでもやります。
というわけで、修正案です。
US-ASCII はビルトインではないので、alias だけ登録しておいて、呼ばれた時
に本体を読み込む仕組み (lazy alias) を作りました。名前も含めてこの方向で
よろしいでしょうか。
Index: encoding.c
===================================================================
--- encoding.c (revision 14981)
+++ encoding.c (working copy)
@@ -29,6 +29,7 @@ static struct rb_encoding_entry *enc_tab
static int enc_table_count;
static int enc_table_size;
static st_table *enc_table_alias;
+static st_table *enc_table_lazy_alias;
#define ENC_UNINITIALIZED (&rb_cEncoding)
#define enc_initialized_p(enc) ((enc)->auxiliary_data != &rb_cEncoding)
@@ -174,6 +175,7 @@ rb_enc_register(const char *name, rb_enc
if (STRCASECMP(name, rb_enc_name(oldenc))) {
st_data_t key = (st_data_t)name, alias;
st_delete(enc_table_alias, &key, &alias);
+ st_delete(enc_table_lazy_alias, &key, &alias);
index = enc_register(name, encoding);
}
else if (enc_initialized_p(oldenc) &&
@@ -289,6 +291,21 @@ rb_enc_alias(const char *alias, const ch
return enc_alias(alias, orig);
}
+static int
+enc_lazy_alias(const char *alias, const char *orig)
+{
+ int idx;
+
+ if (!enc_table_lazy_alias) {
+ enc_table_lazy_alias = st_init_strcasetable();
+ }
+ idx = rb_enc_registered(alias);
+ if (idx < 0) {
+ st_insert(enc_table_lazy_alias, (st_data_t)alias, (st_data_t)orig);
+ }
+ return idx;
+}
+
enum {
ENCINDEX_ASCII,
ENCINDEX_EUC_JP,
@@ -307,7 +324,7 @@ rb_enc_init(void)
ENC_REGISTER(SJIS);
ENC_REGISTER(UTF8);
#undef ENC_REGISTER
- enc_alias("ASCII", rb_enc_name(ONIG_ENCODING_ASCII));
+ enc_lazy_alias("ASCII", "US-ASCII");
enc_alias("BINARY", rb_enc_name(ONIG_ENCODING_ASCII));
enc_alias("eucJP", rb_enc_name(ONIG_ENCODING_EUC_JP)); /* UI-OSF
Application Platform Profile f
or Japanese Environment Version 1.1 */
enc_alias("SJIS", rb_enc_name(ONIG_ENCODING_SJIS));
@@ -371,8 +388,14 @@ rb_enc_find_index(const char *name)
++s;
}
OBJ_FREEZE(enclib);
- if (RTEST(rb_protect(require_enc, enclib, 0)))
+ if (RTEST(rb_protect(require_enc, enclib, 0))) {
i = rb_enc_registered(name);
+ } else {
+ st_data_t orig;
+ if (st_lookup(enc_table_lazy_alias, (st_data_t)name, &orig)) {
+ i = rb_enc_alias(name, (char *)orig);
+ }
+ }
rb_set_errinfo(Qnil);
}
return i;
--
NARUSE, Yui <naruse@airemix.com>
DBDB A476 FDBD 9450 02CD 0EFC BCE3 C388 472E C1EA