summaryrefslogtreecommitdiff
path: root/src/html
diff options
context:
space:
mode:
authorMichael Drake <michael.drake@codethink.co.uk>2016-01-28 16:04:34 +0000
committerMichael Drake <michael.drake@codethink.co.uk>2016-01-28 16:04:34 +0000
commit5007c80a332a8e538b1c5d530cab87f04427b2ad (patch)
tree4396be7558f0b88886246924399657da355883a4 /src/html
parentbab3f35ff01a5825034d23424b8e3866cb6376e7 (diff)
downloadlibdom-5007c80a332a8e538b1c5d530cab87f04427b2ad.tar.gz
libdom-5007c80a332a8e538b1c5d530cab87f04427b2ad.tar.bz2
Store HTMLElement tag types as enum on the html elements.
Diffstat (limited to 'src/html')
-rw-r--r--src/html/html_document.c11
-rw-r--r--src/html/html_element.c2
-rw-r--r--src/html/html_element.h2
-rw-r--r--src/html/html_table_element.c5
-rw-r--r--src/html/html_tablerow_element.c1
-rw-r--r--src/html/html_tablesection_element.c1
6 files changed, 15 insertions, 7 deletions
diff --git a/src/html/html_document.c b/src/html/html_document.c
index 34d8803..0d9ccc7 100644
--- a/src/html/html_document.c
+++ b/src/html/html_document.c
@@ -493,22 +493,20 @@ _dom_html_document_create_element_internal(
dom_html_element **result)
{
dom_exception exc;
- dom_html_element_type type;
struct dom_html_element_create_params params;
exc = dom_string_toupper(in_tag_name, true, &params.name);
if (exc != DOM_NO_ERR)
return exc;
- type = _dom_html_document_get_element_type(html, params.name);
-
+ params.type = _dom_html_document_get_element_type(html, params.name);
params.doc = html;
params.namespace = namespace;
params.prefix = prefix;
- switch(type) {
+ switch(params.type) {
case DOM_HTML_ELEMENT_TYPE__COUNT:
- assert(type != DOM_HTML_ELEMENT_TYPE__COUNT);
+ assert(params.type != DOM_HTML_ELEMENT_TYPE__COUNT);
break;
case DOM_HTML_ELEMENT_TYPE_HTML:
exc = _dom_html_html_element_create(&params,
@@ -730,8 +728,7 @@ _dom_html_document_create_element_internal(
(dom_html_isindex_element **) result);
break;
case DOM_HTML_ELEMENT_TYPE__UNKNOWN:
- exc = _dom_html_element_create(&params,
- result);
+ exc = _dom_html_element_create(&params, result);
break;
}
diff --git a/src/html/html_element.c b/src/html/html_element.c
index 513a5be..39aabda 100644
--- a/src/html/html_element.c
+++ b/src/html/html_element.c
@@ -69,6 +69,8 @@ dom_exception _dom_html_element_initialise(
{
dom_exception err;
+ el->type = params->type;
+
err = _dom_element_initialise(&params->doc->base, &el->base,
params->name, params->namespace, params->prefix);
if (err != DOM_NO_ERR)
diff --git a/src/html/html_element.h b/src/html/html_element.h
index 2d42abc..7d86727 100644
--- a/src/html/html_element.h
+++ b/src/html/html_element.h
@@ -22,9 +22,11 @@ struct dom_html_document;
struct dom_html_element {
struct dom_element base;
/**< The base class */
+ dom_html_element_type type;
};
struct dom_html_element_create_params {
+ dom_html_element_type type;
struct dom_html_document *doc;
dom_string *name;
dom_string *namespace;
diff --git a/src/html/html_table_element.c b/src/html/html_table_element.c
index 2139272..442e1d6 100644
--- a/src/html/html_table_element.c
+++ b/src/html/html_table_element.c
@@ -435,6 +435,7 @@ dom_exception dom_html_table_element_create_caption(
((dom_node_internal *) element)->owner;
struct dom_html_element_create_params params = {
+ .type = DOM_HTML_ELEMENT_TYPE_CAPTION,
.doc = doc,
.name = doc->elements[DOM_HTML_ELEMENT_TYPE_CAPTION],
.namespace = ((dom_node_internal *)element)->namespace,
@@ -507,6 +508,7 @@ dom_exception dom_html_table_element_create_t_foot(
((dom_node_internal *) element)->owner;
struct dom_html_element_create_params params = {
+ .type = DOM_HTML_ELEMENT_TYPE_TFOOT,
.doc = doc,
.name = doc->elements[DOM_HTML_ELEMENT_TYPE_TFOOT],
.namespace = ((dom_node_internal *)element)->namespace,
@@ -584,6 +586,7 @@ dom_exception dom_html_table_element_create_t_head(
((dom_node_internal *) element)->owner;
struct dom_html_element_create_params params = {
+ .type = DOM_HTML_ELEMENT_TYPE_THEAD,
.doc = doc,
.name = doc->elements[DOM_HTML_ELEMENT_TYPE_THEAD],
.namespace = ((dom_node_internal *)element)->namespace,
@@ -666,6 +669,7 @@ dom_exception dom_html_table_element_create_t_body(
((dom_node_internal *) element)->owner;
struct dom_html_element_create_params params = {
+ .type = DOM_HTML_ELEMENT_TYPE_TBODY,
.doc = doc,
.name = doc->elements[DOM_HTML_ELEMENT_TYPE_TBODY],
.namespace = ((dom_node_internal *)element)->namespace,
@@ -711,6 +715,7 @@ dom_exception dom_html_table_element_insert_row(
((dom_node_internal *) element)->owner;
struct dom_html_element_create_params params = {
+ .type = DOM_HTML_ELEMENT_TYPE_TR,
.doc = doc,
.name = doc->elements[DOM_HTML_ELEMENT_TYPE_TR],
.namespace = ((dom_node_internal *)element)->namespace,
diff --git a/src/html/html_tablerow_element.c b/src/html/html_tablerow_element.c
index 8773452..0d4f3eb 100644
--- a/src/html/html_tablerow_element.c
+++ b/src/html/html_tablerow_element.c
@@ -334,6 +334,7 @@ dom_exception dom_html_table_row_element_insert_cell(
dom_exception exp; /*< Variable for getting the exceptions*/
struct dom_html_element_create_params params = {
+ .type = DOM_HTML_ELEMENT_TYPE_TD,
.doc = doc,
.name = doc->elements[DOM_HTML_ELEMENT_TYPE_TD],
.namespace = ((dom_node_internal *)element)->namespace,
diff --git a/src/html/html_tablesection_element.c b/src/html/html_tablesection_element.c
index fadc0ed..d570e1c 100644
--- a/src/html/html_tablesection_element.c
+++ b/src/html/html_tablesection_element.c
@@ -210,6 +210,7 @@ dom_exception dom_html_table_section_element_insert_row(
dom_exception exp; /*< Variable for getting the exceptions*/
struct dom_html_element_create_params params = {
+ .type = DOM_HTML_ELEMENT_TYPE_TR,
.doc = doc,
.name = doc->elements[DOM_HTML_ELEMENT_TYPE_TR],
.namespace = ((dom_node_internal *)element)->namespace,