[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-commits
Subject:    branches/KDE/3.5/kdelibs/khtml/html
From:       Allan Sandfeld Jensen <kde () carewolf ! com>
Date:       2005-08-04 23:23:54
Message-ID: 1123197834.563672.22678.nullmailer () svn ! kde ! org
[Download RAW message or body]

SVN commit 443115 by carewolf:

It appears we shouldn't allow <FORM> in <P>. 
So handle <TABLE><FORM> more like WebCore, but with much less stupid hacks.


 M  +2 -1      dtd.cpp  
 M  +7 -2      htmlparser.cpp  


--- branches/KDE/3.5/kdelibs/khtml/html/dtd.cpp #443114:443115
@@ -597,7 +597,7 @@
         return check_array(childID, tag_list_1) || check_array(childID, tag_list_6);
     case ID_P:
         // P: ( _0 | TABLE ) *
-        return check_array(childID, tag_list_0) || (!strict && (childID == ID_TABLE \
|| childID == ID_FORM)); +        return check_array(childID, tag_list_0) || (!strict \
&& childID == ID_TABLE);  case ID_H1:
     case ID_H2:
     case ID_H3:
@@ -721,6 +721,7 @@
         case ID_THEAD:
         case ID_TFOOT:
         case ID_TBODY:
+        case ID_FORM:
         case ID_SCRIPT:
             return true;
         default:
--- branches/KDE/3.5/kdelibs/khtml/html/htmlparser.cpp #443114:443115
@@ -672,9 +672,10 @@
 #endif
                     parent->insertBefore(n, node, exceptioncode);
                     if (exceptioncode) {
-#ifdef PARSER_DEBUG
-                        kdDebug(6035) << "adding content before table failed.." << \
endl; +#ifndef PARSER_DEBUG
+                        if (!n->isTextNode())
 #endif
+                            kdDebug(6035) << "adding content before table failed.." \
<< endl;  break;
                     }
                     if ( n->isElementNode() && tagPriority[id] != 0 &&
@@ -721,6 +722,10 @@
             popBlock(ID_DT);
             handled = true;
             break;
+        case ID_FORM:
+            popBlock(ID_FORM);
+            handled = true;
+            break;
         case ID_SELECT:
             if( n->isInline() )
                 return false;


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic