diff --git a/src/text_file_reader.cpp b/src/text_file_reader.cpp index f7dc3160d..72db609ac 100644 --- a/src/text_file_reader.cpp +++ b/src/text_file_reader.cpp @@ -18,16 +18,19 @@ #include "text_file_reader.h" -#include +#include +#include #include #include #include +#include TextFileReader::TextFileReader(agi::fs::path const& filename, std::string encoding, bool trim) -: file(agi::io::Open(filename, true)) +: file(agi::util::make_unique(filename)) +, stream(agi::util::make_unique(file->read(0, file->size()), file->size())) , trim(trim) -, iter(agi::line_iterator(*file, encoding)) +, iter(agi::line_iterator(*stream, encoding)) { } diff --git a/src/text_file_reader.h b/src/text_file_reader.h index 6b188bce9..4f948a233 100644 --- a/src/text_file_reader.h +++ b/src/text_file_reader.h @@ -14,17 +14,20 @@ // // Aegisub Project http://www.aegisub.org/ -#include +#include #include #include #include #include +namespace agi { class read_file_mapping; } + /// @class TextFileReader /// @brief A line-based text file reader class TextFileReader { - std::unique_ptr file; + std::unique_ptr file; + std::unique_ptr stream; bool trim; agi::line_iterator iter;