diff options
author | John MacFarlane <jgm@berkeley.edu> | 2013-10-22 12:34:18 -0700 |
---|---|---|
committer | John MacFarlane <jgm@berkeley.edu> | 2013-10-22 12:34:18 -0700 |
commit | 416dad86dca4087f4eab21f0ac6296178a1479cf (patch) | |
tree | a9119dbf16a0f8a12d79dfac107418e41eee3fd6 /src/Text/Pandoc | |
parent | e63aafd62004e3424da46de75c78ba4dc7562af4 (diff) | |
download | pandoc-416dad86dca4087f4eab21f0ac6296178a1479cf.tar.gz |
DocBook reader: Handle numerical attributes starting with decimal.
Also use safeRead instead of read.
Diffstat (limited to 'src/Text/Pandoc')
-rw-r--r-- | src/Text/Pandoc/Readers/DocBook.hs | 13 |
1 files changed, 7 insertions, 6 deletions
diff --git a/src/Text/Pandoc/Readers/DocBook.hs b/src/Text/Pandoc/Readers/DocBook.hs index 6a799e270..fc29988d5 100644 --- a/src/Text/Pandoc/Readers/DocBook.hs +++ b/src/Text/Pandoc/Readers/DocBook.hs @@ -1,5 +1,6 @@ module Text.Pandoc.Readers.DocBook ( readDocBook ) where -import Data.Char (toUpper, isDigit) +import Data.Char (toUpper) +import Text.Pandoc.Shared (safeRead) import Text.Pandoc.Options import Text.Pandoc.Definition import Text.Pandoc.Builder @@ -682,10 +683,9 @@ parseBlock (Elem e) = "lowerroman" -> LowerRoman "upperroman" -> UpperRoman _ -> Decimal - let start = case attrValue "override" <$> - filterElement (named "listitem") e of - Just x@(_:_) | all isDigit x -> read x - _ -> 1 + let start = maybe 1 id $ + (attrValue "override" <$> filterElement (named "listitem") e) + >>= safeRead orderedListWith (start,listStyle,DefaultDelim) <$> listitems "variablelist" -> definitionList <$> deflistitems @@ -801,7 +801,8 @@ parseBlock (Elem e) = Just "center" -> AlignCenter _ -> AlignDefault let toWidth c = case findAttr (unqual "colwidth") c of - Just w -> read $ filter (\x -> + Just w -> maybe 0 id + $ safeRead $ '0': filter (\x -> (x >= '0' && x <= '9') || x == '.') w Nothing -> 0 :: Double |