From ce5bbf184c167aa7b7aec20cb9447263a49bc294 Mon Sep 17 00:00:00 2001 From: Joey Hess Date: Mon, 9 Dec 2013 15:34:56 -0400 Subject: fix infinite recursion on failed parse --- Build/EvilLinker.hs | 14 +++++--------- 1 file changed, 5 insertions(+), 9 deletions(-) diff --git a/Build/EvilLinker.hs b/Build/EvilLinker.hs index 584f12381..e62b5a4f9 100644 --- a/Build/EvilLinker.hs +++ b/Build/EvilLinker.hs @@ -116,14 +116,6 @@ getOutput c ps environ = do writeFile (c ++ ".out") s return out -runParser' :: Parser a -> String -> String -> a -runParser' p s paramfile = either failedparse id (parse p "" s) - where - failedparse e = error $ - (show e) ++ - "\n<<<\n" ++ s ++ "\n>>>" ++ - "\nparam file contained: >>>\n" ++ paramfile ++ "\n<<<" - atFile :: FilePath -> String atFile f = '@':f @@ -136,7 +128,11 @@ runAtFile p s f extraparams = do removeFile f return out where - c = runParser' p s (opts c) + c = case parse p "" s of + Left e -> error $ + (show e) ++ + "\n<<<\n" ++ s ++ "\n>>>" + Right r -> r main :: IO () main = do -- cgit v1.2.3