Skip to content

Commit

Permalink
fix timotheecour#152: avoid writing spurious ^[[0m to stderr when c…
Browse files Browse the repository at this point in the history
…allStyledWriteLineStderr not called (nim-lang#14214)

* fix timotheecour#152 `^[[0m` is inserted in stderr for `echo code | nim c -`

* resetAttributes not even needed, already handled in styledWriteLine

* simplify tests in tests/trunner.nim thanks to this fix
  • Loading branch information
timotheecour authored May 4, 2020
1 parent 9277379 commit a23302e
Show file tree
Hide file tree
Showing 3 changed files with 5 additions and 12 deletions.
2 changes: 0 additions & 2 deletions compiler/main.nim
Original file line number Diff line number Diff line change
Expand Up @@ -405,5 +405,3 @@ proc mainCommand*(graph: ModuleGraph) =
echo " int tries: ", gCacheIntTries
echo " efficiency: ", formatFloat(1-(gCacheMisses.float/gCacheTries.float),
ffDecimal, 3)

resetAttributes(conf)
7 changes: 3 additions & 4 deletions compiler/msgs.nim
Original file line number Diff line number Diff line change
Expand Up @@ -298,6 +298,9 @@ macro callStyledWriteLineStderr(args: varargs[typed]): untyped =
result.add(bindSym"stderr")
for arg in children(args[0][1]):
result.add(arg)
when false:
# not needed because styledWriteLine already ends with resetAttributes
result = newStmtList(result, newCall(bindSym"resetAttributes", bindSym"stderr"))

template callWritelnHook(args: varargs[string, `$`]) =
conf.writelnHook concat(args)
Expand Down Expand Up @@ -441,10 +444,6 @@ proc rawMessage*(conf: ConfigRef; msg: TMsgKind, args: openArray[string]) =
proc rawMessage*(conf: ConfigRef; msg: TMsgKind, arg: string) =
rawMessage(conf, msg, [arg])

proc resetAttributes*(conf: ConfigRef) =
if {optUseColors, optStdout} * conf.globalOptions == {optUseColors}:
terminal.resetAttributes(stderr)

proc addSourceLine(conf: ConfigRef; fileIdx: FileIndex, line: string) =
conf.m.fileInfos[fileIdx.int32].lines.add line

Expand Down
8 changes: 2 additions & 6 deletions tests/trunner.nim
Original file line number Diff line number Diff line change
Expand Up @@ -74,9 +74,7 @@ else: # don't run twice the same test
var output = p.outputStream.readAll
let error = p.errorStream.readAll
doAssert p.waitForExit == 0
when false: # https://github.com/timotheecour/Nim/issues/152
# bug: `^[[0m` is being inserted somehow with `-` (regarless of --run)
doAssert error.len == 0, $(error,)
doAssert error.len == 0, $error
output.stripLineEnd
doAssert output == expected
p.errorStream.close
Expand All @@ -85,8 +83,6 @@ else: # don't run twice the same test
block:
when defined(posix):
let cmd = fmt"echo 'import os; echo commandLineParams()' | {nimcmd}"
# avoid https://github.com/timotheecour/Nim/issues/152 by
# making sure `poStdErrToStdOut` isn't passed
var (output, exitCode) = execCmdEx(cmd, options = {poEvalCommand})
var (output, exitCode) = execCmdEx(cmd)
output.stripLineEnd
doAssert output == expected

0 comments on commit a23302e

Please sign in to comment.