Project

General

Profile

Actions

Bug #13858

closed

getoptlong cannot process multiple line argument with equal sign (=) version

Added by iefoaix (Michael Wang) over 6 years ago. Updated over 6 years ago.

Status:
Closed
Assignee:
-
Target version:
-
ruby -v:
ruby 2.3.1p112 (2016-04-26) [x86_64-linux-gnu]
[ruby-core:82627]

Description

Here is the test case:

more getopt.rb

require 'getoptlong'

a=GetoptLong.new(
[ '--user', '-u', GetoptLong::REQUIRED_ARGUMENT ],
[ '--statement', '-s', GetoptLong::REQUIRED_ARGUMENT ],
)

a.each { |x, y|
p x
p y
}

Here is the problem:

ruby getopt.rb --user me --statement="

select now() from dual
"

"--user"
"me"
"--statement"
""

Please note the statement is empty while it is not. On contrary, without "=" sign it works fine:

ruby getopt.rb --user me --statement "

select now() from dual
"

"--user"
"me"
"--statement"
"\nselect now() from dual\n"

It is believed this bug is due to the regex that GetoptLong uses to parse the argument for long opts. Please investigate and fix, thanks!

Actions

Also available in: Atom PDF

Like0
Like0