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 #1

Updated by nobu (Nobuyoshi Nakada) over 6 years ago

  • Status changed from Open to Closed

Applied in changeset trunk|r59722.


getoptlong.rb: multiline regexps

Actions

Also available in: Atom PDF

Like0
Like0