summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog5
-rw-r--r--lib/optparse.rb8
2 files changed, 9 insertions, 4 deletions
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 <nobu@ruby-lang.org>
+
+ * 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 <ocean@m2.ccsnet.ne.jp>
* 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