AAPT2: Move all file output to FileOutputStream
FileOutputStream is safe to use on Windows, as it opens
files using our compatibility API.
Bug: 68262818
Test: make aapt2_tests
Change-Id: Ib0b27e93edd609b49b1327db7d9867a002198ebb
diff --git a/tools/aapt2/text/Printer.cpp b/tools/aapt2/text/Printer.cpp
index 38b3585..243800c 100644
--- a/tools/aapt2/text/Printer.cpp
+++ b/tools/aapt2/text/Printer.cpp
@@ -26,18 +26,18 @@
namespace aapt {
namespace text {
-void Printer::Println(const StringPiece& str) {
+Printer& Printer::Println(const StringPiece& str) {
Print(str);
- Print("\n");
+ return Print("\n");
}
-void Printer::Println() {
- Print("\n");
+Printer& Printer::Println() {
+ return Print("\n");
}
-void Printer::Print(const StringPiece& str) {
+Printer& Printer::Print(const StringPiece& str) {
if (error_) {
- return;
+ return *this;
}
auto remaining_str_begin = str.begin();
@@ -53,7 +53,7 @@
for (int i = 0; i < indent_level_; i++) {
if (!io::Copy(out_, " ")) {
error_ = true;
- return;
+ return *this;
}
}
needs_indent_ = false;
@@ -61,7 +61,7 @@
if (!io::Copy(out_, str_to_copy)) {
error_ = true;
- return;
+ return *this;
}
}
@@ -69,7 +69,7 @@
if (new_line_iter != remaining_str_end) {
if (!io::Copy(out_, "\n")) {
error_ = true;
- return;
+ return *this;
}
needs_indent_ = true;
// Ok to increment iterator here because we know that the '\n' character is one byte.
@@ -78,6 +78,7 @@
remaining_str_begin = new_line_iter;
}
}
+ return *this;
}
void Printer::Indent() {