From 213cacba7d36062b8a3bdc4b05bb3dc2eeeb4a06 Mon Sep 17 00:00:00 2001 From: Joe Crayne Date: Sat, 24 Nov 2018 01:32:59 -0500 Subject: Fix skipping top-level includes in pretty print. --- c2haskell.hs | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/c2haskell.hs b/c2haskell.hs index 92fafe4..e55e9a9 100644 --- a/c2haskell.hs +++ b/c2haskell.hs @@ -72,7 +72,7 @@ prettyUsingInclude incs (CTranslUnit edecls _) = includeTopLevel (IncludeStack incs) f = do stacks <- maybeToList $ Map.lookup f incs stack <- take 1 stacks - top <- take 1 $ drop 4 $ reverse stack + top <- take 1 $ drop 4 $ reverse (f:stack) if take 1 top == "/" then let ws = groupBy (\_ c -> c /='/') top (xs,ys) = break (=="/include") ws @@ -927,12 +927,13 @@ main = do let usageString = self ++ " [--cpp | -p | -t ] [-v] [-f ] -- [gcc options] [modules] " let m = usage args fromMaybe (putStrLn usageString) $ m <&> \(hopts,cargs,fname:fs) -> do - putStrLn $ "fname = " ++ fname prer <- runPreprocessor (newGCC "gcc") (rawCppArgs cargs fname) let r = do pre <- left Left $ prer c <- left Right $ parseC pre (initPos fname) return (includeStack pre,c) + -- putStrLn $ "fname = " ++ fname + -- putStrLn $ "includes = " ++ ppShow (fmap fst r) cs <- readComments fname case () of _ | preprocess hopts -- --cpp -- cgit v1.2.3