Avoid closing stdin/stdout/stderr standard streams

This commit is contained in:
Rangi
2026-07-13 13:02:46 -04:00
parent 8ab6190f96
commit e9fa1e4e94
11 changed files with 42 additions and 22 deletions
+2 -1
View File
@@ -19,6 +19,7 @@
#include "helpers.hpp"
#include "linkdefs.hpp"
#include "platform.hpp"
#include "util.hpp" // xfclose
#include "verbosity.hpp"
#include "version.hpp"
@@ -446,7 +447,7 @@ void obj_ReadFile(std::string const &filePath, size_t fileID) {
if (!file) {
fatal("Failed to open file \"%s\": %s", fileName, strerror(errno));
}
Defer closeFile{[&] { fclose(file); }};
Defer closeFile{[&] { xfclose(file); }};
// First, check if the object is a RGBDS object, a SDCC one, or neither.
// A single `ungetc` is guaranteed to work.
+4 -4
View File
@@ -218,7 +218,7 @@ static void writeROM() {
}
Defer closeOutputFile{[&] {
if (outputFile) {
fclose(outputFile);
xfclose(outputFile);
}
}};
@@ -237,7 +237,7 @@ static void writeROM() {
}
Defer closeOverlayFile{[&] {
if (overlayFile) {
fclose(overlayFile);
xfclose(overlayFile);
}
}};
@@ -556,7 +556,7 @@ static void writeSym() {
if (!symFile) {
fatal("Failed to open sym file \"%s\": %s", symFileName, strerror(errno));
}
Defer closeSymFile{[&] { fclose(symFile); }};
Defer closeSymFile{[&] { xfclose(symFile); }};
fputs("; File generated by rgblink\n", symFile);
@@ -607,7 +607,7 @@ static void writeMap() {
if (!mapFile) {
fatal("Failed to open map file \"%s\": %s", mapFileName, strerror(errno));
}
Defer closeMapFile{[&] { fclose(mapFile); }};
Defer closeMapFile{[&] { xfclose(mapFile); }};
writeMapSummary();