git.iko.soy/typeable/pandoc
on master help sign in
Fix #6228 (#6230)

UUID: Remove `getUUID`, fix `getRandomUUID` and make it polymorphic in PandocMonad.

commit4f41ac3269994c90173e07a6bedfbaeaec9e7be8 authorJoseph C. Sible <josephcsible@users.noreply.github.com> dateMon 30 Mar 2020, 15:03 (7 years ago) parenta465e2c
2 files changed+8−7
src/Text/Pandoc/UUID.hs+5−4 src/Text/Pandoc/Writers/EPUB.hs+3−3
src/Text/Pandoc/UUID.hs+5−4
@@ -11,12 +11,13 @@ UUID generation using Version 4 (random method) described
1111in RFC4122. See http://tools.ietf.org/html/rfc4122
1212-}
1313
14−module Text.Pandoc.UUID ( UUID(..), getRandomUUID, getUUID ) where
14+module Text.Pandoc.UUID ( UUID(..), getRandomUUID ) where
1515
1616import Data.Bits (clearBit, setBit)
1717import Data.Word
18−import System.Random (RandomGen, getStdGen, randoms)
18+import System.Random (RandomGen, randoms)
1919import Text.Printf (printf)
20+import Text.Pandoc.Class.PandocMonad
2021
2122data UUID = UUID Word8 Word8 Word8 Word8 Word8 Word8 Word8 Word8
2223 Word8 Word8 Word8 Word8 Word8 Word8 Word8 Word8
@@ -56,5 +57,5 @@ getUUID gen =
5657 in UUID a b c d e f g' h i' j k l m n o p
5758 _ -> error "not enough random numbers for UUID" -- should not happen
5859
59−getRandomUUID :: IO UUID
60−getRandomUUID = getUUID <$> getStdGen
60+getRandomUUID :: PandocMonad m => m UUID
61+getRandomUUID = getUUID <$> newStdGen
src/Text/Pandoc/Writers/EPUB.hs+3−3
@@ -50,7 +50,7 @@ import Text.Pandoc.Options (EPUBVersion (..), HTMLMathMethod (..),
5050import Text.Pandoc.Shared (makeSections, normalizeDate, renderTags',
5151 safeRead, stringify, trim, uniqueIdent, tshow)
5252import qualified Text.Pandoc.UTF8 as UTF8
53−import Text.Pandoc.UUID (getUUID)
53+import Text.Pandoc.UUID (getRandomUUID)
5454import Text.Pandoc.Walk (query, walk, walkM)
5555import Text.Pandoc.Writers.HTML (writeHtmlStringForEPUB)
5656import Text.Printf (printf)
@@ -163,8 +163,8 @@ getEPUBMetadata opts meta = do
163163 let addIdentifier m =
164164 if null (epubIdentifier m)
165165 then do
166− randomId <- (show . getUUID) <$> lift P.newStdGen
167− return $ m{ epubIdentifier = [Identifier randomId Nothing] }
166+ randomId <- getRandomUUID
167+ return $ m{ epubIdentifier = [Identifier (show randomId) Nothing] }
168168 else return m
169169 let addLanguage m =
170170 if null (epubLanguage m)