[#6864] ruby 1.8.4 rc breaks alias_method/rails in bad ways — "Ara.T.Howard" <ara.t.howard@...>

20 messages 2005/12/09
[#6870] Re: ruby 1.8.4 rc breaks alias_method/rails in bad ways — =?ISO-8859-15?Q?Florian_Gro=DF?= <florgro@...> 2005/12/12

Ara.T.Howard wrote:

[#6872] Re: ruby 1.8.4 rc breaks alias_method/rails in bad ways — ara.t.howard@... 2005/12/12

On Tue, 13 Dec 2005, [ISO-8859-15] Florian Growrote:

[#6873] Re: ruby 1.8.4 rc breaks alias_method/rails in bad ways — James Edward Gray II <james@...> 2005/12/12

On Dec 12, 2005, at 1:19 PM, ara.t.howard@noaa.gov wrote:

[#6874] Re: ruby 1.8.4 rc breaks alias_method/rails in bad ways — ara.t.howard@... 2005/12/12

On Tue, 13 Dec 2005, James Edward Gray II wrote:

[#6891] Time.utc! and Time.localtime! — Daniel Hobe <hobe@...>

Writing a script yesterday I found out, much to my surprise, that the

16 messages 2005/12/14

[#6918] change to yaml in 1.8.4 — ara.t.howard@...

14 messages 2005/12/16

[#6934] 1.8.x, YAML, and release management — Ryan Davis <ryand-ruby@...>

I'm concerned that 1.8.3's acceptance of non-backwards-compatible

28 messages 2005/12/18

[#6996] Problems building 1.8.4 with VS8 C++ Express Edition (cl 14.00) — Austin Ziegler <halostatue@...>

Visual Studio C++ 2005 Express Edition (VS 8.0)

20 messages 2005/12/27

Re: Proposed patch for optparse to fix multi line argument handling

From: Daniel Hobe <hobe@...>
Date: 2005-12-06 02:01:19 UTC
List: ruby-core #6847
The attached patch fixes a bug in Optparse (at least I think it is a
bug) where it would handle multi line option arguments by ignoring all
lines but the first (if given with a short option) or stack trace (if
given with a long option):

hobe@moria:~>ruby -w opt_parse_test.rb -h
Usage: opt_parse_test [options]
   -d, --dummy STRING               Dummy option


short option:
hobe@moria:~>ruby -w opt_parse_test.rb -d "foo
bar
baz
"
Dummy argument: 'foo'

long option:
hobe@moria:~>ruby -w opt_parse_test.rb --dummy "foo
bar
baz
"
/usr/lib/ruby/1.8/optparse.rb:1278:in `order!': invalid argument:
--dummy foo (OptionParser::InvalidArgument)
bar
baz
       from /usr/lib/ruby/1.8/optparse.rb:1278:in `parse_arg'
       from /usr/lib/ruby/1.8/optparse.rb:449:in `parse'
       from /usr/lib/ruby/1.8/optparse.rb:1278:in `order!'
       from /usr/lib/ruby/1.8/optparse.rb:1266:in `catch'
       from /usr/lib/ruby/1.8/optparse.rb:1266:in `order!'
       from /usr/lib/ruby/1.8/optparse.rb:1346:in `permute!'
       from /usr/lib/ruby/1.8/optparse.rb:1373:in `parse!'
       from opt_parse_test.rb:11



The fix is to add the multiline option to a regex:
--- /usr/lib/ruby/1.8/optparse.rb       2005-11-30 17:46:27.000000000 -0800
+++ optparse.rb 2005-12-05 11:55:49.831818000 -0800
@@ -1495,7 +1495,7 @@
 : String
  any none-empty string, and no conversion.
 =end #'#"#`#
-  accept(String, /.+/) {|s,*|s}
+  accept(String, /.+/m) {|s,*|s}

 =begin
 : Integer

--
Daniel Hobe <hobe@gmail.com>
After the darkness of her speech; I go bewildered in a mist of prophecies.

Attachments (1)

optparse_patch.rb (301 Bytes, text/x-ruby)
--- /usr/lib/ruby/1.8/optparse.rb	2005-11-30 17:46:27.000000000 -0800
+++ optparse.rb	2005-12-05 11:55:49.831818000 -0800
@@ -1495,7 +1495,7 @@
 : String
   any none-empty string, and no conversion.
 =end #'#"#`#
-  accept(String, /.+/) {|s,*|s}
+  accept(String, /.+/m) {|s,*|s}
 
 =begin
 : Integer

In This Thread

Prev Next