diff --git a/ChangeLog b/ChangeLog index 5927aab34c..3bcf5d179c 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +Tue Nov 22 23:52:06 2005 Nobuyoshi Nakada + + * lib/optparse.rb: match incomplete (in current enconding) multibyte + string. http://inamode6.tokuhirom.dnsalias.org/show/1551 + Tue Nov 22 18:36:11 2005 Hirokazu Yamamoto * win32/win32.c (winnt_stat): set mapped errno instead of ENOENT. diff --git a/lib/optparse.rb b/lib/optparse.rb index c056ac8d25..966de0ed68 100644 --- a/lib/optparse.rb +++ b/lib/optparse.rb @@ -533,7 +533,7 @@ class OptionParser # # See OptionParser.accept. # - def accept(t, pat = /.*/, &block) + def accept(t, pat = /.*/nm, &block) if pat pat.respond_to?(:match) or raise TypeError, "has no `match'" else @@ -1310,7 +1310,7 @@ class OptionParser while arg = argv.shift case arg # long option - when /\A--([^=]*)(?:=(.*))?/ + when /\A--([^=]*)(?:=(.*))?/nm opt, rest = $1, $2 begin sw, = complete(:long, opt, true) @@ -1325,7 +1325,7 @@ class OptionParser end # short option - when /\A-(.)((=).*|.+)?/ + when /\A-(.)((=).*|.+)?/nm opt, has_arg, eq, val, rest = $1, $3, $3, $2, $2 begin unless sw = search(:short, opt) @@ -1545,7 +1545,7 @@ class OptionParser : String any none-empty string, and no conversion. =end #'#"#`# - accept(String, /.+/) {|s,*|s} + accept(String, /.+/nm) {|s,*|s} =begin : Integer