File tree Expand file tree Collapse file tree 2 files changed +26
-5
lines changed Expand file tree Collapse file tree 2 files changed +26
-5
lines changed Original file line number Diff line number Diff line change @@ -555,7 +555,13 @@ def finish_page_dir
555
555
556
556
@files << @page_dir . to_s
557
557
558
- page_dir = @page_dir . expand_path . relative_path_from @root
558
+ page_dir = nil
559
+ begin
560
+ page_dir = @page_dir . expand_path . relative_path_from @root
561
+ rescue ArgumentError
562
+ # On Windows, sometimes crosses different drive letters.
563
+ page_dir = @page_dir . expand_path
564
+ end
559
565
560
566
@page_dir = page_dir
561
567
end
@@ -1154,8 +1160,17 @@ def sanitize_path path
1154
1160
1155
1161
path . reject do |item |
1156
1162
path = Pathname . new ( item ) . expand_path
1157
- relative = path . relative_path_from ( dot ) . to_s
1158
- relative . start_with? '..'
1163
+ is_reject = nil
1164
+ relative = nil
1165
+ begin
1166
+ relative = path . relative_path_from ( dot ) . to_s
1167
+ rescue ArgumentError
1168
+ # On Windows, sometimes crosses different drive letters.
1169
+ is_reject = true
1170
+ else
1171
+ is_reject = relative . start_with? '..'
1172
+ end
1173
+ is_reject
1159
1174
end
1160
1175
end
1161
1176
Original file line number Diff line number Diff line change @@ -493,8 +493,14 @@ def test_parse_page_dir
493
493
assert_empty out
494
494
assert_empty err
495
495
496
- expected =
497
- Pathname ( Dir . tmpdir ) . expand_path . relative_path_from @options . root
496
+ expected = nil
497
+ begin
498
+ expected =
499
+ Pathname ( Dir . tmpdir ) . expand_path . relative_path_from @options . root
500
+ rescue ArgumentError
501
+ # On Windows, sometimes crosses different drive letters.
502
+ expected = Pathname ( Dir . tmpdir ) . expand_path
503
+ end
498
504
499
505
assert_equal expected , @options . page_dir
500
506
assert_equal [ Dir . tmpdir ] , @options . files
You can’t perform that action at this time.
0 commit comments