summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lib/rdoc/options.rb21
-rw-r--r--test/rdoc/test_rdoc_options.rb10
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