Marge Bot pushed to branch master at Glasgow Haskell Compiler / GHC
Commits:
-
9284a1f7
by Simon Hengel at 2026-06-23T05:55:33-04:00
2 changed files:
Changes:
| ... | ... | @@ -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 | }
|
| ... | ... | @@ -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
|