From: Ian Lynagh Date: Mon, 25 Aug 2008 19:43:52 +0000 (+0000) Subject: Fix "runghc foo" where the program is foo.hs or foo.lhs X-Git-Url: http://git.megacz.com/?p=ghc-hetmet.git;a=commitdiff_plain;h=fedf1224b59e7d159aba66884aa9705bb0413e78 Fix "runghc foo" where the program is foo.hs or foo.lhs --- diff --git a/utils/runghc/runghc.hs b/utils/runghc/runghc.hs index decbdcd..1ce358e 100644 --- a/utils/runghc/runghc.hs +++ b/utils/runghc/runghc.hs @@ -82,9 +82,16 @@ doIt ghc args = do hClose h doIt ghc (ghc_args ++ [filename]) filename : prog_args -> do - let xflag = if takeExtension filename == ".lhs" - then [] - else ["-x", "hs"] + -- If the file exists, and is not a .lhs file, then we + -- want to treat it as a .hs file. + -- + -- If the file doesn't exist then GHC is going to look for + -- filename.hs and filename.lhs, and use the appropriate + -- type. + exists <- doesFileExist filename + let xflag = if exists && (takeExtension filename /= ".lhs") + then ["-x", "hs"] + else [] c1 = ":set prog " ++ show filename c2 = ":main " ++ show prog_args res <- rawSystem ghc (["-ignore-dot-ghci"] ++