diff --git a/src/dom/sgml/parser.c b/src/dom/sgml/parser.c index fa5cee060..88a59ea51 100644 --- a/src/dom/sgml/parser.c +++ b/src/dom/sgml/parser.c @@ -215,6 +215,9 @@ parse_sgml_attributes(struct dom_stack *stack, struct dom_scanner *scanner) skip_dom_scanner_token(scanner); break; + case SGML_TOKEN_INCOMPLETE: + return SGML_PARSER_CODE_INCOMPLETE; + default: skip_dom_scanner_token(scanner); } @@ -344,6 +347,9 @@ parse_sgml_plain(struct dom_stack *stack, struct dom_scanner *scanner) skip_dom_scanner_token(scanner); break; + case SGML_TOKEN_INCOMPLETE: + return SGML_PARSER_CODE_INCOMPLETE; + case SGML_TOKEN_SPACE: case SGML_TOKEN_TEXT: default: diff --git a/src/dom/sgml/scanner.h b/src/dom/sgml/scanner.h index 492cb2640..3857ad78e 100644 --- a/src/dom/sgml/scanner.h +++ b/src/dom/sgml/scanner.h @@ -48,6 +48,10 @@ enum sgml_token_type { /* A special token for unrecognized strings */ SGML_TOKEN_GARBAGE, + /* A special token for marking that it is assummed that the token is + * not complete. Only meaningful if scanner->complete is incomplete. */ + SGML_TOKEN_INCOMPLETE, + /* Token type used internally when scanning to signal that the token * should not be recorded in the scanners token table. */ SGML_TOKEN_SKIP,