summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJoe Crayne <joe@jerkface.net>2018-11-24 01:32:59 -0500
committerJoe Crayne <joe@jerkface.net>2018-11-24 01:32:59 -0500
commit213cacba7d36062b8a3bdc4b05bb3dc2eeeb4a06 (patch)
treec525f8e6a4ea44b65d4e1c01a068d73d0605a6c3
parente728b91d49807a327e66f1c56c25dd02626ce2ce (diff)
Fix skipping top-level includes in pretty print.
-rw-r--r--c2haskell.hs5
1 files 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 _) =
72includeTopLevel (IncludeStack incs) f = do 72includeTopLevel (IncludeStack incs) f = do
73 stacks <- maybeToList $ Map.lookup f incs 73 stacks <- maybeToList $ Map.lookup f incs
74 stack <- take 1 stacks 74 stack <- take 1 stacks
75 top <- take 1 $ drop 4 $ reverse stack 75 top <- take 1 $ drop 4 $ reverse (f:stack)
76 if take 1 top == "/" 76 if take 1 top == "/"
77 then let ws = groupBy (\_ c -> c /='/') top 77 then let ws = groupBy (\_ c -> c /='/') top
78 (xs,ys) = break (=="/include") ws 78 (xs,ys) = break (=="/include") ws
@@ -927,12 +927,13 @@ main = do
927 let usageString = self ++ " [--cpp | -p | -t ] [-v] [-f <sym>] -- [gcc options] [modules] <cfile>" 927 let usageString = self ++ " [--cpp | -p | -t ] [-v] [-f <sym>] -- [gcc options] [modules] <cfile>"
928 let m = usage args 928 let m = usage args
929 fromMaybe (putStrLn usageString) $ m <&> \(hopts,cargs,fname:fs) -> do 929 fromMaybe (putStrLn usageString) $ m <&> \(hopts,cargs,fname:fs) -> do
930 putStrLn $ "fname = " ++ fname
931 prer <- runPreprocessor (newGCC "gcc") (rawCppArgs cargs fname) 930 prer <- runPreprocessor (newGCC "gcc") (rawCppArgs cargs fname)
932 let r = do 931 let r = do
933 pre <- left Left $ prer 932 pre <- left Left $ prer
934 c <- left Right $ parseC pre (initPos fname) 933 c <- left Right $ parseC pre (initPos fname)
935 return (includeStack pre,c) 934 return (includeStack pre,c)
935 -- putStrLn $ "fname = " ++ fname
936 -- putStrLn $ "includes = " ++ ppShow (fmap fst r)
936 cs <- readComments fname 937 cs <- readComments fname
937 case () of 938 case () of
938 _ | preprocess hopts -- --cpp 939 _ | preprocess hopts -- --cpp