/* Our Static DTD for HTML ** ----------------------- */ /* Implements: */ #include "HTUtils.h" #include "HTMLDTD.h" #include "LYLeaks.h" /* Entity Names ** ------------ ** ** This table must be matched exactly with ALL the translation tables */ 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 */ "Dstrok", /* capital Eth, Icelandic */ "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 */ "acute", /* spacing acute */ "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 */ "brkbar", /* broken vertical bar */ "brvbar", /* broken vertical bar */ "ccedil", /* small c, cedilla */ "cedil", /* spacing cedilla */ "cent", /* cent sign */ "copy", /* copyright sign */ "curren", /* currency sign */ "deg", /* degree sign */ "die", /* spacing diaresis */ "divide", /* division sign */ "eacute", /* small e, acute accent */ "ecirc", /* small e, circumflex accent */ "egrave", /* small e, grave accent */ "emdash", /* dash the width of emsp */ "emsp", /* em space - not collapsed */ "endash", /* dash the width of ensp */ "ensp", /* en space - not collapsed */ "eth", /* small eth, Icelandic */ "euml", /* small e, dieresis or umlaut mark */ "frac12", /* fraction 1/2 */ "frac14", /* fraction 1/4 */ "frac34", /* fraction 3/4 */ "gt", /* greater than */ "hibar", /* spacing macron */ "iacute", /* small i, acute accent */ "icirc", /* small i, circumflex accent */ "iexcl", /* inverted exclamation mark */ "igrave", /* small i, grave accent */ "iquest", /* inverted question mark */ "iuml", /* small i, dieresis or umlaut mark */ "laquo", /* angle quotation mark, left */ "lt", /* less than */ "macr", /* spacing macron */ "mdash", /* dash the width of emsp */ "micro", /* micro sign */ "middot", /* middle dot */ "nbsp", /* non breaking space */ "ndash", /* dash the width of ensp */ "not", /* negation sign */ "ntilde", /* small n, tilde */ "oacute", /* small o, acute accent */ "ocirc", /* small o, circumflex accent */ "ograve", /* small o, grave accent */ "ordf", /* feminine ordinal indicator */ "ordm", /* masculine ordinal indicator */ "oslash", /* small o, slash */ "otilde", /* small o, tilde */ "ouml", /* small o, dieresis or umlaut mark */ "para", /* paragraph sign */ "plusmn", /* plus-or-minus sign */ "pound", /* pound sign */ "quot", /* quot '"' */ "raquo", /* angle quotation mark, right */ "reg", /* circled R registered sign */ "sect", /* section sign */ "shy", /* soft hyphen */ "sup1", /* superscript 1 */ "sup2", /* superscript 2 */ "sup3", /* superscript 3 */ "szlig", /* small sharp s, German (sz ligature) */ "thinsp", /* thin space (not collapsed) */ "thorn", /* small thorn, Icelandic */ "times", /* multiplication sign */ "trade", /* trade mark sign (U+2122) */ "uacute", /* small u, acute accent */ "ucirc", /* small u, circumflex accent */ "ugrave", /* small u, grave accent */ "uml", /* spacing diaresis */ "uuml", /* small u, dieresis or umlaut mark */ "yacute", /* small y, acute accent */ "yen", /* yen sign */ "yuml", /* small y, dieresis or umlaut mark */ }; #define HTML_ENTITIES 112 /* Extra Entity Names ** ------------------ ** ** This table contains Unicodes in addition to the Names. ** * * Whole entities[] thing above (and much more) now present * in this kind of structure. The structured streams to which * the SGML modules sends its output could then easily have access * to both entity names and unicode values for each (special) * character. Probably the whole translation to display characters * should be done at that later stage (e.g. in HTML.c). * What's missing is a way for the later stage to return info * to SGML whether the entity could be displayed or not. * (like between SGML_character() and handle_entity() via FoundEntity.) * Well, trying to do that now. * Why keep two structures for entities? Backward compatibility.. */ /* UC_entity_info structure is defined in SGML.h. */ /* This has to be sorted alphabetically (case-sensitive), bear this in mind when you add some more entities.. This table available from ftp://ftp.unicode.org/MAPPINGS/ original comment follows: # Author: John Cowan # Date: 25 July 1997 # # The following table maps SGML character entities from various # public sets (namely, ISOamsa, ISOamsb, ISOamsc, ISOamsn, ISOamso, # ISOamsr, ISObox, ISOcyr1, ISOcyr2, ISOdia, ISOgrk1, ISOgrk2, # ISOgrk3, ISOgrk4, ISOlat1, ISOlat2, ISOnum, ISOpub, ISOtech, # HTMLspecial, HTMLsymbol) to corresponding Unicode characters. # # The table has four tab-separated columns: # Column 1: SGML character entity name # Column 2: SGML public entity set # Column 3: Unicode 2.0 character code # Column 4: Unicode 2.0 character name (UPPER CASE) # Entries which don't have Unicode equivalents have "0x????" # in Column 3 and a lower case description (from the public entity # set DTD) in Column 4. The mapping is not reversible, because many # distinctions are unified away in Unicode, particularly between # mathematical symbols. # # The table is sorted case-blind by SGML character entity name. # # The contents of this table are drawn from various sources, and # are in the public domain. # */ /* We just sort it and move column 2 away (line too long, sorry). Also we add a few synonyms (obsolete): "brkbar" for "brvbar" 0x00A6 "emdash" for "mdash" 0x2014 "endash" for "ndash" 0x2013 "hibar" for "macr" 0x00AF for exact compatibility with entities[] and previous bevavior. BTW, lots of synonyms found in this table, we shouldn't worry about... */ static CONST UC_entity_info extra_entities[] = { {"AElig", 0x00C6}, /* LATIN CAPITAL LETTER AE */ {"Aacgr", 0x0386}, /* GREEK CAPITAL LETTER ALPHA WITH TONOS */ {"Aacute", 0x00C1}, /* LATIN CAPITAL LETTER A WITH ACUTE */ {"Abreve", 0x0102}, /* LATIN CAPITAL LETTER A WITH BREVE */ {"Acirc", 0x00C2}, /* LATIN CAPITAL LETTER A WITH CIRCUMFLEX */ {"Acy", 0x0410}, /* CYRILLIC CAPITAL LETTER A */ {"Agr", 0x0391}, /* GREEK CAPITAL LETTER ALPHA */ {"Agrave", 0x00C0}, /* LATIN CAPITAL LETTER A WITH GRAVE */ {"Alpha", 0x0391}, /* GREEK CAPITAL LETTER ALPHA */ {"Amacr", 0x0100}, /* LATIN CAPITAL LETTER A WITH MACRON */ {"Aogon", 0x0104}, /* LATIN CAPITAL LETTER A WITH OGONEK */ {"Aring", 0x00C5}, /* LATIN CAPITAL LETTER A WITH RING ABOVE */ {"Atilde", 0x00C3}, /* LATIN CAPITAL LETTER A WITH TILDE */ {"Auml", 0x00C4}, /* LATIN CAPITAL LETTER A WITH DIAERESIS */ {"Barwed", 0x2306}, /* PERSPECTIVE */ {"Bcy", 0x0411}, /* CYRILLIC CAPITAL LETTER BE */ {"Beta", 0x0392}, /* GREEK CAPITAL LETTER BETA */ {"Bgr", 0x0392}, /* GREEK CAPITAL LETTER BETA */ {"CHcy", 0x0427}, /* CYRILLIC CAPITAL LETTER CHE */ {"Cacute", 0x0106}, /* LATIN CAPITAL LETTER C WITH ACUTE */ {"Cap", 0x22D2}, /* DOUBLE INTERSECTION */ {"Ccaron", 0x010C}, /* LATIN CAPITAL LETTER C WITH CARON */ {"Ccedil", 0x00C7}, /* LATIN CAPITAL LETTER C WITH CEDILLA */ {"Ccirc", 0x0108}, /* LATIN CAPITAL LETTER C WITH CIRCUMFLEX */ {"Cdot", 0x010A}, /* LATIN CAPITAL LETTER C WITH DOT ABOVE */ {"Chi", 0x03A7}, /* GREEK CAPITAL LETTER CHI */ {"Cup", 0x22D3}, /* DOUBLE UNION */ {"DJcy", 0x0402}, /* CYRILLIC CAPITAL LETTER DJE */ {"DScy", 0x0405}, /* CYRILLIC CAPITAL LETTER DZE */ {"DZcy", 0x040F}, /* CYRILLIC CAPITAL LETTER DZHE */ {"Dagger", 0x2021}, /* DOUBLE DAGGER */ {"Dcaron", 0x010E}, /* LATIN CAPITAL LETTER D WITH CARON */ {"Dcy", 0x0414}, /* CYRILLIC CAPITAL LETTER DE */ {"Delta", 0x0394}, /* GREEK CAPITAL LETTER DELTA */ {"Dgr", 0x0394}, /* GREEK CAPITAL LETTER DELTA */ {"Dot", 0x00A8}, /* DIAERESIS */ {"DotDot", 0x20DC}, /* COMBINING FOUR DOTS ABOVE */ {"Dstrok", 0x0110}, /* LATIN CAPITAL LETTER D WITH STROKE */ {"EEacgr", 0x0389}, /* GREEK CAPITAL LETTER ETA WITH TONOS */ {"EEgr", 0x0397}, /* GREEK CAPITAL LETTER ETA */ {"ENG", 0x014A}, /* LATIN CAPITAL LETTER ENG */ {"ETH", 0x00D0}, /* LATIN CAPITAL LETTER ETH */ {"Eacgr", 0x0388}, /* GREEK CAPITAL LETTER EPSILON WITH TONOS */ {"Eacute", 0x00C9}, /* LATIN CAPITAL LETTER E WITH ACUTE */ {"Ecaron", 0x011A}, /* LATIN CAPITAL LETTER E WITH CARON */ {"Ecirc", 0x00CA}, /* LATIN CAPITAL LETTER E WITH CIRCUMFLEX */ {"Ecy", 0x042D}, /* CYRILLIC CAPITAL LETTER E */ {"Edot", 0x0116}, /* LATIN CAPITAL LETTER E WITH DOT ABOVE */ {"Egr", 0x0395}, /* GREEK CAPITAL LETTER EPSILON */ {"Egrave", 0x00C8}, /* LATIN CAPITAL LETTER E WITH GRAVE */ {"Emacr", 0x0112}, /* LATIN CAPITAL LETTER E WITH MACRON */ {"Eogon", 0x0118}, /* LATIN CAPITAL LETTER E WITH OGONEK */ {"Epsilon", 0x0395}, /* GREEK CAPITAL LETTER EPSILON */ {"Eta", 0x0397}, /* GREEK CAPITAL LETTER ETA */ {"Euml", 0x00CB}, /* LATIN CAPITAL LETTER E WITH DIAERESIS */ {"Fcy", 0x0424}, /* CYRILLIC CAPITAL LETTER EF */ {"GJcy", 0x0403}, /* CYRILLIC CAPITAL LETTER GJE */ {"Gamma", 0x0393}, /* GREEK CAPITAL LETTER GAMMA */ {"Gbreve", 0x011E}, /* LATIN CAPITAL LETTER G WITH BREVE */ {"Gcedil", 0x0122}, /* LATIN CAPITAL LETTER G WITH CEDILLA */ {"Gcirc", 0x011C}, /* LATIN CAPITAL LETTER G WITH CIRCUMFLEX */ {"Gcy", 0x0413}, /* CYRILLIC CAPITAL LETTER GHE */ {"Gdot", 0x0120}, /* LATIN CAPITAL LETTER G WITH DOT ABOVE */ {"Gg", 0x22D9}, /* VERY MUCH GREATER-THAN */ {"Ggr", 0x0393}, /* GREEK CAPITAL LETTER GAMMA */ {"Gt", 0x226B}, /* MUCH GREATER-THAN */ {"HARDcy", 0x042A}, /* CYRILLIC CAPITAL LETTER HARD SIGN */ {"Hcirc", 0x0124}, /* LATIN CAPITAL LETTER H WITH CIRCUMFLEX */ {"Hstrok", 0x0126}, /* LATIN CAPITAL LETTER H WITH STROKE */ {"IEcy", 0x0415}, /* CYRILLIC CAPITAL LETTER IE */ {"IJlig", 0x0132}, /* LATIN CAPITAL LIGATURE IJ */ {"IOcy", 0x0401}, /* CYRILLIC CAPITAL LETTER IO */ {"Iacgr", 0x038A}, /* GREEK CAPITAL LETTER IOTA WITH TONOS */ {"Iacute", 0x00CD}, /* LATIN CAPITAL LETTER I WITH ACUTE */ {"Icirc", 0x00CE}, /* LATIN CAPITAL LETTER I WITH CIRCUMFLEX */ {"Icy", 0x0418}, /* CYRILLIC CAPITAL LETTER I */ {"Idigr", 0x03AA}, /* GREEK CAPITAL LETTER IOTA WITH DIALYTIKA */ {"Idot", 0x0130}, /* LATIN CAPITAL LETTER I WITH DOT ABOVE */ {"Igr", 0x0399}, /* GREEK CAPITAL LETTER IOTA */ {"Igrave", 0x00CC}, /* LATIN CAPITAL LETTER I WITH GRAVE */ {"Imacr", 0x012A}, /* LATIN CAPITAL LETTER I WITH MACRON */ {"Iogon", 0x012E}, /* LATIN CAPITAL LETTER I WITH OGONEK */ {"Iota", 0x0399}, /* GREEK CAPITAL LETTER IOTA */ {"Itilde", 0x0128}, /* LATIN CAPITAL LETTER I WITH TILDE */ {"Iukcy", 0x0406}, /* CYRILLIC CAPITAL LETTER BYELORUSSIAN-UKRAINIAN*/ {"Iuml", 0x00CF}, /* LATIN CAPITAL LETTER I WITH DIAERESIS */ {"Jcirc", 0x0134}, /* LATIN CAPITAL LETTER J WITH CIRCUMFLEX */ {"Jcy", 0x0419}, /* CYRILLIC CAPITAL LETTER SHORT I */ {"Jsercy", 0x0408}, /* CYRILLIC CAPITAL LETTER JE */ {"Jukcy", 0x0404}, /* CYRILLIC CAPITAL LETTER UKRAINIAN IE */ {"KHcy", 0x0425}, /* CYRILLIC CAPITAL LETTER HA */ {"KHgr", 0x03A7}, /* GREEK CAPITAL LETTER CHI */ {"KJcy", 0x040C}, /* CYRILLIC CAPITAL LETTER KJE */ {"Kappa", 0x039A}, /* GREEK CAPITAL LETTER KAPPA */ {"Kcedil", 0x0136}, /* LATIN CAPITAL LETTER K WITH CEDILLA */ {"Kcy", 0x041A}, /* CYRILLIC CAPITAL LETTER KA */ {"Kgr", 0x039A}, /* GREEK CAPITAL LETTER KAPPA */ {"LJcy", 0x0409}, /* CYRILLIC CAPITAL LETTER LJE */ {"Lacute", 0x0139}, /* LATIN CAPITAL LETTER L WITH ACUTE */ {"Lambda", 0x039B}, /* GREEK CAPITAL LETTER LAMDA */ {"Larr", 0x219E}, /* LEFTWARDS TWO HEADED ARROW */ {"Lcaron", 0x013D}, /* LATIN CAPITAL LETTER L WITH CARON */ {"Lcedil", 0x013B}, /* LATIN CAPITAL LETTER L WITH CEDILLA */ {"Lcy", 0x041B}, /* CYRILLIC CAPITAL LETTER EL */ {"Lgr", 0x039B}, /* GREEK CAPITAL LETTER LAMDA */ {"Ll", 0x22D8}, /* VERY MUCH LESS-THAN */ {"Lmidot", 0x013F}, /* LATIN CAPITAL LETTER L WITH MIDDLE DOT */ {"Lstrok", 0x0141}, /* LATIN CAPITAL LETTER L WITH STROKE */ {"Lt", 0x226A}, /* MUCH LESS-THAN */ {"Mcy", 0x041C}, /* CYRILLIC CAPITAL LETTER EM */ {"Mgr", 0x039C}, /* GREEK CAPITAL LETTER MU */ {"Mu", 0x039C}, /* GREEK CAPITAL LETTER MU */ {"NJcy", 0x040A}, /* CYRILLIC CAPITAL LETTER NJE */ {"Nacute", 0x0143}, /* LATIN CAPITAL LETTER N WITH ACUTE */ {"Ncaron", 0x0147}, /* LATIN CAPITAL LETTER N WITH CARON */ {"Ncedil", 0x0145}, /* LATIN CAPITAL LETTER N WITH CEDILLA */ {"Ncy", 0x041D}, /* CYRILLIC CAPITAL LETTER EN */ {"Ngr", 0x039D}, /* GREEK CAPITAL LETTER NU */ {"Ntilde", 0x00D1}, /* LATIN CAPITAL LETTER N WITH TILDE */ {"Nu", 0x039D}, /* GREEK CAPITAL LETTER NU */ {"OElig", 0x0152}, /* LATIN CAPITAL LIGATURE OE */ {"OHacgr", 0x038F}, /* GREEK CAPITAL LETTER OMEGA WITH TONOS */ {"OHgr", 0x03A9}, /* GREEK CAPITAL LETTER OMEGA */ {"Oacgr", 0x038C}, /* GREEK CAPITAL LETTER OMICRON WITH TONOS */ {"Oacute", 0x00D3}, /* LATIN CAPITAL LETTER O WITH ACUTE */ {"Ocirc", 0x00D4}, /* LATIN CAPITAL LETTER O WITH CIRCUMFLEX */ {"Ocy", 0x041E}, /* CYRILLIC CAPITAL LETTER O */ {"Odblac", 0x0150}, /* LATIN CAPITAL LETTER O WITH DOUBLE ACUTE */ {"Ogr", 0x039F}, /* GREEK CAPITAL LETTER OMICRON */ {"Ograve", 0x00D2}, /* LATIN CAPITAL LETTER O WITH GRAVE */ {"Omacr", 0x014C}, /* LATIN CAPITAL LETTER O WITH MACRON */ {"Omega", 0x03A9}, /* GREEK CAPITAL LETTER OMEGA */ {"Omicron", 0x039F}, /* GREEK CAPITAL LETTER OMICRON */ {"Oslash", 0x00D8}, /* LATIN CAPITAL LETTER O WITH STROKE */ {"Otilde", 0x00D5}, /* LATIN CAPITAL LETTER O WITH TILDE */ {"Ouml", 0x00D6}, /* LATIN CAPITAL LETTER O WITH DIAERESIS */ {"PHgr", 0x03A6}, /* GREEK CAPITAL LETTER PHI */ {"PSgr", 0x03A8}, /* GREEK CAPITAL LETTER PSI */ {"Pcy", 0x041F}, /* CYRILLIC CAPITAL LETTER PE */ {"Pgr", 0x03A0}, /* GREEK CAPITAL LETTER PI */ {"Phi", 0x03A6}, /* GREEK CAPITAL LETTER PHI */ {"Pi", 0x03A0}, /* GREEK CAPITAL LETTER PI */ {"Prime", 0x2033}, /* DOUBLE PRIME */ {"Psi", 0x03A8}, /* GREEK CAPITAL LETTER PSI */ {"Racute", 0x0154}, /* LATIN CAPITAL LETTER R WITH ACUTE */ {"Rarr", 0x21A0}, /* RIGHTWARDS TWO HEADED ARROW */ {"Rcaron", 0x0158}, /* LATIN CAPITAL LETTER R WITH CARON */ {"Rcedil", 0x0156}, /* LATIN CAPITAL LETTER R WITH CEDILLA */ {"Rcy", 0x0420}, /* CYRILLIC CAPITAL LETTER ER */ {"Rgr", 0x03A1}, /* GREEK CAPITAL LETTER RHO */ {"Rho", 0x03A1}, /* GREEK CAPITAL LETTER RHO */ {"SHCHcy", 0x0429}, /* CYRILLIC CAPITAL LETTER SHCHA */ {"SHcy", 0x0428}, /* CYRILLIC CAPITAL LETTER SHA */ {"SOFTcy", 0x042C}, /* CYRILLIC CAPITAL LETTER SOFT SIGN */ {"Sacute", 0x015A}, /* LATIN CAPITAL LETTER S WITH ACUTE */ {"Scaron", 0x0160}, /* LATIN CAPITAL LETTER S WITH CARON */ {"Scedil", 0x015E}, /* LATIN CAPITAL LETTER S WITH CEDILLA */ {"Scirc", 0x015C}, /* LATIN CAPITAL LETTER S WITH CIRCUMFLEX */ {"Scy", 0x0421}, /* CYRILLIC CAPITAL LETTER ES */ {"Sgr", 0x03A3}, /* GREEK CAPITAL LETTER SIGMA */ {"Sigma", 0x03A3}, /* GREEK CAPITAL LETTER SIGMA */ {"Sub", 0x22D0}, /* DOUBLE SUBSET */ {"Sup", 0x22D1}, /* DOUBLE SUPERSET */ {"THORN", 0x00DE}, /* LATIN CAPITAL LETTER THORN */ {"THgr", 0x0398}, /* GREEK CAPITAL LETTER THETA */ {"TSHcy", 0x040B}, /* CYRILLIC CAPITAL LETTER TSHE */ {"TScy", 0x0426}, /* CYRILLIC CAPITAL LETTER TSE */ {"Tau", 0x03A4}, /* GREEK CAPITAL LETTER TAU */ {"Tcaron", 0x0164}, /* LATIN CAPITAL LETTER T WITH CARON */ {"Tcedil", 0x0162}, /* LATIN CAPITAL LETTER T WITH CEDILLA */ {"Tcy", 0x0422}, /* CYRILLIC CAPITAL LETTER TE */ {"Tgr", 0x03A4}, /* GREEK CAPITAL LETTER TAU */ {"Theta", 0x0398}, /* GREEK CAPITAL LETTER THETA */ {"Tstrok", 0x0166}, /* LATIN CAPITAL LETTER T WITH STROKE */ {"Uacgr", 0x038E}, /* GREEK CAPITAL LETTER UPSILON WITH TONOS */ {"Uacute", 0x00DA}, /* LATIN CAPITAL LETTER U WITH ACUTE */ {"Ubrcy", 0x040E}, /* CYRILLIC CAPITAL LETTER SHORT U */ {"Ubreve", 0x016C}, /* LATIN CAPITAL LETTER U WITH BREVE */ {"Ucirc", 0x00DB}, /* LATIN CAPITAL LETTER U WITH CIRCUMFLEX */ {"Ucy", 0x0423}, /* CYRILLIC CAPITAL LETTER U */ {"Udblac", 0x0170}, /* LATIN CAPITAL LETTER U WITH DOUBLE ACUTE */ {"Udigr", 0x03AB}, /* GREEK CAPITAL LETTER UPSILON WITH DIALYTIKA */ {"Ugr", 0x03A5}, /* GREEK CAPITAL LETTER UPSILON */ {"Ugrave", 0x00D9}, /* LATIN CAPITAL LETTER U WITH GRAVE */ {"Umacr", 0x016A}, /* LATIN CAPITAL LETTER U WITH MACRON */ {"Uogon", 0x0172}, /* LATIN CAPITAL LETTER U WITH OGONEK */ {"Upsi", 0x03A5}, /* GREEK CAPITAL LETTER UPSILON */ {"Upsilon", 0x03A5}, /* GREEK CAPITAL LETTER UPSILON */ {"Uring", 0x016E}, /* LATIN CAPITAL LETTER U WITH RING ABOVE */ {"Utilde", 0x0168}, /* LATIN CAPITAL LETTER U WITH TILDE */ {"Uuml", 0x00DC}, /* LATIN CAPITAL LETTER U WITH DIAERESIS */ {"Vcy", 0x0412}, /* CYRILLIC CAPITAL LETTER VE */ {"Vdash", 0x22A9}, /* FORCES */ {"Verbar", 0x2016}, /* DOUBLE VERTICAL LINE */ {"Vvdash", 0x22AA}, /* TRIPLE VERTICAL BAR RIGHT TURNSTILE */ {"Wcirc", 0x0174}, /* LATIN CAPITAL LETTER W WITH CIRCUMFLEX */ {"Xgr", 0x039E}, /* GREEK CAPITAL LETTER XI */ {"Xi", 0x039E}, /* GREEK CAPITAL LETTER XI */ {"YAcy", 0x042F}, /* CYRILLIC CAPITAL LETTER YA */ {"YIcy", 0x0407}, /* CYRILLIC CAPITAL LETTER YI */ {"YUcy", 0x042E}, /* CYRILLIC CAPITAL LETTER YU */ {"Yacute", 0x00DD}, /* LATIN CAPITAL LETTER Y WITH ACUTE */ {"Ycirc", 0x0176}, /* LATIN CAPITAL LETTER Y WITH CIRCUMFLEX */ {"Ycy", 0x042B}, /* CYRILLIC CAPITAL LETTER YERU */ {"Yuml", 0x0178}, /* LATIN CAPITAL LETTER Y WITH DIAERESIS */ {"ZHcy", 0x0416}, /* CYRILLIC CAPITAL LETTER ZHE */ {"Zacute", 0x0179}, /* LATIN CAPITAL LETTER Z WITH ACUTE */ {"Zcaron", 0x017D}, /* LATIN CAPITAL LETTER Z WITH CARON */ {"Zcy", 0x0417}, /* CYRILLIC CAPITAL LETTER ZE */ {"Zdot", 0x017B}, /* LATIN CAPITAL LETTER Z WITH DOT ABOVE */ {"Zeta", 0x0396}, /* GREEK CAPITAL LETTER ZETA */ {"Zgr", 0x0396}, /* GREEK CAPITAL LETTER ZETA */ {"aacgr", 0x03AC}, /* GREEK SMALL LETTER ALPHA WITH TONOS */ {"aacute", 0x00E1}, /* LATIN SMALL LETTER A WITH ACUTE */ {"abreve", 0x0103}, /* LATIN SMALL LETTER A WITH BREVE */ {"acirc", 0x00E2}, /* LATIN SMALL LETTER A WITH CIRCUMFLEX */ {"acute", 0x00B4}, /* ACUTE ACCENT */ {"acy", 0x0430}, /* CYRILLIC SMALL LETTER A */ {"aelig", 0x00E6}, /* LATIN SMALL LETTER AE */ {"agr", 0x03B1}, /* GREEK SMALL LETTER ALPHA */ {"agrave", 0x00E0}, /* LATIN SMALL LETTER A WITH GRAVE */ {"alefsym", 0x2135}, /* ALEF SYMBOL */ {"aleph", 0x2135}, /* ALEF SYMBOL */ {"alpha", 0x03B1}, /* GREEK SMALL LETTER ALPHA */ {"amacr", 0x0101}, /* LATIN SMALL LETTER A WITH MACRON */ {"amalg", 0x2210}, /* N-ARY COPRODUCT */ {"amp", 0x0026}, /* AMPERSAND */ {"and", 0x2227}, /* LOGICAL AND */ {"ang", 0x2220}, /* ANGLE */ {"ang90", 0x221F}, /* RIGHT ANGLE */ {"angmsd", 0x2221}, /* MEASURED ANGLE */ {"angsph", 0x2222}, /* SPHERICAL ANGLE */ {"angst", 0x212B}, /* ANGSTROM SIGN */ {"aogon", 0x0105}, /* LATIN SMALL LETTER A WITH OGONEK */ {"ap", 0x2248}, /* ALMOST EQUAL TO */ {"ape", 0x224A}, /* ALMOST EQUAL OR EQUAL TO */ {"apos", 0x02BC}, /* MODIFIER LETTER APOSTROPHE */ {"aring", 0x00E5}, /* LATIN SMALL LETTER A WITH RING ABOVE */ {"ast", 0x002A}, /* ASTERISK */ {"asymp", 0x2248}, /* ALMOST EQUAL TO */ {"atilde", 0x00E3}, /* LATIN SMALL LETTER A WITH TILDE */ {"auml", 0x00E4}, /* LATIN SMALL LETTER A WITH DIAERESIS */ {"b.Delta", 0x0394}, /* GREEK CAPITAL LETTER DELTA */ {"b.Gamma", 0x0393}, /* GREEK CAPITAL LETTER GAMMA */ {"b.Lambda", 0x039B}, /* GREEK CAPITAL LETTER LAMDA */ {"b.Omega", 0x03A9}, /* GREEK CAPITAL LETTER OMEGA */ {"b.Phi", 0x03A6}, /* GREEK CAPITAL LETTER PHI */ {"b.Pi", 0x03A0}, /* GREEK CAPITAL LETTER PI */ {"b.Psi", 0x03A8}, /* GREEK CAPITAL LETTER PSI */ {"b.Sigma", 0x03A3}, /* GREEK CAPITAL LETTER SIGMA */ {"b.Theta", 0x0398}, /* GREEK CAPITAL LETTER THETA */ {"b.Upsi", 0x03A5}, /* GREEK CAPITAL LETTER UPSILON */ {"b.Xi", 0x039E}, /* GREEK CAPITAL LETTER XI */ {"b.alpha", 0x03B1}, /* GREEK SMALL LETTER ALPHA */ {"b.beta", 0x03B2}, /* GREEK SMALL LETTER BETA */ {"b.chi", 0x03C7}, /* GREEK SMALL LETTER CHI */ {"b.delta", 0x03B3}, /* GREEK SMALL LETTER GAMMA */ {"b.epsi", 0x03B5}, /* GREEK SMALL LETTER EPSILON */ {"b.epsis", 0x03B5}, /* GREEK SMALL LETTER EPSILON */ {"b.epsiv", 0x03B5}, /* GREEK SMALL LETTER EPSILON */ {"b.eta", 0x03B7}, /* GREEK SMALL LETTER ETA */ {"b.gamma", 0x03B3}, /* GREEK SMALL LETTER GAMMA */ {"b.gammad", 0x03DC}, /* GREEK LETTER DIGAMMA */ {"b.iota", 0x03B9}, /* GREEK SMALL LETTER IOTA */ {"b.kappa", 0x03BA}, /* GREEK SMALL LETTER KAPPA */ {"b.kappav", 0x03F0}, /* GREEK KAPPA SYMBOL */ {"b.lambda", 0x03BB}, /* GREEK SMALL LETTER LAMDA */ {"b.mu", 0x03BC}, /* GREEK SMALL LETTER MU */ {"b.nu", 0x03BD}, /* GREEK SMALL LETTER NU */ {"b.omega", 0x03CE}, /* GREEK SMALL LETTER OMEGA WITH TONOS */ {"b.phis", 0x03C6}, /* GREEK SMALL LETTER PHI */ {"b.phiv", 0x03D5}, /* GREEK PHI SYMBOL */ {"b.pi", 0x03C0}, /* GREEK SMALL LETTER PI */ {"b.piv", 0x03D6}, /* GREEK PI SYMBOL */ {"b.psi", 0x03C8}, /* GREEK SMALL LETTER PSI */ {"b.rho", 0x03C1}, /* GREEK SMALL LETTER RHO */ {"b.rhov", 0x03F1}, /* GREEK RHO SYMBOL */ {"b.sigma", 0x03C3}, /* GREEK SMALL LETTER SIGMA */ {"b.sigmav", 0x03C2}, /* GREEK SMALL LETTER FINAL SIGMA */ {"b.tau", 0x03C4}, /* GREEK SMALL LETTER TAU */ {"b.thetas", 0x03B8}, /* GREEK SMALL LETTER THETA */ {"b.thetav", 0x03D1}, /* GREEK THETA SYMBOL */ {"b.upsi", 0x03C5}, /* GREEK SMALL LETTER UPSILON */ {"b.xi", 0x03BE}, /* GREEK SMALL LETTER XI */ {"b.zeta", 0x03B6}, /* GREEK SMALL LETTER ZETA */ {"barwed", 0x22BC}, /* NAND */ {"bcong", 0x224C}, /* ALL EQUAL TO */ {"bcy", 0x0431}, /* CYRILLIC SMALL LETTER BE */ {"bdquo", 0x201E}, /* DOUBLE LOW-9 QUOTATION MARK */ {"becaus", 0x2235}, /* BECAUSE */ {"bepsi", 0x220D}, /* SMALL CONTAINS AS MEMBER */ {"bernou", 0x212C}, /* SCRIPT CAPITAL B */ {"beta", 0x03B2}, /* GREEK SMALL LETTER BETA */ {"beth", 0x2136}, /* BET SYMBOL */ {"bgr", 0x03B2}, /* GREEK SMALL LETTER BETA */ {"blank", 0x2423}, /* OPEN BOX */ {"blk12", 0x2592}, /* MEDIUM SHADE */ {"blk14", 0x2591}, /* LIGHT SHADE */ {"blk34", 0x2593}, /* DARK SHADE */ {"block", 0x2588}, /* FULL BLOCK */ {"bottom", 0x22A5}, /* UP TACK */ {"bowtie", 0x22C8}, /* BOWTIE */ {"boxDL", 0x2557}, /* BOX DRAWINGS DOUBLE DOWN AND LEFT */ {"boxDR", 0x2554}, /* BOX DRAWINGS DOUBLE DOWN AND RIGHT */ {"boxDl", 0x2556}, /* BOX DRAWINGS DOWN DOUBLE AND LEFT SINGLE */ {"boxDr", 0x2553}, /* BOX DRAWINGS DOWN DOUBLE AND RIGHT SINGLE */ {"boxH", 0x2550}, /* BOX DRAWINGS DOUBLE HORIZONTAL */ {"boxHD", 0x2566}, /* BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL */ {"boxHU", 0x2569}, /* BOX DRAWINGS DOUBLE UP AND HORIZONTAL */ {"boxHd", 0x2564}, /* BOX DRAWINGS DOWN SINGLE AND HORIZONTAL DOUBLE*/ {"boxHu", 0x2567}, /* BOX DRAWINGS UP SINGLE AND HORIZONTAL DOUBLE */ {"boxUL", 0x255D}, /* BOX DRAWINGS DOUBLE UP AND LEFT */ {"boxUR", 0x255A}, /* BOX DRAWINGS DOUBLE UP AND RIGHT */ {"boxUl", 0x255C}, /* BOX DRAWINGS UP DOUBLE AND LEFT SINGLE */ {"boxUr", 0x2559}, /* BOX DRAWINGS UP DOUBLE AND RIGHT SINGLE */ {"boxV", 0x2551}, /* BOX DRAWINGS DOUBLE VERTICAL */ {"boxVH", 0x256C}, /* BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL */ {"boxVL", 0x2563}, /* BOX DRAWINGS DOUBLE VERTICAL AND LEFT */ {"boxVR", 0x2560}, /* BOX DRAWINGS DOUBLE VERTICAL AND RIGHT */ {"boxVh", 0x256B}, /* BOX DRAWINGS VERTICAL DOUBLE AND HORIZONTAL SI*/ {"boxVl", 0x2562}, /* BOX DRAWINGS VERTICAL DOUBLE AND LEFT SINGLE */ {"boxVr", 0x255F}, /* BOX DRAWINGS VERTICAL DOUBLE AND RIGHT SINGLE */ {"boxdL", 0x2555}, /* BOX DRAWINGS DOWN SINGLE AND LEFT DOUBLE */ {"boxdR", 0x2552}, /* BOX DRAWINGS DOWN SINGLE AND RIGHT DOUBLE */ {"boxdl", 0x2510}, /* BOX DRAWINGS LIGHT DOWN AND LEFT */ {"boxdr", 0x250C}, /* BOX DRAWINGS LIGHT DOWN AND RIGHT */ {"boxh", 0x2500}, /* BOX DRAWINGS LIGHT HORIZONTAL */ {"boxhD", 0x2565}, /* BOX DRAWINGS DOWN DOUBLE AND HORIZONTAL SINGLE*/ {"boxhU", 0x2568}, /* BOX DRAWINGS UP DOUBLE AND HORIZONTAL SINGLE */ {"boxhd", 0x252C}, /* BOX DRAWINGS LIGHT DOWN AND HORIZONTAL */ {"boxhu", 0x2534}, /* BOX DRAWINGS LIGHT UP AND HORIZONTAL */ {"boxuL", 0x255B}, /* BOX DRAWINGS UP SINGLE AND LEFT DOUBLE */ {"boxuR", 0x2558}, /* BOX DRAWINGS UP SINGLE AND RIGHT DOUBLE */ {"boxul", 0x2518}, /* BOX DRAWINGS LIGHT UP AND LEFT */ {"boxur", 0x2514}, /* BOX DRAWINGS LIGHT UP AND RIGHT */ {"boxv", 0x2502}, /* BOX DRAWINGS LIGHT VERTICAL */ {"boxvH", 0x256A}, /* BOX DRAWINGS VERTICAL SINGLE AND HORIZONTAL DO*/ {"boxvL", 0x2561}, /* BOX DRAWINGS VERTICAL SINGLE AND LEFT DOUBLE */ {"boxvR", 0x255E}, /* BOX DRAWINGS VERTICAL SINGLE AND RIGHT DOUBLE */ {"boxvh", 0x253C}, /* BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL */ {"boxvl", 0x2524}, /* BOX DRAWINGS LIGHT VERTICAL AND LEFT */ {"boxvr", 0x251C}, /* BOX DRAWINGS LIGHT VERTICAL AND RIGHT */ {"bprime", 0x2035}, /* REVERSED PRIME */ {"breve", 0x02D8}, /* BREVE */ {"brkbar", 0x00A6}, /* obsolete synonym for "brvbar" 0x00A6 */ {"brvbar", 0x00A6}, /* BROKEN BAR */ {"bsim", 0x223D}, /* REVERSED TILDE */ {"bsime", 0x22CD}, /* REVERSED TILDE EQUALS */ {"bsol", 0x005C}, /* REVERSE SOLIDUS */ {"bull", 0x2022}, /* BULLET */ {"bump", 0x224E}, /* GEOMETRICALLY EQUIVALENT TO */ {"bumpe", 0x224F}, /* DIFFERENCE BETWEEN */ {"cacute", 0x0107}, /* LATIN SMALL LETTER C WITH ACUTE */ {"cap", 0x2229}, /* INTERSECTION */ {"caret", 0x2041}, /* CARET INSERTION POINT */ {"caron", 0x02C7}, /* CARON */ {"ccaron", 0x010D}, /* LATIN SMALL LETTER C WITH CARON */ {"ccedil", 0x00E7}, /* LATIN SMALL LETTER C WITH CEDILLA */ {"ccirc", 0x0109}, /* LATIN SMALL LETTER C WITH CIRCUMFLEX */ {"cdot", 0x010B}, /* LATIN SMALL LETTER C WITH DOT ABOVE */ {"cedil", 0x00B8}, /* CEDILLA */ {"cent", 0x00A2}, /* CENT SIGN */ {"chcy", 0x0447}, /* CYRILLIC SMALL LETTER CHE */ {"check", 0x2713}, /* CHECK MARK */ {"chi", 0x03C7}, /* GREEK SMALL LETTER CHI */ {"cir", 0x25CB}, /* WHITE CIRCLE */ {"circ", 0x02C6}, /* MODIFIER LETTER CIRCUMFLEX ACCENT */ {"cire", 0x2257}, /* RING EQUAL TO */ {"clubs", 0x2663}, /* BLACK CLUB SUIT */ {"colon", 0x003A}, /* COLON */ {"colone", 0x2254}, /* COLON EQUALS */ {"comma", 0x002C}, /* COMMA */ {"commat", 0x0040}, /* COMMERCIAL AT */ {"comp", 0x2201}, /* COMPLEMENT */ {"compfn", 0x2218}, /* RING OPERATOR */ {"cong", 0x2245}, /* APPROXIMATELY EQUAL TO */ {"conint", 0x222E}, /* CONTOUR INTEGRAL */ {"coprod", 0x2210}, /* N-ARY COPRODUCT */ {"copy", 0x00A9}, /* COPYRIGHT SIGN */ {"copysr", 0x2117}, /* SOUND RECORDING COPYRIGHT */ {"crarr", 0x21B5}, /* DOWNWARDS ARROW WITH CORNER LEFTWARDS */ {"cross", 0x2717}, /* BALLOT X */ {"cuepr", 0x22DE}, /* EQUAL TO OR PRECEDES */ {"cuesc", 0x22DF}, /* EQUAL TO OR SUCCEEDS */ {"cularr", 0x21B6}, /* ANTICLOCKWISE TOP SEMICIRCLE ARROW */ {"cup", 0x222A}, /* UNION */ {"cupre", 0x227C}, /* PRECEDES OR EQUAL TO */ {"curarr", 0x21B7}, /* CLOCKWISE TOP SEMICIRCLE ARROW */ {"curren", 0x00A4}, /* CURRENCY SIGN */ {"cuvee", 0x22CE}, /* CURLY LOGICAL OR */ {"cuwed", 0x22CF}, /* CURLY LOGICAL AND */ {"dArr", 0x21D3}, /* DOWNWARDS DOUBLE ARROW */ {"dagger", 0x2020}, /* DAGGER */ {"daleth", 0x2138}, /* DALET SYMBOL */ {"darr", 0x2193}, /* DOWNWARDS ARROW */ {"darr2", 0x21CA}, /* DOWNWARDS PAIRED ARROWS */ {"dash", 0x2010}, /* HYPHEN */ {"dashv", 0x22A3}, /* LEFT TACK */ {"dblac", 0x02DD}, /* DOUBLE ACUTE ACCENT */ {"dcaron", 0x010F}, /* LATIN SMALL LETTER D WITH CARON */ {"dcy", 0x0434}, /* CYRILLIC SMALL LETTER DE */ {"deg", 0x00B0}, /* DEGREE SIGN */ {"delta", 0x03B4}, /* GREEK SMALL LETTER DELTA */ {"dgr", 0x03B4}, /* GREEK SMALL LETTER DELTA */ {"dharl", 0x21C3}, /* DOWNWARDS HARPOON WITH BARB LEFTWARDS */ {"dharr", 0x21C2}, /* DOWNWARDS HARPOON WITH BARB RIGHTWARDS */ {"diam", 0x22C4}, /* DIAMOND OPERATOR */ {"diams", 0x2666}, /* BLACK DIAMOND SUIT */ {"die", 0x00A8}, /* DIAERESIS */ {"divide", 0x00F7}, /* DIVISION SIGN */ {"divonx", 0x22C7}, /* DIVISION TIMES */ {"djcy", 0x0452}, /* CYRILLIC SMALL LETTER DJE */ {"dlarr", 0x2199}, /* SOUTH WEST ARROW */ {"dlcorn", 0x231E}, /* BOTTOM LEFT CORNER */ {"dlcrop", 0x230D}, /* BOTTOM LEFT CROP */ {"dollar", 0x0024}, /* DOLLAR SIGN */ {"dot", 0x02D9}, /* DOT ABOVE */ {"drarr", 0x2198}, /* SOUTH EAST ARROW */ {"drcorn", 0x231F}, /* BOTTOM RIGHT CORNER */ {"drcrop", 0x230C}, /* BOTTOM RIGHT CROP */ {"dscy", 0x0455}, /* CYRILLIC SMALL LETTER DZE */ {"dstrok", 0x0111}, /* LATIN SMALL LETTER D WITH STROKE */ {"dtri", 0x25BF}, /* WHITE DOWN-POINTING SMALL TRIANGLE */ {"dtrif", 0x25BE}, /* BLACK DOWN-POINTING SMALL TRIANGLE */ {"dzcy", 0x045F}, /* CYRILLIC SMALL LETTER DZHE */ {"eDot", 0x2251}, /* GEOMETRICALLY EQUAL TO */ {"eacgr", 0x03AD}, /* GREEK SMALL LETTER EPSILON WITH TONOS */ {"eacute", 0x00E9}, /* LATIN SMALL LETTER E WITH ACUTE */ {"ecaron", 0x011B}, /* LATIN SMALL LETTER E WITH CARON */ {"ecir", 0x2256}, /* RING IN EQUAL TO */ {"ecirc", 0x00EA}, /* LATIN SMALL LETTER E WITH CIRCUMFLEX */ {"ecolon", 0x2255}, /* EQUALS COLON */ {"ecy", 0x044D}, /* CYRILLIC SMALL LETTER E */ {"edot", 0x0117}, /* LATIN SMALL LETTER E WITH DOT ABOVE */ {"eeacgr", 0x03AE}, /* GREEK SMALL LETTER ETA WITH TONOS */ {"eegr", 0x03B7}, /* GREEK SMALL LETTER ETA */ {"efDot", 0x2252}, /* APPROXIMATELY EQUAL TO OR THE IMAGE OF */ {"egr", 0x03B5}, /* GREEK SMALL LETTER EPSILON */ {"egrave", 0x00E8}, /* LATIN SMALL LETTER E WITH GRAVE */ {"egs", 0x22DD}, /* EQUAL TO OR GREATER-THAN */ {"ell", 0x2113}, /* SCRIPT SMALL L */ {"els", 0x22DC}, /* EQUAL TO OR LESS-THAN */ {"emacr", 0x0113}, /* LATIN SMALL LETTER E WITH MACRON */ {"emdash", 0x2014}, /* obsolete synonym for "mdash" 0x2014 */ {"empty", 0x2205}, /* EMPTY SET */ {"emsp", 0x2003}, /* EM SPACE */ {"emsp13", 0x2004}, /* THREE-PER-EM SPACE */ {"emsp14", 0x2005}, /* FOUR-PER-EM SPACE */ {"endash", 0x2013}, /* obsolete synonym for "ndash" 0x2013 */ {"eng", 0x014B}, /* LATIN SMALL LETTER ENG */ {"ensp", 0x2002}, /* EN SPACE */ {"eogon", 0x0119}, /* LATIN SMALL LETTER E WITH OGONEK */ {"epsi", 0x03B5}, /* GREEK SMALL LETTER EPSILON */ {"epsilon", 0x03B5}, /* GREEK SMALL LETTER EPSILON */ {"epsis", 0x220A}, /* SMALL ELEMENT OF */ {"equals", 0x003D}, /* EQUALS SIGN */ {"equiv", 0x2261}, /* IDENTICAL TO */ {"erDot", 0x2253}, /* IMAGE OF OR APPROXIMATELY EQUAL TO */ {"esdot", 0x2250}, /* APPROACHES THE LIMIT */ {"eta", 0x03B7}, /* GREEK SMALL LETTER ETA */ {"eth", 0x00F0}, /* LATIN SMALL LETTER ETH */ {"euml", 0x00EB}, /* LATIN SMALL LETTER E WITH DIAERESIS */ {"excl", 0x0021}, /* EXCLAMATION MARK */ {"exist", 0x2203}, /* THERE EXISTS */ {"fcy", 0x0444}, /* CYRILLIC SMALL LETTER EF */ {"female", 0x2640}, /* FEMALE SIGN */ {"ffilig", 0xFB03}, /* LATIN SMALL LIGATURE FFI */ {"fflig", 0xFB00}, /* LATIN SMALL LIGATURE FF */ {"ffllig", 0xFB04}, /* LATIN SMALL LIGATURE FFL */ {"filig", 0xFB01}, /* LATIN SMALL LIGATURE FI */ {"flat", 0x266D}, /* MUSIC FLAT SIGN */ {"fllig", 0xFB02}, /* LATIN SMALL LIGATURE FL */ {"fnof", 0x0192}, /* LATIN SMALL LETTER F WITH HOOK */ {"forall", 0x2200}, /* FOR ALL */ {"fork", 0x22D4}, /* PITCHFORK */ {"frac12", 0x00BD}, /* VULGAR FRACTION ONE HALF */ {"frac13", 0x2153}, /* VULGAR FRACTION ONE THIRD */ {"frac14", 0x00BC}, /* VULGAR FRACTION ONE QUARTER */ {"frac15", 0x2155}, /* VULGAR FRACTION ONE FIFTH */ {"frac16", 0x2159}, /* VULGAR FRACTION ONE SIXTH */ {"frac18", 0x215B}, /* VULGAR FRACTION ONE EIGHTH */ {"frac23", 0x2154}, /* VULGAR FRACTION TWO THIRDS */ {"frac25", 0x2156}, /* VULGAR FRACTION TWO FIFTHS */ {"frac34", 0x00BE}, /* VULGAR FRACTION THREE QUARTERS */ {"frac35", 0x2157}, /* VULGAR FRACTION THREE FIFTHS */ {"frac38", 0x215C}, /* VULGAR FRACTION THREE EIGHTHS */ {"frac45", 0x2158}, /* VULGAR FRACTION FOUR FIFTHS */ {"frac56", 0x215A}, /* VULGAR FRACTION FIVE SIXTHS */ {"frac58", 0x215D}, /* VULGAR FRACTION FIVE EIGHTHS */ {"frac78", 0x215E}, /* VULGAR FRACTION SEVEN EIGHTHS */ {"frasl", 0x2044}, /* FRACTION SLASH */ {"frown", 0x2322}, /* FROWN */ {"gE", 0x2267}, /* GREATER-THAN OVER EQUAL TO */ {"gacute", 0x01F5}, /* LATIN SMALL LETTER G WITH ACUTE */ {"gamma", 0x03B3}, /* GREEK SMALL LETTER GAMMA */ {"gammad", 0x03DC}, /* GREEK LETTER DIGAMMA */ {"gbreve", 0x011F}, /* LATIN SMALL LETTER G WITH BREVE */ {"gcedil", 0x0123}, /* LATIN SMALL LETTER G WITH CEDILLA */ {"gcirc", 0x011D}, /* LATIN SMALL LETTER G WITH CIRCUMFLEX */ {"gcy", 0x0433}, /* CYRILLIC SMALL LETTER GHE */ {"gdot", 0x0121}, /* LATIN SMALL LETTER G WITH DOT ABOVE */ {"ge", 0x2265}, /* GREATER-THAN OR EQUAL TO */ {"gel", 0x22DB}, /* GREATER-THAN EQUAL TO OR LESS-THAN */ {"ges", 0x2265}, /* GREATER-THAN OR EQUAL TO */ {"ggr", 0x03B3}, /* GREEK SMALL LETTER GAMMA */ {"gimel", 0x2137}, /* GIMEL SYMBOL */ {"gjcy", 0x0453}, /* CYRILLIC SMALL LETTER GJE */ {"gl", 0x2277}, /* GREATER-THAN OR LESS-THAN */ {"gnE", 0x2269}, /* GREATER-THAN BUT NOT EQUAL TO */ {"gne", 0x2269}, /* GREATER-THAN BUT NOT EQUAL TO */ {"gnsim", 0x22E7}, /* GREATER-THAN BUT NOT EQUIVALENT TO */ {"grave", 0x0060}, /* GRAVE ACCENT */ {"gsdot", 0x22D7}, /* GREATER-THAN WITH DOT */ {"gsim", 0x2273}, /* GREATER-THAN OR EQUIVALENT TO */ {"gt", 0x003E}, /* GREATER-THAN SIGN */ {"gvnE", 0x2269}, /* GREATER-THAN BUT NOT EQUAL TO */ {"hArr", 0x21D4}, /* LEFT RIGHT DOUBLE ARROW */ {"hairsp", 0x200A}, /* HAIR SPACE */ {"half", 0x00BD}, /* VULGAR FRACTION ONE HALF */ {"hamilt", 0x210B}, /* SCRIPT CAPITAL H */ {"hardcy", 0x044A}, /* CYRILLIC SMALL LETTER HARD SIGN */ {"harr", 0x2194}, /* LEFT RIGHT ARROW */ {"harrw", 0x21AD}, /* LEFT RIGHT WAVE ARROW */ {"hcirc", 0x0125}, /* LATIN SMALL LETTER H WITH CIRCUMFLEX */ {"hearts", 0x2665}, /* BLACK HEART SUIT */ {"hellip", 0x2026}, /* HORIZONTAL ELLIPSIS */ {"hibar", 0x00AF}, /* obsolete synonym for "macr" 0x00AF */ {"horbar", 0x2015}, /* HORIZONTAL BAR */ {"hstrok", 0x0127}, /* LATIN SMALL LETTER H WITH STROKE */ {"hybull", 0x2043}, /* HYPHEN BULLET */ {"hyphen", 0x002D}, /* HYPHEN-MINUS */ {"iacgr", 0x03AF}, /* GREEK SMALL LETTER IOTA WITH TONOS */ {"iacute", 0x00ED}, /* LATIN SMALL LETTER I WITH ACUTE */ {"icirc", 0x00EE}, /* LATIN SMALL LETTER I WITH CIRCUMFLEX */ {"icy", 0x0438}, /* CYRILLIC SMALL LETTER I */ {"idiagr", 0x0390}, /* GREEK SMALL LETTER IOTA WITH DIALYTIKA AND TON*/ {"idigr", 0x03CA}, /* GREEK SMALL LETTER IOTA WITH DIALYTIKA */ {"iecy", 0x0435}, /* CYRILLIC SMALL LETTER IE */ {"iexcl", 0x00A1}, /* INVERTED EXCLAMATION MARK */ {"iff", 0x21D4}, /* LEFT RIGHT DOUBLE ARROW */ {"igr", 0x03B9}, /* GREEK SMALL LETTER IOTA */ {"igrave", 0x00EC}, /* LATIN SMALL LETTER I WITH GRAVE */ {"ijlig", 0x0133}, /* LATIN SMALL LIGATURE IJ */ {"imacr", 0x012B}, /* LATIN SMALL LETTER I WITH MACRON */ {"image", 0x2111}, /* BLACK-LETTER CAPITAL I */ {"incare", 0x2105}, /* CARE OF */ {"infin", 0x221E}, /* INFINITY */ {"inodot", 0x0131}, /* LATIN SMALL LETTER DOTLESS I */ {"int", 0x222B}, /* INTEGRAL */ {"intcal", 0x22BA}, /* INTERCALATE */ {"iocy", 0x0451}, /* CYRILLIC SMALL LETTER IO */ {"iogon", 0x012F}, /* LATIN SMALL LETTER I WITH OGONEK */ {"iota", 0x03B9}, /* GREEK SMALL LETTER IOTA */ {"iquest", 0x00BF}, /* INVERTED QUESTION MARK */ {"isin", 0x2208}, /* ELEMENT OF */ {"itilde", 0x0129}, /* LATIN SMALL LETTER I WITH TILDE */ {"iukcy", 0x0456}, /* CYRILLIC SMALL LETTER BYELORUSSIAN-UKRAINIAN I*/ {"iuml", 0x00EF}, /* LATIN SMALL LETTER I WITH DIAERESIS */ {"jcirc", 0x0135}, /* LATIN SMALL LETTER J WITH CIRCUMFLEX */ {"jcy", 0x0439}, /* CYRILLIC SMALL LETTER SHORT I */ {"jsercy", 0x0458}, /* CYRILLIC SMALL LETTER JE */ {"jukcy", 0x0454}, /* CYRILLIC SMALL LETTER UKRAINIAN IE */ {"kappa", 0x03BA}, /* GREEK SMALL LETTER KAPPA */ {"kappav", 0x03F0}, /* GREEK KAPPA SYMBOL */ {"kcedil", 0x0137}, /* LATIN SMALL LETTER K WITH CEDILLA */ {"kcy", 0x043A}, /* CYRILLIC SMALL LETTER KA */ {"kgr", 0x03BA}, /* GREEK SMALL LETTER KAPPA */ {"kgreen", 0x0138}, /* LATIN SMALL LETTER KRA */ {"khcy", 0x0445}, /* CYRILLIC SMALL LETTER HA */ {"khgr", 0x03C7}, /* GREEK SMALL LETTER CHI */ {"kjcy", 0x045C}, /* CYRILLIC SMALL LETTER KJE */ {"lAarr", 0x21DA}, /* LEFTWARDS TRIPLE ARROW */ {"lArr", 0x21D0}, /* LEFTWARDS DOUBLE ARROW */ {"lE", 0x2266}, /* LESS-THAN OVER EQUAL TO */ {"lacute", 0x013A}, /* LATIN SMALL LETTER L WITH ACUTE */ {"lagran", 0x2112}, /* SCRIPT CAPITAL L */ {"lambda", 0x03BB}, /* GREEK SMALL LETTER LAMDA */ {"lang", 0x2329}, /* LEFT-POINTING ANGLE BRACKET */ {"laquo", 0x00AB}, /* LEFT-POINTING DOUBLE ANGLE QUOTATION MARK */ {"larr", 0x2190}, /* LEFTWARDS ARROW */ {"larr2", 0x21C7}, /* LEFTWARDS PAIRED ARROWS */ {"larrhk", 0x21A9}, /* LEFTWARDS ARROW WITH HOOK */ {"larrlp", 0x21AB}, /* LEFTWARDS ARROW WITH LOOP */ {"larrtl", 0x21A2}, /* LEFTWARDS ARROW WITH TAIL */ {"lcaron", 0x013E}, /* LATIN SMALL LETTER L WITH CARON */ {"lcedil", 0x013C}, /* LATIN SMALL LETTER L WITH CEDILLA */ {"lceil", 0x2308}, /* LEFT CEILING */ {"lcub", 0x007B}, /* LEFT CURLY BRACKET */ {"lcy", 0x043B}, /* CYRILLIC SMALL LETTER EL */ {"ldot", 0x22D6}, /* LESS-THAN WITH DOT */ {"ldquo", 0x201C}, /* LEFT DOUBLE QUOTATION MARK */ {"ldquor", 0x201E}, /* DOUBLE LOW-9 QUOTATION MARK */ {"le", 0x2264}, /* LESS-THAN OR EQUAL TO */ {"leg", 0x22DA}, /* LESS-THAN EQUAL TO OR GREATER-THAN */ {"les", 0x2264}, /* LESS-THAN OR EQUAL TO */ {"lfloor", 0x230A}, /* LEFT FLOOR */ {"lg", 0x2276}, /* LESS-THAN OR GREATER-THAN */ {"lgr", 0x03BB}, /* GREEK SMALL LETTER LAMDA */ {"lhard", 0x21BD}, /* LEFTWARDS HARPOON WITH BARB DOWNWARDS */ {"lharu", 0x21BC}, /* LEFTWARDS HARPOON WITH BARB UPWARDS */ {"lhblk", 0x2584}, /* LOWER HALF BLOCK */ {"ljcy", 0x0459}, /* CYRILLIC SMALL LETTER LJE */ {"lmidot", 0x0140}, /* LATIN SMALL LETTER L WITH MIDDLE DOT */ {"lnE", 0x2268}, /* LESS-THAN BUT NOT EQUAL TO */ {"lne", 0x2268}, /* LESS-THAN BUT NOT EQUAL TO */ {"lnsim", 0x22E6}, /* LESS-THAN BUT NOT EQUIVALENT TO */ {"lowast", 0x2217}, /* ASTERISK OPERATOR */ {"lowbar", 0x005F}, /* LOW LINE */ {"loz", 0x25CA}, /* LOZENGE */ {"loz", 0x2727}, /* WHITE FOUR POINTED STAR */ {"lozf", 0x2726}, /* BLACK FOUR POINTED STAR */ {"lpar", 0x0028}, /* LEFT PARENTHESIS */ {"lrarr2", 0x21C6}, /* LEFTWARDS ARROW OVER RIGHTWARDS ARROW */ {"lrhar2", 0x21CB}, /* LEFTWARDS HARPOON OVER RIGHTWARDS HARPOON */ {"lrm", 0x200E}, /* LEFT-TO-RIGHT MARK */ {"lsaquo", 0x2039}, /* SINGLE LEFT-POINTING ANGLE QUOTATION MARK */ {"lsh", 0x21B0}, /* UPWARDS ARROW WITH TIP LEFTWARDS */ {"lsim", 0x2272}, /* LESS-THAN OR EQUIVALENT TO */ {"lsqb", 0x005B}, /* LEFT SQUARE BRACKET */ {"lsquo", 0x2018}, /* LEFT SINGLE QUOTATION MARK */ {"lsquor", 0x201A}, /* SINGLE LOW-9 QUOTATION MARK */ {"lstrok", 0x0142}, /* LATIN SMALL LETTER L WITH STROKE */ {"lt", 0x003C}, /* LESS-THAN SIGN */ {"lthree", 0x22CB}, /* LEFT SEMIDIRECT PRODUCT */ {"ltimes", 0x22C9}, /* LEFT NORMAL FACTOR SEMIDIRECT PRODUCT */ {"ltri", 0x25C3}, /* WHITE LEFT-POINTING SMALL TRIANGLE */ {"ltrie", 0x22B4}, /* NORMAL SUBGROUP OF OR EQUAL TO */ {"ltrif", 0x25C2}, /* BLACK LEFT-POINTING SMALL TRIANGLE */ {"lvnE", 0x2268}, /* LESS-THAN BUT NOT EQUAL TO */ {"macr", 0x00AF}, /* MACRON */ {"male", 0x2642}, /* MALE SIGN */ {"malt", 0x2720}, /* MALTESE CROSS */ {"map", 0x21A6}, /* RIGHTWARDS ARROW FROM BAR */ {"marker", 0x25AE}, /* BLACK VERTICAL RECTANGLE */ {"mcy", 0x043C}, /* CYRILLIC SMALL LETTER EM */ {"mdash", 0x2014}, /* EM DASH */ {"mgr", 0x03BC}, /* GREEK SMALL LETTER MU */ {"micro", 0x00B5}, /* MICRO SIGN */ {"mid", 0x2223}, /* DIVIDES */ {"middot", 0x00B7}, /* MIDDLE DOT */ {"minus", 0x2212}, /* MINUS SIGN */ {"minusb", 0x229F}, /* SQUARED MINUS */ {"mldr", 0x2026}, /* HORIZONTAL ELLIPSIS */ {"mnplus", 0x2213}, /* MINUS-OR-PLUS SIGN */ {"models", 0x22A7}, /* MODELS */ {"mu", 0x03BC}, /* GREEK SMALL LETTER MU */ {"mumap", 0x22B8}, /* MULTIMAP */ {"nVDash", 0x22AF}, /* NEGATED DOUBLE VERTICAL BAR DOUBLE RIGHT TURNS*/ {"nVdash", 0x22AE}, /* DOES NOT FORCE */ {"nabla", 0x2207}, /* NABLA */ {"nacute", 0x0144}, /* LATIN SMALL LETTER N WITH ACUTE */ {"nap", 0x2249}, /* NOT ALMOST EQUAL TO */ {"napos", 0x0149}, /* LATIN SMALL LETTER N PRECEDED BY APOSTROPHE */ {"natur", 0x266E}, /* MUSIC NATURAL SIGN */ {"nbsp", 0x00A0}, /* NO-BREAK SPACE */ {"ncaron", 0x0148}, /* LATIN SMALL LETTER N WITH CARON */ {"ncedil", 0x0146}, /* LATIN SMALL LETTER N WITH CEDILLA */ {"ncong", 0x2247}, /* NEITHER APPROXIMATELY NOR ACTUALLY EQUAL TO */ {"ncy", 0x043D}, /* CYRILLIC SMALL LETTER EN */ {"ndash", 0x2013}, /* EN DASH */ {"ne", 0x2260}, /* NOT EQUAL TO */ {"nearr", 0x2197}, /* NORTH EAST ARROW */ {"nequiv", 0x2262}, /* NOT IDENTICAL TO */ {"nexist", 0x2204}, /* THERE DOES NOT EXIST */ {"nge", 0x2271}, /* NEITHER GREATER-THAN NOR EQUAL TO */ {"nges", 0x2271}, /* NEITHER GREATER-THAN NOR EQUAL TO */ {"ngr", 0x03BD}, /* GREEK SMALL LETTER NU */ {"ngt", 0x226F}, /* NOT GREATER-THAN */ {"nhArr", 0x21CE}, /* LEFT RIGHT DOUBLE ARROW WITH STROKE */ {"nharr", 0x21AE}, /* LEFT RIGHT ARROW WITH STROKE */ {"ni", 0x220B}, /* CONTAINS AS MEMBER */ {"njcy", 0x045A}, /* CYRILLIC SMALL LETTER NJE */ {"nlArr", 0x21CD}, /* LEFTWARDS DOUBLE ARROW WITH STROKE */ {"nlarr", 0x219A}, /* LEFTWARDS ARROW WITH STROKE */ {"nldr", 0x2025}, /* TWO DOT LEADER */ {"nle", 0x2270}, /* NEITHER LESS-THAN NOR EQUAL TO */ {"nles", 0x2270}, /* NEITHER LESS-THAN NOR EQUAL TO */ {"nlt", 0x226E}, /* NOT LESS-THAN */ {"nltri", 0x22EA}, /* NOT NORMAL SUBGROUP OF */ {"nltrie", 0x22EC}, /* NOT NORMAL SUBGROUP OF OR EQUAL TO */ {"nmid", 0x2224}, /* DOES NOT DIVIDE */ {"not", 0x00AC}, /* NOT SIGN */ {"notin", 0x2209}, /* NOT AN ELEMENT OF */ {"npar", 0x2226}, /* NOT PARALLEL TO */ {"npr", 0x2280}, /* DOES NOT PRECEDE */ {"npre", 0x22E0}, /* DOES NOT PRECEDE OR EQUAL */ {"nrArr", 0x21CF}, /* RIGHTWARDS DOUBLE ARROW WITH STROKE */ {"nrarr", 0x219B}, /* RIGHTWARDS ARROW WITH STROKE */ {"nrtri", 0x22EB}, /* DOES NOT CONTAIN AS NORMAL SUBGROUP */ {"nrtrie", 0x22ED}, /* DOES NOT CONTAIN AS NORMAL SUBGROUP OR EQUAL */ {"nsc", 0x2281}, /* DOES NOT SUCCEED */ {"nsce", 0x22E1}, /* DOES NOT SUCCEED OR EQUAL */ {"nsim", 0x2241}, /* NOT TILDE */ {"nsime", 0x2244}, /* NOT ASYMPTOTICALLY EQUAL TO */ {"nspar", 0x2226}, /* NOT PARALLEL TO */ {"nsub", 0x2284}, /* NOT A SUBSET OF */ {"nsubE", 0x2288}, /* NEITHER A SUBSET OF NOR EQUAL TO */ {"nsube", 0x2288}, /* NEITHER A SUBSET OF NOR EQUAL TO */ {"nsup", 0x2285}, /* NOT A SUPERSET OF */ {"nsupE", 0x2289}, /* NEITHER A SUPERSET OF NOR EQUAL TO */ {"nsupe", 0x2289}, /* NEITHER A SUPERSET OF NOR EQUAL TO */ {"ntilde", 0x00F1}, /* LATIN SMALL LETTER N WITH TILDE */ {"nu", 0x03BD}, /* GREEK SMALL LETTER NU */ {"num", 0x0023}, /* NUMBER SIGN */ {"numero", 0x2116}, /* NUMERO SIGN */ {"numsp", 0x2007}, /* FIGURE SPACE */ {"nvDash", 0x22AD}, /* NOT TRUE */ {"nvdash", 0x22AC}, /* DOES NOT PROVE */ {"nwarr", 0x2196}, /* NORTH WEST ARROW */ {"oS", 0x24C8}, /* CIRCLED LATIN CAPITAL LETTER S */ {"oacgr", 0x03CC}, /* GREEK SMALL LETTER OMICRON WITH TONOS */ {"oacute", 0x00F3}, /* LATIN SMALL LETTER O WITH ACUTE */ {"oast", 0x229B}, /* CIRCLED ASTERISK OPERATOR */ {"ocir", 0x229A}, /* CIRCLED RING OPERATOR */ {"ocirc", 0x00F4}, /* LATIN SMALL LETTER O WITH CIRCUMFLEX */ {"ocy", 0x043E}, /* CYRILLIC SMALL LETTER O */ {"odash", 0x229D}, /* CIRCLED DASH */ {"odblac", 0x0151}, /* LATIN SMALL LETTER O WITH DOUBLE ACUTE */ {"odot", 0x2299}, /* CIRCLED DOT OPERATOR */ {"oelig", 0x0153}, /* LATIN SMALL LIGATURE OE */ {"ogon", 0x02DB}, /* OGONEK */ {"ogr", 0x03BF}, /* GREEK SMALL LETTER OMICRON */ {"ograve", 0x00F2}, /* LATIN SMALL LETTER O WITH GRAVE */ {"ohacgr", 0x03CE}, /* GREEK SMALL LETTER OMEGA WITH TONOS */ {"ohgr", 0x03C9}, /* GREEK SMALL LETTER OMEGA */ {"ohm", 0x2126}, /* OHM SIGN */ {"olarr", 0x21BA}, /* ANTICLOCKWISE OPEN CIRCLE ARROW */ {"oline", 0x203E}, /* OVERLINE */ {"omacr", 0x014D}, /* LATIN SMALL LETTER O WITH MACRON */ {"omega", 0x03C9}, /* GREEK SMALL LETTER OMEGA */ {"omicron", 0x03BF}, /* GREEK SMALL LETTER OMICRON */ {"ominus", 0x2296}, /* CIRCLED MINUS */ {"oplus", 0x2295}, /* CIRCLED PLUS */ {"or", 0x2228}, /* LOGICAL OR */ {"orarr", 0x21BB}, /* CLOCKWISE OPEN CIRCLE ARROW */ {"order", 0x2134}, /* SCRIPT SMALL O */ {"ordf", 0x00AA}, /* FEMININE ORDINAL INDICATOR */ {"ordm", 0x00BA}, /* MASCULINE ORDINAL INDICATOR */ {"oslash", 0x00F8}, /* LATIN SMALL LETTER O WITH STROKE */ {"osol", 0x2298}, /* CIRCLED DIVISION SLASH */ {"otilde", 0x00F5}, /* LATIN SMALL LETTER O WITH TILDE */ {"otimes", 0x2297}, /* CIRCLED TIMES */ {"ouml", 0x00F6}, /* LATIN SMALL LETTER O WITH DIAERESIS */ {"par", 0x2225}, /* PARALLEL TO */ {"para", 0x00B6}, /* PILCROW SIGN */ {"part", 0x2202}, /* PARTIAL DIFFERENTIAL */ {"pcy", 0x043F}, /* CYRILLIC SMALL LETTER PE */ {"percnt", 0x0025}, /* PERCENT SIGN */ {"period", 0x002E}, /* FULL STOP */ {"permil", 0x2030}, /* PER MILLE SIGN */ {"perp", 0x22A5}, /* UP TACK */ {"pgr", 0x03C0}, /* GREEK SMALL LETTER PI */ {"phgr", 0x03C6}, /* GREEK SMALL LETTER PHI */ {"phi", 0x03C6}, /* GREEK SMALL LETTER PHI */ {"phis", 0x03C6}, /* GREEK SMALL LETTER PHI */ {"phiv", 0x03D5}, /* GREEK PHI SYMBOL */ {"phmmat", 0x2133}, /* SCRIPT CAPITAL M */ {"phone", 0x260E}, /* BLACK TELEPHONE */ {"pi", 0x03C0}, /* GREEK SMALL LETTER PI */ {"piv", 0x03D6}, /* GREEK PI SYMBOL */ {"planck", 0x210F}, /* PLANCK CONSTANT OVER TWO PI */ {"plus", 0x002B}, /* PLUS SIGN */ {"plusb", 0x229E}, /* SQUARED PLUS */ {"plusdo", 0x2214}, /* DOT PLUS */ {"plusmn", 0x00B1}, /* PLUS-MINUS SIGN */ {"pound", 0x00A3}, /* POUND SIGN */ {"pr", 0x227A}, /* PRECEDES */ {"pre", 0x227C}, /* PRECEDES OR EQUAL TO */ {"prime", 0x2032}, /* PRIME */ {"prnsim", 0x22E8}, /* PRECEDES BUT NOT EQUIVALENT TO */ {"prod", 0x220F}, /* N-ARY PRODUCT */ {"prop", 0x221D}, /* PROPORTIONAL TO */ {"prsim", 0x227E}, /* PRECEDES OR EQUIVALENT TO */ {"psgr", 0x03C8}, /* GREEK SMALL LETTER PSI */ {"psi", 0x03C8}, /* GREEK SMALL LETTER PSI */ {"puncsp", 0x2008}, /* PUNCTUATION SPACE */ {"quest", 0x003F}, /* QUESTION MARK */ {"quot", 0x0022}, /* QUOTATION MARK */ {"rAarr", 0x21DB}, /* RIGHTWARDS TRIPLE ARROW */ {"rArr", 0x21D2}, /* RIGHTWARDS DOUBLE ARROW */ {"racute", 0x0155}, /* LATIN SMALL LETTER R WITH ACUTE */ {"radic", 0x221A}, /* SQUARE ROOT */ {"rang", 0x232A}, /* RIGHT-POINTING ANGLE BRACKET */ {"raquo", 0x00BB}, /* RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK */ {"rarr", 0x2192}, /* RIGHTWARDS ARROW */ {"rarr2", 0x21C9}, /* RIGHTWARDS PAIRED ARROWS */ {"rarrhk", 0x21AA}, /* RIGHTWARDS ARROW WITH HOOK */ {"rarrlp", 0x21AC}, /* RIGHTWARDS ARROW WITH LOOP */ {"rarrtl", 0x21A3}, /* RIGHTWARDS ARROW WITH TAIL */ {"rarrw", 0x219D}, /* RIGHTWARDS WAVE ARROW */ {"rcaron", 0x0159}, /* LATIN SMALL LETTER R WITH CARON */ {"rcedil", 0x0157}, /* LATIN SMALL LETTER R WITH CEDILLA */ {"rceil", 0x2309}, /* RIGHT CEILING */ {"rcub", 0x007D}, /* RIGHT CURLY BRACKET */ {"rcy", 0x0440}, /* CYRILLIC SMALL LETTER ER */ {"rdquo", 0x201D}, /* RIGHT DOUBLE QUOTATION MARK */ {"rdquor", 0x201C}, /* LEFT DOUBLE QUOTATION MARK */ {"real", 0x211C}, /* BLACK-LETTER CAPITAL R */ {"rect", 0x25AD}, /* WHITE RECTANGLE */ {"reg", 0x00AE}, /* REGISTERED SIGN */ {"rfloor", 0x230B}, /* RIGHT FLOOR */ {"rgr", 0x03C1}, /* GREEK SMALL LETTER RHO */ {"rhard", 0x21C1}, /* RIGHTWARDS HARPOON WITH BARB DOWNWARDS */ {"rharu", 0x21C0}, /* RIGHTWARDS HARPOON WITH BARB UPWARDS */ {"rho", 0x03C1}, /* GREEK SMALL LETTER RHO */ {"rhov", 0x03F1}, /* GREEK RHO SYMBOL */ {"ring", 0x02DA}, /* RING ABOVE */ {"rlarr2", 0x21C4}, /* RIGHTWARDS ARROW OVER LEFTWARDS ARROW */ {"rlhar2", 0x21CC}, /* RIGHTWARDS HARPOON OVER LEFTWARDS HARPOON */ {"rlm", 0x200F}, /* RIGHT-TO-LEFT MARK */ {"rpar", 0x0029}, /* RIGHT PARENTHESIS */ {"rsaquo", 0x203A}, /* SINGLE RIGHT-POINTING ANGLE QUOTATION MARK */ {"rsh", 0x21B1}, /* UPWARDS ARROW WITH TIP RIGHTWARDS */ {"rsqb", 0x005D}, /* RIGHT SQUARE BRACKET */ {"rsquo", 0x2019}, /* RIGHT SINGLE QUOTATION MARK */ {"rsquor", 0x2018}, /* LEFT SINGLE QUOTATION MARK */ {"rthree", 0x22CC}, /* RIGHT SEMIDIRECT PRODUCT */ {"rtimes", 0x22CA}, /* RIGHT NORMAL FACTOR SEMIDIRECT PRODUCT */ {"rtri", 0x25B9}, /* WHITE RIGHT-POINTING SMALL TRIANGLE */ {"rtrie", 0x22B5}, /* CONTAINS AS NORMAL SUBGROUP OR EQUAL TO */ {"rtrif", 0x25B8}, /* BLACK RIGHT-POINTING SMALL TRIANGLE */ {"rx", 0x211E}, /* PRESCRIPTION TAKE */ {"sacute", 0x015B}, /* LATIN SMALL LETTER S WITH ACUTE */ {"samalg", 0x2210}, /* N-ARY COPRODUCT */ {"sbquo", 0x201A}, /* SINGLE LOW-9 QUOTATION MARK */ {"sbsol", 0x005C}, /* REVERSE SOLIDUS */ {"sc", 0x227B}, /* SUCCEEDS */ {"scaron", 0x0161}, /* LATIN SMALL LETTER S WITH CARON */ {"sccue", 0x227D}, /* SUCCEEDS OR EQUAL TO */ {"sce", 0x227D}, /* SUCCEEDS OR EQUAL TO */ {"scedil", 0x015F}, /* LATIN SMALL LETTER S WITH CEDILLA */ {"scirc", 0x015D}, /* LATIN SMALL LETTER S WITH CIRCUMFLEX */ {"scnsim", 0x22E9}, /* SUCCEEDS BUT NOT EQUIVALENT TO */ {"scsim", 0x227F}, /* SUCCEEDS OR EQUIVALENT TO */ {"scy", 0x0441}, /* CYRILLIC SMALL LETTER ES */ {"sdot", 0x22C5}, /* DOT OPERATOR */ {"sdotb", 0x22A1}, /* SQUARED DOT OPERATOR */ {"sect", 0x00A7}, /* SECTION SIGN */ {"semi", 0x003B}, /* SEMICOLON */ {"setmn", 0x2216}, /* SET MINUS */ {"sext", 0x2736}, /* SIX POINTED BLACK STAR */ {"sfgr", 0x03C2}, /* GREEK SMALL LETTER FINAL SIGMA */ {"sfrown", 0x2322}, /* FROWN */ {"sgr", 0x03C3}, /* GREEK SMALL LETTER SIGMA */ {"sharp", 0x266F}, /* MUSIC SHARP SIGN */ {"shchcy", 0x0449}, /* CYRILLIC SMALL LETTER SHCHA */ {"shcy", 0x0448}, /* CYRILLIC SMALL LETTER SHA */ {"shy", 0x00AD}, /* SOFT HYPHEN */ {"sigma", 0x03C3}, /* GREEK SMALL LETTER SIGMA */ {"sigmaf", 0x03C2}, /* GREEK SMALL LETTER FINAL SIGMA */ {"sigmav", 0x03C2}, /* GREEK SMALL LETTER FINAL SIGMA */ {"sim", 0x223C}, /* TILDE OPERATOR */ {"sime", 0x2243}, /* ASYMPTOTICALLY EQUAL TO */ {"smile", 0x2323}, /* SMILE */ {"softcy", 0x044C}, /* CYRILLIC SMALL LETTER SOFT SIGN */ {"sol", 0x002F}, /* SOLIDUS */ {"spades", 0x2660}, /* BLACK SPADE SUIT */ {"spar", 0x2225}, /* PARALLEL TO */ {"sqcap", 0x2293}, /* SQUARE CAP */ {"sqcup", 0x2294}, /* SQUARE CUP */ {"sqsub", 0x228F}, /* SQUARE IMAGE OF */ {"sqsube", 0x2291}, /* SQUARE IMAGE OF OR EQUAL TO */ {"sqsup", 0x2290}, /* SQUARE ORIGINAL OF */ {"sqsupe", 0x2292}, /* SQUARE ORIGINAL OF OR EQUAL TO */ {"squ", 0x25A1}, /* WHITE SQUARE */ {"square", 0x25A1}, /* WHITE SQUARE */ {"squf", 0x25AA}, /* BLACK SMALL SQUARE */ {"ssetmn", 0x2216}, /* SET MINUS */ {"ssmile", 0x2323}, /* SMILE */ {"sstarf", 0x22C6}, /* STAR OPERATOR */ {"star", 0x2606}, /* WHITE STAR */ {"starf", 0x2605}, /* BLACK STAR */ {"sub", 0x2282}, /* SUBSET OF */ {"subE", 0x2286}, /* SUBSET OF OR EQUAL TO */ {"sube", 0x2286}, /* SUBSET OF OR EQUAL TO */ {"subnE", 0x228A}, /* SUBSET OF WITH NOT EQUAL TO */ {"subne", 0x228A}, /* SUBSET OF WITH NOT EQUAL TO */ {"sum", 0x2211}, /* N-ARY SUMMATION */ {"sung", 0x266A}, /* EIGHTH NOTE */ {"sup", 0x2283}, /* SUPERSET OF */ {"sup1", 0x00B9}, /* SUPERSCRIPT ONE */ {"sup2", 0x00B2}, /* SUPERSCRIPT TWO */ {"sup3", 0x00B3}, /* SUPERSCRIPT THREE */ {"supE", 0x2287}, /* SUPERSET OF OR EQUAL TO */ {"supe", 0x2287}, /* SUPERSET OF OR EQUAL TO */ {"supnE", 0x228B}, /* SUPERSET OF WITH NOT EQUAL TO */ {"supne", 0x228B}, /* SUPERSET OF WITH NOT EQUAL TO */ {"szlig", 0x00DF}, /* LATIN SMALL LETTER SHARP S */ {"target", 0x2316}, /* POSITION INDICATOR */ {"tau", 0x03C4}, /* GREEK SMALL LETTER TAU */ {"tcaron", 0x0165}, /* LATIN SMALL LETTER T WITH CARON */ {"tcedil", 0x0163}, /* LATIN SMALL LETTER T WITH CEDILLA */ {"tcy", 0x0442}, /* CYRILLIC SMALL LETTER TE */ {"tdot", 0x20DB}, /* COMBINING THREE DOTS ABOVE */ {"telrec", 0x2315}, /* TELEPHONE RECORDER */ {"tgr", 0x03C4}, /* GREEK SMALL LETTER TAU */ {"there4", 0x2234}, /* THEREFORE */ {"theta", 0x03B8}, /* GREEK SMALL LETTER THETA */ {"thetas", 0x03B8}, /* GREEK SMALL LETTER THETA */ {"thetasym", 0x03D1}, /* GREEK THETA SYMBOL */ {"thetav", 0x03D1}, /* GREEK THETA SYMBOL */ {"thgr", 0x03B8}, /* GREEK SMALL LETTER THETA */ {"thinsp", 0x2009}, /* THIN SPACE */ {"thkap", 0x2248}, /* ALMOST EQUAL TO */ {"thksim", 0x223C}, /* TILDE OPERATOR */ {"thorn", 0x00FE}, /* LATIN SMALL LETTER THORN */ {"tilde", 0x02DC}, /* SMALL TILDE */ {"times", 0x00D7}, /* MULTIPLICATION SIGN */ {"timesb", 0x22A0}, /* SQUARED TIMES */ {"top", 0x22A4}, /* DOWN TACK */ {"tprime", 0x2034}, /* TRIPLE PRIME */ {"trade", 0x2122}, /* TRADE MARK SIGN */ {"trie", 0x225C}, /* DELTA EQUAL TO */ {"tscy", 0x0446}, /* CYRILLIC SMALL LETTER TSE */ {"tshcy", 0x045B}, /* CYRILLIC SMALL LETTER TSHE */ {"tstrok", 0x0167}, /* LATIN SMALL LETTER T WITH STROKE */ {"twixt", 0x226C}, /* BETWEEN */ {"uArr", 0x21D1}, /* UPWARDS DOUBLE ARROW */ {"uacgr", 0x03CD}, /* GREEK SMALL LETTER UPSILON WITH TONOS */ {"uacute", 0x00FA}, /* LATIN SMALL LETTER U WITH ACUTE */ {"uarr", 0x2191}, /* UPWARDS ARROW */ {"uarr2", 0x21C8}, /* UPWARDS PAIRED ARROWS */ {"ubrcy", 0x045E}, /* CYRILLIC SMALL LETTER SHORT U */ {"ubreve", 0x016D}, /* LATIN SMALL LETTER U WITH BREVE */ {"ucirc", 0x00FB}, /* LATIN SMALL LETTER U WITH CIRCUMFLEX */ {"ucy", 0x0443}, /* CYRILLIC SMALL LETTER U */ {"udblac", 0x0171}, /* LATIN SMALL LETTER U WITH DOUBLE ACUTE */ {"udiagr", 0x03B0}, /* GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND */ {"udigr", 0x03CB}, /* GREEK SMALL LETTER UPSILON WITH DIALYTIKA */ {"ugr", 0x03C5}, /* GREEK SMALL LETTER UPSILON */ {"ugrave", 0x00F9}, /* LATIN SMALL LETTER U WITH GRAVE */ {"uharl", 0x21BF}, /* UPWARDS HARPOON WITH BARB LEFTWARDS */ {"uharr", 0x21BE}, /* UPWARDS HARPOON WITH BARB RIGHTWARDS */ {"uhblk", 0x2580}, /* UPPER HALF BLOCK */ {"ulcorn", 0x231C}, /* TOP LEFT CORNER */ {"ulcrop", 0x230F}, /* TOP LEFT CROP */ {"umacr", 0x016B}, /* LATIN SMALL LETTER U WITH MACRON */ {"uml", 0x00A8}, /* DIAERESIS */ {"uogon", 0x0173}, /* LATIN SMALL LETTER U WITH OGONEK */ {"uplus", 0x228E}, /* MULTISET UNION */ {"upsi", 0x03C5}, /* GREEK SMALL LETTER UPSILON */ {"upsih", 0x03D2}, /* GREEK UPSILON WITH HOOK SYMBOL */ {"upsilon", 0x03C5}, /* GREEK SMALL LETTER UPSILON */ {"urcorn", 0x231D}, /* TOP RIGHT CORNER */ {"urcrop", 0x230E}, /* TOP RIGHT CROP */ {"uring", 0x016F}, /* LATIN SMALL LETTER U WITH RING ABOVE */ {"utilde", 0x0169}, /* LATIN SMALL LETTER U WITH TILDE */ {"utri", 0x25B5}, /* WHITE UP-POINTING SMALL TRIANGLE */ {"utrif", 0x25B4}, /* BLACK UP-POINTING SMALL TRIANGLE */ {"uuml", 0x00FC}, /* LATIN SMALL LETTER U WITH DIAERESIS */ {"vArr", 0x21D5}, /* UP DOWN DOUBLE ARROW */ {"vDash", 0x22A8}, /* TRUE */ {"varr", 0x2195}, /* UP DOWN ARROW */ {"vcy", 0x0432}, /* CYRILLIC SMALL LETTER VE */ {"vdash", 0x22A2}, /* RIGHT TACK */ {"veebar", 0x22BB}, /* XOR */ {"vellip", 0x22EE}, /* VERTICAL ELLIPSIS */ {"verbar", 0x007C}, /* VERTICAL LINE */ {"vltri", 0x22B2}, /* NORMAL SUBGROUP OF */ {"vprime", 0x2032}, /* PRIME */ {"vprop", 0x221D}, /* PROPORTIONAL TO */ {"vrtri", 0x22B3}, /* CONTAINS AS NORMAL SUBGROUP */ {"vsubnE", 0x228A}, /* SUBSET OF WITH NOT EQUAL TO */ {"vsubne", 0x228A}, /* SUBSET OF WITH NOT EQUAL TO */ {"vsupnE", 0x228B}, /* SUPERSET OF WITH NOT EQUAL TO */ {"vsupne", 0x228B}, /* SUPERSET OF WITH NOT EQUAL TO */ {"wcirc", 0x0175}, /* LATIN SMALL LETTER W WITH CIRCUMFLEX */ {"wedgeq", 0x2259}, /* ESTIMATES */ {"weierp", 0x2118}, /* SCRIPT CAPITAL P */ {"wreath", 0x2240}, /* WREATH PRODUCT */ {"xcirc", 0x25CB}, /* WHITE CIRCLE */ {"xdtri", 0x25BD}, /* WHITE DOWN-POINTING TRIANGLE */ {"xgr", 0x03BE}, /* GREEK SMALL LETTER XI */ {"xhArr", 0x2194}, /* LEFT RIGHT ARROW */ {"xharr", 0x2194}, /* LEFT RIGHT ARROW */ {"xi", 0x03BE}, /* GREEK SMALL LETTER XI */ {"xlArr", 0x21D0}, /* LEFTWARDS DOUBLE ARROW */ {"xrArr", 0x21D2}, /* RIGHTWARDS DOUBLE ARROW */ {"xutri", 0x25B3}, /* WHITE UP-POINTING TRIANGLE */ {"yacute", 0x00FD}, /* LATIN SMALL LETTER Y WITH ACUTE */ {"yacy", 0x044F}, /* CYRILLIC SMALL LETTER YA */ {"ycirc", 0x0177}, /* LATIN SMALL LETTER Y WITH CIRCUMFLEX */ {"ycy", 0x044B}, /* CYRILLIC SMALL LETTER YERU */ {"yen", 0x00A5}, /* YEN SIGN */ {"yicy", 0x0457}, /* CYRILLIC SMALL LETTER YI */ {"yucy", 0x044E}, /* CYRILLIC SMALL LETTER YU */ {"yuml", 0x00FF}, /* LATIN SMALL LETTER Y WITH DIAERESIS */ {"zacute", 0x017A}, /* LATIN SMALL LETTER Z WITH ACUTE */ {"zcaron", 0x017E}, /* LATIN SMALL LETTER Z WITH CARON */ {"zcy", 0x0437}, /* CYRILLIC SMALL LETTER ZE */ {"zdot", 0x017C}, /* LATIN SMALL LETTER Z WITH DOT ABOVE */ {"zeta", 0x03B6}, /* GREEK SMALL LETTER ZETA */ {"zgr", 0x03B6}, /* GREEK SMALL LETTER ZETA */ {"zhcy", 0x0436}, /* CYRILLIC SMALL LETTER ZHE */ {"zwj", 0x200D}, /* ZERO WIDTH JOINER */ {"zwnj", 0x200C}, /* ZERO WIDTH NON-JOINER */ /* {"epsiv", 0x????}, variant epsilon # ISOgrk3 */ /* {"fjlig", 0x????}, fj ligature # ISOpub */ /* {"gEl", 0x????}, greater-than, double equals, less-than # ISOamsr */ /* {"gap", 0x????}, greater-than, approximately equal to # ISOamsr */ /* {"gnap", 0x????}, greater-than, not approximately equal t# ISOamsn */ /* {"jnodot", 0x????}, latin small letter dotless j # ISOamso */ /* {"lEg", 0x????}, less-than, double equals, greater-than # ISOamsr */ /* {"lap", 0x????}, less-than, approximately equal to # ISOamsr */ /* {"lnap", 0x????}, less-than, not approximately equal to # ISOamsn */ /* {"lpargt", 0x????}, left parenthesis, greater-than # ISOamsc */ /* {"ngE", 0x????}, not greater-than, double equals # ISOamsn */ /* {"nlE", 0x????}, not less-than, double equals # ISOamsn */ /* {"nsmid", 0x????}, nshortmid # ISOamsn */ /* {"prap", 0x????}, precedes, approximately equal to # ISOamsr */ /* {"prnE", 0x????}, precedes, not double equal # ISOamsn */ /* {"prnap", 0x????}, precedes, not approximately equal to # ISOamsn */ /* {"rpargt", 0x????}, right parenthesis, greater-than # ISOamsc */ /* {"scap", 0x????}, succeeds, approximately equal to # ISOamsr */ /* {"scnE", 0x????}, succeeds, not double equals # ISOamsn */ /* {"scnap", 0x????}, succeeds, not approximately equal to # ISOamsn */ /* {"smid", 0x????}, shortmid # ISOamsr */ }; /* Attribute Lists ** --------------- ** ** Lists must be in alphatbetical order by attribute name ** The tag elements contain the number of attributes */ static attr a_attr[] = { /* Anchor attributes */ { "ACCESSKEY" }, { "CHARSET" }, { "CLASS" }, { "CLEAR" }, { "COORDS" }, { "DIR" }, { "HREF" }, { "ID" }, { "ISMAP" }, { "LANG" }, { "MD" }, { "NAME" }, { "NOTAB" }, { "ONCLICK" }, { "ONMOUSEOUT" }, { "ONMOUSEOVER" }, { "REL" }, { "REV" }, { "SHAPE" }, { "STYLE" }, { "TABINDEX" }, { "TARGET" }, { "TITLE" }, { "TYPE" }, { "URN" }, { 0 } /* Terminate list */ }; static attr address_attr[] = { /* ADDRESS attributes */ { "CLASS" }, { "CLEAR" }, { "DIR" }, { "ID" }, { "LANG" }, { "NOWRAP" }, { "STYLE" }, { "TITLE" }, { 0 } /* Terminate list */ }; static attr applet_attr[] = { /* APPLET attributes */ { "ALIGN" }, { "ALT" }, { "CLASS" }, { "CLEAR" }, { "CODE" }, { "CODEBASE" }, { "DIR" }, { "DOWNLOAD" }, { "HEIGHT" }, { "HSPACE" }, { "ID" }, { "LANG" }, { "NAME" }, { "STYLE" }, { "TITLE" }, { "VSPACE" }, { "WIDTH" }, { 0 } /* Terminate list */ }; static attr area_attr[] = { /* AREA attributes */ { "ALT" }, { "CLASS" }, { "CLEAR" }, { "COORDS" }, { "DIR" }, { "HREF" }, { "ID" }, { "LANG" }, { "NOHREF" }, { "NOTAB" }, { "ONCLICK" }, { "ONMOUSEOUT" }, { "ONMOUSEOVER" }, { "SHAPE" }, { "STYLE" }, { "TABINDEX" }, { "TARGET" }, { "TITLE" }, { 0 } /* Terminate list */ }; static attr base_attr[] = { /* BASE attributes */ { "HREF" }, { "TARGET" }, { "TITLE" }, { 0 } /* Terminate list */ }; static attr bgsound_attr[] = { /* BGSOUND attributes */ { "CLASS" }, { "CLEAR" }, { "DIR" }, { "ID" }, { "LANG" }, { "LOOP" }, { "SRC" }, { "STYLE" }, { "TITLE" }, { 0 } /* Terminate list */ }; static attr body_attr[] = { /* BODY attributes */ { "ALINK" }, { "BACKGROUND" }, { "BGCOLOR" }, { "CLASS" }, { "CLEAR" }, { "DIR" }, { "ID" }, { "LANG" }, { "LINK" }, { "ONLOAD" }, { "ONUNLOAD" }, { "STYLE" }, { "TITLE" }, { "TEXT" }, { "VLINK" }, { 0 } /* Terminate list */ }; static attr bodytext_attr[] = { /* BODYTEXT attributes */ { "CLASS" }, { "CLEAR" }, { "DATA" }, { "DIR" }, { "ID" }, { "LANG" }, { "NAME" }, { "OBJECT" }, { "REF" }, { "STYLE" }, { "TITLE" }, { "TYPE" }, { "VALUE" }, { "VALUETYPE" }, { 0 } /* Terminate list */ }; static attr bq_attr[] = { /* BQ (BLOCKQUOTE) attributes */ { "CLASS" }, { "CLEAR" }, { "DIR" }, { "ID" }, { "LANG" }, { "NOWRAP" }, { "STYLE" }, { "TITLE" }, { 0 } /* Terminate list */ }; static attr button_attr[] = { /* BUTTON attributes */ { "CLASS" }, { "CLEAR" }, { "DIR" }, { "DISABLED" }, { "ID" }, { "LANG" }, { "NAME" }, { "ONFOCUS" }, { "ONBLUR" }, { "STYLE" }, { "TABINDEX" }, { "TITLE" }, { "TYPE" }, { "VALUE" }, { 0 } /* Terminate list */ }; static attr caption_attr[] = { /* CAPTION attributes */ { "ACCESSKEY" }, { "ALIGN" }, { "CLASS" }, { "CLEAR" }, { "DIR" }, { "ID" }, { "LANG" }, { "STYLE" }, { "TITLE" }, { 0 } /* Terminate list */ }; static attr col_attr[] = { /* COL and COLGROUP attributes */ { "ALIGN" }, { "CHAR" }, { "CHAROFF" }, { "CLASS" }, { "CLEAR" }, { "DIR" }, { "ID" }, { "LANG" }, { "SPAN" }, { "STYLE" }, { "TITLE" }, { "VALIGN" }, { "WIDTH" }, { 0 } /* Terminate list */ }; static attr credit_attr[] = { /* CREDIT attributes */ { "CLASS" }, { "CLEAR" }, { "DIR" }, { "ID" }, { "LANG" }, { "STYLE" }, { "TITLE" }, { 0 } /* Terminate list */ }; static attr div_attr[] = { /* DIV attribures */ { "ALIGN" }, { "CLASS" }, { "CLEAR" }, { "DIR" }, { "ID" }, { "LANG" }, { "STYLE" }, { "TITLE" }, { 0 } /* Terminate list */ }; static attr embed_attr[] = { /* EMBED attributes */ { "ALIGN" }, /* (including, for now, those from FIG and IMG) */ { "ALT" }, { "BORDER" }, { "CLASS" }, { "CLEAR" }, { "DIR" }, { "HEIGHT" }, { "ID" }, { "IMAGEMAP" }, { "ISMAP" }, { "LANG" }, { "MD" }, { "NAME" }, { "NOFLOW" }, { "PARAMS" }, { "SRC" }, { "STYLE" }, { "TITLE" }, { "UNITS" }, { "USEMAP" }, { "WIDTH" }, { 0 } /* Terminate list */ }; static attr fig_attr[] = { /* FIG attributes */ { "ALIGN" }, { "BORDER" }, { "CLASS" }, { "CLEAR" }, { "DIR" }, { "HEIGHT" }, { "ID" }, { "IMAGEMAP" }, { "ISOBJECT" }, { "LANG" }, { "MD" }, { "NOFLOW" }, { "SRC" }, { "STYLE" }, { "TITLE" }, { "UNITS" }, { "WIDTH" }, { 0 } /* Terminate list */ }; static attr fieldset_attr[] = { /* FIELDSET attributes */ { "CLASS" }, { "CLEAR" }, { "DIR" }, { "ID" }, { "LANG" }, { "STYLE" }, { "TITLE" }, { 0 } /* Terminate list */ }; static attr fn_attr[] = { /* FN attributes */ { "CLASS" }, { "CLEAR" }, { "DIR" }, { "ID" }, { "LANG" }, { "STYLE" }, { "TITLE" }, { 0 } /* Terminate list */ }; static attr font_attr[] = { /* FONT attributes */ { "CLASS" }, { "CLEAR" }, { "COLOR" }, { "DIR" }, { "END" }, { "FACE" }, { "ID" }, { "LANG" }, { "SIZE" }, { "STYLE" }, { 0 } /* Terminate list */ }; static attr form_attr[] = { /* FORM attributes */ { "ACCEPT-CHARSET"}, /* HTML 4.0 draft - kw */ { "ACTION"}, { "CLASS" }, { "CLEAR" }, { "DIR" }, { "ENCTYPE" }, { "ID" }, { "LANG" }, { "METHOD" }, { "ONSUBMIT" }, { "SCRIPT" }, { "STYLE" }, { "SUBJECT" }, { "TARGET" }, { "TITLE" }, { 0 } /* Terminate list */ }; static attr frame_attr[] = { /* FRAME attributes */ { "ID" }, { "MARGINHEIGHT"}, { "MARGINWIDTH" }, { "NAME" }, { "NORESIZE" }, { "SCROLLING" }, { "SRC" }, { 0 } /* Terminate list */ }; static attr frameset_attr[] = { /* FRAMESET attributes */ { "COLS"}, { "ROWS" }, { 0 } /* Terminate list */ }; static attr gen_attr[] = { /* Minimum HTML 3.0 */ { "CLASS" }, { "CLEAR" }, { "DIR" }, { "ID" }, { "LANG" }, { "STYLE" }, { "TITLE" }, { 0 } /* Terminate list */ }; static attr glossary_attr[] = { /* DL (and DLC) attributes */ { "CLASS" }, { "CLEAR" }, { "COMPACT" }, { "DIR" }, { "ID" }, { "LANG" }, { "STYLE" }, { "TITLE" }, { 0 } /* Terminate list */ }; static attr h_attr[] = { /* H1 - H6 attributes */ { "ALIGN" }, { "CLASS" }, { "CLEAR" }, { "DINGBAT" }, { "DIR" }, { "ID" }, { "LANG" }, { "MD" }, { "NOWRAP" }, { "SEQNUM" }, { "SKIP" }, { "SRC" }, { "STYLE" }, { "TITLE" }, { 0 } /* Terminate list */ }; static attr hr_attr[] = { /* HR attributes */ { "ALIGN" }, { "CLASS" }, { "CLEAR" }, { "DIR" }, { "ID" }, { "MD" }, { "NOSHADE" }, { "SIZE" }, { "SRC" }, { "STYLE" }, { "TITLE" }, { "WIDTH" }, { 0 } /* Terminate list */ }; static attr iframe_attr[] = { /* IFRAME attributes */ { "ALIGN" }, { "FRAMEBORDER" }, { "HEIGHT" }, { "ID" }, { "MARGINHEIGHT"}, { "MARGINWIDTH" }, { "NAME" }, { "SCROLLING" }, { "SRC" }, { "STYLE" }, { "WIDTH" }, { 0 } /* Terminate list */ }; static attr img_attr[] = { /* IMG attributes */ { "ALIGN" }, { "ALT" }, { "BORDER" }, { "CLASS" }, { "CLEAR" }, { "DIR" }, { "HEIGHT" }, { "ID" }, { "ISMAP" }, { "ISOBJECT" }, { "LANG" }, { "MD" }, { "SRC" }, { "STYLE" }, { "TITLE" }, { "UNITS" }, { "USEMAP" }, { "WIDTH" }, { 0 } /* Terminate list */ }; static attr input_attr[] = { /* INPUT attributes */ { "ACCEPT" }, { "ACCEPT-CHARSET" }, /* RFC 2070 HTML i18n - kw */ { "ALIGN" }, { "ALT" }, { "CHECKED" }, { "CLASS" }, { "CLEAR" }, { "DIR" }, { "DISABLED" }, { "ERROR" }, { "HEIGHT" }, { "ID" }, { "LANG" }, { "MAX" }, { "MAXLENGTH" }, { "MD" }, { "MIN" }, { "NAME" }, { "NOTAB" }, { "ONBLUR" }, { "ONCHANGE" }, { "ONCLICK" }, { "ONFOCUS" }, { "ONSELECT" }, { "SIZE" }, { "SRC" }, { "STYLE" }, { "TABINDEX" }, { "TITLE" }, { "TYPE" }, { "VALUE" }, { "WIDTH" }, { 0 } /* Terminate list */ }; static attr isindex_attr[] = { /* ISINDEX attributes */ { "ACTION" }, /* Not in spec. Lynx treats it as HREF. - FM */ { "DIR" }, { "HREF" }, /* HTML 3.0 attritute for search action. - FM */ { "ID" }, { "LANG" }, { "PROMPT" }, /* HTML 3.0 attribute for prompt string. - FM */ { "TITLE" }, { 0 } /* Terminate list */ }; static attr keygen_attr[] = { /* KEYGEN attributes */ { "CHALLENGE" }, { "CLASS" }, { "DIR" }, { "ID" }, { "LANG" }, { "NAME" }, { "STYLE" }, { "TITLE" }, { 0 } /* Terminate list */ }; static attr label_attr[] = { /* LABEL attributes */ { "ACCESSKEY" }, { "CLASS" }, { "CLEAR" }, { "DIR" }, { "FOR" }, { "ID" }, { "LANG" }, { "ONCLICK" }, { "STYLE" }, { "TITLE" }, { 0 } /* Terminate list */ }; static attr legend_attr[] = { /* LEGEND attributes */ { "ACCESSKEY" }, { "ALIGN" }, { "CLASS" }, { "CLEAR" }, { "DIR" }, { "ID" }, { "LANG" }, { "STYLE" }, { "TITLE" }, { 0 } /* Terminate list */ }; static attr link_attr[] = { /* LINK attributes */ { "CHARSET" }, /* RFC 2070 HTML i18n -- hint for UA -- - kw */ { "CLASS" }, { "HREF" }, { "ID" }, { "MEDIA" }, { "REL" }, { "REV" }, { "STYLE" }, { "TARGET" }, { "TITLE" }, { "TYPE" }, { 0 } /* Terminate list */ }; static attr list_attr[] = { /* LI attributes */ { "CLASS" }, { "CLEAR" }, { "DINGBAT" }, { "DIR" }, { "ID" }, { "LANG" }, { "MD" }, { "SKIP" }, { "SRC" }, { "STYLE" }, { "TITLE" }, { "TYPE" }, { "VALUE" }, { 0 } /* Terminate list */ }; static attr map_attr[] = { /* MAP attributes */ { "CLASS" }, { "CLEAR" }, { "DIR" }, { "ID" }, { "LANG" }, { "NAME" }, { "STYLE" }, { "TITLE" }, { 0 } /* Terminate list */ }; static attr math_attr[] = { /* MATH attributes */ { "BOX" }, { "CLASS" }, { "CLEAR" }, { "DIR" }, { "ID" }, { "LANG" }, { "STYLE" }, { "TITLE" }, { 0 } /* Terminate list */ }; static attr meta_attr[] = { /* META attributes */ { "CONTENT" }, { "HTTP-EQUIV" }, { "NAME" }, { 0 } /* Terminate list */ }; static attr nextid_attr[] = { /* NEXTID attribures */ { "N" } }; static attr note_attr[] = { /* NOTE attributes */ { "CLASS" }, { "CLEAR" }, { "DIR" }, { "ID" }, { "LANG" }, { "MD" }, { "ROLE" }, { "SRC" }, { "STYLE" }, { "TITLE" }, { 0 } /* Terminate list */ }; static attr object_attr[] = { /* OBJECT attributes */ { "ALIGN" }, { "BORDER" }, { "CLASS" }, { "CLASSID" }, { "CODEBASE" }, { "CODETYPE" }, { "DATA" }, { "DECLARE" }, { "DIR" }, { "HEIGHT" }, { "HSPACE" }, { "ID" }, { "ISMAP" }, { "LANG" }, { "NAME" }, { "NOTAB" }, { "SHAPES" }, { "STANDBY" }, { "STYLE" }, { "TABINDEX" }, { "TITLE" }, { "TYPE" }, { "USEMAP" }, { "VSPACE" }, { "WIDTH" }, { 0 } /* Terminate list */ }; static attr olist_attr[] = { /* OL attributes */ { "CLASS" }, { "CLEAR" }, { "COMPACT" }, { "CONTINUE" }, { "DIR" }, { "ID" }, { "LANG" }, { "SEQNUM" }, { "START" }, { "STYLE" }, { "TITLE" }, { "TYPE" }, { 0 } /* Terminate list */ }; static attr option_attr[] = { /* OPTION attributes */ { "CLASS" }, { "CLEAR" }, { "DIR" }, { "DISABLED" }, { "ERROR" }, { "ID" }, { "LANG" }, { "SELECTED" }, { "SHAPE" }, { "STYLE" }, { "TITLE" }, { "VALUE" }, { 0 } /* Terminate list */ }; static attr overlay_attr[] = { /* OVERLAY attributes */ { "CLASS" }, { "HEIGHT" }, { "ID" }, { "IMAGEMAP" }, { "MD" }, { "SRC" }, { "STYLE" }, { "TITLE" }, { "UNITS" }, { "WIDTH" }, { "X" }, { "Y" }, { 0 } /* Terminate list */ }; static attr p_attr[] = { /* P attributes */ { "ALIGN" }, { "CLASS" }, { "CLEAR" }, { "DIR" }, { "ID" }, { "LANG" }, { "NOWRAP" }, { "STYLE" }, { "TITLE" }, { 0 } /* Terminate list */ }; static attr param_attr[] = { /* PARAM attribures */ { "ACCEPT" }, { "ACCEPT-CHARSET" }, { "ACCEPT-ENCODING" }, { "CLASS" }, { "CLEAR" }, { "DATA" }, { "DIR" }, { "ID" }, { "LANG" }, { "NAME" }, { "OBJECT" }, { "REF" }, { "STYLE" }, { "TITLE" }, { "TYPE" }, { "VALUE" }, { "VALUEREF" }, { "VALUETYPE" }, { 0 } /* Terminate list */ }; static attr script_attr[] = { /* SCRIPT attribures */ { "CLASS" }, { "CLEAR" }, { "DIR" }, { "EVENT" }, { "FOR" }, { "ID" }, { "LANG" }, { "LANGUAGE" }, { "NAME" }, { "SCRIPTENGINE" }, { "SRC" }, { "STYLE" }, { "TITLE" }, { "TYPE" }, { 0 } /* Terminate list */ }; static attr select_attr[] = { /* SELECT attributes */ { "ALIGN" }, { "CLASS" }, { "CLEAR" }, { "DIR" }, { "DISABLED" }, { "ERROR" }, { "HEIGHT" }, { "ID" }, { "LANG" }, { "MD" }, { "MULTIPLE" }, { "NAME" }, { "NOTAB" }, { "ONBLUR" }, { "ONCHANGE" }, { "ONFOCUS" }, { "SIZE" }, { "STYLE" }, { "TABINDEX" }, { "TITLE" }, { "UNITS" }, { "WIDTH" }, { 0 } /* Terminate list */ }; static attr style_attr[] = { /* STYLE attributes */ { "DIR" }, { "LANG" }, { "NOTATION" }, { "TITLE" }, { 0 } /* Terminate list */ }; static attr tab_attr[] = { /* TAB attributes */ { "ALIGN" }, { "CLASS" }, { "CLEAR" }, { "DIR" }, { "DP" }, { "ID" }, { "INDENT" }, { "LANG" }, { "STYLE" }, { "TITLE" }, { "TO" }, { 0 } /* Terminate list */ }; static attr table_attr[] = { /* TABLE attributes */ { "ALIGN" }, { "BORDER" }, { "CELLPADDING" }, { "CELLSPACING" }, { "CLASS" }, { "CLEAR" }, { "COLS" }, { "COLSPEC" }, { "DIR" }, { "DP" }, { "FRAME" }, { "ID" }, { "LANG" }, { "NOFLOW" }, { "NOWRAP" }, { "RULES" }, { "STYLE" }, { "TITLE" }, { "UNITS" }, { "WIDTH" }, { 0 } /* Terminate list */ }; static attr td_attr[] = { /* TD and TH attributes */ { "ALIGN" }, { "AXES" }, { "AXIS" }, { "CHAR" }, { "CHAROFF" }, { "CLASS" }, { "CLEAR" }, { "COLSPAN" }, { "DIR" }, { "DP" }, { "ID" }, { "LANG" }, { "NOWRAP" }, { "ROWSPAN" }, { "STYLE" }, { "TITLE" }, { "VALIGN" }, { 0 } /* Terminate list */ }; static attr textarea_attr[] = { /* TEXTAREA attributes */ { "ACCEPT-CHARSET" }, /* RFC 2070 HTML i18n - kw */ { "ALIGN" }, { "CLASS" }, { "CLEAR" }, { "COLS" }, { "DIR" }, { "DISABLED" }, { "ERROR" }, { "ID" }, { "LANG" }, { "NAME" }, { "NOTAB" }, { "ONBLUR" }, { "ONCHANGE" }, { "ONFOCUS" }, { "ONSELECT" }, { "ROWS" }, { "STYLE" }, { "TABINDEX" }, { "TITLE" }, { 0 } /* Terminate list */ }; static attr tr_attr[] = { /* TR, THEAD, TFOOT, and TBODY attributes */ { "ALIGN" }, { "CHAR" }, { "CHAROFF" }, { "CLASS" }, { "CLEAR" }, { "DIR" }, { "DP" }, { "ID" }, { "LANG" }, { "NOWRAP" }, { "STYLE" }, { "TITLE" }, { "VALIGN" }, { 0 } /* Terminate list */ }; static attr ulist_attr[] = { /* UL attributes */ { "CLASS" }, { "CLEAR" }, { "COMPACT" }, { "DINGBAT" }, { "DIR" }, { "ID" }, { "LANG" }, { "MD" }, { "PLAIN" }, { "SRC" }, { "STYLE" }, { "TITLE" }, { "TYPE" }, { "WRAP" }, { 0 } /* Terminate list */ }; /* From Peter Flynn's intro to the HTML Pro DTD: %structure; DIV, CENTER, H1 to H6, P, UL, OL, DL, DIR, MENU, PRE, XMP, LISTING, BLOCKQUOTE, BQ, 2 1 2 2 1 8 8 8 8 8 8 8 8 4 4 MULTICOL,?NOBR, FORM, TABLE, ADDRESS, FIG, BDO, NOTE, and FN; plus?WBR, LI, and LH 8 n ?1 n 8 8 2 2 2 2 2 ?1 nE 4 4 %insertions; Elements which usually contain special-purpose material, or no text material at all. BASEFONT, APPLET, OBJECT, EMBED, SCRIPT, MAP, MARQUEE, HR, ISINDEX, BGSOUND, TAB,?IMG, 1 e? 2 2 l 1 e 2 l 8 4 4 E 1? E 1 E ! E ?1 E IMAGE, BR, plus NOEMBED, SERVER, SPACER, AUDIOSCOPE, and SIDEBAR; ?area 1 n 1 E n n n n n 8 E %text; Elements within the %structure; which directly contain running text. Descriptive or analytic markup: EM, STRONG, DFN, CODE, SAMP, KBD, VAR, CITE, Q, LANG, AU, 2 2 2 2 2 2 2 2 2 2 n 2 AUTHOR, PERSON, ACRONYM, ABBREV, INS, DEL, and SPAN 2 2 n 2 2 2 2 2 Visual markup:S, STRIKE, I, B, TT, U,?NOBR,?WBR, BR, BIG, SMALL, FONT, STYLE, BLINK, TAB, 1 1 1 1 1 1 ?1 n ?1nE? 1 E 1 1 1 1 l 1 1 E? BLACKFACE, LIMITTEXT, NOSMARTQUOTES, and SHADOW 1 n 1 n 1 n 1 n Hypertext and graphics: A and?IMG 8 ?8 E Mathematical: SUB, SUP, and MATH 4 4 4 l Documentary: COMMENT, ENTITY, ELEMENT, and ATTRIB 4 4 n 4 n 4 n %formula; */ /* Extra element info ** ------------------ ** ** Order and number of tags should match the tags_* tables ** further below and definitions in HTMLDTD.html. ** ** The interspersed comments give the original Lynx tags[] entries ** for orientation, so they do not necessarily reflect what will ** be used with the T_* info (which is in tags_new[]). ** ** An important design goal was that info for each tag should fit on ** one 80 character screen line :). The price to pay is that it's ** a bit cryptic, to say the least... - kw */ /* 1 2 3 4 5 6 7 8 */ /*345678901234567890123456789012345678901234567890123456789012345678901234567890 */ /* self contain icont'n contn'd icont'd canclos omit */ /* { "A" , a_attr, HTML_A_ATTRIBUTES, SGML_MIXED }, */ #define T_A 0x0008, 0x0B007,0x0FF17,0x37787,0x77BA7,0x8604F,0x00004 /* { "ABBREV" , gen_attr, HTML_GEN_ATTRIBUTES, SGML_MIXED }, */ #define T_ABBREV 0x0002, 0x8B04F,0x8FFFF,0xA778F,0xF7FBF,0x00003,0x00000 /* { "ACRONYM" , gen_attr, HTML_GEN_ATTRIBUTES, SGML_MIXED }, */ #define T_ACRONYM 0x0002, 0x8B04F,0x8FFFF,0xA778F,0xF7FBF,0x00003,0x00000 /* { "ADDRESS" , address_attr, HTML_ADDRESS_ATTRIBUTES, SGML_MIXED }, */ #define T_ADDRESS 0x0200, 0x0F14F,0x8FFFF,0x36680,0xB6FAF,0x80317,0x00000 /* { "APPLET" , applet_attr, HTML_APPLET_ATTRIBUTES, SGML_MIXED }, */ #define T_APPLET 0x2000, 0x0B0CF,0x8FFFF,0x37F9F,0xB7FBF,0x8300F,0x00000 /* { "AREA" , area_attr, HTML_AREA_ATTRIBUTES, SGML_EMPTY }, */ #define T_AREA 0x8000, 0x00000,0x00000,0x08000,0x3FFFF,0x00F1F,0x00001 /* { "AU" , gen_attr, HTML_GEN_ATTRIBUTES, SGML_MIXED }, */ #define T_AU 0x0002, 0x8B04F,0x8FFFF,0xA778F,0xF7FBF,0x00003,0x00000 /* { "AUTHOR" , gen_attr, HTML_GEN_ATTRIBUTES, SGML_MIXED }, */ #define T_AUTHOR 0x0002, 0x8B04F,0x8FFFF,0xA778F,0xF7FBF,0x00003,0x00000 /* { "B" , gen_attr, HTML_GEN_ATTRIBUTES, SGML_MIXED }, */ #define T_B 0x0001, 0x8B04F,0xAFFFF,0xA778F,0xF7FBF,0x00001,0x00004 /* { "BANNER" , gen_attr, HTML_GEN_ATTRIBUTES, SGML_MIXED }, */ #define T_BANNER 0x0200, 0x0FB8F,0x0FFFF,0x30000,0x30000,0x8031F,0x00000 /* { "BASE" , base_attr, HTML_BASE_ATTRIBUTES, SGML_EMPTY }, */ #define T_BASE 0x40000,0x00000,0x00000,0x50000,0x50000,0x8000F,0x00001 /* { "BASEFONT", font_attr, HTML_FONT_ATTRIBUTES, SGML_EMPTY }, */ #define T_BASEFONT 0x1000, 0x00000,0x00000,0x377AF,0x37FAF,0x8F000,0x00001 /* { "BDO" , gen_attr, HTML_GEN_ATTRIBUTES, SGML_MIXED }, */ #define T_BDO 0x0100, 0x0B04F,0x8FFFF,0x36680,0xB6FAF,0x0033F,0x00000 /* { "BGSOUND" , bgsound_attr, HTML_BGSOUND_ATTRIBUTES, SGML_EMPTY }, */ #define T_BGSOUND 0x1000, 0x00000,0x00000,0x777AF,0x77FAF,0x8730F,0x00001 /* { "BIG" , gen_attr, HTML_GEN_ATTRIBUTES, SGML_MIXED }, */ #define T_BIG 0x0001, 0x8B04F,0x8FFFF,0xA778F,0xF7FBF,0x00001,0x00004 /* { "BLINK" , gen_attr, HTML_GEN_ATTRIBUTES, SGML_MIXED }, */ #define T_BLINK 0x0001, 0x8B04F,0x8FFFF,0xA778F,0xF7FAF,0x00001,0x00004 /* { "BLOCKQUOTE", bq_attr, HTML_BQ_ATTRIBUTES, SGML_MIXED }, */ #define T_BLOCKQUOTE 0x0200, 0xAFBCF,0xAFFFF,0xB6680,0xB6FAF,0x8031F,0x00000 /* { "BODY" , body_attr, HTML_BODY_ATTRIBUTES, SGML_MIXED }, */ #define T_BODY 0x20000,0x2FB8F,0x2FFFF,0x30000,0x30000,0xDFF7F,0x00003 /* { "BODYTEXT", bodytext_attr,HTML_BODYTEXT_ATTRIBUTES, SGML_MIXED }, */ #define T_BODYTEXT 0x20000,0x0FB8F,0xAFFFF,0x30200,0xB7FAF,0x8F17F,0x00003 /* { "BQ" , bq_attr, HTML_BQ_ATTRIBUTES, SGML_MIXED }, */ #define T_BQ 0x0200, 0xAFBCF,0xAFFFF,0xB6680,0xB6FAF,0x8031F,0x00000 /* { "BR" , gen_attr, HTML_GEN_ATTRIBUTES, SGML_EMPTY }, */ #define T_BR 0x1000, 0x00000,0x00000,0x377BF,0x77FBF,0x8101F,0x00001 #define T_BUTTON 0x0200, 0x0BB0B,0x0FF3B,0x0378F,0x37FAF,0x8035F,0x00000 /* { "CAPTION" , caption_attr, HTML_CAPTION_ATTRIBUTES, SGML_MIXED }, */ #define T_CAPTION 0x0100, 0x0B04F,0x8FFFF,0x06A00,0xB6FA7,0x8035F,0x00000 /* { "CENTER" , div_attr, HTML_DIV_ATTRIBUTES, SGML_MIXED }, */ #define T_CENTER 0x0200, 0x8FBCF,0x8FFFF,0xB6680,0xB6FA7,0x8071F,0x00000 /* { "CITE" , gen_attr, HTML_GEN_ATTRIBUTES, SGML_MIXED }, */ #define T_CITE 0x0002, 0x8B04F,0x8FFFF,0xA778F,0xF7FBF,0x00002,0x00000 /* { "CODE" , gen_attr, HTML_GEN_ATTRIBUTES, SGML_MIXED }, */ #define T_CODE 0x0002, 0x8B04F,0x8FFFF,0xA778F,0xF7FBF,0x00002,0x00000 /* { "COL" , col_attr, HTML_COL_ATTRIBUTES, SGML_EMPTY }, */ #define T_COL 0x4000, 0x00000,0x00000,0x00820,0x36FA7,0x88F5F,0x00001 /* { "COLGROUP", col_attr, HTML_COL_ATTRIBUTES, SGML_EMPTY }, */ #define T_COLGROUP 0x0020, 0x04000,0x04000,0x00800,0x36FA7,0x8875F,0x00001 /* { "COMMENT" , gen_attr, HTML_GEN_ATTRIBUTES, SGML_MIXED }, */ #define T_COMMENT 0x0004, 0x00000,0x00000,0xA77AF,0x7FFFF,0x00003,0x00000 /* { "CREDIT" , credit_attr, HTML_CREDIT_ATTRIBUTES, SGML_MIXED }, */ #define T_CREDIT 0x0100, 0x0B04F,0x8FFFF,0x06A00,0xB7FBF,0x8030F,0x00000 /* { "DD" , gen_attr, HTML_GEN_ATTRIBUTES, SGML_EMPTY }, */ #define T_DD 0x0400, 0x0FBCF,0x8FFFF,0x00800,0xB6FFF,0x8071F,0x00001 /* { "DEL" , gen_attr, HTML_GEN_ATTRIBUTES, SGML_MIXED }, */ #define T_DEL 0x0002, 0x8B04F,0x8FFFF,0xA778F,0xF7FBF,0x00003,0x00000 /* { "DFN" , gen_attr, HTML_GEN_ATTRIBUTES, SGML_MIXED }, */ #define T_DFN 0x0002, 0x8B0CF,0x8FFFF,0x8778F,0xF7FBF,0x00003,0x00000 /* { "DIR" , ulist_attr, HTML_UL_ATTRIBUTES, SGML_MIXED }, */ #define T_DIR 0x0800, 0x0B400,0x0F75F,0x37680,0x36FB7,0x84F7F,0x00000 /* { "DIV" , div_attr, HTML_DIV_ATTRIBUTES, SGML_MIXED }, */ #define T_DIV 0x0200, 0x8FB8F,0x8FFFF,0xB66A0,0xB7FFF,0x8031F,0x00004 /* { "DL" , glossary_attr, HTML_DL_ATTRIBUTES, SGML_MIXED }, */ #define T_DL 0x0800, 0x0C480,0x8FFFF,0x36680,0xB7FB7,0x0075F,0x00000 /* { "DLC" , glossary_attr, HTML_DL_ATTRIBUTES, SGML_MIXED }, */ #define T_DLC 0x0800, 0x0C480,0x8FFFF,0x36680,0xB7FB7,0x0075F,0x00000 /* { "DT" , gen_attr, HTML_GEN_ATTRIBUTES, SGML_EMPTY }, */ #define T_DT 0x0400, 0x0B04F,0x0B1FF,0x00800,0x17FFF,0x8071F,0x00001 /* { "EM" , gen_attr, HTML_GEN_ATTRIBUTES, SGML_MIXED }, */ #define T_EM 0x0002, 0x8B04F,0x8FFFF,0xA778F,0xF7FAF,0x00003,0x00000 /* { "EMBED" , embed_attr, HTML_EMBED_ATTRIBUTES, SGML_EMPTY }, */ #define T_EMBED 0x2000, 0x8F107,0x8FFF7,0xB6FBF,0xB7FBF,0x1FF7F,0x00001 /* { "FIELDSET", fieldset_attr,HTML_FIELDSET_ATTRIBUTES, SGML_MIXED }, */ #define T_FIELDSET 0x0200, 0x0FB42,0x0FF5F,0x07787,0x37FF7,0x8805F,0x00000 /* { "FIG" , fig_attr, HTML_FIG_ATTRIBUTES, SGML_MIXED }, */ #define T_FIG 0x0200, 0x0FB00,0x8FFFF,0x36680,0xB6FBF,0x8834F,0x00000 /* { "FN" , fn_attr, HTML_FN_ATTRIBUTES, SGML_MIXED }, */ #define T_FN 0x0200, 0x8FBCF,0x8FFFF,0xB6680,0xB7EBF,0x8114F,0x00000 /* { "FONT" , font_attr, HTML_FONT_ATTRIBUTES, SGML_EMPTY }, */ #define T_FONT 0x0001, 0x8B04F,0x8FFFF,0xB778F,0xF7FBF,0x00001,0x00004 /* { "FORM" , form_attr, HTML_FORM_ATTRIBUTES, SGML_EMPTY }, */ #define T_FORM 0x0080, 0x0FF6F,0x0FF7F,0x36E07,0x33F07,0x88DFF,0x00000 /* { "FRAME" , frame_attr, HTML_FRAME_ATTRIBUTES, SGML_EMPTY }, */ #define T_FRAME 0x10000,0x00000,0x00000,0x10000,0x10000,0x9FFFF,0x00001 /* { "FRAMESET", frameset_attr,HTML_FRAMESET_ATTRIBUTES, SGML_MIXED }, */ #define T_FRAMESET 0x10000,0x90000,0x90000,0x90000,0x93000,0x9FFFF,0x00000 /* { "H1" , h_attr, HTML_H_ATTRIBUTES, SGML_MIXED }, */ #define T_H1 0x0100, 0x0B04F,0x0B05F,0x36680,0x37FAF,0x80317,0x00000 /* { "H2" , h_attr, HTML_H_ATTRIBUTES, SGML_MIXED }, */ #define T_H2 0x0100, 0x0B04F,0x0B05F,0x36680,0x37FAF,0x80317,0x00000 /* { "H3" , h_attr, HTML_H_ATTRIBUTES, SGML_MIXED }, */ #define T_H3 0x0100, 0x0B04F,0x0B05F,0x36680,0x37FAF,0x80317,0x00000 /* { "H4" , h_attr, HTML_H_ATTRIBUTES, SGML_MIXED }, */ #define T_H4 0x0100, 0x0B04F,0x0B05F,0x36680,0x37FAF,0x80317,0x00000 /* { "H5" , h_attr, HTML_H_ATTRIBUTES, SGML_MIXED }, */ #define T_H5 0x0100, 0x0B04F,0x0B05F,0x36680,0x37FAF,0x80317,0x00000 /* { "H6" , h_attr, HTML_H_ATTRIBUTES, SGML_MIXED }, */ #define T_H6 0x0100, 0x0B04F,0x0B05F,0x36680,0x37FAF,0x80317,0x00000 /* { "HEAD" , gen_attr, HTML_GEN_ATTRIBUTES, SGML_MIXED }, */ #define T_HEAD 0x40000,0x4F000,0x47000,0x10000,0x10000,0x9FF7F,0x00006 /* { "HR" , hr_attr, HTML_HR_ATTRIBUTES, SGML_EMPTY }, */ #define T_HR 0x4000, 0x00000,0x00000,0x3FE80,0x3FFBF,0x87F37,0x00001 /* { "HTML" , gen_attr, HTML_GEN_ATTRIBUTES, SGML_MIXED }, */ #define T_HTML 0x10000,0x7FB8F,0x7FFFF,0x00000,0x00000,0x1FFFF,0x00003 #define T_HY 0x1000, 0x00000,0x00000,0x3779F,0x77FBF,0x8101F,0x00001 /* { "I" , gen_attr, HTML_GEN_ATTRIBUTES, SGML_MIXED }, */ #define T_I 0x0001, 0x8B04F,0x8FFFF,0xA778F,0xF7FBF,0x00001,0x00004 #define T_IFRAME 0x2000, 0x8FBCF,0x8FFFF,0xB679F,0xB6FBF,0xD335F,0x00000 /* { "IMG" , img_attr, HTML_IMG_ATTRIBUTES, SGML_EMPTY }, */ #define T_IMG 0x1000, 0x00000,0x00000,0x3779F,0x37FBF,0x80000,0x00001 /* { "INPUT" , input_attr, HTML_INPUT_ATTRIBUTES, SGML_EMPTY }, */ #define T_INPUT 0x0040, 0x00000,0x00000,0x03F87,0x37F87,0x8904F,0x00001 /* { "INS" , gen_attr, HTML_GEN_ATTRIBUTES, SGML_MIXED }, */ #define T_INS 0x0002, 0x8B04F,0x8FFFF,0xA778F,0xF7FBF,0x00003,0x00000 /* { "ISINDEX" , isindex_attr, HTML_ISINDEX_ATTRIBUTES,SGML_EMPTY }, */ #define T_ISINDEX 0x8000, 0x00000,0x00000,0x7778F,0x7FFAF,0x80007,0x00001 /* { "KBD" , gen_attr, HTML_GEN_ATTRIBUTES, SGML_MIXED }, */ #define T_KBD 0x0002, 0x00000,0x00000,0x2778F,0x77FBF,0x00003,0x00000 /* { "KEYGEN" , keygen_attr, HTML_KEYGEN_ATTRIBUTES, SGML_EMPTY }, */ #define T_KEYGEN 0x0040, 0x00000,0x00000,0x07FB7,0x37FB7,0x80070,0x00001 /* { "LABEL" , label_attr, HTML_LABEL_ATTRIBUTES, SGML_MIXED }, */ #define T_LABEL 0x0020, 0x9FFFF,0x9FFFF,0x9FFFF,0x9FFFF,0x00007,0x00000 #define T_LEGEND 0x0002, 0x0B04F,0x0FF7F,0x00200,0x37FA7,0x00003,0x00000 /* { "LH" , gen_attr, HTML_GEN_ATTRIBUTES, SGML_EMPTY }, */ #define T_LH 0x0400, 0x0BB7F,0x8FFFF,0x00800,0x97FFF,0x8071F,0x00001 /* { "LI" , list_attr, HTML_LI_ATTRIBUTES, SGML_EMPTY }, */ #define T_LI 0x0400, 0x0BBFF,0x8FFFF,0x00800,0x97FFF,0x8071F,0x00001 /* { "LINK" , link_attr, HTML_LINK_ATTRIBUTES, SGML_EMPTY }, */ #define T_LINK 0x8000, 0x00000,0x00000,0x50000,0x50000,0x0FF7F,0x00001 /* { "LISTING" , gen_attr, HTML_GEN_ATTRIBUTES, SGML_LITTERAL }, */ #define T_LISTING 0x0800, 0x00000,0x00000,0x36600,0x36F00,0x80F1F,0x00000 /* { "MAP" , map_attr, HTML_MAP_ATTRIBUTES, SGML_MIXED }, */ #define T_MAP 0x8000, 0x08000,0x08000,0x37FCF,0x37FBF,0x0071F,0x00000 /* { "MARQUEE" , gen_attr, HTML_GEN_ATTRIBUTES, SGML_MIXED }, */ #define T_MARQUEE 0x4000, 0x0000F,0x8F01F,0x37787,0xB7FA7,0x8301C,0x00000 /* { "MATH" , math_attr, HTML_MATH_ATTRIBUTES, SGML_LITTERAL }, */ #define T_MATH 0x0004, 0x0B05F,0x8FFFF,0x2778F,0xF7FBF,0x0001F,0x00000 /* { "MENU" , ulist_attr, HTML_UL_ATTRIBUTES, SGML_MIXED }, */ #define T_MENU 0x0800, 0x0B400,0x0F75F,0x17680,0x36FB7,0x88F7F,0x00000 /* { "META" , meta_attr, HTML_META_ATTRIBUTES, SGML_EMPTY }, */ #define T_META 0x8000, 0x00000,0x00000,0x50000,0x50000,0x0FF7F,0x00001 /* { "NEXTID" , nextid_attr, 1, SGML_EMPTY }, */ #define T_NEXTID 0x1000, 0x00000,0x00000,0x50000,0x1FFF7,0x00001,0x00001 /* { "NOFRAMES", gen_attr, HTML_GEN_ATTRIBUTES, SGML_MIXED }, */ #define T_NOFRAMES 0x20000,0x2FB8F,0x0FFFF,0x17000,0x17000,0x0CF5F,0x00000 /* { "NOTE" , note_attr, HTML_NOTE_ATTRIBUTES, SGML_MIXED }, */ #define T_NOTE 0x0200, 0x0BBAF,0x8FFFF,0x376B0,0xB7FFF,0x8031F,0x00000 /* { "OBJECT" , object_attr, HTML_OBJECT_ATTRIBUTES, SGML_LITTERAL }, */ #define T_OBJECT 0x2000, 0x8FBCF,0x8FFFF,0xB679F,0xB6FBF,0x83F5F,0x00000 /* { "OL" , olist_attr, HTML_OL_ATTRIBUTES, SGML_MIXED }, */ #define T_OL 0x0800, 0x0C400,0x8FFFF,0x37680,0xB7FB7,0x88F7F,0x00000 /* { "OPTION" , option_attr, HTML_OPTION_ATTRIBUTES, SGML_EMPTY }, */ #define T_OPTION 0x8000, 0x00000,0x00000,0x00040,0x37FFF,0x8031F,0x00001 /* { "OVERLAY" , overlay_attr, HTML_OVERLAY_ATTRIBUTES, SGML_EMPTY }, */ #define T_OVERLAY 0x4000, 0x00000,0x00000,0x00200,0x37FBF,0x83F7F,0x00001 /* { "P" , p_attr, HTML_P_ATTRIBUTES, SGML_EMPTY }, */ #define T_P 0x0100, 0x0B04F,0x8FFFF,0x36680,0xB6FA7,0x80117,0x00001 /* { "PARAM" , param_attr, HTML_PARAM_ATTRIBUTES, SGML_EMPTY }, */ #define T_PARAM 0x1000, 0x00000,0x00000,0x03000,0x17FFF,0x81777,0x00001 /* { "PLAINTEXT", gen_attr, HTML_GEN_ATTRIBUTES, SGML_LITTERAL }, */ #define T_PLAINTEXT 0x10000,0xFFFFF,0xFFFFF,0x90000,0x90000,0x3FFFF,0x00001 /* { "PRE" , gen_attr, HTML_GEN_ATTRIBUTES, SGML_MIXED }, */ #define T_PRE 0x0200, 0x0F04F,0x0F05E,0x36680,0x36FF0,0x8071E,0x00000 /* { "Q" , gen_attr, HTML_GEN_ATTRIBUTES, SGML_MIXED }, */ #define T_Q 0x0002, 0x8B04F,0x8FFFF,0xA778F,0xF7FAF,0x00003,0x00000 /* { "S" , gen_attr, HTML_GEN_ATTRIBUTES, SGML_MIXED }, */ #define T_S 0x0001, 0x8B04F,0x8FFFF,0xA778F,0xF7FBF,0x00001,0x00000 /* { "SAMP" , gen_attr, HTML_GEN_ATTRIBUTES, SGML_MIXED }, */ #define T_SAMP 0x0002, 0x8B04F,0x8FFFF,0xA778F,0xF7FBF,0x00002,0x00000 /* { "SCRIPT" , script_attr, HTML_SCRIPT_ATTRIBUTES, SGML_LITTERAL }, */ #define T_SCRIPT 0x2000, 0x00000,0x00000,0x77F9F,0x77FFF,0x87F5F,0x00000 /* { "SELECT" , select_attr, HTML_SELECT_ATTRIBUTES, SGML_MIXED }, */ #define T_SELECT 0x0040, 0x08000,0x08000,0x03FAF,0x13FBF,0x80F5F,0x00008 #define T_SHY 0x1000, 0x00000,0x00000,0x3779F,0x77FBF,0x8101F,0x00001 /* { "SMALL" , gen_attr, HTML_GEN_ATTRIBUTES, SGML_MIXED }, */ #define T_SMALL 0x0001, 0x8B04F,0x8FFFF,0xA778F,0xF7FBF,0x00001,0x00004 /* { "SPAN" , gen_attr, HTML_GEN_ATTRIBUTES, SGML_MIXED }, */ #define T_SPAN 0x0002, 0x0B04F,0x0FFFF,0x2778F,0x77FBF,0x80003,0x00000 /* { "SPOT" , gen_attr, HTML_GEN_ATTRIBUTES, SGML_EMPTY }, */ #define T_SPOT 0x0008, 0x00000,0x00000,0x3FFF7,0x3FFF7,0x00008,0x00001 /* { "STRIKE" , gen_attr, HTML_GEN_ATTRIBUTES, SGML_MIXED }, */ #define T_STRIKE 0x0001, 0x8B04F,0x8FFFF,0xA778F,0xF7FBF,0x00001,0x00000 /* { "STRONG" , gen_attr, HTML_GEN_ATTRIBUTES, SGML_MIXED }, */ #define T_STRONG 0x0002, 0x8B04F,0x8FFFF,0xA778F,0xF7FAF,0x00003,0x00000 /* { "STYLE" , style_attr, HTML_STYLE_ATTRIBUTES, SGML_LITTERAL }, */ #define T_STYLE 0x40000,0x00000,0x00000,0x7638F,0x76FAF,0x8001F,0x00000 /* { "SUB" , gen_attr, HTML_GEN_ATTRIBUTES, SGML_MIXED }, */ #define T_SUB 0x0004, 0x8B05F,0x8FFFF,0x8779F,0xF7FBF,0x00007,0x00000 /* { "SUP" , gen_attr, HTML_GEN_ATTRIBUTES, SGML_MIXED }, */ #define T_SUP 0x0004, 0x8B05F,0x8FFFF,0x8779F,0xF7FBF,0x00007,0x00000 /* { "TAB" , tab_attr, HTML_TAB_ATTRIBUTES, SGML_EMPTY }, */ #define T_TAB 0x1000, 0x00000,0x00000,0x3778F,0x57FAF,0x00001,0x00001 /* { "TABLE" , table_attr, HTML_TABLE_ATTRIBUTES, SGML_MIXED }, */ #define T_TABLE 0x0800, 0x0F1E0,0x8FFFF,0x36680,0xB6FA7,0x8C57F,0x00000 /* { "TBODY" , tr_attr, HTML_TR_ATTRIBUTES, SGML_EMPTY }, */ #define T_TBODY 0x0020, 0x00020,0x8FFFF,0x00880,0xB7FB7,0x8C75F,0x00003 /* { "TD" , td_attr, HTML_TD_ATTRIBUTES, SGML_EMPTY }, */ #define T_TD 0x0400, 0x0FBCF,0x8FFFF,0x00020,0xB7FB7,0x8C75F,0x00001 /* { "TEXTAREA", textarea_attr,HTML_TEXTAREA_ATTRIBUTES, SGML_LITTERAL }, */ #define T_TEXTAREA 0x0040, 0x00000,0x00000,0x07F8F,0x33FBF,0x80F5F,0x00000 /* { "TEXTFLOW", bodytext_attr,HTML_BODYTEXT_ATTRIBUTES, SGML_MIXED }, */ #define T_TEXTFLOW 0x20000,0x8FBFF,0x9FFFF,0x977B0,0xB7FB7,0x9B00F,0x00003 /* { "TFOOT" , tr_attr, HTML_TR_ATTRIBUTES, SGML_EMPTY }, */ #define T_TFOOT 0x0020, 0x00020,0x8FFFF,0x00800,0xB7FB7,0x8CF5F,0x00001 /* { "TH" , td_attr, HTML_TD_ATTRIBUTES, SGML_EMPTY }, */ #define T_TH 0x0400, 0x0FBCF,0x0FFFF,0x00020,0xB7FB7,0x8CF5F,0x00001 /* { "THEAD" , tr_attr, HTML_TR_ATTRIBUTES, SGML_EMPTY }, */ #define T_THEAD 0x0020, 0x00020,0x8FFFF,0x00880,0xB7FB7,0x8CF5F,0x00001 /* { "TITLE", gen_attr, HTML_GEN_ATTRIBUTES, SGML_RCDATA }, */ #define T_TITLE 0x40000,0x00000,0x00000,0x50000,0x50000,0x0031F,0x00004 /* { "TR" , tr_attr, HTML_TR_ATTRIBUTES, SGML_EMPTY }, */ #define T_TR 0x0020, 0x00400,0x8FFFF,0x00820,0xB7FB7,0x8C75F,0x00001 /* { "TT" , gen_attr, HTML_GEN_ATTRIBUTES, SGML_MIXED }, */ #define T_TT 0x0001, 0x8B04F,0x8FFFF,0xA778F,0xF7FBF,0x00001,0x00000 /* { "U" , gen_attr, HTML_GEN_ATTRIBUTES, SGML_MIXED }, */ #define T_U 0x0001, 0x8B04F,0x8FFFF,0xA778F,0xF7FBF,0x00001,0x00004 /* { "UL" , ulist_attr, HTML_UL_ATTRIBUTES, SGML_MIXED }, */ #define T_UL 0x0800, 0x0C480,0x8FFFF,0x36680,0xB7FFF,0x8075F,0x00000 /* { "VAR" , gen_attr, HTML_GEN_ATTRIBUTES, SGML_MIXED }, */ #define T_VAR 0x0002, 0x8B04F,0x8FFFF,0xA778F,0xF7FBF,0x00001,0x00000 #define T_WBR 0x0001, 0x00000,0x00000,0x3778F,0x77FBF,0x8101F,0x00001 /* { "XMP" , gen_attr, HTML_GEN_ATTRIBUTES, SGML_LITTERAL }, */ #define T_XMP 0x0800, 0x00000,0x00000,0x367E0,0x36FFF,0x0875F,0x00001 #define T__UNREC_ 0x0000, 0x00000,0x00000,0x00000,0x00000,0x00000,0x00000 /* Elements ** -------- ** ** Must match definitions in HTMLDTD.html! ** Must be in alphabetical order. ** ** The T_* extra info is listed here, but it won't matter (is not used ** in SGML.c if New_DTD is not set). This mainly simplifies comparison ** of the tags_old[] table (otherwise unchanged from original Lynx treatment) ** with the tags_new[] table below. - kw ** ** Name, Attributes, No. of attributes, content, extra info... */ static HTTag tags_old[HTML_ELEMENTS] = { { "A" , a_attr, HTML_A_ATTRIBUTES, SGML_EMPTY,T_A}, { "ABBREV" , gen_attr, HTML_GEN_ATTRIBUTES, SGML_MIXED,T_ABBREV}, { "ACRONYM" , gen_attr, HTML_GEN_ATTRIBUTES, SGML_MIXED,T_ACRONYM}, { "ADDRESS" , address_attr, HTML_ADDRESS_ATTRIBUTES, SGML_MIXED,T_ADDRESS}, { "APPLET" , applet_attr, HTML_APPLET_ATTRIBUTES, SGML_MIXED,T_APPLET}, { "AREA" , area_attr, HTML_AREA_ATTRIBUTES, SGML_EMPTY,T_AREA}, { "AU" , gen_attr, HTML_GEN_ATTRIBUTES, SGML_MIXED,T_AU}, { "AUTHOR" , gen_attr, HTML_GEN_ATTRIBUTES, SGML_MIXED,T_AUTHOR}, { "B" , gen_attr, HTML_GEN_ATTRIBUTES, SGML_EMPTY,T_B}, { "BANNER" , gen_attr, HTML_GEN_ATTRIBUTES, SGML_MIXED,T_BANNER}, { "BASE" , base_attr, HTML_BASE_ATTRIBUTES, SGML_EMPTY,T_BASE}, { "BASEFONT", font_attr, HTML_FONT_ATTRIBUTES, SGML_EMPTY,T_BASEFONT}, { "BDO" , gen_attr, HTML_GEN_ATTRIBUTES, SGML_MIXED,T_BDO}, { "BGSOUND" , bgsound_attr, HTML_BGSOUND_ATTRIBUTES, SGML_EMPTY,T_BGSOUND}, { "BIG" , gen_attr, HTML_GEN_ATTRIBUTES, SGML_MIXED,T_BIG}, { "BLINK" , gen_attr, HTML_GEN_ATTRIBUTES, SGML_EMPTY,T_BLINK}, { "BLOCKQUOTE", bq_attr, HTML_BQ_ATTRIBUTES, SGML_MIXED,T_BLOCKQUOTE}, { "BODY" , body_attr, HTML_BODY_ATTRIBUTES, SGML_MIXED,T_BODY}, { "BODYTEXT", bodytext_attr,HTML_BODYTEXT_ATTRIBUTES, SGML_MIXED,T_BODYTEXT}, { "BQ" , bq_attr, HTML_BQ_ATTRIBUTES, SGML_MIXED,T_BQ}, { "BR" , gen_attr, HTML_GEN_ATTRIBUTES, SGML_EMPTY,T_BR}, { "BUTTON" , button_attr, HTML_BUTTON_ATTRIBUTES, SGML_MIXED,T_BUTTON}, { "CAPTION" , caption_attr, HTML_CAPTION_ATTRIBUTES, SGML_MIXED,T_CAPTION}, { "CENTER" , div_attr, HTML_DIV_ATTRIBUTES, SGML_MIXED,T_CENTER}, { "CITE" , gen_attr, HTML_GEN_ATTRIBUTES, SGML_EMPTY,T_CITE}, { "CODE" , gen_attr, HTML_GEN_ATTRIBUTES, SGML_MIXED,T_CODE}, { "COL" , col_attr, HTML_COL_ATTRIBUTES, SGML_EMPTY,T_COL}, { "COLGROUP", col_attr, HTML_COL_ATTRIBUTES, SGML_EMPTY,T_COLGROUP}, { "COMMENT" , gen_attr, HTML_GEN_ATTRIBUTES, SGML_MIXED,T_COMMENT}, { "CREDIT" , credit_attr, HTML_CREDIT_ATTRIBUTES, SGML_MIXED,T_CREDIT}, { "DD" , gen_attr, HTML_GEN_ATTRIBUTES, SGML_EMPTY,T_DD}, { "DEL" , gen_attr, HTML_GEN_ATTRIBUTES, SGML_MIXED,T_DEL}, { "DFN" , gen_attr, HTML_GEN_ATTRIBUTES, SGML_MIXED,T_DFN}, { "DIR" , ulist_attr, HTML_UL_ATTRIBUTES, SGML_MIXED,T_DIR}, { "DIV" , div_attr, HTML_DIV_ATTRIBUTES, SGML_MIXED,T_DIV}, { "DL" , glossary_attr, HTML_DL_ATTRIBUTES, SGML_MIXED,T_DL}, { "DLC" , glossary_attr, HTML_DL_ATTRIBUTES, SGML_MIXED,T_DLC}, { "DT" , gen_attr, HTML_GEN_ATTRIBUTES, SGML_EMPTY,T_DT}, { "EM" , gen_attr, HTML_GEN_ATTRIBUTES, SGML_EMPTY,T_EM}, { "EMBED" , embed_attr, HTML_EMBED_ATTRIBUTES, SGML_EMPTY,T_EMBED}, { "FIELDSET", fieldset_attr,HTML_FIELDSET_ATTRIBUTES, SGML_MIXED,T_FIELDSET}, { "FIG" , fig_attr, HTML_FIG_ATTRIBUTES, SGML_MIXED,T_FIG}, { "FN" , fn_attr, HTML_FN_ATTRIBUTES, SGML_MIXED,T_FN}, { "FONT" , font_attr, HTML_FONT_ATTRIBUTES, SGML_EMPTY,T_FONT}, { "FORM" , form_attr, HTML_FORM_ATTRIBUTES, SGML_EMPTY,T_FORM}, { "FRAME" , frame_attr, HTML_FRAME_ATTRIBUTES, SGML_EMPTY,T_FRAME}, { "FRAMESET", frameset_attr,HTML_FRAMESET_ATTRIBUTES, SGML_MIXED,T_FRAMESET}, { "H1" , h_attr, HTML_H_ATTRIBUTES, SGML_MIXED,T_H1}, { "H2" , h_attr, HTML_H_ATTRIBUTES, SGML_MIXED,T_H2}, { "H3" , h_attr, HTML_H_ATTRIBUTES, SGML_MIXED,T_H3}, { "H4" , h_attr, HTML_H_ATTRIBUTES, SGML_MIXED,T_H4}, { "H5" , h_attr, HTML_H_ATTRIBUTES, SGML_MIXED,T_H5}, { "H6" , h_attr, HTML_H_ATTRIBUTES, SGML_MIXED,T_H6}, { "HEAD" , gen_attr, HTML_GEN_ATTRIBUTES, SGML_MIXED,T_HEAD}, { "HR" , hr_attr, HTML_HR_ATTRIBUTES, SGML_EMPTY,T_HR}, { "HTML" , gen_attr, HTML_GEN_ATTRIBUTES, SGML_MIXED,T_HTML}, { "HY" , gen_attr, HTML_GEN_ATTRIBUTES, SGML_EMPTY,T_HY}, { "I" , gen_attr, HTML_GEN_ATTRIBUTES, SGML_EMPTY,T_I}, { "IFRAME" , iframe_attr, HTML_IFRAME_ATTRIBUTES, SGML_MIXED,T_IFRAME}, { "IMG" , img_attr, HTML_IMG_ATTRIBUTES, SGML_EMPTY,T_IMG}, { "INPUT" , input_attr, HTML_INPUT_ATTRIBUTES, SGML_EMPTY,T_INPUT}, { "INS" , gen_attr, HTML_GEN_ATTRIBUTES, SGML_MIXED,T_INS}, { "ISINDEX" , isindex_attr, HTML_ISINDEX_ATTRIBUTES,SGML_EMPTY,T_ISINDEX}, { "KBD" , gen_attr, HTML_GEN_ATTRIBUTES, SGML_MIXED,T_KBD}, { "KEYGEN" , keygen_attr, HTML_KEYGEN_ATTRIBUTES, SGML_EMPTY,T_KEYGEN}, { "LABEL" , label_attr, HTML_LABEL_ATTRIBUTES, SGML_MIXED,T_LABEL}, { "LEGEND" , legend_attr, HTML_LEGEND_ATTRIBUTES, SGML_MIXED,T_LEGEND}, { "LH" , gen_attr, HTML_GEN_ATTRIBUTES, SGML_EMPTY,T_LH}, { "LI" , list_attr, HTML_LI_ATTRIBUTES, SGML_EMPTY,T_LI}, { "LINK" , link_attr, HTML_LINK_ATTRIBUTES, SGML_EMPTY,T_LINK}, { "LISTING" , gen_attr, HTML_GEN_ATTRIBUTES, SGML_LITTERAL,T_LISTING}, { "MAP" , map_attr, HTML_MAP_ATTRIBUTES, SGML_MIXED,T_MAP}, { "MARQUEE" , gen_attr, HTML_GEN_ATTRIBUTES, SGML_MIXED,T_MARQUEE}, { "MATH" , math_attr, HTML_MATH_ATTRIBUTES, SGML_LITTERAL,T_MATH}, { "MENU" , ulist_attr, HTML_UL_ATTRIBUTES, SGML_MIXED,T_MENU}, { "META" , meta_attr, HTML_META_ATTRIBUTES, SGML_EMPTY,T_META}, { "NEXTID" , nextid_attr, 1, SGML_EMPTY,T_NEXTID}, { "NOFRAMES", gen_attr, HTML_GEN_ATTRIBUTES, SGML_MIXED,T_NOFRAMES}, { "NOTE" , note_attr, HTML_NOTE_ATTRIBUTES, SGML_MIXED,T_NOTE}, { "OBJECT" , object_attr, HTML_OBJECT_ATTRIBUTES, SGML_LITTERAL,T_OBJECT}, { "OL" , olist_attr, HTML_OL_ATTRIBUTES, SGML_MIXED,T_OL}, { "OPTION" , option_attr, HTML_OPTION_ATTRIBUTES, SGML_EMPTY,T_OPTION}, { "OVERLAY" , overlay_attr, HTML_OVERLAY_ATTRIBUTES, SGML_EMPTY,T_OVERLAY}, { "P" , p_attr, HTML_P_ATTRIBUTES, SGML_EMPTY,T_P}, { "PARAM" , param_attr, HTML_PARAM_ATTRIBUTES, SGML_EMPTY,T_PARAM}, { "PLAINTEXT", gen_attr, HTML_GEN_ATTRIBUTES, SGML_LITTERAL,T_PLAINTEXT}, { "PRE" , gen_attr, HTML_GEN_ATTRIBUTES, SGML_MIXED,T_PRE}, { "Q" , gen_attr, HTML_GEN_ATTRIBUTES, SGML_MIXED,T_Q}, { "S" , gen_attr, HTML_GEN_ATTRIBUTES, SGML_MIXED,T_S}, { "SAMP" , gen_attr, HTML_GEN_ATTRIBUTES, SGML_MIXED,T_SAMP}, { "SCRIPT" , script_attr, HTML_SCRIPT_ATTRIBUTES, SGML_LITTERAL,T_SCRIPT}, { "SELECT" , select_attr, HTML_SELECT_ATTRIBUTES, SGML_MIXED,T_SELECT}, { "SHY" , gen_attr, HTML_GEN_ATTRIBUTES, SGML_EMPTY,T_SHY}, { "SMALL" , gen_attr, HTML_GEN_ATTRIBUTES, SGML_MIXED,T_SMALL}, { "SPAN" , gen_attr, HTML_GEN_ATTRIBUTES, SGML_MIXED,T_SPAN}, { "SPOT" , gen_attr, HTML_GEN_ATTRIBUTES, SGML_EMPTY,T_SPOT}, { "STRIKE" , gen_attr, HTML_GEN_ATTRIBUTES, SGML_MIXED,T_STRIKE}, { "STRONG" , gen_attr, HTML_GEN_ATTRIBUTES, SGML_EMPTY,T_STRONG}, { "STYLE" , style_attr, HTML_STYLE_ATTRIBUTES, SGML_LITTERAL,T_STYLE}, { "SUB" , gen_attr, HTML_GEN_ATTRIBUTES, SGML_MIXED,T_SUB}, { "SUP" , gen_attr, HTML_GEN_ATTRIBUTES, SGML_MIXED,T_SUP}, { "TAB" , tab_attr, HTML_TAB_ATTRIBUTES, SGML_EMPTY,T_TAB}, { "TABLE" , table_attr, HTML_TABLE_ATTRIBUTES, SGML_MIXED,T_TABLE}, { "TBODY" , tr_attr, HTML_TR_ATTRIBUTES, SGML_EMPTY,T_TBODY}, { "TD" , td_attr, HTML_TD_ATTRIBUTES, SGML_EMPTY,T_TD}, { "TEXTAREA", textarea_attr,HTML_TEXTAREA_ATTRIBUTES, SGML_LITTERAL,T_TEXTAREA}, { "TEXTFLOW", bodytext_attr,HTML_BODYTEXT_ATTRIBUTES, SGML_MIXED,T_TEXTFLOW}, { "TFOOT" , tr_attr, HTML_TR_ATTRIBUTES, SGML_EMPTY,T_TFOOT}, { "TH" , td_attr, HTML_TD_ATTRIBUTES, SGML_EMPTY,T_TH}, { "THEAD" , tr_attr, HTML_TR_ATTRIBUTES, SGML_EMPTY,T_THEAD}, { "TITLE", gen_attr, HTML_GEN_ATTRIBUTES, SGML_RCDATA,T_TITLE}, { "TR" , tr_attr, HTML_TR_ATTRIBUTES, SGML_EMPTY,T_TR}, { "TT" , gen_attr, HTML_GEN_ATTRIBUTES, SGML_EMPTY,T_TT}, { "U" , gen_attr, HTML_GEN_ATTRIBUTES, SGML_EMPTY,T_U}, { "UL" , ulist_attr, HTML_UL_ATTRIBUTES, SGML_MIXED,T_UL}, { "VAR" , gen_attr, HTML_GEN_ATTRIBUTES, SGML_MIXED,T_VAR}, { "WBR" , gen_attr, HTML_GEN_ATTRIBUTES, SGML_EMPTY,T_WBR}, { "XMP" , gen_attr, HTML_GEN_ATTRIBUTES, SGML_LITTERAL,T_XMP}, }; static HTTag tags_new[HTML_ELEMENTS] = { { "A" , a_attr, HTML_A_ATTRIBUTES, SGML_MIXED,T_A}, { "ABBREV" , gen_attr, HTML_GEN_ATTRIBUTES, SGML_MIXED,T_ABBREV}, { "ACRONYM" , gen_attr, HTML_GEN_ATTRIBUTES, SGML_MIXED,T_ACRONYM}, { "ADDRESS" , address_attr, HTML_ADDRESS_ATTRIBUTES, SGML_MIXED,T_ADDRESS}, { "APPLET" , applet_attr, HTML_APPLET_ATTRIBUTES, SGML_MIXED,T_APPLET}, { "AREA" , area_attr, HTML_AREA_ATTRIBUTES, SGML_EMPTY,T_AREA}, { "AU" , gen_attr, HTML_GEN_ATTRIBUTES, SGML_MIXED,T_AU}, { "AUTHOR" , gen_attr, HTML_GEN_ATTRIBUTES, SGML_MIXED,T_AUTHOR}, { "B" , gen_attr, HTML_GEN_ATTRIBUTES, SGML_MIXED,T_B}, { "BANNER" , gen_attr, HTML_GEN_ATTRIBUTES, SGML_MIXED,T_BANNER}, { "BASE" , base_attr, HTML_BASE_ATTRIBUTES, SGML_EMPTY,T_BASE}, { "BASEFONT", font_attr, HTML_FONT_ATTRIBUTES, SGML_EMPTY,T_BASEFONT}, { "BDO" , gen_attr, HTML_GEN_ATTRIBUTES, SGML_MIXED,T_BDO}, { "BGSOUND" , bgsound_attr, HTML_BGSOUND_ATTRIBUTES, SGML_EMPTY,T_BGSOUND}, { "BIG" , gen_attr, HTML_GEN_ATTRIBUTES, SGML_MIXED,T_BIG}, { "BLINK" , gen_attr, HTML_GEN_ATTRIBUTES, SGML_MIXED,T_BLINK}, { "BLOCKQUOTE", bq_attr, HTML_BQ_ATTRIBUTES, SGML_MIXED,T_BLOCKQUOTE}, { "BODY" , body_attr, HTML_BODY_ATTRIBUTES, SGML_MIXED,T_BODY}, { "BODYTEXT", bodytext_attr,HTML_BODYTEXT_ATTRIBUTES, SGML_MIXED,T_BODYTEXT}, { "BQ" , bq_attr, HTML_BQ_ATTRIBUTES, SGML_MIXED,T_BQ}, { "BR" , gen_attr, HTML_GEN_ATTRIBUTES, SGML_EMPTY,T_BR}, { "BUTTON" , button_attr, HTML_BUTTON_ATTRIBUTES, SGML_MIXED,T_BUTTON}, { "CAPTION" , caption_attr, HTML_CAPTION_ATTRIBUTES, SGML_MIXED,T_CAPTION}, { "CENTER" , div_attr, HTML_DIV_ATTRIBUTES, SGML_MIXED,T_CENTER}, { "CITE" , gen_attr, HTML_GEN_ATTRIBUTES, SGML_MIXED,T_CITE}, { "CODE" , gen_attr, HTML_GEN_ATTRIBUTES, SGML_MIXED,T_CODE}, { "COL" , col_attr, HTML_COL_ATTRIBUTES, SGML_EMPTY,T_COL}, { "COLGROUP", col_attr, HTML_COL_ATTRIBUTES, SGML_ELEMENT,T_COLGROUP}, { "COMMENT" , gen_attr, HTML_GEN_ATTRIBUTES, SGML_PCDATA,T_COMMENT}, { "CREDIT" , credit_attr, HTML_CREDIT_ATTRIBUTES, SGML_MIXED,T_CREDIT}, { "DD" , gen_attr, HTML_GEN_ATTRIBUTES, SGML_MIXED,T_DD}, { "DEL" , gen_attr, HTML_GEN_ATTRIBUTES, SGML_MIXED,T_DEL}, { "DFN" , gen_attr, HTML_GEN_ATTRIBUTES, SGML_MIXED,T_DFN}, { "DIR" , ulist_attr, HTML_UL_ATTRIBUTES, SGML_MIXED,T_DIR}, { "DIV" , div_attr, HTML_DIV_ATTRIBUTES, SGML_MIXED,T_DIV}, { "DL" , glossary_attr, HTML_DL_ATTRIBUTES, SGML_MIXED,T_DL}, { "DLC" , glossary_attr, HTML_DL_ATTRIBUTES, SGML_MIXED,T_DLC}, { "DT" , gen_attr, HTML_GEN_ATTRIBUTES, SGML_MIXED,T_DT}, { "EM" , gen_attr, HTML_GEN_ATTRIBUTES, SGML_MIXED,T_EM}, { "EMBED" , embed_attr, HTML_EMBED_ATTRIBUTES, SGML_EMPTY,T_EMBED}, { "FIELDSET", fieldset_attr,HTML_FIELDSET_ATTRIBUTES, SGML_MIXED,T_FIELDSET}, { "FIG" , fig_attr, HTML_FIG_ATTRIBUTES, SGML_MIXED,T_FIG}, { "FN" , fn_attr, HTML_FN_ATTRIBUTES, SGML_MIXED,T_FN}, { "FONT" , font_attr, HTML_FONT_ATTRIBUTES, SGML_MIXED,T_FONT}, { "FORM" , form_attr, HTML_FORM_ATTRIBUTES, SGML_MIXED,T_FORM}, { "FRAME" , frame_attr, HTML_FRAME_ATTRIBUTES, SGML_EMPTY,T_FRAME}, { "FRAMESET", frameset_attr,HTML_FRAMESET_ATTRIBUTES, SGML_ELEMENT,T_FRAMESET}, { "H1" , h_attr, HTML_H_ATTRIBUTES, SGML_MIXED,T_H1}, { "H2" , h_attr, HTML_H_ATTRIBUTES, SGML_MIXED,T_H2}, { "H3" , h_attr, HTML_H_ATTRIBUTES, SGML_MIXED,T_H3}, { "H4" , h_attr, HTML_H_ATTRIBUTES, SGML_MIXED,T_H4}, { "H5" , h_attr, HTML_H_ATTRIBUTES, SGML_MIXED,T_H5}, { "H6" , h_attr, HTML_H_ATTRIBUTES, SGML_MIXED,T_H6}, { "HEAD" , gen_attr, HTML_GEN_ATTRIBUTES, SGML_ELEMENT,T_HEAD}, { "HR" , hr_attr, HTML_HR_ATTRIBUTES, SGML_EMPTY,T_HR}, { "HTML" , gen_attr, HTML_GEN_ATTRIBUTES, SGML_MIXED,T_HTML}, { "HY" , gen_attr, HTML_GEN_ATTRIBUTES, SGML_EMPTY,T_HY}, { "I" , gen_attr, HTML_GEN_ATTRIBUTES, SGML_MIXED,T_I}, { "IFRAME" , iframe_attr, HTML_IFRAME_ATTRIBUTES, SGML_MIXED,T_IFRAME}, { "IMG" , img_attr, HTML_IMG_ATTRIBUTES, SGML_EMPTY,T_IMG}, { "INPUT" , input_attr, HTML_INPUT_ATTRIBUTES, SGML_EMPTY,T_INPUT}, { "INS" , gen_attr, HTML_GEN_ATTRIBUTES, SGML_MIXED,T_INS}, { "ISINDEX" , isindex_attr, HTML_ISINDEX_ATTRIBUTES,SGML_EMPTY,T_ISINDEX}, { "KBD" , gen_attr, HTML_GEN_ATTRIBUTES, SGML_MIXED,T_KBD}, { "KEYGEN" , keygen_attr, HTML_KEYGEN_ATTRIBUTES, SGML_EMPTY,T_KEYGEN}, { "LABEL" , label_attr, HTML_LABEL_ATTRIBUTES, SGML_MIXED,T_LABEL}, { "LEGEND" , legend_attr, HTML_LEGEND_ATTRIBUTES, SGML_MIXED,T_LEGEND}, { "LH" , gen_attr, HTML_GEN_ATTRIBUTES, SGML_MIXED,T_LH}, { "LI" , list_attr, HTML_LI_ATTRIBUTES, SGML_MIXED,T_LI}, { "LINK" , link_attr, HTML_LINK_ATTRIBUTES, SGML_EMPTY,T_LINK}, { "LISTING" , gen_attr, HTML_GEN_ATTRIBUTES, SGML_LITTERAL,T_LISTING}, { "MAP" , map_attr, HTML_MAP_ATTRIBUTES, SGML_ELEMENT,T_MAP}, { "MARQUEE" , gen_attr, HTML_GEN_ATTRIBUTES, SGML_MIXED,T_MARQUEE}, { "MATH" , math_attr, HTML_MATH_ATTRIBUTES, SGML_LITTERAL,T_MATH}, { "MENU" , ulist_attr, HTML_UL_ATTRIBUTES, SGML_MIXED,T_MENU}, { "META" , meta_attr, HTML_META_ATTRIBUTES, SGML_EMPTY,T_META}, { "NEXTID" , nextid_attr, 1, SGML_EMPTY,T_NEXTID}, { "NOFRAMES", gen_attr, HTML_GEN_ATTRIBUTES, SGML_MIXED,T_NOFRAMES}, { "NOTE" , note_attr, HTML_NOTE_ATTRIBUTES, SGML_MIXED,T_NOTE}, { "OBJECT" , object_attr, HTML_OBJECT_ATTRIBUTES, SGML_LITTERAL,T_OBJECT}, { "OL" , olist_attr, HTML_OL_ATTRIBUTES, SGML_MIXED,T_OL}, { "OPTION" , option_attr, HTML_OPTION_ATTRIBUTES, SGML_PCDATA,T_OPTION}, { "OVERLAY" , overlay_attr, HTML_OVERLAY_ATTRIBUTES, SGML_PCDATA,T_OVERLAY}, { "P" , p_attr, HTML_P_ATTRIBUTES, SGML_MIXED,T_P}, { "PARAM" , param_attr, HTML_PARAM_ATTRIBUTES, SGML_EMPTY,T_PARAM}, { "PLAINTEXT", gen_attr, HTML_GEN_ATTRIBUTES, SGML_LITTERAL,T_PLAINTEXT}, { "PRE" , gen_attr, HTML_GEN_ATTRIBUTES, SGML_MIXED,T_PRE}, { "Q" , gen_attr, HTML_GEN_ATTRIBUTES, SGML_MIXED,T_Q}, { "S" , gen_attr, HTML_GEN_ATTRIBUTES, SGML_MIXED,T_S}, { "SAMP" , gen_attr, HTML_GEN_ATTRIBUTES, SGML_MIXED,T_SAMP}, { "SCRIPT" , script_attr, HTML_SCRIPT_ATTRIBUTES, SGML_LITTERAL,T_SCRIPT}, { "SELECT" , select_attr, HTML_SELECT_ATTRIBUTES, SGML_ELEMENT,T_SELECT}, { "SHY" , gen_attr, HTML_GEN_ATTRIBUTES, SGML_EMPTY,T_SHY}, { "SMALL" , gen_attr, HTML_GEN_ATTRIBUTES, SGML_MIXED,T_SMALL}, { "SPAN" , gen_attr, HTML_GEN_ATTRIBUTES, SGML_MIXED,T_SPAN}, { "SPOT" , gen_attr, HTML_GEN_ATTRIBUTES, SGML_EMPTY,T_SPOT}, { "STRIKE" , gen_attr, HTML_GEN_ATTRIBUTES, SGML_MIXED,T_STRIKE}, { "STRONG" , gen_attr, HTML_GEN_ATTRIBUTES, SGML_MIXED,T_STRONG}, { "STYLE" , style_attr, HTML_STYLE_ATTRIBUTES, SGML_LITTERAL,T_STYLE}, { "SUB" , gen_attr, HTML_GEN_ATTRIBUTES, SGML_MIXED,T_SUB}, { "SUP" , gen_attr, HTML_GEN_ATTRIBUTES, SGML_MIXED,T_SUP}, { "TAB" , tab_attr, HTML_TAB_ATTRIBUTES, SGML_EMPTY,T_TAB}, { "TABLE" , table_attr, HTML_TABLE_ATTRIBUTES, SGML_ELEMENT,T_TABLE}, { "TBODY" , tr_attr, HTML_TR_ATTRIBUTES, SGML_ELEMENT,T_TBODY}, { "TD" , td_attr, HTML_TD_ATTRIBUTES, SGML_MIXED,T_TD}, { "TEXTAREA", textarea_attr,HTML_TEXTAREA_ATTRIBUTES, SGML_LITTERAL,T_TEXTAREA}, { "TEXTFLOW", bodytext_attr,HTML_BODYTEXT_ATTRIBUTES, SGML_MIXED,T_TEXTFLOW}, { "TFOOT" , tr_attr, HTML_TR_ATTRIBUTES, SGML_ELEMENT,T_TFOOT}, { "TH" , td_attr, HTML_TD_ATTRIBUTES, SGML_MIXED,T_TH}, { "THEAD" , tr_attr, HTML_TR_ATTRIBUTES, SGML_ELEMENT,T_THEAD}, { "TITLE" , gen_attr, HTML_GEN_ATTRIBUTES, SGML_PCDATA,T_TITLE}, { "TR" , tr_attr, HTML_TR_ATTRIBUTES, SGML_MIXED,T_TR}, { "TT" , gen_attr, HTML_GEN_ATTRIBUTES, SGML_MIXED,T_TT}, { "U" , gen_attr, HTML_GEN_ATTRIBUTES, SGML_MIXED,T_U}, { "UL" , ulist_attr, HTML_UL_ATTRIBUTES, SGML_MIXED,T_UL}, { "VAR" , gen_attr, HTML_GEN_ATTRIBUTES, SGML_MIXED,T_VAR}, { "WBR" , gen_attr, HTML_GEN_ATTRIBUTES, SGML_EMPTY,T_WBR}, { "XMP" , gen_attr, HTML_GEN_ATTRIBUTES, SGML_LITTERAL,T_XMP}, }; /* Dummy space, will be filled with the contents of either tags_new or tags_old on calling HTSwitchDTD - kw */ static HTTag tags[HTML_ELEMENTS]; PUBLIC CONST SGML_dtd HTML_dtd = { tags, HTML_ELEMENTS, entities, sizeof(entities)/sizeof(char*), extra_entities, sizeof(extra_entities)/sizeof(UC_entity_info), }; /* This function fills the "tags" part of the HTML_dtd structure with what we want to use, either tags_old or tags_new. Note that it has to be called at least once before HTML_dtd is used, otherwise the HTML_dtd contents will be invalid! This could be coded in a way that would make an initialisation call unnecessary, but my C knowledge is limited and I didn't want to list the whole tags_new table twice... - kw */ PUBLIC void HTSwitchDTD ARGS1( BOOL, new) { if (TRACE) fprintf(stderr,"HTMLDTD: Copying DTD element info of size %d, %d * %d\n", new ? sizeof(tags_new) : sizeof(tags_old), HTML_ELEMENTS, sizeof(HTTag)); if (new) memcpy(tags, tags_new, HTML_ELEMENTS * sizeof(HTTag)); else memcpy(tags, tags_old, HTML_ELEMENTS * sizeof(HTTag)); } PUBLIC CONST HTTag HTTag_unrecognized = { NULL, NULL, 0, SGML_EMPTY,T__UNREC_}; /* ** Utility Routine: Useful for people building HTML objects. */ /* Start anchor element ** -------------------- ** ** It is kinda convenient to have a particulr routine for ** starting an anchor element, as everything else for HTML is ** simple anyway. */ struct _HTStructured { HTStructuredClass * isa; /* ... */ }; PUBLIC void HTStartAnchor ARGS3( HTStructured *, obj, CONST char *, name, CONST char *, href) { BOOL present[HTML_A_ATTRIBUTES]; CONST char * value[HTML_A_ATTRIBUTES]; int i; for (i = 0; i < HTML_A_ATTRIBUTES; i++) present[i] = NO; if (name && *name) { present[HTML_A_NAME] = YES; value[HTML_A_NAME] = (CONST char *)name; } if (href) { present[HTML_A_HREF] = YES; value[HTML_A_HREF] = (CONST char *)href; } (*obj->isa->start_element)(obj, HTML_A, present, value, -1, 0); } PUBLIC void HTStartIsIndex ARGS3( HTStructured *, obj, CONST char *, prompt, CONST char *, href) { BOOL present[HTML_ISINDEX_ATTRIBUTES]; CONST char * value[HTML_ISINDEX_ATTRIBUTES]; int i; for (i = 0; i < HTML_ISINDEX_ATTRIBUTES; i++) present[i] = NO; if (prompt && *prompt) { present[HTML_ISINDEX_PROMPT] = YES; value[HTML_ISINDEX_PROMPT] = (CONST char *)prompt; } if (href) { present[HTML_ISINDEX_HREF] = YES; value[HTML_ISINDEX_HREF] = (CONST char *)href; } (*obj->isa->start_element)(obj, HTML_ISINDEX , present, value, -1, 0); }