diff --git a/aegisub/libaegisub/include/libaegisub/line_iterator.h b/aegisub/libaegisub/include/libaegisub/line_iterator.h index eef2e21b2..e7ad29459 100644 --- a/aegisub/libaegisub/include/libaegisub/line_iterator.h +++ b/aegisub/libaegisub/include/libaegisub/line_iterator.h @@ -191,12 +191,21 @@ void line_iterator::next() { valid = false; return; } - std::string str; - getline(str); - if (conv.get()) { - str = conv->Convert(str); + std::string str, cstr, *target; + if (width == 1) { + std::getline(*stream, str); } - if (!convert(str)) { + else { + getline(str); + } + if (conv.get()) { + conv->Convert(str, cstr); + target = &cstr; + } + else { + target = &str; + } + if (!convert(*target)) { next(); return; }