From c780bb4626d7c8721ed3b7d441c4020dcfbd939d Mon Sep 17 00:00:00 2001 From: graf0 Date: Sun, 16 Oct 2022 14:13:23 +0200 Subject: [PATCH] interp: trace should write to stderr by default Fixes #926. --- interp/interp_test.go | 8 ++++++++ interp/trace.go | 6 +++--- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/interp/interp_test.go b/interp/interp_test.go index a88778cf0..76d22c51e 100644 --- a/interp/interp_test.go +++ b/interp/interp_test.go @@ -3130,6 +3130,14 @@ single quote // for trace { `set -x +exec >/dev/null +echo "trace should go to stderr"`, + `+ exec ++ echo 'trace should go to stderr' +`, + }, + { + `set -x animals=(dog, cat, otter) for i in ${animals[@]} do diff --git a/interp/trace.go b/interp/trace.go index 08b6eafce..dbf5087eb 100644 --- a/interp/trace.go +++ b/interp/trace.go @@ -14,7 +14,7 @@ import ( type tracer struct { buf bytes.Buffer printer *syntax.Printer - stdout io.Writer + output io.Writer needsPlus bool } @@ -25,7 +25,7 @@ func (r *Runner) tracer() *tracer { return &tracer{ printer: syntax.NewPrinter(), - stdout: r.stdout, + output: r.stderr, needsPlus: true, } } @@ -74,7 +74,7 @@ func (t *tracer) flush() { return } - t.stdout.Write(t.buf.Bytes()) + t.output.Write(t.buf.Bytes()) t.buf.Reset() }