Commit d0611669 authored by cdsmith@twu.net's avatar cdsmith@twu.net
Browse files

FIX #1378 Add option for a shorter banner on GHCi startup

Add -short-ghci-banner and -long-ghci-banner.  The default is long, which is
the current behavior.  The short banner prints a one-line introduction with
only the version, web site, and ":? for help" message.
parent 2506fbad
......@@ -8,7 +8,8 @@
-----------------------------------------------------------------------------
module InteractiveUI (
interactiveUI,
ghciWelcomeMsg
ghciWelcomeMsg,
ghciShortWelcomeMsg
) where
#include "HsVersions.h"
......@@ -90,6 +91,10 @@ ghciWelcomeMsg =
"/ /_\\\\/ __ / /___| | http://www.haskell.org/ghc/\n"++
"\\____/\\/ /_/\\____/|_| Type :? for help.\n"
ghciShortWelcomeMsg =
"GHCi, version " ++ cProjectVersion ++
": http://www.haskell.org/ghc/ :? for help"
type Command = (String, String -> GHCi Bool, Bool, String -> IO [String])
cmdName (n,_,_,_) = n
......
......@@ -24,7 +24,7 @@ import HscMain ( newHscEnv )
import DriverPipeline ( oneShot, compileFile )
import DriverMkDepend ( doMkDependHS )
#ifdef GHCI
import InteractiveUI ( ghciWelcomeMsg, interactiveUI )
import InteractiveUI ( ghciWelcomeMsg, ghciShortWelcomeMsg, interactiveUI )
#endif
-- Various other random stuff that we need
......@@ -430,8 +430,10 @@ showBanner cli_mode dflags = do
let verb = verbosity dflags
-- Show the GHCi banner
# ifdef GHCI
when (isInteractiveMode cli_mode && verb >= 1) $
hPutStrLn stdout ghciWelcomeMsg
let msg = if opt_ShortGhciBanner
then ghciShortWelcomeMsg
else ghciWelcomeMsg
when (isInteractiveMode cli_mode && verb >= 1) $ hPutStrLn stdout msg
# endif
-- Display details of the configuration in verbose mode
......
......@@ -61,6 +61,7 @@ module StaticFlags (
-- misc opts
opt_IgnoreDotGhci,
opt_ShortGhciBanner,
opt_ErrorSpans,
opt_GranMacros,
opt_HiVersion,
......@@ -143,6 +144,8 @@ static_flags = [
------- GHCi -------------------------------------------------------
( "ignore-dot-ghci", PassFlag addOpt )
, ( "read-dot-ghci" , NoArg (removeOpt "-ignore-dot-ghci") )
, ( "short-ghci-banner", PassFlag addOpt )
, ( "long-ghci-banner" , NoArg (removeOpt "-short-ghci-banner") )
------- ways --------------------------------------------------------
, ( "prof" , NoArg (addWay WayProf) )
......@@ -273,6 +276,7 @@ unpacked_opts =
opt_IgnoreDotGhci = lookUp FSLIT("-ignore-dot-ghci")
opt_ShortGhciBanner = lookUp FSLIT("-short-ghci-banner")
-- debugging opts
opt_PprStyle_Debug = lookUp FSLIT("-dppr-debug")
......
......@@ -481,6 +481,18 @@
<entry>static</entry>
<entry>-</entry>
</row>
<row>
<entry><option>-short-ghci-banner</option></entry>
<entry>Display a one-line banner at GHCi startup</entry>
<entry>static</entry>
<entry>-</entry>
</row>
<row>
<entry><option>-long-ghci-banner</option></entry>
<entry>Display a full banner at GHCi startup</entry>
<entry>static</entry>
<entry>-</entry>
</row>
<row>
<entry><option>-fdebugging</option></entry>
<entry>Generate bytecode enabled for debugging</entry>
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment