From 1d370f586650277a6a3b87b7ab14e6c3e1949c3c Mon Sep 17 00:00:00 2001 From: Alan Zimmerman Date: Wed, 30 Sep 2015 21:07:41 +0200 Subject: [PATCH] Speed up map-file loading --- elisp/ghc-process.el | 2 +- src/GHCMod.hs | 9 +++++---- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/elisp/ghc-process.el b/elisp/ghc-process.el index 165d2f9..3c80d8c 100644 --- a/elisp/ghc-process.el +++ b/elisp/ghc-process.el @@ -69,7 +69,7 @@ (save-restriction (widen) (process-send-region pro (point-min) (point-max)))) - (process-send-string pro "\004\n") + (process-send-string pro "\n\004\n") (condition-case nil (let ((inhibit-quit nil)) (while ghc-process-file-mapping diff --git a/src/GHCMod.hs b/src/GHCMod.hs index ea64153..e770384 100644 --- a/src/GHCMod.hs +++ b/src/GHCMod.hs @@ -506,10 +506,11 @@ getFileSourceFromStdin :: IO String getFileSourceFromStdin = do let loop' acc = do line <- getLine - if not (null line) && last line == '\EOT' - then return $ acc ++ init line - else loop' (acc++line++"\n") - loop' "" + if line == "\EOT" + then return $ intercalate "\n" $ reverse $ ((init line):acc) + else loop' (line:acc) + loop' [] + -- Someone please already rewrite the cmdline parsing code *weep* :'( wrapGhcCommands :: (IOish m, GmOut m) => Options -> [String] -> m ()