From 5b6c1914915e4c6c1b69e4c56cd60705e40daff3 Mon Sep 17 00:00:00 2001 From: Michael Drake Date: Wed, 27 Jan 2016 16:27:50 +0000 Subject: Fix longstanding failure to handle HTMLDirectoryElement specialisation. We were looking for DIRECTORY tags, but we should have been looking for DIR elements. --- include/dom/html/html_elements.h | 2 +- src/html/html_directory_element.c | 2 +- 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 d4aec10..5774657 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 0ad88ae..1e06074 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 d50fb52..3d2a7f3 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; -- cgit v1.2.3