diff options
-rw-r--r-- | lib/rdoc/options.rb | 21 | ||||
-rw-r--r-- | test/rdoc/test_rdoc_options.rb | 10 |
2 files changed, 26 insertions, 5 deletions
diff --git a/lib/rdoc/options.rb b/lib/rdoc/options.rb index 53cc3af63c..43494c85be 100644 --- a/lib/rdoc/options.rb +++ b/lib/rdoc/options.rb @@ -555,7 +555,13 @@ class RDoc::Options @files << @page_dir.to_s - page_dir = @page_dir.expand_path.relative_path_from @root + page_dir = nil + begin + page_dir = @page_dir.expand_path.relative_path_from @root + rescue ArgumentError + # On Windows, sometimes crosses different drive letters. + page_dir = @page_dir.expand_path + end @page_dir = page_dir end @@ -1154,8 +1160,17 @@ Usage: #{opt.program_name} [options] [names...] path.reject do |item| path = Pathname.new(item).expand_path - relative = path.relative_path_from(dot).to_s - relative.start_with? '..' + is_reject = nil + relative = nil + begin + relative = path.relative_path_from(dot).to_s + rescue ArgumentError + # On Windows, sometimes crosses different drive letters. + is_reject = true + else + is_reject = relative.start_with? '..' + end + is_reject end end diff --git a/test/rdoc/test_rdoc_options.rb b/test/rdoc/test_rdoc_options.rb index bc0fc8bcf1..140c4afc9b 100644 --- a/test/rdoc/test_rdoc_options.rb +++ b/test/rdoc/test_rdoc_options.rb @@ -507,8 +507,14 @@ rdoc_include: assert_empty out assert_empty err - expected = - Pathname(Dir.tmpdir).expand_path.relative_path_from @options.root + expected = nil + begin + expected = + Pathname(Dir.tmpdir).expand_path.relative_path_from @options.root + rescue ArgumentError + # On Windows, sometimes crosses different drive letters. + expected = Pathname(Dir.tmpdir).expand_path + end assert_equal expected, @options.page_dir assert_equal [Dir.tmpdir], @options.files |