Marge Bot pushed to branch master at Glasgow Haskell Compiler / GHC

Commits:

2 changed files:

Changes:

  • compiler/GHC/Driver/DynFlags.hs
    ... ... @@ -546,6 +546,7 @@ initDynFlags dflags = do
    546 546
                              `catchIOError` \_ -> return False
    
    547 547
      ghcNoUnicodeEnv <- lookupEnv "GHC_NO_UNICODE"
    
    548 548
      let useUnicode' = isNothing ghcNoUnicodeEnv && canUseUnicode
    
    549
    + canUseColor <- stderrSupportsAnsiColors
    
    549 550
      maybeGhcColorsEnv  <- lookupEnv "GHC_COLORS"
    
    550 551
      maybeGhcColoursEnv <- lookupEnv "GHC_COLOURS"
    
    551 552
      let adjustCols (Just env) = Col.parseScheme env
    
    ... ... @@ -557,9 +558,9 @@ initDynFlags dflags = do
    557 558
      return dflags{
    
    558 559
             useUnicode    = useUnicode',
    
    559 560
             useColor      = useColor',
    
    560
    -        canUseColor   = stderrSupportsAnsiColors,
    
    561
    +        canUseColor   = canUseColor,
    
    561 562
             -- if the terminal supports color, we assume it supports links as well
    
    562
    -        canUseErrorLinks = stderrSupportsAnsiColors,
    
    563
    +        canUseErrorLinks = canUseColor,
    
    563 564
             colScheme     = colScheme',
    
    564 565
             tmpDir        = TempDir tmp_dir
    
    565 566
             }
    

  • compiler/GHC/SysTools/Terminal.hs
    ... ... @@ -14,17 +14,9 @@ import qualified Graphics.Win32 as Win32
    14 14
     import qualified System.Win32 as Win32
    
    15 15
     #endif
    
    16 16
     
    
    17
    -import System.IO.Unsafe
    
    18
    -
    
    19
    --- | Does the controlling terminal support ANSI color sequences?
    
    20
    --- This memoized to avoid thread-safety issues in ncurses (see #17922).
    
    21
    -stderrSupportsAnsiColors :: Bool
    
    22
    -stderrSupportsAnsiColors = unsafePerformIO stderrSupportsAnsiColors'
    
    23
    -{-# NOINLINE stderrSupportsAnsiColors #-}
    
    24
    -
    
    25 17
     -- | Check if ANSI escape sequences can be used to control color in stderr.
    
    26
    -stderrSupportsAnsiColors' :: IO Bool
    
    27
    -stderrSupportsAnsiColors' = do
    
    18
    +stderrSupportsAnsiColors :: IO Bool
    
    19
    +stderrSupportsAnsiColors = do
    
    28 20
     #if !defined(mingw32_HOST_OS)
    
    29 21
       -- Equivalent of https://hackage.haskell.org/package/ansi-terminal/docs/System-Console-ANSI.html#v:hSupportsANSI
    
    30 22
       isTerminal <- hIsTerminalDevice stderr