From: mwang@... Date: 2017-09-01T16:51:02+00:00 Subject: [ruby-core:82627] [Ruby trunk Bug#13858] getoptlong cannot process multiple line argument with equal sign (=) version Issue #13858 has been reported by iefoaix (Michael Wang). ---------------------------------------- Bug #13858: getoptlong cannot process multiple line argument with equal sign (=) version https://bugs.ruby-lang.org/issues/13858 * Author: iefoaix (Michael Wang) * Status: Open * Priority: Normal * Assignee: * Target version: * ruby -v: ruby 2.3.1p112 (2016-04-26) [x86_64-linux-gnu] * Backport: 2.2: UNKNOWN, 2.3: UNKNOWN, 2.4: UNKNOWN ---------------------------------------- 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! -- https://bugs.ruby-lang.org/ Unsubscribe: