aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorJohn MacFarlane <jgm@berkeley.edu>2013-11-19 13:15:24 -0800
committerJohn MacFarlane <jgm@berkeley.edu>2013-11-19 13:15:24 -0800
commit83b9a66bf468c0f32bd96be92bb571bd83b73903 (patch)
treeb9a91e87d252eaae328a5492547d2f08b70581a0 /src
parente290d91c93b265ce7763797a5c995d29fb683c67 (diff)
downloadpandoc-83b9a66bf468c0f32bd96be92bb571bd83b73903.tar.gz
Shared: Fixed bug in openURL with data: URIs.
Previously the base-64 encoded bytestring was returned. We now decode it so it's a proper image! This should fix parsing of data: URLs.
Diffstat (limited to 'src')
-rw-r--r--src/Text/Pandoc/Shared.hs3
1 files changed, 2 insertions, 1 deletions
diff --git a/src/Text/Pandoc/Shared.hs b/src/Text/Pandoc/Shared.hs
index d6ccdae66..8dcd88148 100644
--- a/src/Text/Pandoc/Shared.hs
+++ b/src/Text/Pandoc/Shared.hs
@@ -108,6 +108,7 @@ import Text.HTML.TagSoup (renderTagsOptions, RenderOptions(..), Tag(..),
import qualified Data.ByteString as BS
import qualified Data.ByteString.Char8 as B8
import Text.Pandoc.Compat.Monoid
+import Data.ByteString.Base64 (decodeLenient)
#ifdef EMBED_DATA_FILES
import Text.Pandoc.Data (dataFiles)
@@ -641,7 +642,7 @@ openURL u
| "data:" `isPrefixOf` u =
let mime = takeWhile (/=',') $ drop 5 u
contents = B8.pack $ unEscapeString $ drop 1 $ dropWhile (/=',') u
- in return $ Right (contents, Just mime)
+ in return $ Right (decodeLenient contents, Just mime)
#ifdef HTTP_CONDUIT
| otherwise = E.try $ do
req <- parseUrl u