aboutsummaryrefslogtreecommitdiff
path: root/src/Text/Pandoc/Writers
diff options
context:
space:
mode:
authorMauro Bieg <mb21@users.noreply.github.com>2019-01-01 00:26:38 +0100
committerJohn MacFarlane <jgm@berkeley.edu>2018-12-31 15:26:38 -0800
commitc8b79b0a04c113e0ea41099b0201576710158a49 (patch)
tree65140d6cadf55f70a3cf0a435930031fcde3e246 /src/Text/Pandoc/Writers
parenta1ad5bb8ceda50d7a4b2ef7da2a895e57ad12db4 (diff)
downloadpandoc-c8b79b0a04c113e0ea41099b0201576710158a49.tar.gz
Replace read with safeRead (#5186)
closes #5180
Diffstat (limited to 'src/Text/Pandoc/Writers')
-rw-r--r--src/Text/Pandoc/Writers/Docx.hs10
-rw-r--r--src/Text/Pandoc/Writers/LaTeX.hs12
2 files changed, 12 insertions, 10 deletions
diff --git a/src/Text/Pandoc/Writers/Docx.hs b/src/Text/Pandoc/Writers/Docx.hs
index c2a160320..4f642871a 100644
--- a/src/Text/Pandoc/Writers/Docx.hs
+++ b/src/Text/Pandoc/Writers/Docx.hs
@@ -234,11 +234,11 @@ writeDocx opts doc@(Pandoc meta _) = do
-- Get the available area (converting the size and the margins to int and
-- doing the difference
- let pgContentWidth = (-) <$> (read <$> mbAttrSzWidth ::Maybe Integer)
- <*> (
- (+) <$> (read <$> mbAttrMarRight ::Maybe Integer)
- <*> (read <$> mbAttrMarLeft ::Maybe Integer)
- )
+ let pgContentWidth = mbAttrSzWidth >>= safeRead
+ >>= subtrct mbAttrMarRight
+ >>= subtrct mbAttrMarLeft
+ where
+ subtrct mbStr = \x -> mbStr >>= safeRead >>= (\y -> Just $ x - y)
-- styles
mblang <- toLang $ getLang opts meta
diff --git a/src/Text/Pandoc/Writers/LaTeX.hs b/src/Text/Pandoc/Writers/LaTeX.hs
index ca8295f0a..f9bee886e 100644
--- a/src/Text/Pandoc/Writers/LaTeX.hs
+++ b/src/Text/Pandoc/Writers/LaTeX.hs
@@ -553,16 +553,18 @@ blockToLaTeX (Div (identifier,classes,kvs) bs)
else id
wrapColumn = if "column" `elem` classes
then \contents ->
- let fromPct xs =
- case reverse xs of
- '%':ds -> showFl (read (reverse ds) / 100 :: Double)
- _ -> xs
- w = maybe "0.48" fromPct (lookup "width" kvs)
+ let w = maybe "0.48" fromPct (lookup "width" kvs)
in inCmd "begin" "column" <>
braces (text w <> "\\textwidth")
$$ contents
$$ inCmd "end" "column"
else id
+ fromPct xs =
+ case reverse xs of
+ '%':ds -> case safeRead (reverse ds) of
+ Just digits -> showFl (digits / 100 :: Double)
+ Nothing -> xs
+ _ -> xs
wrapDir = case lookup "dir" kvs of
Just "rtl" -> align "RTL"
Just "ltr" -> align "LTR"