diff --git a/Userland/Libraries/LibGUI/TextEditor.cpp b/Userland/Libraries/LibGUI/TextEditor.cpp index 3880d28cfe..3b2ca5277b 100644 --- a/Userland/Libraries/LibGUI/TextEditor.cpp +++ b/Userland/Libraries/LibGUI/TextEditor.cpp @@ -1170,25 +1170,26 @@ bool TextEditor::write_to_file(const String& path) return false; } - if (file_size == 0) - return true; - - for (size_t i = 0; i < line_count(); ++i) { - auto& line = this->line(i); - if (line.length()) { - auto line_as_utf8 = line.to_utf8(); - ssize_t nwritten = write(fd, line_as_utf8.characters(), line_as_utf8.length()); - if (nwritten < 0) { + if (file_size == 0) { + // A size 0 file doesn't need a data copy. + } else { + for (size_t i = 0; i < line_count(); ++i) { + auto& line = this->line(i); + if (line.length()) { + auto line_as_utf8 = line.to_utf8(); + ssize_t nwritten = write(fd, line_as_utf8.characters(), line_as_utf8.length()); + if (nwritten < 0) { + perror("write"); + return false; + } + } + char ch = '\n'; + ssize_t nwritten = write(fd, &ch, 1); + if (nwritten != 1) { perror("write"); return false; } } - char ch = '\n'; - ssize_t nwritten = write(fd, &ch, 1); - if (nwritten != 1) { - perror("write"); - return false; - } } document().set_unmodified(); return true;