diff options
-rw-r--r-- | src/Text/Pandoc/Readers/Man.hs | 4 | ||||
-rw-r--r-- | test/Tests/Readers/Man.hs | 2 |
2 files changed, 4 insertions, 2 deletions
diff --git a/src/Text/Pandoc/Readers/Man.hs b/src/Text/Pandoc/Readers/Man.hs index 6916e56db..96d31b9d1 100644 --- a/src/Text/Pandoc/Readers/Man.hs +++ b/src/Text/Pandoc/Readers/Man.hs @@ -204,9 +204,11 @@ escapeLexer = try $ do <|> charCode `sepBy1` (many1 Parsec.space) ) <* char ']' - ucharCode = do + ucharCode = try $ do char 'u' cs <- many1 (satisfy isHexDigit) + let lcs = length cs + guard $ lcs >= 4 && lcs <= 6 case chr <$> safeRead ('0':'x':cs) of Nothing -> escUnknown ("\\[u" ++ cs ++ "]") '\xFFFD' Just c -> return c diff --git a/test/Tests/Readers/Man.hs b/test/Tests/Readers/Man.hs index 7fd265122..fdb6718e2 100644 --- a/test/Tests/Readers/Man.hs +++ b/test/Tests/Readers/Man.hs @@ -76,7 +76,7 @@ tests = [ , "two letter escapes" =: "\\(oA\\(~O" =?> (para $ text "ÅÕ") , "bracketed escapes" =: - "\\[oA]\\[~O]\\[Do]\\[Ye]\\[product]" =?> (para $ text "ÅÕ$¥∏") + "\\[oA]\\[~O]\\[Do]\\[Ye]\\[product]\\[ul]" =?> (para $ text "ÅÕ$¥∏_") , "unicode escapes" =: "\\[u2020]" =?> (para $ text "†") , "unicode escapes (combined)" =: |