[#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:33226] [PATCH] warnings of enc/trans/utf_16_32.c
なかだです。
enc/trans/utf_16_32.cの警告を消すパッチです。自動生成ということ
なので、生成元にお願いします。
ちなみに、関数部分は手で書いたのではないかと思われるのですが、ど
のような扱いになっているのでしょうか。
Index: enc/trans/utf_16_32.c
===================================================================
--- enc/trans/utf_16_32.c (revision 15146)
+++ enc/trans/utf_16_32.c (working copy)
@@ -5,27 +5,30 @@
static int
-fun_so_from_utf_16be(const unsigned char* s, unsigned char* o)
+fun_so_from_utf_16be(const char* s, char* o, struct rb_transcoding *td)
{
- if (!s[0] && s[1]<0x80) {
- o[0] = s[1];
+ unsigned char s0 = s[0], s1 = s[1];
+
+ if (!s0 && s1<0x80) {
+ o[0] = s1;
return 1;
}
- else if (s[0]<0x08) {
- o[0] = 0xC0 | (s[0]<<2) | (s[1]>>6);
- o[1] = 0x80 | s[1]&0x3F;
+ else if (s0<0x08) {
+ o[0] = 0xC0 | (s0<<2) | (s1>>6);
+ o[1] = 0x80 | (s1&0x3F);
return 2;
}
- else if ((s[0]&0xF8)!=0xD8) {
- o[0] = 0xE0 | s[0]>>4;
- o[1] = 0x80 | ((s[0]&0x0F)<<2) | (s[1]>>6);
- o[2] = 0x80 | s[1]&0x3F;
+ else if ((s0&0xF8)!=0xD8) {
+ o[0] = 0xE0 | s0>>4;
+ o[1] = 0x80 | ((s0&0x0F)<<2) | (s1>>6);
+ o[2] = 0x80 | (s1&0x3F);
return 3;
}
else {
- unsigned int u = (((s[0]&0x03)<<2)|(s[1]>>6)) + 1;
- o[0] = 0xF0 | u>>2;
- o[1] = 0x80 | ((u&0x03)<<4) | (s[1]>>2)&0x0F;
- o[2] = 0x80 | ((s[1]&0x03)<<4) | ((s[2]&0x03)<<2) | (s[3]>>6);
- o[3] = 0x80 | s[3]&0x3F;
+ unsigned char s2 = s[2], s3 = s[3];
+ unsigned int u = (((s0&0x03)<<2)|(s1>>6)) + 1;
+ o[0] = 0xF0 | (u>>2);
+ o[1] = 0x80 | ((u&0x03)<<4) | ((s1>>2)&0x0F);
+ o[2] = 0x80 | ((s1&0x03)<<4) | ((s2&0x03)<<2) | (s3>>6);
+ o[3] = 0x80 | (s3&0x3F);
return 4;
}
@@ -33,27 +36,32 @@ fun_so_from_utf_16be(const unsigned char
static int
-fun_so_to_utf_16be(const unsigned char* s, unsigned char* o)
+fun_so_to_utf_16be(const char* s, char* o, struct rb_transcoding *td)
{
- if (!(s[0]&0x80)) {
+ unsigned char s0 = s[0], s1, s2, s3;
+
+ if (!(s0&0x80)) {
o[0] = 0x00;
- o[1] = s[0];
+ o[1] = s0;
return 2;
}
- else if ((s[0]&0xE0)==0xC0) {
- o[0] = (s[0]>>2)&0x07;
- o[1] = ((s[0]&0x03)<<6) | s[1]&0x3F;
+ s1 = s[1];
+ if ((s0&0xE0)==0xC0) {
+ o[0] = (s0>>2)&0x07;
+ o[1] = ((s0&0x03)<<6) | (s1&0x3F);
return 2;
}
- else if ((s[0]&0xF0)==0xE0) {
- o[0] = (s[0]<<4) | (s[1]>>2)^0x20;
- o[1] = (s[1]<<6) | s[2]^0x80;
+ s2 = s[2];
+ if ((s0&0xF0)==0xE0) {
+ o[0] = (s0<<4) | ((s1>>2)^0x20);
+ o[1] = (s1<<6) | (s2^0x80);
return 2;
}
- else {
- int w = (((s[0]&0x07)<<2) | (s[1]>>4)&0x03) - 1;
+ s3 = s[3];
+ {
+ int w = (((s0&0x07)<<2) | ((s1>>4)&0x03)) - 1;
o[0] = 0xD8 | (w>>2);
- o[1] = (w<<6) | ((s[1]&0x0F)<<2) | ((s[2]>>4)-8);
- o[2] = 0xDC | ((s[2]>>2)&0x03);
- o[3] = (s[2]<<6) | (s[3]&~0x80);
+ o[1] = (w<<6) | ((s1&0x0F)<<2) | ((s2>>4)-8);
+ o[2] = 0xDC | ((s2>>2)&0x03);
+ o[3] = (s2<<6) | (s3&~0x80);
return 4;
}
@@ -61,27 +69,30 @@ fun_so_to_utf_16be(const unsigned char*
static int
-fun_so_from_utf_16le(const unsigned char* s, unsigned char* o)
+fun_so_from_utf_16le(const char* s, char* o, struct rb_transcoding *td)
{
- if (!s[1] && s[0]<0x80) {
- o[0] = s[0];
+ unsigned char s0 = s[0], s1 = s[1];
+
+ if (!s1 && s0<0x80) {
+ o[0] = s0;
return 1;
}
- else if (s[1]<0x08) {
- o[0] = 0xC0 | (s[1]<<2) | (s[0]>>6);
- o[1] = 0x80 | s[0]&0x3F;
+ else if (s1<0x08) {
+ o[0] = 0xC0 | (s1<<2) | (s0>>6);
+ o[1] = 0x80 | (s0&0x3F);
return 2;
}
- else if ((s[1]&0xF8)!=0xD8) {
- o[0] = 0xE0 | s[1]>>4;
- o[1] = 0x80 | ((s[1]&0x0F)<<2) | (s[0]>>6);
- o[2] = 0x80 | s[0]&0x3F;
+ else if ((s1&0xF8)!=0xD8) {
+ o[0] = 0xE0 | s1>>4;
+ o[1] = 0x80 | ((s1&0x0F)<<2) | (s0>>6);
+ o[2] = 0x80 | (s0&0x3F);
return 3;
}
else {
- unsigned int u = (((s[1]&0x03)<<2)|(s[0]>>6)) + 1;
- o[0] = 0xF0 | u>>2;
- o[1] = 0x80 | ((u&0x03)<<4) | (s[0]>>2)&0x0F;
- o[2] = 0x80 | ((s[0]&0x03)<<4) | ((s[3]&0x03)<<2) | (s[2]>>6);
- o[3] = 0x80 | s[2]&0x3F;
+ unsigned char s2 = s[2], s3 = s[3];
+ unsigned int u = (((s1&0x03)<<2)|(s0>>6)) + 1;
+ o[0] = 0xF0 | (u>>2);
+ o[1] = 0x80 | ((u&0x03)<<4) | ((s0>>2)&0x0F);
+ o[2] = 0x80 | ((s0&0x03)<<4) | ((s3&0x03)<<2) | (s2>>6);
+ o[3] = 0x80 | (s2&0x3F);
return 4;
}
@@ -89,27 +100,32 @@ fun_so_from_utf_16le(const unsigned char
static int
-fun_so_to_utf_16le(const unsigned char* s, unsigned char* o)
+fun_so_to_utf_16le(const char* s, char* o, struct rb_transcoding *td)
{
- if (!(s[0]&0x80)) {
+ unsigned char s0 = s[0], s1, s2, s3;
+
+ if (!(s0&0x80)) {
o[1] = 0x00;
- o[0] = s[0];
+ o[0] = s0;
return 2;
}
- else if ((s[0]&0xE0)==0xC0) {
- o[1] = (s[0]>>2)&0x07;
- o[0] = ((s[0]&0x03)<<6) | s[1]&0x3F;
+ s1 = s[1];
+ if ((s0&0xE0)==0xC0) {
+ o[1] = (s0>>2)&0x07;
+ o[0] = ((s0&0x03)<<6) | (s1&0x3F);
return 2;
}
- else if ((s[0]&0xF0)==0xE0) {
- o[1] = (s[0]<<4) | (s[1]>>2)^0x20;
- o[0] = (s[1]<<6) | s[2]^0x80;
+ s2 = s[2];
+ if ((s0&0xF0)==0xE0) {
+ o[1] = (s0<<4) | ((s1>>2)^0x20);
+ o[0] = (s1<<6) | (s2^0x80);
return 2;
}
- else {
- int w = (((s[0]&0x07)<<2) | (s[1]>>4)&0x03) - 1;
+ s3 = s[3];
+ {
+ int w = (((s0&0x07)<<2) | ((s1>>4)&0x03)) - 1;
o[1] = 0xD8 | (w>>2);
- o[0] = (w<<6) | ((s[1]&0x0F)<<2) | ((s[2]>>4)-8);
- o[3] = 0xDC | ((s[2]>>2)&0x03);
- o[2] = (s[2]<<6) | (s[3]&~0x80);
+ o[0] = (w<<6) | ((s1&0x0F)<<2) | ((s2>>4)-8);
+ o[3] = 0xDC | ((s2>>2)&0x03);
+ o[2] = (s2<<6) | (s3&~0x80);
return 4;
}
@@ -238,5 +254,5 @@ from_UTF_16BE = {
};
-static rb_transcoder
+static const rb_transcoder
rb_from_UTF_16BE = {
"UTF-16BE", "UTF-8", &from_UTF_16BE, 4, 0,
@@ -403,5 +419,5 @@ to_UTF_16BE = {
};
-static rb_transcoder
+static const rb_transcoder
rb_to_UTF_16BE = {
"UTF-8", "UTF-16BE", &to_UTF_16BE, 4, 1,
@@ -450,5 +466,5 @@ from_UTF_16LE = {
};
-static rb_transcoder
+static const rb_transcoder
rb_from_UTF_16LE = {
"UTF-16LE", "UTF-8", &from_UTF_16LE, 4, 0,
@@ -456,5 +472,5 @@ rb_from_UTF_16LE = {
};
-static rb_transcoder
+static const rb_transcoder
rb_to_UTF_16LE = {
"UTF-8", "UTF-16LE", &to_UTF_16BE, 4, 1,
--
--- 僕の前にBugはない。
--- 僕の後ろにBugはできる。
中田 伸悦