[#13727] Thread.critical=true and fork and exec — Kazuhiro NISHIYAMA <zn@...>
このような感じでforkとexecの間に必要のないIOを閉じようと
[#13754] Kconv(NKF) with tainted strings — Tietew <tietew@...>
Tietew といいます。
[#13765] GenerativeHash — TAKAHASHI Masayoshi <maki@...>
高橋征義です。
まつもと ゆきひろです
高橋征義です。
TAKAHASHI Masayoshiさんの
高橋征義です。
[#13767] Dir::glob() — "Akinori MUSHA" <knu@...>
File::fnmatch の提案のときに切り離した、 Dir::glob の拡張を
[#13774] mkmf.rb: cleaning facility — Takaaki Tateishi <ttate@...>
立石です.
まつもと ゆきひろです
At Mon, 9 Jul 2001 15:20:28 +0900,
まつもと ゆきひろです
[#13779] dln.c patch for Mac OS X — Mitsuhiro Kondo <kondo@...>
こんにちは、近藤と申します。
[#13800] Re: [ruby-cvs] ruby: * ruby.h: fix a wrong function name: rb_iglob() -> rb_globi(). — nobu.nakada@...
なかだです。
わたなべです。
まつもと ゆきひろです
わたなべです。
まつもと ゆきひろです
わたなべです。
まつもと ゆきひろです
At Tue, 10 Jul 2001 15:23:04 +0900,
わたなべです。
At Tue, 10 Jul 2001 16:50:52 +0900,
もうひとつあった。
At Tue, 10 Jul 2001 18:04:57 +0900,
まつもと ゆきひろです
At Mon, 16 Jul 2001 01:16:31 +0900,
まつもと ゆきひろです
At Mon, 16 Jul 2001 09:22:46 +0900,
まつもと ゆきひろです
[#13817] Fw: DOSISH file.c changes — "U.Nakamura" <usa@...>
こんにちは、なかむら(う)です。
なかだです。
こんにちは、なかむら(う)です。
なかだです。
[#13818] COPYING files — "Akinori MUSHA" <knu@...>
Ruby は GPL のシングルライセンスではないのに、 COPYING という
先日の:
高橋征義です。
[#13821] [BUG] rb_gc_mark(): unknown data type 0x1c(0xbfff3d6c) non object — akira yamada / やまだあきら <akira@...>
[#13824] config.{guess,sub} too old? — akira yamada / やまだあきら <akira@...>
[#13828] supported platforms / K&R — "Akinori MUSHA" <knu@...>
digest モジュールの各プラットフォームでの動作確認をお願いした
新井です。
清水@biglobeです。
新井です。
清水@biglobe です。
なかだです。
新井です。
新井です。
なかだです。
新井です。
なかだです。
新井です。
なかだです。
新井です。
新井です。
[#13833] Net::HTTP#proxy? — WATANABE Hirofumi <eban@...>
わたなべです。
[#13866] yield and proc — Takashi Ikeda <nov28@...>
池田と申します。
[#13870] massign to Hash — nobu.nakada@...
なかだです。
[#13878] Prototype for rb_gc_mark / volatile in ruby.h — Tietew <tietew@...>
Tietew です。
まつもと ゆきひろです
こんにちは、なかむら(う)です。
わたなべです。
こんにちは、なかむら(う)です。
わたなべです。
こんにちは、なかむら(う)です。
むらけんです.
[#13908] Forward: Seg fault in latest regex.c (PR#154) — matz@... (Yukihiro Matsumoto)
まつもと ゆきひろです
[#13924] doc/ — Minero Aoki <aamine@...>
あおきです。
[#13929] error: multiple require of digest/* — "U.Nakamura" <usa@...>
こんにちは、なかむら(う)です。
なかだです。
まつもと ゆきひろです
[#13940] IO#read — "Akinori MUSHA" <knu@...>
IO#read を使って何度もストリームから読み込むような処理をする
なかだです。
まつもと ゆきひろです
At Sat, 21 Jul 2001 03:21:11 +0900,
まつもと ゆきひろです
At Sat, 21 Jul 2001 04:43:06 +0900,
At Sat, 21 Jul 2001 05:03:10 +0900,
[#13943] [REQ] ruby_stop without exit — Tietew <tietew@...>
Tietew です。
[#13959] Re: [ruby-list:30682] Re: overwride method — "Akinori MUSHA" <knu@...>
At Fri, 20 Jul 2001 21:09:36 +0900,
ごとけんです
まつもと ゆきひろです
ごとけんです
まつもと ゆきひろです
[ruby-dev:13969]>
まつもと ゆきひろです
ごとけんです
なひです。
まつもと ゆきひろです
けいじゅ@日本ラショナルソフトウェアです.
まつもと ゆきひろです
けいじゅ@日本ラショナルソフトウェアです.
まつもと ゆきひろです
なひです。
まつもと ゆきひろです
なひです。
まつもと ゆきひろです
なひです。
まつもと ゆきひろです
ごとけんです
まつもと ゆきひろです
まつもと ゆきひろです
けいじゅ@日本ラショナルソフトウェアです.
まつもと ゆきひろです
けいじゅ@日本ラショナルソフトウェアです.
まつもと ゆきひろです
あづみです。
まつもと ゆきひろです
In <996211878.306635.31396.nullmailer@ev.netlab.jp>
まつもと ゆきひろです
In <996255758.830993.629.nullmailer@ev.netlab.jp>
まつもと ゆきひろです
In <996282482.936326.1948.nullmailer@ev.netlab.jp>
なひです。
まつもと ゆきひろです
なひです。
あづみです。
まつもと ゆきひろです
けいじゅ@日本ラショナルソフトウェアです.
前田です。
まつもと ゆきひろです
前田です。
まつもと ゆきひろです
[#14003] to_int in mathn [Re: overwride method ] — keiju@... (石塚圭樹)
けいじゅ@日本ラショナルソフトウェアです.
まつもと ゆきひろです
原です。
けいじゅ@日本ラショナルソフトウェアです.
まつもと ゆきひろです
[#14026] Exception in coerce — Shin-ichiro HARA <sinara@...>
原です。
まつもと ゆきひろです
原です。
まつもと ゆきひろです
まつもと ゆきひろです
原です。
まつもと ゆきひろです
原です。
まつもと ゆきひろです
原です。
まつもと ゆきひろです
原です。
まつもと ゆきひろです
原です。
まつもと ゆきひろです
[#14045] load "~/foo" — WATANABE Hirofumi <eban@...>
わたなべです。
[#14097] DOSISH file.c — "U.Nakamura" <usa@...>
こんにちは、なかむら(う)@帰省中です。
[ruby-dev:13873] Re: massign to Hash
なかだです。
At Sun, 15 Jul 2001 23:15:37 +0900,
Nobuyoshi-Nakada wrote:
> そっちは忘れてましたが、Hash#indexesと同じような気がするんで
> すが。
失礼。引数が0と1のときが違いますね。2個以上のときは
rb_hash_indexes()を使うというのでどうでしょうか。
それとArgumentErrorのときのメッセージにargcを渡してるのに書式
には入ってませんでしたが、これはコピー元から抜けてたので追加し
ました。
rb_hash_mset()は最初他からも使えるかと思ったんですが、あんま
り使いそうもないのでstaticにして、関数名も揃えました。
Index: hash.c
===================================================================
RCS file: /cvs/ruby/src/ruby/hash.c,v
retrieving revision 1.49
diff -u -2 -p -r1.49 hash.c
--- hash.c 2001/06/22 09:12:19 1.49
+++ hash.c 2001/07/15 14:37:44
@@ -318,5 +318,5 @@ rb_hash_fetch(argc, argv, hash)
if (rb_block_given_p()) {
if (argc > 1) {
- rb_raise(rb_eArgError, "wrong # of arguments", argc);
+ rb_raise(rb_eArgError, "wrong # of arguments (%d for %d)", argc, 1);
}
return rb_yield(key);
@@ -390,4 +390,20 @@ rb_hash_indexes(argc, argv, hash)
static VALUE
+rb_hash_aref_m(argc, argv, hash)
+ int argc;
+ VALUE *argv;
+ VALUE hash;
+{
+ switch (argc) {
+ case 0:
+ rb_raise(rb_eArgError, "wrong # of arguments (%d for %d)", argc, 1);
+ case 1:
+ return rb_hash_aref(hash, argv[0]);
+ default:
+ return rb_hash_indexes(argc, argv, hash);
+ }
+}
+
+static VALUE
rb_hash_delete(hash, key)
VALUE hash, key;
@@ -510,4 +526,44 @@ rb_hash_aset(hash, key, val)
}
+static VALUE
+rb_hash_aset_m(argc, argv, hash)
+ int argc;
+ VALUE *argv;
+ VALUE hash;
+{
+ VALUE values, *ptr = NULL;
+ long len;
+ int i, isary;
+
+ if (argc < 2) {
+ rb_raise(rb_eArgError, "wrong # of arguments (%d for %d)", argc, 2);
+ }
+ else if (argc == 2) {
+ return rb_hash_aset(hash, argv[0], argv[1]);
+ }
+ rb_hash_modify(hash);
+ values = argv[--argc];
+ isary = TYPE(values) == T_ARRAY;
+ if (!isary) {
+ len = 1;
+ ptr = &values;
+ }
+ for (i = 0; i < argc; ++i) {
+ VALUE key = argv[i], val = Qnil;
+ if (isary) {
+ len = RARRAY(values)->len;
+ ptr = RARRAY(values)->ptr;
+ }
+ if (i < len) val = ptr[i];
+ if (TYPE(key) != T_STRING || st_lookup(RHASH(hash)->tbl, key, 0)) {
+ st_insert(RHASH(hash)->tbl, key, val);
+ }
+ else {
+ st_add_direct(RHASH(hash)->tbl, rb_str_new4(key), val);
+ }
+ }
+ return values;
+}
+
static int
replace_i(key, val, hash)
@@ -934,5 +990,5 @@ env_fetch(argc, argv)
if (rb_block_given_p()) {
if (argc > 1) {
- rb_raise(rb_eArgError, "wrong # of arguments", argc);
+ rb_raise(rb_eArgError, "wrong # of arguments (%d for %d)", argc, 1);
}
return rb_yield(key);
@@ -1150,4 +1206,38 @@ rb_f_setenv(obj, nm, val)
static VALUE
+rb_f_setenv_m(argc, argv, obj)
+ int argc;
+ VALUE *argv;
+ VALUE obj;
+{
+ VALUE values, *ptr;
+ long len;
+ int i, isary;
+
+ if (argc < 2) {
+ rb_raise(rb_eArgError, "wrong # of arguments (%d for %d)", argc, 2);
+ }
+ if (argc == 2) {
+ return rb_f_setenv(obj, argv[0], argv[1]);
+ }
+ values = argv[--argc];
+ isary = TYPE(values) == T_ARRAY;
+ if (!isary) {
+ len = 1;
+ ptr = &values;
+ }
+ for (i = 0; i < argc; ++i) {
+ VALUE key = argv[i], val = Qnil;
+ if (isary) {
+ len = RARRAY(values)->len;
+ ptr = RARRAY(values)->ptr;
+ }
+ if (i < len) val = ptr[i];
+ rb_f_setenv(obj, key, val);
+ }
+ return values;
+}
+
+static VALUE
env_keys()
{
@@ -1422,4 +1512,22 @@ env_indexes(argc, argv)
static VALUE
+rb_f_getenv_m(argc, argv, obj)
+ int argc;
+ VALUE *argv;
+ VALUE obj;
+{
+ VALUE values;
+
+ switch (argc) {
+ case 0:
+ rb_raise(rb_eArgError, "wrong # of arguments (%d for %d)", argc, 1);
+ case 1:
+ return rb_f_getenv(obj, argv[0]);
+ default:
+ return env_indexes(argc, argv);
+ }
+}
+
+static VALUE
env_to_hash()
{
@@ -1467,7 +1575,7 @@ Init_Hash()
rb_define_method(rb_cHash,"==", rb_hash_equal, 1);
- rb_define_method(rb_cHash,"[]", rb_hash_aref, 1);
+ rb_define_method(rb_cHash,"[]", rb_hash_aref_m, -1);
rb_define_method(rb_cHash,"fetch", rb_hash_fetch, -1);
- rb_define_method(rb_cHash,"[]=", rb_hash_aset, 2);
+ rb_define_method(rb_cHash,"[]=", rb_hash_aset_m, -1);
rb_define_method(rb_cHash,"store", rb_hash_aset, 2);
rb_define_method(rb_cHash,"default", rb_hash_default, 0);
@@ -1511,7 +1619,7 @@ Init_Hash()
rb_extend_object(envtbl, rb_mEnumerable);
- rb_define_singleton_method(envtbl,"[]", rb_f_getenv, 1);
+ rb_define_singleton_method(envtbl,"[]", rb_f_getenv_m, -1);
rb_define_singleton_method(envtbl,"fetch", env_fetch, -1);
- rb_define_singleton_method(envtbl,"[]=", rb_f_setenv, 2);
+ rb_define_singleton_method(envtbl,"[]=", rb_f_setenv_m, -1);
rb_define_singleton_method(envtbl,"store", rb_f_setenv, 2);
rb_define_singleton_method(envtbl,"each", env_each, 0);
--
--- 僕の前にBugはない。
--- 僕の後ろにBugはできる。
中田 伸悦