aboutsummaryrefslogtreecommitdiffstats
path: root/libqpdf/QPDFTokenizer.cc
diff options
context:
space:
mode:
Diffstat (limited to 'libqpdf/QPDFTokenizer.cc')
-rw-r--r--libqpdf/QPDFTokenizer.cc23
1 files changed, 19 insertions, 4 deletions
diff --git a/libqpdf/QPDFTokenizer.cc b/libqpdf/QPDFTokenizer.cc
index 1a20bb5a..a6333b73 100644
--- a/libqpdf/QPDFTokenizer.cc
+++ b/libqpdf/QPDFTokenizer.cc
@@ -22,7 +22,8 @@ static bool is_space(char ch)
}
QPDFTokenizer::QPDFTokenizer() :
- pound_special_in_name(true)
+ pound_special_in_name(true),
+ allow_eof(false)
{
reset();
}
@@ -35,6 +36,12 @@ QPDFTokenizer::allowPoundAnywhereInName()
}
void
+QPDFTokenizer::allowEOF()
+{
+ this->allow_eof = true;
+}
+
+void
QPDFTokenizer::reset()
{
state = st_top;
@@ -441,9 +448,17 @@ QPDFTokenizer::presentEOF()
}
else if (state != st_token_ready)
{
- QTC::TC("qpdf", "QPDF_Tokenizer EOF reading token");
- type = tt_bad;
- error_message = "EOF while reading token";
+ QTC::TC("qpdf", "QPDF_Tokenizer EOF reading token",
+ this->allow_eof ? 1 : 0);
+ if (this->allow_eof)
+ {
+ type = tt_eof;
+ }
+ else
+ {
+ type = tt_bad;
+ error_message = "EOF while reading token";
+ }
}
state = st_token_ready;