なかだです。

  -s オプションのあたりがバグってるようです。

$ ruby -v -s -e 'p [$var, ARGV]' -- -var=value
ruby 1.5.0 (1999-11-29) [i586-linux]
["value", []]
# OK

$ ruby -v -s -e 'p [$var, ARGV]' -- -var=value -- arg1 arg2
ruby 1.5.0 (1999-11-29) [i586-linux]
[true, []]
# NG

  また、"--" まで有無を言わせず処理されるよりも、"-" で始まってな
い引数の前までで終って欲しいと思うのですが、個人的には。

  あと、これはバグというべきか分かりませんが、ruby_set_argv() の
前の process_sflag() って意味あるんでしょうか。



--- dist/ruby.c Thu Nov 25 18:05:15 1999 +++ build/ruby.c Wed Dec 1 11:24:06 1999 @@ -74,5 +74,5 @@ { /* This message really ought to be max 23 lines. - * Removed -h because the user already knows that opton. Others? */ + * Removed -h because the user already knows that option. Others? */ static char *usage_msg[] = { @@ -267,9 +267,10 @@ n = RARRAY(rb_argv)->len; args = RARRAY(rb_argv)->ptr; - while (n--) { - char *s = STR2CSTR(*args); + while (n) { + char *s = STR2CSTR(*args++); char *p; - if (s[0] != '-') continue; + if (s[0] != '-') break; + --n; if (s[1] == '-' && s[2] == '\0') break; @@ -615,5 +616,4 @@ } - process_sflag(); ruby_script(script); ruby_set_argv(argc, argv);
-- そうだ 強気に ちょっと インチキに☆彡 中田 "Bugるくらいがちょうどいいかも;-)" 伸悦