git.iko.soy/typeable/pandoc
on master help sign in
Split the RNG so they don't end up equal again after 1 call to next (#6227)
commit40fd20d43fc2431e411554c138cb6e7d15654917 authorJoseph C. Sible <josephcsible@users.noreply.github.com> dateMon 30 Mar 2020, 00:10 (7 years ago) parentc12bf49
1 file changed+5−5
src/Text/Pandoc/Class/PandocPure.hs+5−5
src/Text/Pandoc/Class/PandocPure.hs+5−5
@@ -40,7 +40,7 @@ import Data.Word (Word8)
4040import System.Directory (doesDirectoryExist, getDirectoryContents)
4141import System.FilePath ((</>))
4242import System.FilePath.Glob (match, compile)
43−import System.Random (StdGen, next, mkStdGen)
43+import System.Random (StdGen, split, mkStdGen)
4444import Text.Pandoc.Class.CommonState (CommonState (..))
4545import Text.Pandoc.Class.PandocMonad
4646import Text.Pandoc.Error
@@ -168,10 +168,10 @@ instance PandocMonad PandocPure where
168168 getCurrentTimeZone = getsPureState stTimeZone
169169
170170 newStdGen = do
171− g <- getsPureState stStdGen
172− let (_, nxtGen) = next g
173− modifyPureState $ \st -> st { stStdGen = nxtGen }
174− return g
171+ oldGen <- getsPureState stStdGen
172+ let (genToStore, genToReturn) = split oldGen
173+ modifyPureState $ \st -> st { stStdGen = genToStore }
174+ return genToReturn
175175
176176 newUniqueHash = do
177177 uniqs <- getsPureState stUniqStore