diff options
-rw-r--r-- | core/variant_parser.cpp | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/core/variant_parser.cpp b/core/variant_parser.cpp index 6ca9d6c246..4ce33b0123 100644 --- a/core/variant_parser.cpp +++ b/core/variant_parser.cpp @@ -51,10 +51,16 @@ bool VariantParser::StreamFile::is_eof() const { CharType VariantParser::StreamString::get_char() { - if (pos >= s.length()) + if (pos > s.length()) { return 0; - else + } else if (pos == s.length()) { + // You need to try to read again when you have reached the end for EOF to be reported, + // so this works the same as files (like StreamFile does) + pos++; + return 0; + } else { return s[pos++]; + } } bool VariantParser::StreamString::is_utf8() const { |