terminal: fix fgColor/bgColor commands [backport] (#15554)

Since #8296, fgSetColor is no longer a global. These commands were
probably left out from the change as an oversight, so some tests have
been added to make sure this won't happen again.

(cherry picked from commit d1af9587b8)
This commit is contained in:
alaviss
2020-10-13 11:39:32 -05:00
committed by narimiran
parent ad29fe8946
commit 4088d7f2ae
2 changed files with 11 additions and 4 deletions

View File

@@ -687,10 +687,9 @@ template styledEchoProcessArg(f: File, color: Color) =
template styledEchoProcessArg(f: File, cmd: TerminalCmd) =
when cmd == resetStyle:
resetAttributes(f)
when cmd == fgColor:
fgSetColor = true
when cmd == bgColor:
fgSetColor = false
elif cmd in {fgColor, bgColor}:
let term = getTerminal()
term.fgSetColor = cmd == fgColor
macro styledWrite*(f: File, m: varargs[typed]): untyped =
## Similar to ``write``, but treating terminal style arguments specially.

View File

@@ -0,0 +1,8 @@
discard """
action: compile
"""
import terminal, colors
styledEcho fgColor, colRed, "Test"
styledEcho bgColor, colBlue, "Test"