From 2f106ab85c4f4e171374aee261f5a12bdd923c41 Mon Sep 17 00:00:00 2001 From: Yukihiro Matsumoto Date: Tue, 21 Feb 1995 18:56:56 +0900 Subject: version 0.67 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit https://cache.ruby-lang.org/pub/ruby/1.0/ruby-0.66-0.67.diff.gz Tue Feb 21 18:56:56 1995 Yukihiro Matsumoto (matz@ix-02) * io.c(STDIN, STDOUT, STDERR): 定数として定義.今までの$stdinなど は将来なくなるかも知れない. * io.c(select): bug fix. * version 0.67 Mon Feb 20 16:10:14 1995 Yukihiro Matsumoto (matz@ix-02) * parse.y(yylex): 定数を`%識別子'から,第1文字が大文字の識別子に変 更.それにともないクラスは定数となった. * eval.c: クラス定義内のselfがクラス定義外部のthe_classだった. * variable.c(rb_name_class): クラス名をインスタンス変数に格納する. Thu Feb 16 15:36:17 1995 Yukihiro Matsumoto (matz@ix-02) * parse.y: BLOCKをbraceで表現する文法に変更したものを作ってみる. MLに提示してみるが反応がない. * object.c(do,forever): なくした. Wed Feb 15 13:20:49 1995 Yukihiro Matsumoto (matz@ix-02) * re.c(new): 第2引数が与えられて,かつnilでないときだけ設定するよ うに(以前はnilの時にも設定を行なっていた). * parse.y(parse_regexp): 正規表現リテラルで大文字小文字を無視する かどうか指定できるように. Tue Feb 14 00:55:33 1995 Yukihiro Matsumoto (matz@dyna) * parse.y: (compexpr) -> (expr). Fri Feb 10 16:30:00 1995 Yukihiro Matsumoto (matz@ix-02) * ruby.c(load_file): scriptを読み込む時だけ"#!"の解析を行うように. * ruby.c(readin): ファイル読み込み時に先頭に"#!"があり,rubyに引数 が与えられていれば,その引数も有効になる. * parse.y(yylex): コメント行の終りが`\'であった時,次の行に継続し ているとみなすようにした. --- sample/getopts.rb | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) (limited to 'sample/getopts.rb') diff --git a/sample/getopts.rb b/sample/getopts.rb index 01eddcea98..37fd3dc69d 100644 --- a/sample/getopts.rb +++ b/sample/getopts.rb @@ -28,7 +28,7 @@ # # IvV̎w肪ꍇ, ϐ $OPT_?? non-nil , ̃I # vV̈Zbg܂. -# -f -> $OPT_f = %TRUE +# -f -> $OPT_f = TRUE # --geometry 300x400 -> $OPT_geometry = 300x400 # # - -- , ȍ~, SăIvV̉͂܂. @@ -50,7 +50,8 @@ def getopts(single_opts, *opts) end end end - + + opts = {} count = 0 while ($ARGV.length != 0) compare = nil @@ -68,11 +69,13 @@ def getopts(single_opts, *opts) return nil end eval("$OPT_" + compare + " = " + '$ARGV[1]') + opts[compare] = TRUE $ARGV.shift count += 1 break elsif (option == compare) - eval("$OPT_" + compare + " = %TRUE") + eval("$OPT_" + compare + " = TRUE") + opts[compare] = TRUE count += 1 break end @@ -82,16 +85,19 @@ def getopts(single_opts, *opts) for index in 1..($ARGV[0].length - 1) compare = $ARGV[0][index, 1] if (single_opts && compare =~ "[" + single_opts + "]") - eval("$OPT_" + compare + " = %TRUE") + eval("$OPT_" + compare + " = TRUE") + opts[compare] = TRUE count += 1 elsif (single_colon != "" && compare =~ "[" + single_colon + "]") if ($ARGV[0][index..-1].length > 1) eval("$OPT_" + compare + " = " + '$ARGV[0][(index + 1)..-1]') + opts[compare] = TRUE count += 1 elsif ($ARGV.length <= 1) return nil else eval("$OPT_" + compare + " = " + '$ARGV[1]') + opts[compare] = TRUE $ARGV.shift count = count + 1 end @@ -103,7 +109,7 @@ def getopts(single_opts, *opts) end $ARGV.shift - if (!defined("$OPT_" + compare)) + if (!opts.includes(compare)) return nil end end -- cgit v1.2.3