summaryrefslogtreecommitdiff
path: root/lib/rdoc/options.rb
diff options
context:
space:
mode:
Diffstat (limited to 'lib/rdoc/options.rb')
-rw-r--r--lib/rdoc/options.rb12
1 files changed, 9 insertions, 3 deletions
diff --git a/lib/rdoc/options.rb b/lib/rdoc/options.rb
index f67241bc03..45b69186f9 100644
--- a/lib/rdoc/options.rb
+++ b/lib/rdoc/options.rb
@@ -350,13 +350,14 @@ Usage: #{opt.program_name} [options] [names...]
end
argv.insert(0, *ENV['RDOCOPT'].split) if ENV['RDOCOPT']
+ ignored = []
begin
opts.parse! argv
rescue OptionParser::InvalidArgument, OptionParser::InvalidOption => e
- if ignore_invalid and not quiet then
- $stderr.puts e
- $stderr.puts '(invalid options are ignored)'
+ if ignore_invalid then
+ ignored << e.args.join(' ')
+ retry
else
$stderr.puts opts
$stderr.puts
@@ -365,6 +366,11 @@ Usage: #{opt.program_name} [options] [names...]
end
end
+ if ignored and not quiet then
+ $stderr.puts "invalid options: #{ignored.join ', '}"
+ $stderr.puts '(invalid options are ignored)'
+ end
+
@op_dir ||= 'doc'
@files = argv.dup