Fix handling of file:
URL scheme in downloadOrRead
(#5522)
Move up the pattern match to be reachable, closes #5517. Previously `file:/` URLs were handled wrongly and pandoc attempted to make HTTP requests, which failed.
This commit is contained in:
parent
0be83f24a9
commit
214da7217b
2 changed files with 28 additions and 2 deletions
|
@ -572,10 +572,10 @@ downloadOrRead s = do
|
||||||
Nothing -> openURL s' -- will throw error
|
Nothing -> openURL s' -- will throw error
|
||||||
(Nothing, s') ->
|
(Nothing, s') ->
|
||||||
case parseURI s' of -- requires absolute URI
|
case parseURI s' of -- requires absolute URI
|
||||||
-- We don't want to treat C:/ as a scheme:
|
|
||||||
Just u' | length (uriScheme u') > 2 -> openURL (show u')
|
|
||||||
Just u' | uriScheme u' == "file:" ->
|
Just u' | uriScheme u' == "file:" ->
|
||||||
readLocalFile $ uriPathToPath (uriPath u')
|
readLocalFile $ uriPathToPath (uriPath u')
|
||||||
|
-- We don't want to treat C:/ as a scheme:
|
||||||
|
Just u' | length (uriScheme u') > 2 -> openURL (show u')
|
||||||
_ -> readLocalFile fp -- get from local file system
|
_ -> readLocalFile fp -- get from local file system
|
||||||
where readLocalFile f = do
|
where readLocalFile f = do
|
||||||
resourcePath <- getResourcePath
|
resourcePath <- getResourcePath
|
||||||
|
|
26
test/command/5517.md
Normal file
26
test/command/5517.md
Normal file
|
@ -0,0 +1,26 @@
|
||||||
|
Use epub output to trigger `downloadOrRead` in `Text.Pandoc.Class`
|
||||||
|
in order to test `file:` URL-scheme handling.
|
||||||
|
|
||||||
|
There are no relative `file:` URLs, so we cannot
|
||||||
|
test with an actual file, since we don't know the
|
||||||
|
current working directory. Instead, we use `/dev/null`
|
||||||
|
as a file that certainly exists, redirect stderr
|
||||||
|
to stdout and check that there is no warning.
|
||||||
|
|
||||||
|
```
|
||||||
|
% pandoc -M title=test -f native -t epub -o /dev/null 2>&1
|
||||||
|
[Para [Image ("",[],[]) [] ("file:/dev/null","")]]
|
||||||
|
^D
|
||||||
|
```
|
||||||
|
|
||||||
|
```
|
||||||
|
% pandoc -M title=test -f native -t epub -o /dev/null 2>&1
|
||||||
|
[Para [Image ("",[],[]) [] ("file:///dev/null","")]]
|
||||||
|
^D
|
||||||
|
```
|
||||||
|
|
||||||
|
```
|
||||||
|
% pandoc -M title=test -f native -t epub -o /dev/null 2>&1
|
||||||
|
[Para [Image ("",[],[]) [] ("file://localhost/dev/null","")]]
|
||||||
|
^D
|
||||||
|
```
|
Loading…
Add table
Reference in a new issue