[#21809] lib/test/unit/ui/tk/testrunner.rb — Kazuhiro NISHIYAMA <zn@...>
西山和広です。
永井@知能.九工大です.
なかだです。
永井@知能.九工大です.
なかだです。
永井@知能.九工大です.
なかだです。
こんにちは、なかむら(う)です。
永井@知能.九工大です.
なかだです。
永井@知能.九工大です.
[#21830] pty on FreeBSD — matz@... (Yukihiro Matsumoto)
まつもと ゆきひろです
[#21846] StringIO#path — matz@... (Yukihiro Matsumoto)
まつもと ゆきひろです
[#21876] get_last_error or getLastError by DL::Importable — Take_tk <ggb03124@...>
たけ(tk)です。
[#21883] right hand Regexp — Koji Arai <JCA02266@...>
新井です。
[#21899] core dump in rb_hash_aset — Tanaka Akira <akr@...17n.org>
% ruby -e 'h = {}
まつもと ゆきひろです
In article <1068753744.644627.6908.nullmailer@picachu.netlab.jp>,
[#21932] rough / tabs.rb — Minero Aoki <aamine@...>
青木です。
[#21939] StringIO.new("").read — Tanaka Akira <akr@...17n.org>
ふと気がついたのですが、
[#21942] Zlib::GzipReader#read — Tanaka Akira <akr@...17n.org>
ふと気がついたのですが、
[#21943] IO#read — Tanaka Akira <akr@...17n.org>
ふと。
In article <87u1523sjj.fsf@serein.a02.aist.go.jp>,
なかだです。
In article <200311250059.hAP0xSYw004490@sharui.nakada.kanuma.tochigi.jp>,
[#21946] Re: [ruby-cvs] ruby, ruby/lib, ruby/test/fileutils: * lib/fileutils.rb (fu_same?): check by inode instead of path name, to detect two hard links pointing to the same content. — "U.Nakamura" <usa@...>
こんにちは、なかむら(う)です。
Siena. です。
青木です。それにしても凄い Subject だ。
[#22000] purge pthread at configure — "U.Nakamura" <usa@...>
こんにちは、なかむら(う)です。
[#22013] HTTP_PROXY — Tanaka Akira <akr@...17n.org>
ふと
[#22025] --enable-pthread on FreeBSD — "U.Nakamura" <usa@...>
こんにちは、なかむら(う)です。
[#22042] ENV["path"].tainted? — Tanaka Akira <akr@...17n.org>
ENV["path"] の値が
まつもと ゆきひろです
In article <1069748137.095435.3356.nullmailer@picachu.netlab.jp>,
斜め読みですが、
まつもと ゆきひろです
In message <1070234162.951847.24883.nullmailer@picachu.netlab.jp>
[#22057] drb/drb.rb document — Minero Aoki <aamine@...>
青木です。
[#22071] Dir.glob と Shjift_JIS について — "H.Yamamoto" <ocean@...2.ccsnet.ne.jp>
はじめまして。山本といいます。
Siena. です。
> 山本さんのパッチがうまく当たらず手パッチしたので、念のため何度か
Siena. です。
こんにちは、山本です。
山本です。
山本です。
山本です。
山本です。glob_helperをリファクタリングしてみました。
なかだです。
山本です。
なかだです。
山本です。
Siena. です。
山本です。
山本です。
まつもと ゆきひろです
山本です。
山本です。パッチを送ります。
山本です。
山本です。
山本です。
山本です。
まつもと ゆきひろです
>すいません。パッチを出す時にはいつもどの時点のソースに対する
まつもと ゆきひろです
>|すみません、1.8.1に対してです。
まつもと ゆきひろです
こんにちは、山本です。
まつもと ゆきひろです
山本です。
山本です。
山本です。[ruby-dev:22470]にバグがあったので修正しました。
>山本です。[ruby-dev:22470]にバグがあったので修正しました。
まつもと ゆきひろです
山本です。
山本です。
In message <20040102230135.027CDAF8.ocean@m2.ccsnet.ne.jp>
山本です。
まつもと ゆきひろです
山本です。
山本です。
山本です。
なかだです。
山本です。
なかだです。
山本です。
[ruby-dev:22092] Re: Dir.glob と Shjift_JIS について
Siena. です。
時間が取れなくて、パッチは試せていません。
こちらでの確認には少し時間がかかるかもしれません。
》これからマクロを整理しようと思うのですが、DJGPP や EMX の mblen は、
》どのような挙動をしますか?
》(Windows では mblen("ab", MB_CUR_MAX)が-1 を返すのですが・・・・)
文末に OS/2 with EMX での確認コードと実行結果を載せておきます。
一応、それについては正常に機能します。
ruby では、grep locale ruby-1.8.0/{.,*}/*.[ch] した範囲では
setlocale() されていないようですから、ロケールは "C" ですね。
で、これで気が付いたのですが、MB_CUR_MAX == 1 になり、非 ASCII 文字に
対する mblen() は常に失敗して -1 を返す、という事はないでしょうか。
読み間違いなら良いのですが。
それならばと、"ja", "ja_JP", "ja_JP.Shift_JIS", "ja_JP.CP932" 等で
setlocale() を試みたところ、全て失敗し、ロケールは "C" のままでした。
この結果から見ると、CharNext() が MB_CUR_MAX に頼っているので、
少なくとも EMX では実は正しく動かないような気がしてきました。うぬぬ。
mblen() (と、多分 EMX 依存の _nls_is_dbcs_lead()) を試すと
下記のようになります。とりあえずは、mblen() の第 2 引数を
大きめにとっておけば、変な文字列が来ない限りは動作しそうです。
指定値は、CP932 は DBCS ですから 2 バイトで十分そうですが、
他の環境も含めた一般的の MBCS まで考えるとどうなのでしょう。
やはり、ちゃんと setlocale() して、うちみたいな救えない
環境ではとりあえず個別に決め打ちで、とすべきでしょうか。
と。その前に。今まで setlocale() していなかったという事は。
もしかして、setlocale() すると ruby の他の部分で問題が起きたりしますか?
$ cat mblentest.c
/* vi:tabstop=4 */
#include <stdlib.h>
#include <stdio.h>
#include <ctype.h> /* isprint() */
#include <sys/nls.h> /* _nls_is_dbcs_lead() */
int main( void )
{
int i, n = 3, chk_len;
char* list[] = { "ab", "てすと", "てaすとb" };
for( i = 0 ; i < n ; ++ i )
{
char* str = list[ i ];
printf( "\n\"%s\"\n\n", str );
while( *str != '\0' )
{
int c = (unsigned char) *str;
int dbcs = _nls_is_dbcs_lead( c );
printf( "[<%xh> '%c'] %-8s : dbcs? = %d : mblen = { ",
c, ( isprint( c ) ? c : ' ' ), str, dbcs );
for( chk_len = 1 ; chk_len <= 4 ; ++ chk_len )
printf( "%d =>%- d, ", chk_len, mblen( str, chk_len ) );
puts( "}" );
str += ( ( dbcs && str[ 1 ] != '\0' ) ? 2 : 1 );
/* str += mblen( str, 2 ); */ /* 2 bytes for DBCS chars */
}
}
return 0;
}
$ gcc mblentest.c && ./mblentest
"ab"
[<61h> 'a'] ab : dbcs? = 0 : mblen = { 1 => 1, 2 => 1, 3 => 1, 4 => 1, }
[<62h> 'b'] b : dbcs? = 0 : mblen = { 1 => 1, 2 => 1, 3 => 1, 4 => 1, }
"てすと"
[<82h> ' '] てすと : dbcs? = 1 : mblen = { 1 =>-1, 2 => 2, 3 => 2, 4 => 2, }
[<82h> ' '] すと : dbcs? = 1 : mblen = { 1 =>-1, 2 => 2, 3 => 2, 4 => 2, }
[<82h> ' '] と : dbcs? = 1 : mblen = { 1 =>-1, 2 => 2, 3 => 2, 4 => 2, }
"てaすとb"
[<82h> ' '] てaすとb : dbcs? = 1 : mblen = { 1 =>-1, 2 => 2, 3 => 2, 4 => 2, }
[<61h> 'a'] aすとb : dbcs? = 0 : mblen = { 1 => 1, 2 => 1, 3 => 1, 4 => 1, }
[<82h> ' '] すとb : dbcs? = 1 : mblen = { 1 =>-1, 2 => 2, 3 => 2, 4 => 2, }
[<82h> ' '] とb : dbcs? = 1 : mblen = { 1 =>-1, 2 => 2, 3 => 2, 4 => 2, }
[<62h> 'b'] b : dbcs? = 0 : mblen = { 1 => 1, 2 => 1, 3 => 1, 4 => 1, }
---
Siena. <mailto:siena@faculty.chiba-u.jp>