mirror of https://github.com/lianthony/NT4.0
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
713 lines
19 KiB
713 lines
19 KiB
/*
|
|
This file was derived from the libwww code, version 2.15, from CERN.
|
|
A number of modifications have been made by Spyglass.
|
|
|
|
[email protected]
|
|
*/
|
|
/* Our Static DTD for HTML
|
|
** -----------------------
|
|
**
|
|
** 6 Nov 93 MD Increased size of img_attr array to make space
|
|
** for terminator.
|
|
*/
|
|
|
|
/* Implements:
|
|
*/
|
|
|
|
#include "all.h"
|
|
|
|
/* Entity Names
|
|
** ------------
|
|
**
|
|
** This table must be matched exactly with ALL the translation tables
|
|
**
|
|
** !!!when adding entity names, make sure to update MAX_ENTITY_LEN in
|
|
** !!!sgml.c
|
|
*/
|
|
static CONST char *entities[] =
|
|
{
|
|
"AElig", /* capital AE diphthong (ligature) */
|
|
"Aacute", /* capital A, acute accent */
|
|
"Acirc", /* capital A, circumflex accent */
|
|
"Agrave", /* capital A, grave accent */
|
|
"Aring", /* capital A, ring */
|
|
"Atilde", /* capital A, tilde */
|
|
"Auml", /* capital A, dieresis or umlaut mark */
|
|
"Ccedil", /* capital C, cedilla */
|
|
"ETH", /* capital Eth, Icelandic */
|
|
"Eacute", /* capital E, acute accent */
|
|
"Ecirc", /* capital E, circumflex accent */
|
|
"Egrave", /* capital E, grave accent */
|
|
"Euml", /* capital E, dieresis or umlaut mark */
|
|
"Iacute", /* capital I, acute accent */
|
|
"Icirc", /* capital I, circumflex accent */
|
|
"Igrave", /* capital I, grave accent */
|
|
"Iuml", /* capital I, dieresis or umlaut mark */
|
|
"Ntilde", /* capital N, tilde */
|
|
"Oacute", /* capital O, acute accent */
|
|
"Ocirc", /* capital O, circumflex accent */
|
|
"Ograve", /* capital O, grave accent */
|
|
"Oslash", /* capital O, slash */
|
|
"Otilde", /* capital O, tilde */
|
|
"Ouml", /* capital O, dieresis or umlaut mark */
|
|
"THORN", /* capital THORN, Icelandic */
|
|
"Uacute", /* capital U, acute accent */
|
|
"Ucirc", /* capital U, circumflex accent */
|
|
"Ugrave", /* capital U, grave accent */
|
|
"Uuml", /* capital U, dieresis or umlaut mark */
|
|
"Yacute", /* capital Y, acute accent */
|
|
"aacute", /* small a, acute accent */
|
|
"acirc", /* small a, circumflex accent */
|
|
"aelig", /* small ae diphthong (ligature) */
|
|
"agrave", /* small a, grave accent */
|
|
"amp", /* ampersand */
|
|
"aring", /* small a, ring */
|
|
"atilde", /* small a, tilde */
|
|
"auml", /* small a, dieresis or umlaut mark */
|
|
"ccedil", /* small c, cedilla */
|
|
"copy", /* copyright symbol (proposed 2.0) */
|
|
"eacute", /* small e, acute accent */
|
|
"ecirc", /* small e, circumflex accent */
|
|
"egrave", /* small e, grave accent */
|
|
"eth", /* small eth, Icelandic */
|
|
"euml", /* small e, dieresis or umlaut mark */
|
|
"gt", /* greater than */
|
|
"iacute", /* small i, acute accent */
|
|
"icirc", /* small i, circumflex accent */
|
|
"igrave", /* small i, grave accent */
|
|
"iuml", /* small i, dieresis or umlaut mark */
|
|
"lt", /* less than */
|
|
"nbsp", /* non-breaking space (proposed 2.0) */
|
|
"ntilde", /* small n, tilde */
|
|
"oacute", /* small o, acute accent */
|
|
"ocirc", /* small o, circumflex accent */
|
|
"ograve", /* small o, grave accent */
|
|
"oslash", /* small o, slash */
|
|
"otilde", /* small o, tilde */
|
|
"ouml", /* small o, dieresis or umlaut mark */
|
|
"quot", /* double quote */
|
|
"reg", /* registered trademark (proposed 2.0) */
|
|
"shy", /* soft hyphen (proposed 2.0) */
|
|
"szlig", /* small sharp s, German (sz ligature) */
|
|
"thorn", /* small thorn, Icelandic */
|
|
#ifdef FEATURE_INTL
|
|
"trade", /* trademark */
|
|
#endif
|
|
"uacute", /* small u, acute accent */
|
|
"ucirc", /* small u, circumflex accent */
|
|
"ugrave", /* small u, grave accent */
|
|
"uuml", /* small u, dieresis or umlaut mark */
|
|
"yacute", /* small y, acute accent */
|
|
"yuml", /* small y, dieresis or umlaut mark */
|
|
};
|
|
|
|
/* Entity values -- for ISO Latin 1 local representation
|
|
**
|
|
** This MUST match exactly the table referred to in the DTD!
|
|
*/
|
|
static CONST char *EntityValues[] =
|
|
{
|
|
"\306", /* capital AE diphthong (ligature) */
|
|
"\301", /* capital A, acute accent */
|
|
"\302", /* capital A, circumflex accent */
|
|
"\300", /* capital A, grave accent */
|
|
"\305", /* capital A, ring */
|
|
"\303", /* capital A, tilde */
|
|
"\304", /* capital A, dieresis or umlaut mark */
|
|
"\307", /* capital C, cedilla */
|
|
"\320", /* capital Eth, Icelandic */
|
|
"\311", /* capital E, acute accent */
|
|
"\312", /* capital E, circumflex accent */
|
|
"\310", /* capital E, grave accent */
|
|
"\313", /* capital E, dieresis or umlaut mark */
|
|
"\315", /* capital I, acute accent */
|
|
"\316", /* capital I, circumflex accent */
|
|
"\314", /* capital I, grave accent */
|
|
"\317", /* capital I, dieresis or umlaut mark */
|
|
"\321", /* capital N, tilde */
|
|
"\323", /* capital O, acute accent */
|
|
"\324", /* capital O, circumflex accent */
|
|
"\322", /* capital O, grave accent */
|
|
"\330", /* capital O, slash */
|
|
"\325", /* capital O, tilde */
|
|
"\326", /* capital O, dieresis or umlaut mark */
|
|
"\336", /* capital THORN, Icelandic */
|
|
"\332", /* capital U, acute accent */
|
|
"\333", /* capital U, circumflex accent */
|
|
"\331", /* capital U, grave accent */
|
|
"\334", /* capital U, dieresis or umlaut mark */
|
|
"\335", /* capital Y, acute accent */
|
|
"\341", /* small a, acute accent */
|
|
"\342", /* small a, circumflex accent */
|
|
"\346", /* small ae diphthong (ligature) */
|
|
"\340", /* small a, grave accent */
|
|
"\046", /* ampersand */
|
|
"\345", /* small a, ring */
|
|
"\343", /* small a, tilde */
|
|
"\344", /* small a, dieresis or umlaut mark */
|
|
"\347", /* small c, cedilla */
|
|
"\251", /* copyright symbol */
|
|
"\351", /* small e, acute accent */
|
|
"\352", /* small e, circumflex accent */
|
|
"\350", /* small e, grave accent */
|
|
"\360", /* small eth, Icelandic */
|
|
"\353", /* small e, dieresis or umlaut mark */
|
|
"\076", /* greater than */
|
|
"\355", /* small i, acute accent */
|
|
"\356", /* small i, circumflex accent */
|
|
"\354", /* small i, grave accent */
|
|
"\357", /* small i, dieresis or umlaut mark */
|
|
"\074", /* less than */
|
|
"\240", /* non-breaking space */
|
|
"\361", /* small n, tilde */
|
|
"\363", /* small o, acute accent */
|
|
"\364", /* small o, circumflex accent */
|
|
"\362", /* small o, grave accent */
|
|
"\370", /* small o, slash */
|
|
"\365", /* small o, tilde */
|
|
"\366", /* small o, dieresis or umlaut mark */
|
|
"\"", /* double quote */
|
|
"\256", /* registered trademark */
|
|
#ifdef FEATURE_INTL
|
|
"\255", /* soft hyphen */
|
|
#else
|
|
"", /* soft hyphen */
|
|
#endif
|
|
"\337", /* small sharp s, German (sz ligature) */
|
|
"\376", /* small thorn, Icelandic */
|
|
#ifdef FEATURE_INTL
|
|
"\231", /* trademark */
|
|
#endif
|
|
"\372", /* small u, acute accent */
|
|
"\373", /* small u, circumflex accent */
|
|
"\371", /* small u, grave accent */
|
|
"\374", /* small u, dieresis or umlaut mark */
|
|
"\375", /* small y, acute accent */
|
|
"\377", /* small y, dieresis or umlaut mark */
|
|
};
|
|
|
|
#ifdef FEATURE_INTL
|
|
#define HTML_ENTITIES 71
|
|
#else
|
|
#define HTML_ENTITIES 70
|
|
#endif
|
|
|
|
/* Attribute Lists
|
|
** ---------------
|
|
**
|
|
** Lists must be in alphatbetical order by attribute name
|
|
** The tag elements contain the number of attributes
|
|
*/
|
|
static attr no_attr[1] =
|
|
{
|
|
{0}};
|
|
|
|
static attr a_attr[HTML_A_ATTRIBUTES + 1] =
|
|
{ /* Anchor attributes */
|
|
{"EFFECT"},
|
|
{"HREF"},
|
|
{"ID"},
|
|
{"METHODS"},
|
|
{"NAME"}, /* Should be ID */
|
|
{"NOCACHE"},
|
|
{"PRINT"},
|
|
{"REL"}, /* Relationship */
|
|
{"REV"}, /* Reverse relationship */
|
|
{"SHAPE"},
|
|
{"TITLE"},
|
|
{"X-SIZE"}, /* size in kb, hint not actual */
|
|
{0} /* Terminate list */
|
|
};
|
|
|
|
#ifdef FEATURE_CLIENT_IMAGEMAP
|
|
static attr area_attr[HTML_AREA_ATTRIBUTES + 1] =
|
|
{
|
|
{"COORDS"},
|
|
{"HREF"},
|
|
{"NOHREF"},
|
|
{"SHAPE"},
|
|
{0}
|
|
};
|
|
#endif
|
|
|
|
static attr base_attr[] =
|
|
{ /* BASE attributes */
|
|
{"HREF"},
|
|
{0} /* Terminate list */
|
|
};
|
|
|
|
static attr bgsound_attr[HTML_BGSOUND_ATTRIBUTES + 1] =
|
|
{
|
|
{"LOOP"},
|
|
{"SRC"},
|
|
{"START"},
|
|
{0} /* terminate list */
|
|
};
|
|
|
|
|
|
static attr br_attr[HTML_BR_ATTRIBUTES + 1] =
|
|
{ /* BR attributes */
|
|
{"CLEAR"},
|
|
{0} /* Terminate list */
|
|
};
|
|
|
|
|
|
static attr body_attr[HTML_BODY_ATTRIBUTES + 1] =
|
|
{ /* BODY attributes */
|
|
{"ALINK"},
|
|
{"BACKGROUND"},
|
|
{"BGCOLOR"},
|
|
{"BGPROPERTIES"},
|
|
{"LEFTMARGIN" },
|
|
{"LINK"},
|
|
{"TEXT"},
|
|
{"TOPMARGIN" },
|
|
{"VLINK"},
|
|
{0} /* Terminate list */
|
|
};
|
|
|
|
|
|
static attr fetch_attr[HTML_FETCH_ATTRIBUTES + 1] =
|
|
{
|
|
{"DESC"},
|
|
{"GUID"},
|
|
{"REQUIRED"},
|
|
{"SRC"},
|
|
{"TS"},
|
|
{0} /* terminate list */
|
|
};
|
|
|
|
static attr font_attr[HTML_FONT_ATTRIBUTES + 1] =
|
|
{
|
|
{"COLOR"},
|
|
{"FACE"},
|
|
{"SIZE"},
|
|
{0} /* terminate list */
|
|
};
|
|
|
|
static attr form_attr[] =
|
|
{ /* General, for many things */
|
|
{"ACTION"},
|
|
{"ID"},
|
|
{"INDEX"},
|
|
{"LANG"},
|
|
{"METHOD"},
|
|
{0} /* terminate list */
|
|
};
|
|
|
|
#ifdef FEATURE_OCX
|
|
static attr embed_attr[HTML_EMBED_ATTRIBUTES + 1] =
|
|
{ /* For embeddable objects */
|
|
{"CLSID"},
|
|
{"EVENTS"},
|
|
{"HEIGHT"},
|
|
{"NAME"},
|
|
{"PROGID"},
|
|
{"PROPERTIES"},
|
|
{"PROPERTYSRC"},
|
|
{"SINK"},
|
|
{"SRC"},
|
|
{"WIDTH"},
|
|
{0} /* terminate list */
|
|
};
|
|
#endif
|
|
|
|
static attr marq_attr[HTML_MARQUEE_ATTRIBUTES + 1] =
|
|
{
|
|
{"ALIGN"},
|
|
{"BACKROUND"},
|
|
{"BEHAVIOR"},
|
|
{"BGCOLOR"} ,
|
|
{"BORDER"},
|
|
{"DIRECTION"},
|
|
{"HEIGHT"},
|
|
{"HSPACE"},
|
|
{"LOOP"},
|
|
{"SCROLLAMOUNT"}, // delta
|
|
{"SCROLLDELAY"}, // delay
|
|
{"VSPACE"},
|
|
{"WIDTH"},
|
|
{0}
|
|
};
|
|
|
|
static attr gen_attr[HTML_GEN_ATTRIBUTES + 1] =
|
|
{ /* General, for many things */
|
|
{"ALIGN"},
|
|
{"ID"},
|
|
{"INDEX"},
|
|
{"LANG"},
|
|
{0} /* terminate list */
|
|
};
|
|
|
|
static attr hr_attr[HTML_HR_ATTRIBUTES + 1] =
|
|
{
|
|
{"ALIGN"},
|
|
{"NOSHADE"},
|
|
{"SIZE"},
|
|
{"WIDTH"},
|
|
{0} /* terminate list */
|
|
};
|
|
|
|
static attr id_attr[2] =
|
|
{
|
|
{"ID"},
|
|
{0} /* terminate list */
|
|
};
|
|
|
|
static attr img_attr[HTML_IMG_ATTRIBUTES + 1] =
|
|
{ /* IMG attributes */
|
|
{"ALIGN"},
|
|
{"ALT"},
|
|
{"BORDER"},
|
|
{"CONTROLS"},
|
|
{"DYNSRC"},
|
|
{"HEIGHT"},
|
|
{"HSPACE"},
|
|
{"ISMAP"},
|
|
{"LOOP"},
|
|
{"SRC"},
|
|
{"START"},
|
|
{"USEMAP"},
|
|
#ifdef FEATURE_VRML
|
|
{"VRML"},
|
|
#endif
|
|
{"VSPACE"},
|
|
{"WIDTH"},
|
|
{0} /* Terminate list */
|
|
};
|
|
|
|
static attr caption_attr[HTML_CAPTION_ATTRIBUTES + 1] =
|
|
{
|
|
{"ALIGN"},
|
|
{"VALIGN"},
|
|
{0} /* terminate list */
|
|
};
|
|
|
|
static attr input_attr[HTML_INPUT_ATTRIBUTES + 1] =
|
|
{
|
|
{"ALIGN"},
|
|
{"CHECKED"},
|
|
{"DISABLED"},
|
|
{"ERROR"},
|
|
{"MAX"},
|
|
{"MAXLENGTH"},
|
|
{"MIN"},
|
|
{"NAME"},
|
|
{"SIZE"},
|
|
{"SRC"},
|
|
{"TYPE"},
|
|
{"VALUE"},
|
|
{0}
|
|
};
|
|
|
|
static attr isindex_attr[HTML_ISINDEX_ATTRIBUTES + 1] =
|
|
{
|
|
{"ACTION"},
|
|
{"PROMPT"},
|
|
{0}
|
|
};
|
|
|
|
static attr l_attr[HTML_L_ATTRIBUTES + 1] =
|
|
{
|
|
{"ALIGN"},
|
|
{"ID"},
|
|
{"LANG"},
|
|
{"INDEX"},
|
|
{0} /* Terminate list */
|
|
};
|
|
|
|
static attr li_attr[HTML_LI_ATTRIBUTES + 1] =
|
|
{
|
|
{"ID"},
|
|
{"INDEX"},
|
|
{"LANG"},
|
|
{"SRC"},
|
|
{"TYPE"},
|
|
{"VALUE"},
|
|
{0} /* Terminate list */
|
|
};
|
|
|
|
static attr link_attr[HTML_LINK_ATTRIBUTES + 1] =
|
|
{ /* link attributes */
|
|
{"HREF"},
|
|
{"IDREF"},
|
|
{"METHODS"},
|
|
{"REL"}, /* Relationship */
|
|
{"REV"}, /* Reverse relationship */
|
|
{0} /* Terminate list */
|
|
};
|
|
|
|
static attr ol_attr[HTML_OL_ATTRIBUTES + 1] =
|
|
{
|
|
{"COMPACT"},
|
|
{"ID"},
|
|
{"INDEX"},
|
|
{"LANG"},
|
|
{"START"},
|
|
{"TYPE"},
|
|
{0} /* Terminate list */
|
|
};
|
|
|
|
static attr glossary_attr[HTML_DL_ATTRIBUTES + 1] =
|
|
{
|
|
{"ID"},
|
|
{"COMPACT "},
|
|
{"INDEX"},
|
|
{0} /* Terminate list */
|
|
};
|
|
|
|
#ifdef FEATURE_CLIENT_IMAGEMAP
|
|
static attr map_attr[HTML_MAP_ATTRIBUTES + 1] =
|
|
{
|
|
{"NAME"},
|
|
{0}
|
|
};
|
|
#endif
|
|
|
|
|
|
static attr meta_attr[HTML_META_ATTRIBUTES + 1] =
|
|
{
|
|
{"CONTENT"},
|
|
{"HTTP-EQUIV"},
|
|
{0}
|
|
};
|
|
|
|
static attr nextid_attr[HTML_NEXTID_ATTRIBUTES + 1] =
|
|
{
|
|
{"N"},
|
|
{0} /* Terminate list */
|
|
};
|
|
|
|
static attr option_attr[HTML_OPTION_ATTRIBUTES + 1] =
|
|
{
|
|
{"DISABLED"},
|
|
{"LANG"},
|
|
{"SELECTED"},
|
|
{"VALUE"},
|
|
{0}
|
|
};
|
|
|
|
static attr select_attr[HTML_SELECT_ATTRIBUTES + 1] =
|
|
{
|
|
{"ERROR"},
|
|
{"LANG"},
|
|
{"MULTIPLE"},
|
|
{"NAME"},
|
|
{"SIZE"},
|
|
{0},
|
|
};
|
|
|
|
static attr tab_attr[HTML_TAB_ATTRIBUTES + 1] =
|
|
{
|
|
{"ALIGN"},
|
|
{"AT"},
|
|
{0}
|
|
};
|
|
|
|
static attr table_attr[HTML_TABLE_ATTRIBUTES + 1] =
|
|
{
|
|
{"ALIGN"},
|
|
{"BGCOLOR"},
|
|
{"BORDER"},
|
|
{"BORDERCOLOR"},
|
|
{"BORDERCOLORDARK"},
|
|
{"BORDERCOLORLIGHT"},
|
|
{"CELLPADDING"},
|
|
{"CELLSPACING"},
|
|
{"HEIGHT"},
|
|
{"ID"},
|
|
{"INDEX"},
|
|
{"LANG"},
|
|
{"NOWRAP"},
|
|
{"VALIGN"},
|
|
{"WIDTH"},
|
|
{0}
|
|
};
|
|
|
|
static attr tr_attr[HTML_TR_ATTRIBUTES + 1] =
|
|
{
|
|
{"ALIGN"},
|
|
{"BGCOLOR"},
|
|
{"BORDERCOLOR"},
|
|
{"BORDERCOLORDARK"},
|
|
{"BORDERCOLORLIGHT"},
|
|
{"NOWRAP"},
|
|
{"VALIGN"},
|
|
{"WIDTH"},
|
|
{0}
|
|
};
|
|
|
|
static attr td_attr[HTML_TD_ATTRIBUTES + 1] =
|
|
{
|
|
{"ALIGN"},
|
|
{"BGCOLOR"},
|
|
{"BORDERCOLOR"},
|
|
{"BORDERCOLORDARK"},
|
|
{"BORDERCOLORLIGHT"},
|
|
{"COLSPAN"},
|
|
{"HEIGHT"},
|
|
{"NOWRAP"},
|
|
{"ROWSPAN"},
|
|
{"VALIGN"},
|
|
{"WIDTH"},
|
|
{0}
|
|
};
|
|
|
|
static attr textarea_attr[HTML_TEXTAREA_ATTRIBUTES + 1] =
|
|
{
|
|
{"COLS"},
|
|
{"DISABLED"},
|
|
{"ERROR"},
|
|
{"LANG"},
|
|
{"NAME"},
|
|
{"ROWS"},
|
|
{0}
|
|
};
|
|
|
|
static attr ul_attr[HTML_UL_ATTRIBUTES + 1] =
|
|
{
|
|
{"COMPACT"},
|
|
{"ID"},
|
|
{"INDEX"},
|
|
{"LANG"},
|
|
{"PLAIN"},
|
|
{"TYPE"},
|
|
{"WRAP"},
|
|
{0}
|
|
};
|
|
|
|
|
|
/* Elements
|
|
** --------
|
|
**
|
|
** Must match definitions in HTMLPDTD.h!
|
|
** Must be in alphabetical order.
|
|
**
|
|
** Name, Attributes, content
|
|
*/
|
|
static HTTag tags[HTMLP_ELEMENTS] =
|
|
{
|
|
{"A", a_attr, HTML_A_ATTRIBUTES, SGML_MIXED, HTTAG_OTHER},
|
|
{"ADDED", gen_attr, HTML_GEN_ATTRIBUTES, SGML_MIXED, HTTAG_OTHER},
|
|
{"ADDRESS", no_attr, 0, SGML_MIXED, HTTAG_OTHER},
|
|
#ifdef FEATURE_CLIENT_IMAGEMAP
|
|
{"AREA", area_attr, HTML_AREA_ATTRIBUTES, SGML_EMPTY, HTTAG_OTHER},
|
|
#endif
|
|
{"ARG", gen_attr, HTML_GEN_ATTRIBUTES, SGML_MIXED, HTTAG_OTHER},
|
|
{"B", no_attr, 0, SGML_NEST, HTTAG_OTHER},
|
|
{"BASE", base_attr, HTML_BASE_ATTRIBUTES, SGML_MIXED, HTTAG_OTHER},
|
|
{"BASEFONT", font_attr, HTML_FONT_ATTRIBUTES, SGML_MIXED, HTTAG_OTHER},
|
|
{"BGSOUND",bgsound_attr,HTML_BGSOUND_ATTRIBUTES,SGML_MIXED, HTTAG_OTHER},
|
|
{"BLOCKQUOTE", no_attr, 0, SGML_MIXED, HTTAG_OTHER},
|
|
{"BODY", body_attr, HTML_BODY_ATTRIBUTES, SGML_MIXED, HTTAG_OTHER},
|
|
{"BR", br_attr, HTML_BR_ATTRIBUTES, SGML_EMPTY, HTTAG_OTHER},
|
|
{"CAPTION", caption_attr, HTML_CAPTION_ATTRIBUTES, SGML_MIXED, HTTAG_OTHER},
|
|
{"CENTER", gen_attr, HTML_GEN_ATTRIBUTES, SGML_NEST, HTTAG_OTHER},
|
|
{"CITE", gen_attr, HTML_GEN_ATTRIBUTES, SGML_MIXED, HTTAG_OTHER},
|
|
{"CMD", gen_attr, HTML_GEN_ATTRIBUTES, SGML_MIXED, HTTAG_OTHER},
|
|
{"CODE", gen_attr, HTML_GEN_ATTRIBUTES, SGML_MIXED, HTTAG_OTHER},
|
|
{"COMMENT", no_attr, 0, SGML_MIXED, HTTAG_OTHER},
|
|
{"DD", gen_attr, HTML_GEN_ATTRIBUTES, SGML_EMPTY, HTTAG_OTHER},
|
|
{"DFN", gen_attr, HTML_GEN_ATTRIBUTES, SGML_MIXED, HTTAG_OTHER},
|
|
{"DIR", gen_attr, HTML_GEN_ATTRIBUTES, SGML_MIXED, HTTAG_OTHER},
|
|
{"DL", glossary_attr, HTML_DL_ATTRIBUTES, SGML_MIXED, HTTAG_OTHER},
|
|
{"DT", gen_attr, HTML_GEN_ATTRIBUTES, SGML_EMPTY, HTTAG_OTHER},
|
|
{"EM", gen_attr, HTML_GEN_ATTRIBUTES, SGML_NEST, HTTAG_OTHER},
|
|
#ifdef FEATURE_OCX
|
|
{"EMBED", embed_attr, HTML_EMBED_ATTRIBUTES, SGML_EMPTY, HTTAG_OTHER},
|
|
#endif
|
|
#ifdef FEATURE_INTL
|
|
{"ENTITY", no_attr, 0, SGML_NEST, HTTAG_OTHER},
|
|
#endif
|
|
{"FETCH", fetch_attr, HTML_FETCH_ATTRIBUTES, SGML_EMPTY, HTTAG_OTHER},
|
|
{"FONT", font_attr, HTML_FONT_ATTRIBUTES, SGML_NEST, HTTAG_OTHER},
|
|
{"FORM", form_attr, HTML_FORM_ATTRIBUTES, SGML_MIXED, HTTAG_OTHER},
|
|
{"H1", gen_attr, HTML_GEN_ATTRIBUTES, SGML_MIXED, HTTAG_HEADER},
|
|
{"H2", gen_attr, HTML_GEN_ATTRIBUTES, SGML_MIXED, HTTAG_HEADER},
|
|
{"H3", gen_attr, HTML_GEN_ATTRIBUTES, SGML_MIXED, HTTAG_HEADER},
|
|
{"H4", gen_attr, HTML_GEN_ATTRIBUTES, SGML_MIXED, HTTAG_HEADER},
|
|
{"H5", gen_attr, HTML_GEN_ATTRIBUTES, SGML_MIXED, HTTAG_HEADER},
|
|
{"H6", gen_attr, HTML_GEN_ATTRIBUTES, SGML_MIXED, HTTAG_HEADER},
|
|
{"HEAD", no_attr, 0, SGML_MIXED, HTTAG_OTHER},
|
|
{"HR", hr_attr, HTML_HR_ATTRIBUTES, SGML_EMPTY, HTTAG_OTHER},
|
|
{"HTML", no_attr, 0, SGML_MIXED, HTTAG_OTHER}, /* */
|
|
{"I", gen_attr, HTML_GEN_ATTRIBUTES, SGML_NEST, HTTAG_OTHER},
|
|
{"IMAGE", img_attr, HTML_IMG_ATTRIBUTES, SGML_EMPTY, HTTAG_OTHER},
|
|
{"IMG", img_attr, HTML_IMG_ATTRIBUTES, SGML_EMPTY, HTTAG_OTHER},
|
|
{"INPUT", input_attr, HTML_INPUT_ATTRIBUTES, SGML_EMPTY, HTTAG_OTHER},
|
|
{"ISINDEX", isindex_attr, HTML_ISINDEX_ATTRIBUTES, SGML_EMPTY, HTTAG_OTHER},
|
|
{"KBD", gen_attr, HTML_GEN_ATTRIBUTES, SGML_MIXED, HTTAG_OTHER},
|
|
{"L", l_attr, HTML_L_ATTRIBUTES, SGML_MIXED, HTTAG_OTHER},
|
|
{"LI", li_attr, HTML_LI_ATTRIBUTES, SGML_EMPTY, HTTAG_OTHER},
|
|
{"LINK", link_attr, HTML_LINK_ATTRIBUTES, SGML_EMPTY, HTTAG_OTHER},
|
|
{"LISTING", no_attr, 0, SGML_LITERAL, HTTAG_OTHER},
|
|
{"LIT", gen_attr, HTML_GEN_ATTRIBUTES, SGML_MIXED, HTTAG_OTHER},
|
|
#ifdef FEATURE_CLIENT_IMAGEMAP
|
|
{"MAP", map_attr, HTML_MAP_ATTRIBUTES, SGML_MIXED, HTTAG_OTHER},
|
|
#endif
|
|
|
|
{"MARQUEE", marq_attr, HTML_MARQUEE_ATTRIBUTES, SGML_MIXED, HTTAG_OTHER},
|
|
{"MENU", gen_attr, HTML_GEN_ATTRIBUTES, SGML_MIXED, HTTAG_OTHER},
|
|
{"META", meta_attr, HTML_META_ATTRIBUTES, SGML_EMPTY, HTTAG_OTHER},
|
|
{"NEXTID", nextid_attr, 1, SGML_EMPTY, HTTAG_OTHER},
|
|
{"NOBR", gen_attr, HTML_GEN_ATTRIBUTES, SGML_MIXED, HTTAG_OTHER},
|
|
{"OL", ol_attr, HTML_OL_ATTRIBUTES, SGML_MIXED, HTTAG_OTHER},
|
|
{"OPTION", option_attr, HTML_OPTION_ATTRIBUTES, SGML_EMPTY, HTTAG_OTHER},
|
|
{"P", l_attr, HTML_L_ATTRIBUTES, SGML_NEST, HTTAG_OTHER},
|
|
{"PLAINTEXT", no_attr, 0, SGML_LITERAL, HTTAG_OTHER},
|
|
{"PRE", gen_attr, HTML_GEN_ATTRIBUTES, SGML_MIXED, HTTAG_OTHER},
|
|
{"Q", gen_attr, HTML_GEN_ATTRIBUTES, SGML_MIXED, HTTAG_OTHER},
|
|
{"S", gen_attr, HTML_GEN_ATTRIBUTES, SGML_NEST, HTTAG_OTHER},
|
|
{"SAMP", gen_attr, HTML_GEN_ATTRIBUTES, SGML_MIXED, HTTAG_OTHER},
|
|
{"SELECT", select_attr, HTML_SELECT_ATTRIBUTES, SGML_MIXED, HTTAG_OTHER},
|
|
{"STRIKE", gen_attr, HTML_GEN_ATTRIBUTES, SGML_NEST, HTTAG_OTHER},
|
|
{"STRONG", gen_attr, HTML_GEN_ATTRIBUTES, SGML_NEST, HTTAG_OTHER},
|
|
{"TAB", tab_attr, HTML_TAB_ATTRIBUTES, SGML_EMPTY, HTTAG_OTHER},
|
|
{"TABLE", table_attr, HTML_TABLE_ATTRIBUTES, SGML_NEST, HTTAG_OTHER},
|
|
{"TD", td_attr, HTML_TD_ATTRIBUTES, SGML_NEST, HTTAG_OTHER},
|
|
{"TEXTAREA", textarea_attr, HTML_TEXTAREA_ATTRIBUTES, SGML_MIXED, HTTAG_OTHER},
|
|
{"TH", td_attr, HTML_TD_ATTRIBUTES, SGML_NEST, HTTAG_OTHER},
|
|
{"TITLE", gen_attr, HTML_GEN_ATTRIBUTES, SGML_MIXED, HTTAG_OTHER},
|
|
{"TR", tr_attr, HTML_TR_ATTRIBUTES, SGML_NEST, HTTAG_OTHER},
|
|
{"TT", gen_attr, HTML_GEN_ATTRIBUTES, SGML_NEST, HTTAG_OTHER},
|
|
{"U", gen_attr, HTML_GEN_ATTRIBUTES, SGML_NEST, HTTAG_OTHER},
|
|
{"UL", ul_attr, HTML_UL_ATTRIBUTES, SGML_MIXED, HTTAG_OTHER},
|
|
{"VAR", gen_attr, HTML_GEN_ATTRIBUTES, SGML_MIXED, HTTAG_OTHER},
|
|
{"WBR", gen_attr, HTML_GEN_ATTRIBUTES, SGML_MIXED, HTTAG_OTHER},
|
|
{"XMP", no_attr, 0, SGML_LITERAL, HTTAG_OTHER}
|
|
};
|
|
|
|
struct _HTStructured
|
|
{
|
|
HTStructuredClass *isa;
|
|
/* ... */
|
|
};
|
|
|
|
|
|
PUBLIC CONST SGML_dtd HTMLP_dtd =
|
|
{
|
|
tags,
|
|
HTMLP_ELEMENTS,
|
|
entities,
|
|
EntityValues,
|
|
sizeof(entities) / sizeof(char **)
|
|
};
|
|
|
|
PUBLIC void HTNextID(HTStructured * obj, int next_one)
|
|
{
|
|
BOOL present[HTML_NEXTID_ATTRIBUTES];
|
|
CONST char *value[HTML_NEXTID_ATTRIBUTES];
|
|
char string[10];
|
|
|
|
sprintf(string, "z%i", next_one);
|
|
{
|
|
int i;
|
|
for (i = 0; i < HTML_NEXTID_ATTRIBUTES; i++)
|
|
present[i] = NO;
|
|
}
|
|
present[HTML_NEXTID_N] = YES;
|
|
value[HTML_NEXTID_N] = string;
|
|
|
|
(*obj->isa->start_element) (obj, HTML_NEXTID, present, value);
|
|
|
|
}
|