Skip to content

Commit 7c81dbf

Browse files
polish the stdout/stderr assignments
1 parent 1f6ce27 commit 7c81dbf

File tree

2 files changed

+14
-17
lines changed

2 files changed

+14
-17
lines changed

Diff for: internal/arduino/builder/internal/preprocessor/ctags.go

+13-15
Original file line numberDiff line numberDiff line change
@@ -52,43 +52,41 @@ func PreprocessSketchWithCtags(
5252
defer tmpDir.RemoveAll()
5353
ctagsTarget := tmpDir.Join("sketch_merged.cpp")
5454

55-
normalOutput := &bytes.Buffer{}
56-
verboseOutput := &bytes.Buffer{}
55+
stdout, stderr := &bytes.Buffer{}, &bytes.Buffer{}
5756

5857
// Run GCC preprocessor
5958
sourceFile := buildPath.Join("sketch", sketch.MainFile.Base()+".cpp")
6059
result, err := GCC(sourceFile, ctagsTarget, includes, buildProperties)
61-
verboseOutput.Write(result.Stdout())
62-
verboseOutput.Write(result.Stderr())
63-
normalOutput.Write(result.Stderr())
60+
stdout.Write(result.Stdout())
61+
stderr.Write(result.Stderr())
6462
if err != nil {
6563
if !onlyUpdateCompilationDatabase {
66-
return Result{args: result.Args(), stdout: verboseOutput.Bytes(), stderr: normalOutput.Bytes()}, err
64+
return Result{args: result.Args(), stdout: stdout.Bytes(), stderr: stderr.Bytes()}, err
6765
}
6866

6967
// Do not bail out if we are generating the compile commands database
70-
normalOutput.WriteString(fmt.Sprintf("%s: %s",
68+
stderr.WriteString(fmt.Sprintf("%s: %s",
7169
tr("An error occurred adding prototypes"),
7270
tr("the compilation database may be incomplete or inaccurate")))
7371
if err := sourceFile.CopyTo(ctagsTarget); err != nil {
74-
return Result{args: result.Args(), stdout: verboseOutput.Bytes(), stderr: normalOutput.Bytes()}, err
72+
return Result{args: result.Args(), stdout: stdout.Bytes(), stderr: stderr.Bytes()}, err
7573
}
7674
}
7775

7876
if src, err := ctagsTarget.ReadFile(); err == nil {
7977
filteredSource := filterSketchSource(sketch, bytes.NewReader(src), false)
8078
if err := ctagsTarget.WriteFile([]byte(filteredSource)); err != nil {
81-
return Result{args: result.Args(), stdout: verboseOutput.Bytes(), stderr: normalOutput.Bytes()}, err
79+
return Result{args: result.Args(), stdout: stdout.Bytes(), stderr: stderr.Bytes()}, err
8280
}
8381
} else {
84-
return Result{args: result.Args(), stdout: verboseOutput.Bytes(), stderr: normalOutput.Bytes()}, err
82+
return Result{args: result.Args(), stdout: stdout.Bytes(), stderr: stderr.Bytes()}, err
8583
}
8684

8785
// Run CTags on gcc-preprocessed source
8886
ctagsOutput, ctagsStdErr, err := RunCTags(ctagsTarget, buildProperties)
89-
verboseOutput.Write(ctagsStdErr)
87+
stderr.Write(ctagsStdErr)
9088
if err != nil {
91-
return Result{args: result.Args(), stdout: verboseOutput.Bytes(), stderr: normalOutput.Bytes()}, err
89+
return Result{args: result.Args(), stdout: stdout.Bytes(), stderr: stderr.Bytes()}, err
9290
}
9391

9492
// Parse CTags output
@@ -103,13 +101,13 @@ func PreprocessSketchWithCtags(
103101
if sourceData, err := sourceFile.ReadFile(); err == nil {
104102
source = string(sourceData)
105103
} else {
106-
return Result{args: result.Args(), stdout: verboseOutput.Bytes(), stderr: normalOutput.Bytes()}, err
104+
return Result{args: result.Args(), stdout: stdout.Bytes(), stderr: stderr.Bytes()}, err
107105
}
108106
source = strings.ReplaceAll(source, "\r\n", "\n")
109107
source = strings.ReplaceAll(source, "\r", "\n")
110108
sourceRows := strings.Split(source, "\n")
111109
if isFirstFunctionOutsideOfSource(firstFunctionLine, sourceRows) {
112-
return Result{args: result.Args(), stdout: verboseOutput.Bytes(), stderr: normalOutput.Bytes()}, nil
110+
return Result{args: result.Args(), stdout: stdout.Bytes(), stderr: stderr.Bytes()}, nil
113111
}
114112

115113
insertionLine := firstFunctionLine + lineOffset - 1
@@ -135,7 +133,7 @@ func PreprocessSketchWithCtags(
135133

136134
// Write back arduino-preprocess output to the sourceFile
137135
err = sourceFile.WriteFile([]byte(preprocessedSource))
138-
return Result{args: result.Args(), stdout: verboseOutput.Bytes(), stderr: normalOutput.Bytes()}, err
136+
return Result{args: result.Args(), stdout: stdout.Bytes(), stderr: stderr.Bytes()}, err
139137
}
140138

141139
func composePrototypeSection(line int, prototypes []*ctags.Prototype) string {

Diff for: internal/arduino/builder/preprocess_sketch.go

+1-2
Original file line numberDiff line numberDiff line change
@@ -29,9 +29,8 @@ func (b *Builder) preprocessSketch(includes paths.PathList) error {
2929
)
3030
if b.logger.Verbose() {
3131
b.logger.WriteStdout(result.Stdout())
32-
} else {
33-
b.logger.WriteStdout(result.Stderr())
3432
}
33+
b.logger.WriteStdout(result.Stderr())
3534
b.diagnosticStore.Parse(result.Args(), result.Stderr())
3635

3736
return err

0 commit comments

Comments
 (0)