diff --git a/ChangeLog b/ChangeLog index 4d37e64694..8751203384 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +Wed Mar 13 18:36:55 2002 Akinori MUSHA + + * lib/getopts.rb: single_options can be nil[*], and is not not + optional. ([*]Pointed out by gotoken) + Tue Mar 12 17:12:06 2002 Tanaka Akira * lib/resolv.rb: don't complete domains for absolute FQNs. diff --git a/doc/NEWS b/doc/NEWS index b875e5b5f7..bd3e7feb25 100644 --- a/doc/NEWS +++ b/doc/NEWS @@ -1,3 +1,14 @@ +: getopts.rb + + Rewrote to fix some bugs and complete features. + - Accept options with the colon in the first argument; + getopts("a:bcd:") is equivalent to getopts("bc", "a:", "d:"). + - Do not discard the argument that caused an error. + - Do not discard '-', which commonly stands for stdin or stdout. + - Allow specifying a long option with a value using '='. + (command --long-option=value) + - Stop reading options when it meets a non-option argument. + : tsort module Imported. Topological sorting library. diff --git a/lib/getopts.rb b/lib/getopts.rb index e29e4211e2..b1cffd9ba0 100644 --- a/lib/getopts.rb +++ b/lib/getopts.rb @@ -18,7 +18,7 @@ $RCS_ID=%q$Header$ -def getopts(single_options = '', *options) +def getopts(single_options, *options) boolopts = {} valopts = {} @@ -31,7 +31,7 @@ def getopts(single_options = '', *options) else valopts[opt[0, 1]] = nil end - end + end if single_options options.each do |arg| opt, val = arg.split(':', 2)