summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--include/hubbub/types.h13
-rw-r--r--src/tokeniser/tokeniser.c1
2 files changed, 14 insertions, 0 deletions
diff --git a/include/hubbub/types.h b/include/hubbub/types.h
index f427023..e56bae4 100644
--- a/include/hubbub/types.h
+++ b/include/hubbub/types.h
@@ -94,9 +94,22 @@ typedef struct hubbub_doctype {
} hubbub_doctype;
/**
+ * Possible namespaces
+ */
+typedef enum hubbub_ns {
+ HUBBUB_NS_HTML,
+ HUBBUB_NS_MATHML,
+ HUBBUB_NS_SVG,
+ HUBBUB_NS_XLINK,
+ HUBBUB_NS_XML,
+ HUBBUB_NS_XMLNS
+} hubbub_ns;
+
+/**
* Data for a tag
*/
typedef struct hubbub_tag {
+ hubbub_ns ns; /**< Tag namespace */
hubbub_string name; /**< Tag name */
uint32_t n_attributes; /**< Count of attributes */
hubbub_attribute *attributes; /**< Array of attribute data */
diff --git a/src/tokeniser/tokeniser.c b/src/tokeniser/tokeniser.c
index 2fe00ac..8815e60 100644
--- a/src/tokeniser/tokeniser.c
+++ b/src/tokeniser/tokeniser.c
@@ -3173,6 +3173,7 @@ void hubbub_tokeniser_emit_token(hubbub_tokeniser *tokeniser,
if (token->type == HUBBUB_TOKEN_START_TAG) {
tokeniser->context.last_start_tag_name = token->data.tag.name;
+ token->data.tag.ns = HUBBUB_NS_HTML;
} else if (token->type == HUBBUB_TOKEN_END_TAG) {
tokeniser->content_model = HUBBUB_CONTENT_MODEL_PCDATA;
}