]> git.saurik.com Git - wxWidgets.git/blobdiff - src/html/htmltag.cpp
Adapt MSW's renderer's alignment to use column header's alignment by default
[wxWidgets.git] / src / html / htmltag.cpp
index d3e277c1509885adf0fd6ec17e6dbcba49f56eff..46baaea4dff99ba03f15d31153e59eb563a73934 100644 (file)
@@ -246,9 +246,27 @@ void wxHtmlTagsCache::QueryTag(const wxString::const_iterator& at,
         }
         while (Cache()[m_CachePos].Key != at);
     }
-    *end1 = Cache()[m_CachePos].End1;
-    *end2 = Cache()[m_CachePos].End2;
-    *hasEnding = (Cache()[m_CachePos].type == wxHtmlCacheItem::Type_Normal);
+
+    switch ( Cache()[m_CachePos].type )
+    {
+        case wxHtmlCacheItem::Type_Normal:
+            *end1 = Cache()[m_CachePos].End1;
+            *end2 = Cache()[m_CachePos].End2;
+            *hasEnding = true;
+            break;
+
+        case wxHtmlCacheItem::Type_EndingTag:
+            wxFAIL_MSG("QueryTag called for ending tag - can't be");
+            // but if it does happen, fall through, better than crashing
+
+        case wxHtmlCacheItem::Type_NoMatchingEndingTag:
+            // If input HTML is invalid and there's no closing tag for this
+            // one, pretend that it runs all the way to the end of input
+            *end1 = inputEnd;
+            *end2 = inputEnd;
+            *hasEnding = false;
+            break;
+    }
 }
 
 
@@ -293,7 +311,7 @@ wxHtmlTag::wxHtmlTag(wxHtmlTag *parent,
     while ((i < end_pos) &&
            ((c = *(i++)) != wxT(' ') && c != wxT('\r') &&
              c != wxT('\n') && c != wxT('\t') &&
-             c != wxT('>')))
+             c != wxT('>') && c != wxT('/')))
     {
         if ((c >= wxT('a')) && (c <= wxT('z')))
             c -= (wxT('a') - wxT('A'));