diff options
author | Michael Drake <michael.drake@codethink.co.uk> | 2016-01-27 16:27:50 +0000 |
---|---|---|
committer | Michael Drake <michael.drake@codethink.co.uk> | 2016-01-27 16:30:38 +0000 |
commit | 5b6c1914915e4c6c1b69e4c56cd60705e40daff3 (patch) | |
tree | 1cc1a2e934354e75e609357d7627e16371a0e50c | |
parent | 13f06360888ecb87e498012cf8c937e4041f5c4a (diff) | |
download | libdom-5b6c1914915e4c6c1b69e4c56cd60705e40daff3.tar.gz |
Fix longstanding failure to handle HTMLDirectoryElement specialisation.
We were looking for DIRECTORY tags, but we should have been looking for
DIR elements.
-rw-r--r-- | include/dom/html/html_elements.h | 2 | ||||
-rw-r--r-- | src/html/html_directory_element.c | 2 | ||||
-rw-r--r-- | src/html/html_document.c | 11 |
3 files changed, 6 insertions, 9 deletions
diff --git a/include/dom/html/html_elements.h b/include/dom/html/html_elements.h index d4aec100..5774657f 100644 --- a/include/dom/html/html_elements.h +++ b/include/dom/html/html_elements.h @@ -32,7 +32,7 @@ DOM_HTML_ELEMENT_STRINGS_ENTRY(UL) \ DOM_HTML_ELEMENT_STRINGS_ENTRY(OL) \ DOM_HTML_ELEMENT_STRINGS_ENTRY(DL) \ - DOM_HTML_ELEMENT_STRINGS_ENTRY(DIRECTORY) \ + DOM_HTML_ELEMENT_STRINGS_ENTRY(DIR) \ DOM_HTML_ELEMENT_STRINGS_ENTRY(MENU) \ DOM_HTML_ELEMENT_STRINGS_ENTRY(LI) \ DOM_HTML_ELEMENT_STRINGS_ENTRY(BLOCKQUOTE) \ diff --git a/src/html/html_directory_element.c b/src/html/html_directory_element.c index 0ad88aec..1e060749 100644 --- a/src/html/html_directory_element.c +++ b/src/html/html_directory_element.c @@ -61,7 +61,7 @@ dom_exception _dom_html_directory_element_initialise(struct dom_html_document *d struct dom_html_directory_element *ele) { return _dom_html_element_initialise(doc, &ele->base, - doc->elements[DOM_HTML_ELEMENT_TYPE_DIRECTORY], + doc->elements[DOM_HTML_ELEMENT_TYPE_DIR], namespace, prefix); } diff --git a/src/html/html_document.c b/src/html/html_document.c index d50fb52f..3d2a7f30 100644 --- a/src/html/html_document.c +++ b/src/html/html_document.c @@ -342,6 +342,9 @@ static inline dom_html_element_type _dom_html_document_get_element_type( } else if (dom_string_isequal(tag_name_upper, html->elements[ DOM_HTML_ELEMENT_TYPE_MAP])) { return DOM_HTML_ELEMENT_TYPE_MAP; + } else if (dom_string_isequal(tag_name_upper, html->elements[ + DOM_HTML_ELEMENT_TYPE_DIR])) { + return DOM_HTML_ELEMENT_TYPE_DIR; } break; case 4: @@ -467,12 +470,6 @@ static inline dom_html_element_type _dom_html_document_get_element_type( return DOM_HTML_ELEMENT_TYPE_FRAMESET; } break; - case 9: - if (dom_string_isequal(tag_name_upper, html->elements[ - DOM_HTML_ELEMENT_TYPE_DIRECTORY])) { - return DOM_HTML_ELEMENT_TYPE_DIRECTORY; - } - break; case 10: if (dom_string_isequal(tag_name_upper, html->elements[ DOM_HTML_ELEMENT_TYPE_BLOCKQUOTE])) { @@ -577,7 +574,7 @@ _dom_html_document_create_element_internal( exc = _dom_html_dlist_element_create(html, namespace, prefix, (dom_html_dlist_element **) result); break; - case DOM_HTML_ELEMENT_TYPE_DIRECTORY: + case DOM_HTML_ELEMENT_TYPE_DIR: exc = _dom_html_directory_element_create(html, namespace, prefix, (dom_html_directory_element **) result); break; |