fixed infinite loops after includes and at eof

git-svn-id: svn://svn.code.sf.net/p/magicseteditor/code/trunk@32 0fc631ac-6414-0410-93d0-97cfa31319b6
This commit is contained in:
twanvl
2006-10-19 14:09:50 +00:00
parent 89aa0254ab
commit 301594c165
2 changed files with 7 additions and 1 deletions
+6 -1
View File
@@ -91,6 +91,11 @@ void Reader::readLine() {
key.clear();
return;
}
if (key.empty() && input->Eof()) {
// end of file
indent = -1;
return;
}
key = cannocial_name_form(trim(line.substr(indent, pos - indent)));
value = pos == String::npos ? _("") : trim_left(line.substr(pos+1));
}
@@ -112,7 +117,7 @@ template <> void Reader::handle(String& s) {
bool first = true;
// read all lines that are indented enough
readLine();
while (indent >= expected_indent) {
while (indent >= expected_indent && !input->Eof()) {
if (!first) multi_line_str += _('\n');
first = false;
multi_line_str += line.substr(expected_indent); // strip expected indent
+1
View File
@@ -114,6 +114,7 @@ class Reader {
if (key == _("include_file")) {
Reader reader(value);
reader.handle(v);
moveNext();
} else {
unknownKey();
}