Actions
Bug #13858
closedgetoptlong cannot process multiple line argument with equal sign (=) version
Bug #13858:
getoptlong cannot process multiple line argument with equal sign (=) version
Status:
Closed
Assignee:
-
Target version:
-
ruby -v:
ruby 2.3.1p112 (2016-04-26) [x86_64-linux-gnu]
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