summaryrefslogtreecommitdiffstats
path: root/khtml/html/dtd.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'khtml/html/dtd.cpp')
-rw-r--r--khtml/html/dtd.cpp918
1 files changed, 0 insertions, 918 deletions
diff --git a/khtml/html/dtd.cpp b/khtml/html/dtd.cpp
deleted file mode 100644
index accc8b855..000000000
--- a/khtml/html/dtd.cpp
+++ /dev/null
@@ -1,918 +0,0 @@
-/**
- * This file is part of the DOM implementation for KDE.
- *
- * (C) 1999 Lars Knoll ([email protected])
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public License
- * along with this library; see the file COPYING.LIB. If not, write to
- * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- * Boston, MA 02110-1301, USA.
- *
- */
-
-#include "html/dtd.h"
-#include "misc/htmlhashes.h"
-
-using namespace DOM;
-
-#include <kdebug.h>
-#include <kglobal.h>
-
-// priority of tags. Closing tags of higher priority close tags of lower
-// priority.
-// Update this list, whenever you change htmltags.*
-//
-// 0 elements with forbidden close tag and text. They don't get pushed
-// to the stack.
-// 1 inline elements
-// 2 form elements
-// 3 regular block level elements
-// 4 lists (OL UL DIR MENU)
-// 5 TD TH SELECT
-// 6 TR
-// 7 tbody thead tfoot caption object
-// 8 table
-// 9 body frameset
-// 10 html
-
-const unsigned short KDE_NO_EXPORT DOM::tagPriority[] = {
- 0, // 0
- 1, // ID_A == 1
- 1, // ID_ABBR
- 1, // ID_ACRONYM
- 3, // ID_ADDRESS
- 1, // ID_APPLET
- 0, // ID_AREA
- 1, // ID_B
- 0, // ID_BASE
- 0, // ID_BASEFONT
- 1, // ID_BDO
- 1, // ID_BIG
- 5, // ID_BLOCKQUOTE
- 10, // ID_BODY
- 0, // ID_BR
- 1, // ID_BUTTON
- 5, // ID_CAPTION
- 5, // ID_CENTER
- 1, // ID_CITE
- 1, // ID_CODE
- 0, // ID_COL
- 1, // ID_COLGROUP
- 3, // ID_DD
- 1, // ID_DEL
- 1, // ID_DFN
- 5, // ID_DIR
- 5, // ID_DIV
- 5, // ID_DL
- 3, // ID_DT
- 1, // ID_EM
- 0, // ID_EMBED
- 3, // ID_FIELDSET
- 1, // ID_FONT
- 3, // ID_FORM
- 0, // ID_FRAME
- 10,// ID_FRAMESET
- 5, // ID_H1
- 5, // ID_H2
- 5, // ID_H3
- 5, // ID_H4
- 5, // ID_H5
- 5, // ID_H6
- 10,// ID_HEAD
- 0, // ID_HR
- 11,// ID_HTML
- 1, // ID_I
- 1, // ID_IFRAME
- 1, // ID_ILAYER
- 0, // ID_IMG
- 0, // ID_INPUT
- 1, // ID_INS
- 0, // ID_ISINDEX
- 1, // ID_KBD
- 0, // ID_KEYGEN
- 1, // ID_LABEL
- 1, // ID_LAYER
- 1, // ID_LEGEND
- 3, // ID_LI
- 0, // ID_LINK
- 1, // ID_MAP
- 3, // ID_MARQUEE
- 5, // ID_MENU
- 0, // ID_META
- 5, // ID_NOBR
- 10,// ID_NOEMBED
- 10,// ID_NOFRAMES
- 3, // ID_NOSCRIPT
- 1, // ID_NOLAYER
- 5, // ID_OBJECT
- 5, // ID_OL
- 1, // ID_OPTGROUP
- 2, // ID_OPTION
- 3, // ID_P
- 0, // ID_PARAM
- 5, // ID_PLAINTEXT
- 5, // ID_PRE
- 1, // ID_Q
- 1, // ID_S
- 1, // ID_SAMP
- 1, // ID_SCRIPT
- 6, // ID_SELECT
- 1, // ID_SMALL
- 1, // ID_SPAN
- 1, // ID_STRIKE
- 1, // ID_STRONG
- 1, // ID_STYLE
- 1, // ID_SUB
- 1, // ID_SUP
- 9,// ID_TABLE
- 8, // ID_TBODY
- 6, // ID_TD
- 1, // ID_TEXTAREA
- 8, // ID_TFOOT
- 6, // ID_TH
- 8, // ID_THEAD
- 1, // ID_TITLE
- 7, // ID_TR
- 1, // ID_TT
- 1, // ID_U
- 5, // ID_UL
- 1, // ID_VAR
- 1, // ID_WBR
- 5, // ID_XMP
- 0, // ID_TEXT
-};
-
-const tagStatus DOM::endTag[] = {
- REQUIRED, // 0
- REQUIRED, // ID_A == 1
- REQUIRED, // ID_ABBR
- REQUIRED, // ID_ACRONYM
- REQUIRED, // ID_ADDRESS
- REQUIRED, // ID_APPLET
- FORBIDDEN, // ID_AREA
- REQUIRED, // ID_B
- FORBIDDEN, // ID_BASE
- FORBIDDEN, // ID_BASEFONT
- REQUIRED, // ID_BDO
- REQUIRED, // ID_BIG
- REQUIRED, // ID_BLOCKQUOTE
- REQUIRED, // ID_BODY
- FORBIDDEN, // ID_BR
- REQUIRED, // ID_BUTTON
- REQUIRED, // ID_CAPTION
- REQUIRED, // ID_CENTER
- REQUIRED, // ID_CITE
- REQUIRED, // ID_CODE
- FORBIDDEN, // ID_COL
- OPTIONAL, // ID_COLGROUP
- OPTIONAL, // ID_DD
- REQUIRED, // ID_DEL
- REQUIRED, // ID_DFN
- REQUIRED, // ID_DIR
- REQUIRED, // ID_DIV
- REQUIRED, // ID_DL
- OPTIONAL, // ID_DT
- REQUIRED, // ID_EM
- REQUIRED, // ID_EMBED
- REQUIRED, // ID_FIELDSET
- REQUIRED, // ID_FONT
- REQUIRED, // ID_FORM
- FORBIDDEN, // ID_FRAME
- REQUIRED, // ID_FRAMESET
- REQUIRED, // ID_H1
- REQUIRED, // ID_H2
- REQUIRED, // ID_H3
- REQUIRED, // ID_H4
- REQUIRED, // ID_H5
- REQUIRED, // ID_H6
- OPTIONAL, // ID_HEAD
- FORBIDDEN, // ID_HR
- REQUIRED, // ID_HTML
- REQUIRED, // ID_I
- REQUIRED, // ID_IFRAME
- REQUIRED, // ID_ILAYER
- FORBIDDEN, // ID_IMG
- FORBIDDEN, // ID_INPUT
- REQUIRED, // ID_INS
- FORBIDDEN, // ID_ISINDEX
- REQUIRED, // ID_KBD
- REQUIRED, // ID_KEYGEN
- REQUIRED, // ID_LABEL
- REQUIRED, // ID_LAYER
- REQUIRED, // ID_LEGEND
- OPTIONAL, // ID_LI
- FORBIDDEN, // ID_LINK
- REQUIRED, // ID_MAP
- REQUIRED, // ID_MARQUEE
- REQUIRED, // ID_MENU
- FORBIDDEN, // ID_META
- REQUIRED, // ID_NOBR
- REQUIRED, // ID_NOEMBED
- REQUIRED, // ID_NOFRAMES
- REQUIRED, // ID_NOSCRIPT
- REQUIRED, // ID_NOLAYER
- REQUIRED, // ID_OBJECT
- REQUIRED, // ID_OL
- REQUIRED, // ID_OPTGROUP
- OPTIONAL, // ID_OPTION
- OPTIONAL, // ID_P
- FORBIDDEN, // ID_PARAM
- REQUIRED, // ID_PLAINTEXT
- REQUIRED, // ID_PRE
- REQUIRED, // ID_Q
- REQUIRED, // ID_S
- REQUIRED, // ID_SAMP
- REQUIRED, // ID_SCRIPT
- REQUIRED, // ID_SELECT
- REQUIRED, // ID_SMALL
- REQUIRED, // ID_SPAN
- REQUIRED, // ID_STRIKE
- REQUIRED, // ID_STRONG
- REQUIRED, // ID_STYLE
- REQUIRED, // ID_SUB
- REQUIRED, // ID_SUP
- REQUIRED, // ID_TABLE
- OPTIONAL, // ID_TBODY
- OPTIONAL, // ID_TD
- REQUIRED, // ID_TEXTAREA
- OPTIONAL, // ID_TFOOT
- OPTIONAL, // ID_TH
- OPTIONAL, // ID_THEAD
- REQUIRED, // ID_TITLE
- OPTIONAL, // ID_TR
- REQUIRED, // ID_TT
- REQUIRED, // ID_U
- REQUIRED, // ID_UL
- REQUIRED, // ID_VAR
- OPTIONAL, // ID_WBR
- REQUIRED, // ID_XMP
- REQUIRED // ID_TEXT
-};
-
-
-static const ushort tag_list_0[] = {
- ID_TEXT,
- ID_TT,
- ID_I,
- ID_B,
- ID_U,
- ID_S,
- ID_STRIKE,
- ID_BIG,
- ID_SMALL,
- ID_EM,
- ID_STRONG,
- ID_DFN,
- ID_CODE,
- ID_SAMP,
- ID_KBD,
- ID_VAR,
- ID_CITE,
- ID_ABBR,
- ID_ACRONYM,
- ID_A,
- ID_IMG,
- ID_APPLET,
- ID_OBJECT,
- ID_EMBED,
- ID_FONT,
- ID_BASEFONT,
- ID_BR,
- ID_SCRIPT,
- ID_MAP,
- ID_Q,
- ID_SUB,
- ID_SUP,
- ID_SPAN,
- ID_BDO,
- ID_IFRAME,
- ID_INPUT,
- ID_SELECT,
- ID_TEXTAREA,
- ID_LABEL,
- ID_BUTTON,
- ID_INS,
- ID_DEL,
- ID_COMMENT,
- ID_NOBR,
- ID_WBR,
- 0
-};
-
-static const ushort tag_list_1[] = {
- ID_TEXT,
- ID_P,
- ID_H1,
- ID_H2,
- ID_H3,
- ID_H4,
- ID_H5,
- ID_H6,
- ID_UL,
- ID_OL,
- ID_DIR,
- ID_MENU,
- ID_PRE,
- ID_PLAINTEXT,
- ID_DL,
- ID_DIV,
- ID_ILAYER,
- ID_LAYER,
- ID_CENTER,
- ID_NOSCRIPT,
- ID_NOFRAMES,
- ID_BLOCKQUOTE,
- ID_FORM,
- ID_ISINDEX,
- ID_HR,
- ID_TABLE,
- ID_FIELDSET,
- ID_ADDRESS,
- ID_TT,
- ID_I,
- ID_B,
- ID_U,
- ID_S,
- ID_STRIKE,
- ID_BIG,
- ID_SMALL,
- ID_EM,
- ID_STRONG,
- ID_DFN,
- ID_CODE,
- ID_SAMP,
- ID_KBD,
- ID_VAR,
- ID_CITE,
- ID_ABBR,
- ID_ACRONYM,
- ID_A,
- ID_IMG,
- ID_APPLET,
- ID_OBJECT,
- ID_EMBED,
- ID_FONT,
- ID_BASEFONT,
- ID_BR,
- ID_SCRIPT,
- ID_MAP,
- ID_Q,
- ID_SUB,
- ID_SUP,
- ID_SPAN,
- ID_BDO,
- ID_IFRAME,
- ID_INPUT,
- ID_KEYGEN,
- ID_SELECT,
- ID_TEXTAREA,
- ID_LABEL,
- ID_BUTTON,
- ID_COMMENT,
- ID_LI,
- ID_DD,
- ID_XMP,
- ID_INS,
- ID_DEL,
- ID_NOBR,
- ID_WBR,
- ID_MARQUEE,
- 0
-};
-
-static const ushort tag_list_2[] = {
- ID_COMMENT,
- 0
-};
-
-static const ushort tag_list_3[] = {
- ID_TEXT,
- ID_P,
- ID_H1,
- ID_H2,
- ID_H3,
- ID_H4,
- ID_H5,
- ID_H6,
- ID_UL,
- ID_OL,
- ID_DIR,
- ID_MENU,
- ID_PRE,
- ID_PLAINTEXT,
- ID_DL,
- ID_DIV,
- ID_ILAYER,
- ID_LAYER,
- ID_CENTER,
- ID_NOSCRIPT,
- ID_NOFRAMES,
- ID_BLOCKQUOTE,
- ID_FORM,
- ID_ISINDEX,
- ID_HR,
- ID_TABLE,
- ID_FIELDSET,
- ID_ADDRESS,
- ID_COMMENT,
- ID_LI,
- ID_DD,
- ID_XMP,
- ID_MARQUEE,
- 0
-};
-
-static const ushort tag_list_4[] = {
- ID_TEXT,
- ID_PARAM,
- ID_P,
- ID_H1,
- ID_H2,
- ID_H3,
- ID_H4,
- ID_H5,
- ID_H6,
- ID_UL,
- ID_OL,
- ID_DIR,
- ID_MENU,
- ID_PRE,
- ID_PLAINTEXT,
- ID_DL,
- ID_DIV,
- ID_ILAYER,
- ID_LAYER,
- ID_CENTER,
- ID_NOSCRIPT,
- ID_NOFRAMES,
- ID_BLOCKQUOTE,
- ID_FORM,
- ID_ISINDEX,
- ID_HR,
- ID_TABLE,
- ID_FIELDSET,
- ID_ADDRESS,
- ID_TEXT,
- ID_TT,
- ID_I,
- ID_B,
- ID_U,
- ID_S,
- ID_STRIKE,
- ID_BIG,
- ID_SMALL,
- ID_EM,
- ID_STRONG,
- ID_DFN,
- ID_CODE,
- ID_SAMP,
- ID_KBD,
- ID_VAR,
- ID_CITE,
- ID_ABBR,
- ID_ACRONYM,
- ID_A,
- ID_IMG,
- ID_APPLET,
- ID_OBJECT,
- ID_EMBED,
- ID_FONT,
- ID_BASEFONT,
- ID_BR,
- ID_SCRIPT,
- ID_MAP,
- ID_Q,
- ID_SUB,
- ID_SUP,
- ID_SPAN,
- ID_BDO,
- ID_IFRAME,
- ID_INPUT,
- ID_SELECT,
- ID_TEXTAREA,
- ID_LABEL,
- ID_BUTTON,
- ID_COMMENT,
- ID_LI,
- ID_DD,
- ID_XMP,
- ID_MARQUEE,
- 0
-};
-
-static const ushort tag_list_6[] = {
- ID_DT,
- ID_DD,
- ID_COMMENT,
- 0
-};
-
-static const ushort tag_list_7[] = {
- ID_TEXT,
- ID_OPTGROUP,
- ID_OPTION,
- ID_COMMENT,
- ID_SCRIPT,
- 0
-};
-
-static const ushort tag_list_10[] = {
- ID_FRAMESET,
- ID_FRAME,
- ID_NOFRAMES,
- ID_COMMENT,
- 0
-};
-
-static const ushort tag_list_11[] = {
- ID_SCRIPT,
- ID_STYLE,
- ID_META,
- ID_LINK,
- ID_TITLE,
- ID_ISINDEX,
- ID_BASE,
- ID_COMMENT,
- 0
-};
-
-static bool check_array(ushort child, const ushort *tagList)
-{
- int i = 0;
- while(tagList[i] != 0)
- {
- if(tagList[i] == child) return true;
- i++;
- }
- return false;
-}
-
-
-bool DOM::checkChild(ushort tagID, ushort childID, bool strict)
-{
- //kdDebug( 6030 ) << "checkChild: " << tagID << "/" << childID << endl;
-
- // ### allow comments inside ANY node that can contain children
-
- if (tagID >= 1000 || childID >= 1000)
- return true; // one or both of the elements in an XML element; just allow for now
-
- switch(tagID)
- {
- case ID_TT:
- case ID_I:
- case ID_B:
- case ID_U:
- case ID_S:
- case ID_STRIKE:
- case ID_BIG:
- case ID_SMALL:
- case ID_EM:
- case ID_STRONG:
- case ID_DFN:
- case ID_CODE:
- case ID_SAMP:
- case ID_KBD:
- case ID_VAR:
- case ID_CITE:
- case ID_ABBR:
- case ID_ACRONYM:
- case ID_SUB:
- case ID_SUP:
- case ID_BDO:
- case ID_FONT:
- case ID_LEGEND:
- case ID_Q:
- case ID_A:
- case ID_NOBR:
- case ID_WBR:
- // _1 *
- return check_array(childID, tag_list_1) || check_array(childID, tag_list_6);
- case ID_P:
- // P: ( _0 | TABLE | NOSCRIPT) *
- return check_array(childID, tag_list_0) || (!strict && (childID == ID_TABLE || childID == ID_NOSCRIPT));
- case ID_H1:
- case ID_H2:
- case ID_H3:
- case ID_H4:
- case ID_H5:
- case ID_H6:
- // _0 *
- return check_array(childID, tag_list_0) ||
- (!strict && check_array(childID, tag_list_3) && (childID < ID_H1 || childID > ID_H6));
- case ID_BASEFONT:
- case ID_BR:
- case ID_AREA:
- case ID_LINK:
- case ID_IMG:
- case ID_PARAM:
- case ID_HR:
- case ID_INPUT:
- case ID_COL:
- case ID_FRAME:
- case ID_ISINDEX:
- case ID_BASE:
- case ID_META:
- case ID_COMMENT:
- // BASEFONT: EMPTY
- return false;
- case ID_BODY:
- // BODY: _1 * + _2
- return check_array(childID, tag_list_1) || check_array(childID, tag_list_2);
- case ID_ADDRESS:
- // ADDRESS: ( _0 | P ) *
- return check_array(childID, tag_list_0) || childID == ID_P;
- case ID_DT:
- if ( childID == ID_DL ) return false;
- case ID_LI:
- case ID_DIV:
- case ID_SPAN:
- case ID_ILAYER:
- case ID_LAYER:
- case ID_CENTER:
- case ID_BLOCKQUOTE:
- case ID_INS:
- case ID_DEL:
- case ID_DD:
- case ID_TH:
- case ID_TD:
- case ID_IFRAME:
- case ID_NOFRAMES:
- case ID_NOSCRIPT:
- case ID_CAPTION:
- case ID_MARQUEE:
- // DIV: _1 *
- return check_array(childID, tag_list_1);
- case ID_MAP:
- // We accept SCRIPT in client-side image maps as an extension to the DTD.
- // MAP: ( _3 + | AREA + | SCRIPT + )
- return check_array(childID, tag_list_3) ||
- childID == ID_AREA ||
- childID == ID_SCRIPT;
- case ID_OBJECT:
- case ID_EMBED:
- case ID_APPLET:
- // OBJECT: _4 *
- return check_array(childID, tag_list_4);
- case ID_PRE:
- case ID_XMP:
- case ID_PLAINTEXT:
- // PRE: _0 * - _5
- return check_array(childID, tag_list_1);
- case ID_DL:
- // DL: _6 +
- return check_array(childID, tag_list_6) || check_array(childID, tag_list_1);
- case ID_OL:
- case ID_UL:
- // OL: LI +
- return check_array(childID, tag_list_1);
- case ID_DIR:
- case ID_MENU:
- // (DIR|MENU): LI + - _3
- if(childID == ID_LI) return true;
- return false;
- case ID_FORM:
- // FORM: _1 * - FORM
- return check_array(childID, tag_list_1);
- case ID_LABEL:
- // LABEL: _1 * - LABEL
- return check_array(childID, tag_list_1);
- // KEYGEN does not really allow any children
- // from outside, just need this to be able
- // to add the keylengths ourself
- // Yes, consider it a hack (Dirk)
- case ID_KEYGEN:
- case ID_SELECT:
- // SELECT: _7 +
- return check_array(childID, tag_list_7);
- case ID_OPTGROUP:
- // OPTGROUP: OPTION +
- if(childID == ID_OPTION) return true;
- return false;
- case ID_OPTION:
- case ID_TEXTAREA:
- case ID_TITLE:
- case ID_STYLE:
- case ID_SCRIPT:
- // OPTION: TEXT
- if(childID == ID_TEXT) return true;
- return false;
- case ID_FIELDSET:
- // FIELDSET: ( TEXT , LEGEND , _1 * )
- if(childID == ID_TEXT) return true;
- if(childID == ID_LEGEND) return true;
- return check_array(childID, tag_list_1);
- case ID_BUTTON:
- // BUTTON: _1 * - _8
- return check_array(childID, tag_list_1);
- case ID_TABLE:
- // TABLE: ( CAPTION ? , ( COL * | COLGROUP * ) , THEAD ? , TFOOT ? , TBODY + )
- switch(childID)
- {
- case ID_CAPTION:
- case ID_COL:
- case ID_COLGROUP:
- case ID_THEAD:
- case ID_TFOOT:
- case ID_TBODY:
- case ID_FORM:
- case ID_SCRIPT:
- return true;
- default:
- return false;
- }
- case ID_THEAD:
- case ID_TFOOT:
- case ID_TBODY:
- // THEAD: TR +
- if(childID == ID_TR || childID == ID_SCRIPT) return true;
- return false;
- case ID_COLGROUP:
- // COLGROUP: COL *
- if(childID == ID_COL) return true;
- return false;
- case ID_TR:
- // TR: (TD, TH)
- return (childID == ID_TH || childID == ID_TD || childID == ID_SCRIPT);
- case ID_FRAMESET:
- // FRAMESET: _10
- return check_array(childID, tag_list_10);
- case ID_HEAD:
- // HEAD: _11
- return check_array(childID, tag_list_11);
- case ID_HTML:
- // HTML: ( HEAD , COMMENT, ( BODY | ( FRAMESET & NOFRAMES ? ) ) )
- switch(childID)
- {
- case ID_HEAD:
- case ID_COMMENT:
- case ID_BODY:
- case ID_FRAMESET:
- case ID_NOFRAMES:
- case ID_SCRIPT:
- return true;
- default:
- return false;
- }
- default:
- kdDebug( 6030 ) << "unhandled tag in dtd.cpp:checkChild(): tagID=" << tagID << "!" << endl;
- return false;
- }
-}
-
-void DOM::addForbidden(int tagId, ushort *forbiddenTags)
-{
- switch(tagId)
- {
- case ID_A:
- // we allow nested anchors. The innermost one wil be taken...
- //forbiddenTags[ID_A]++;
- break;
- case ID_NOBR:
- forbiddenTags[ID_PRE]++;
- // fall through
- case ID_PRE:
- case ID_PLAINTEXT:
- case ID_XMP:
- //forbiddenTags[ID_IMG]++;
- forbiddenTags[ID_OBJECT]++;
- forbiddenTags[ID_EMBED]++;
- forbiddenTags[ID_APPLET]++;
- // why forbid them. We can deal with them in PRE
- //forbiddenTags[ID_BIG]++;
- //forbiddenTags[ID_SMALL]++;
- //forbiddenTags[ID_SUB]++;
- //forbiddenTags[ID_SUP]++;
- forbiddenTags[ID_BASEFONT]++;
- break;
- case ID_DIR:
- case ID_MENU:
- forbiddenTags[ID_P]++;
- forbiddenTags[ID_H1]++;
- forbiddenTags[ID_H2]++;
- forbiddenTags[ID_H3]++;
- forbiddenTags[ID_H4]++;
- forbiddenTags[ID_H5]++;
- forbiddenTags[ID_H6]++;
- forbiddenTags[ID_UL]++;
- forbiddenTags[ID_OL]++;
- forbiddenTags[ID_DIR]++;
- forbiddenTags[ID_MENU]++;
- forbiddenTags[ID_PRE]++;
- forbiddenTags[ID_PLAINTEXT]++;
- forbiddenTags[ID_XMP]++;
- forbiddenTags[ID_DL]++;
- forbiddenTags[ID_DIV]++;
- forbiddenTags[ID_CENTER]++;
- forbiddenTags[ID_NOSCRIPT]++;
- forbiddenTags[ID_NOFRAMES]++;
- forbiddenTags[ID_BLOCKQUOTE]++;
- forbiddenTags[ID_FORM]++;
- forbiddenTags[ID_ISINDEX]++;
- forbiddenTags[ID_HR]++;
- forbiddenTags[ID_TABLE]++;
- forbiddenTags[ID_FIELDSET]++;
- forbiddenTags[ID_ADDRESS]++;
- break;
- case ID_LABEL:
- forbiddenTags[ID_LABEL]++;
- break;
- case ID_BUTTON:
- forbiddenTags[ID_A]++;
- forbiddenTags[ID_INPUT]++;
- forbiddenTags[ID_SELECT]++;
- forbiddenTags[ID_TEXTAREA]++;
- forbiddenTags[ID_LABEL]++;
- forbiddenTags[ID_BUTTON]++;
- forbiddenTags[ID_FORM]++;
- forbiddenTags[ID_ISINDEX]++;
- forbiddenTags[ID_FIELDSET]++;
- forbiddenTags[ID_IFRAME]++;
- break;
- default:
- break;
- }
-}
-
-void DOM::removeForbidden(int tagId, ushort *forbiddenTags)
-{
- switch(tagId)
- {
- case ID_A:
- //forbiddenTags[ID_A]--;
- break;
- case ID_NOBR:
- forbiddenTags[ID_PRE]--;
- // fall through
- case ID_PRE:
- case ID_XMP:
- case ID_PLAINTEXT:
- //forbiddenTags[ID_IMG]--;
- forbiddenTags[ID_OBJECT]--;
- forbiddenTags[ID_EMBED]--;
- forbiddenTags[ID_APPLET]--;
- //forbiddenTags[ID_BIG]--;
- //forbiddenTags[ID_SMALL]--;
- //forbiddenTags[ID_SUB]--;
- //forbiddenTags[ID_SUP]--;
- forbiddenTags[ID_BASEFONT]--;
- break;
- case ID_DIR:
- case ID_MENU:
- forbiddenTags[ID_P]--;
- forbiddenTags[ID_H1]--;
- forbiddenTags[ID_H2]--;
- forbiddenTags[ID_H3]--;
- forbiddenTags[ID_H4]--;
- forbiddenTags[ID_H5]--;
- forbiddenTags[ID_H6]--;
- forbiddenTags[ID_UL]--;
- forbiddenTags[ID_OL]--;
- forbiddenTags[ID_DIR]--;
- forbiddenTags[ID_MENU]--;
- forbiddenTags[ID_PRE]--;
- forbiddenTags[ID_PLAINTEXT]--;
- forbiddenTags[ID_XMP]--;
- forbiddenTags[ID_DL]--;
- forbiddenTags[ID_DIV]--;
- forbiddenTags[ID_CENTER]--;
- forbiddenTags[ID_NOSCRIPT]--;
- forbiddenTags[ID_NOFRAMES]--;
- forbiddenTags[ID_BLOCKQUOTE]--;
- forbiddenTags[ID_FORM]--;
- forbiddenTags[ID_ISINDEX]--;
- forbiddenTags[ID_HR]--;
- forbiddenTags[ID_TABLE]--;
- forbiddenTags[ID_FIELDSET]--;
- forbiddenTags[ID_ADDRESS]--;
- break;
- case ID_LABEL:
- forbiddenTags[ID_LABEL]--;
- break;
- case ID_BUTTON:
- forbiddenTags[ID_A]--;
- forbiddenTags[ID_INPUT]--;
- forbiddenTags[ID_SELECT]--;
- forbiddenTags[ID_TEXTAREA]--;
- forbiddenTags[ID_LABEL]--;
- forbiddenTags[ID_BUTTON]--;
- forbiddenTags[ID_FORM]--;
- forbiddenTags[ID_ISINDEX]--;
- forbiddenTags[ID_FIELDSET]--;
- forbiddenTags[ID_IFRAME]--;
- break;
- default:
- break;
- }
-}
-