diff options
author | m-holger <m-holger@kubitscheck.org> | 2022-08-23 15:47:10 +0200 |
---|---|---|
committer | m-holger <m-holger@kubitscheck.org> | 2022-08-25 12:30:24 +0200 |
commit | 6371b90ae3e1fc65a02882d16f289846cb02848e (patch) | |
tree | 87e6adb920104589cfd44adf9511cd1c730d5fa6 /libqpdf/QPDFTokenizer.cc | |
parent | 42ed58e44685c20c3c3a16ce835044d4d3b5ec3d (diff) | |
download | qpdf-6371b90ae3e1fc65a02882d16f289846cb02848e.tar.zst |
Refactor QPDFTokenizer::presentEOF
Diffstat (limited to 'libqpdf/QPDFTokenizer.cc')
-rw-r--r-- | libqpdf/QPDFTokenizer.cc | 37 |
1 files changed, 26 insertions, 11 deletions
diff --git a/libqpdf/QPDFTokenizer.cc b/libqpdf/QPDFTokenizer.cc index 2e527bb1..fb9401b9 100644 --- a/libqpdf/QPDFTokenizer.cc +++ b/libqpdf/QPDFTokenizer.cc @@ -782,23 +782,38 @@ QPDFTokenizer::inInlineImage(char ch) void QPDFTokenizer::presentEOF() { - if (this->state == st_name || this->state == st_name_hex1 || - this->state == st_name_hex2 || this->state == st_number || - this->state == st_real || this->state == st_sign || - this->state == st_decimal || this->state == st_literal) { - + switch (this->state) { + case st_name: + case st_name_hex1: + case st_name_hex2: + case st_number: + case st_real: + case st_sign: + case st_decimal: + case st_literal: QTC::TC("qpdf", "QPDFTokenizer EOF reading appendable token"); // Push any delimiter to the state machine to finish off the final // token. presentCharacter('\f'); this->unread_char = false; - } else if ((this->include_ignorable) && (this->state == st_in_space)) { - this->type = tt_space; - } else if ((this->include_ignorable) && (this->state == st_in_comment)) { - this->type = tt_comment; - } else if (betweenTokens()) { + break; + + case st_top: this->type = tt_eof; - } else if (this->state != st_token_ready) { + break; + + case st_in_space: + this->type = this->include_ignorable ? tt_space : tt_eof; + break; + + case st_in_comment: + this->type = this->include_ignorable ? tt_comment : tt_bad; + break; + + case st_token_ready: + break; + + default: QTC::TC("qpdf", "QPDFTokenizer EOF reading token"); this->type = tt_bad; this->error_message = "EOF while reading token"; |