[ruby-core:114559] [Ruby master Bug#18783] OptionParser should recognize "-" as an optional argument

Issue #18783 has been updated by jeremyevans0 (Jeremy Evans). Status changed from Open to Closed Merged at commit:419ad1e13e6287d0b7a6ba1dfeb485d2f889bf9e ---------------------------------------- Bug #18783: OptionParser should recognize "-" as an optional argument https://bugs.ruby-lang.org/issues/18783#change-104368 * Author: konsolebox (K B) * Status: Closed * Priority: Normal * ruby -v: ruby 2.7.4p191, ruby 3.1.2p20 * Backport: 2.7: UNKNOWN, 3.0: UNKNOWN, 3.1: UNKNOWN ---------------------------------------- ``` ruby require 'optparse' optarg = nil OptionParser.new do |parser| parser.on("-o", "--opt [ARG]", "Option with optional argument") do |arg| optarg = arg end end.parse! puts "#{optarg.inspect}, #{ARGV.inspect}" ``` Executing the code above with `-o -` as arguments outputs `nil, ["-"]` when it should produce `"-", []` instead. OptionParser recognizes `-` as a general non-option argument but it doesn't do the same when `-` follows an option with an optional argument. In my shell script, I consider options as `-?*` (glob) instead of `-*` so `-` is also considered as a valid argument. Perhaps OptionParser should do the same. -- https://bugs.ruby-lang.org/
participants (1)
-
jeremyevans0 (Jeremy Evans)