diff options
author | Joe Crayne <joe@jerkface.net> | 2018-11-24 01:32:59 -0500 |
---|---|---|
committer | Joe Crayne <joe@jerkface.net> | 2018-11-24 01:32:59 -0500 |
commit | 213cacba7d36062b8a3bdc4b05bb3dc2eeeb4a06 (patch) | |
tree | c525f8e6a4ea44b65d4e1c01a068d73d0605a6c3 | |
parent | e728b91d49807a327e66f1c56c25dd02626ce2ce (diff) |
Fix skipping top-level includes in pretty print.
-rw-r--r-- | c2haskell.hs | 5 |
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 _) = | |||
72 | includeTopLevel (IncludeStack incs) f = do | 72 | includeTopLevel (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 |