From 29279e71b7a946325de2c59b37a298cc1d43d461 Mon Sep 17 00:00:00 2001
From: Jonas Fonseca <fonseca@diku.dk>
Date: Mon, 2 Jan 2006 17:20:39 +0100
Subject: [PATCH] Add SGML_TOKEN_INCOMPLETE and handle it in the parser

---
 src/dom/sgml/parser.c  | 6 ++++++
 src/dom/sgml/scanner.h | 4 ++++
 2 files changed, 10 insertions(+)

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,