/* ANSI-C code produced by gperf version 2.7.2 */ /* Command-line: gperf -c -a -L ANSI-C -D -E -C -o -t -k '*' -NfindAttr -Hhash_attr -Wwordlist_attr -s 2 htmlattrs.gperf */ /* This file is automatically generated from #htmlattrs.in by makeattrs, do not edit */ /* Copyright 1999 Lars Knoll */ #include "htmlattrs.h" struct attrs { const char *name; int id; }; /* maximum key range = 1148, duplicates = 1 */ #ifdef __GNUC__ __inline #else #ifdef __cplusplus inline #endif #endif static unsigned int hash_attr (register const char *str, register unsigned int len) { static const unsigned short asso_values[] = { 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 5, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 45, 65, 10, 50, 0, 160, 80, 85, 175, 0, 115, 0, 0, 0, 0, 0, 5, 25, 5, 0, 30, 130, 205, 30, 240, 25, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151 }; register int hval = len; switch (hval) { default: case 15: hval += asso_values[(unsigned char)str[14]]; case 14: hval += asso_values[(unsigned char)str[13]]; case 13: hval += asso_values[(unsigned char)str[12]]; case 12: hval += asso_values[(unsigned char)str[11]]; case 11: hval += asso_values[(unsigned char)str[10]]; case 10: hval += asso_values[(unsigned char)str[9]]; case 9: hval += asso_values[(unsigned char)str[8]]; case 8: hval += asso_values[(unsigned char)str[7]]; case 7: hval += asso_values[(unsigned char)str[6]]; case 6: hval += asso_values[(unsigned char)str[5]]; case 5: hval += asso_values[(unsigned char)str[4]]; case 4: hval += asso_values[(unsigned char)str[3]]; case 3: hval += asso_values[(unsigned char)str[2]]; case 2: hval += asso_values[(unsigned char)str[1]]; case 1: hval += asso_values[(unsigned char)str[0]]; break; } return hval; } #ifdef __GNUC__ __inline #endif const struct attrs * findAttr (register const char *str, register unsigned int len) { enum { TOTAL_KEYWORDS = 154, MIN_WORD_LENGTH = 2, MAX_WORD_LENGTH = 15, MIN_HASH_VALUE = 3, MAX_HASH_VALUE = 1150 }; static const struct attrs wordlist_attr[] = { {"top", ATTR_TOP}, {"loop", ATTR_LOOP}, {"content", ATTR_CONTENT}, {"cols", ATTR_COLS}, {"scope", ATTR_SCOPE}, {"onselect", ATTR_ONSELECT}, {"rel", ATTR_REL}, {"prompt", ATTR_PROMPT}, {"text", ATTR_TEXT}, {"onreset", ATTR_ONRESET}, {"color", ATTR_COLOR}, {"src", ATTR_SRC}, {"alt", ATTR_ALT}, {"name", ATTR_NAME}, {"span", ATTR_SPAN}, {"code", ATTR_CODE}, {"rules", ATTR_RULES}, {"colspan", ATTR_COLSPAN}, {"class", ATTR_CLASS}, {"accept", ATTR_ACCEPT}, {"compact", ATTR_COMPACT}, {"selected", ATTR_SELECTED}, {"onmouseup", ATTR_ONMOUSEUP}, {"onmouseout", ATTR_ONMOUSEOUT}, {"start", ATTR_START}, {"object", ATTR_OBJECT}, {"onerror", ATTR_ONERROR}, {"oncontextmenu", ATTR_ONCONTEXTMENU}, {"clear", ATTR_CLEAR}, {"usemap", ATTR_USEMAP}, {"html", ATTR_HTML}, {"coords", ATTR_COORDS}, {"autocomplete", ATTR_AUTOCOMPLETE}, {"onload", ATTR_ONLOAD}, {"scheme", ATTR_SCHEME}, {"label", ATTR_LABEL}, {"truespeed", ATTR_TRUESPEED}, {"onblur", ATTR_ONBLUR}, {"scrollamount", ATTR_SCROLLAMOUNT}, {"lang", ATTR_LANG}, {"onunload", ATTR_ONUNLOAD}, {"declare", ATTR_DECLARE}, {"shape", ATTR_SHAPE}, {"method", ATTR_METHOD}, {"onabort", ATTR_ONABORT}, {"data", ATTR_DATA}, {"hspace", ATTR_HSPACE}, {"longdesc", ATTR_LONGDESC}, {"target", ATTR_TARGET}, {"rev", ATTR_REV}, {"pagex", ATTR_PAGEX}, {"left", ATTR_LEFT}, {"char", ATTR_CHAR}, {"border", ATTR_BORDER}, {"onmousemove", ATTR_ONMOUSEMOVE}, {"charset", ATTR_CHARSET}, {"title", ATTR_TITLE}, {"codebase", ATTR_CODEBASE}, {"nosave", ATTR_NOSAVE}, {"bgcolor", ATTR_BGCOLOR}, {"for", ATTR_FOR}, {"cite", ATTR_CITE}, {"noshade", ATTR_NOSHADE}, {"vspace", ATTR_VSPACE}, {"onmouseover", ATTR_ONMOUSEOVER}, {"oversrc", ATTR_OVERSRC}, {"abbr", ATTR_ABBR}, {"size", ATTR_SIZE}, {"value", ATTR_VALUE}, {"bordercolor", ATTR_BORDERCOLOR}, {"onfocus", ATTR_ONFOCUS}, {"multiple", ATTR_MULTIPLE}, {"headers", ATTR_HEADERS}, {"face", ATTR_FACE}, {"plain", ATTR_PLAIN}, {"id", ATTR_ID}, {"onchange", ATTR_ONCHANGE}, {"challenge", ATTR_CHALLENGE}, {"ismap", ATTR_ISMAP}, {"frame", ATTR_FRAME}, {"action", ATTR_ACTION}, {"noresize", ATTR_NORESIZE}, {"onresize", ATTR_ONRESIZE}, {"rows", ATTR_ROWS}, {"defer", ATTR_DEFER}, {"type", ATTR_TYPE}, {"maxlength", ATTR_MAXLENGTH}, {"style", ATTR_STYLE}, {"dir", ATTR_DIR}, {"accept-charset", ATTR_ACCEPT_CHARSET}, {"enctype", ATTR_ENCTYPE}, {"axis", ATTR_AXIS}, {"href", ATTR_HREF}, {"media", ATTR_MEDIA}, {"nohref", ATTR_NOHREF}, {"checked", ATTR_CHECKED}, {"datetime", ATTR_DATETIME}, {"wrap", ATTR_WRAP}, {"nowrap", ATTR_NOWRAP}, {"onsubmit", ATTR_ONSUBMIT}, {"rowspan", ATTR_ROWSPAN}, {"language", ATTR_LANGUAGE}, {"z-index", ATTR_Z_INDEX}, {"link", ATTR_LINK}, {"classid", ATTR_CLASSID}, {"onmousedown", ATTR_ONMOUSEDOWN}, {"scrolling", ATTR_SCROLLING}, {"align", ATTR_ALIGN}, {"codetype", ATTR_CODETYPE}, {"onclick", ATTR_ONCLICK}, {"topmargin", ATTR_TOPMARGIN}, {"cellspacing", ATTR_CELLSPACING}, {"alink", ATTR_ALINK}, {"version", ATTR_VERSION}, {"pluginurl", ATTR_PLUGINURL}, {"summary", ATTR_SUMMARY}, {"unknown", ATTR_UNKNOWN}, {"contenteditable", ATTR_CONTENTEDITABLE}, {"hidden", ATTR_HIDDEN}, {"profile", ATTR_PROFILE}, {"readonly", ATTR_READONLY}, {"pagey", ATTR_PAGEY}, {"tabindex", ATTR_TABINDEX}, {"scrolldelay", ATTR_SCROLLDELAY}, {"bgproperties", ATTR_BGPROPERTIES}, {"onkeyup", ATTR_ONKEYUP}, {"disabled", ATTR_DISABLED}, {"onkeypress", ATTR_ONKEYPRESS}, {"hreflang", ATTR_HREFLANG}, {"frameborder", ATTR_FRAMEBORDER}, {"standby", ATTR_STANDBY}, {"pluginpage", ATTR_PLUGINPAGE}, {"cellpadding", ATTR_CELLPADDING}, {"vlink", ATTR_VLINK}, {"pluginspage", ATTR_PLUGINSPAGE}, {"background", ATTR_BACKGROUND}, {"height", ATTR_HEIGHT}, {"ondblclick", ATTR_ONDBLCLICK}, {"valign", ATTR_VALIGN}, {"accesskey", ATTR_ACCESSKEY}, {"http-equiv", ATTR_HTTP_EQUIV}, {"direction", ATTR_DIRECTION}, {"valuetype", ATTR_VALUETYPE}, {"archive", ATTR_ARCHIVE}, {"charoff", ATTR_CHAROFF}, {"leftmargin", ATTR_LEFTMARGIN}, {"mayscript", ATTR_MAYSCRIPT}, {"width", ATTR_WIDTH}, {"behavior", ATTR_BEHAVIOR}, {"keytype", ATTR_KEYTYPE}, {"onkeydown", ATTR_ONKEYDOWN}, {"marginheight", ATTR_MARGINHEIGHT}, {"marginwidth", ATTR_MARGINWIDTH}, {"visibility", ATTR_VISIBILITY} }; static const short lookup[] = { -1, -1, -1, 0, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2, -1, 3, 4, -1, -1, 5, -1, -1, -1, -1, 6, -1, -1, 7, -1, -1, 8, -1, -1, 9, -1, -1, 10, -1, -1, 11, -1, -1, -1, -1, 12, 13, -1, -1, -1, -1, 14, -1, -1, -1, -1, -1, -1, -1, -1, -1, 15, 16, -1, 17, -1, -1, 18, 19, 20, 21, 22, 23, -1, -1, -1, -1, 24, 25, 26, 27, -1, 28, 29, -1, -1, 30, -1, -1, -1, -1, -1, -1, 31, 32, -1, -1, -1, 33, -1, -1, -1, -1, 34, -1, -1, -1, -1, -1, -1, -1, -1, 35, -1, -1, -1, 36, -1, -1, -1, -1, -1, -1, 37, 38, -1, 39, -1, -1, -1, 40, -1, -1, -1, 41, -1, -1, 42, 43, 44, -1, 45, -1, -1, -1, -1, -1, -1, 46, -1, 47, -1, -1, 48, -1, 49, -1, 50, -1, -1, -1, 51, -1, -1, -1, -1, 52, -1, 53, -1, -1, -1, -1, 54, 55, -1, -1, 56, -1, -1, 57, -1, -1, 58, 59, 60, 61, -1, -1, 62, -1, -1, -1, 63, -1, -1, -1, -1, 64, 65, -1, 66, -1, -1, -1, -1, 67, 68, 69, 70, 71, -1, -1, -1, 72, -1, 73, -1, -1, -1, -1, -1, 74, -1, 75, 76, 77, 78, -1, -1, -1, -1, 79, 80, -1, -396, 83, 84, -73, -2, -1, 85, -1, -1, -1, -1, 86, 87, -1, -1, 88, 89, -1, -1, 90, -1, 91, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 92, 93, 94, 95, 96, 97, -1, 98, -1, 99, -1, -1, -1, 100, 101, -1, -1, -1, 102, -1, 103, -1, -1, 104, -1, -1, -1, 105, -1, -1, 106, 107, -1, -1, 108, -1, -1, -1, -1, -1, -1, -1, -1, 109, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 110, -1, 111, -1, -1, -1, 112, -1, 113, -1, -1, -1, -1, -1, -1, 114, -1, -1, 115, -1, -1, -1, -1, 116, -1, -1, 117, -1, -1, -1, -1, -1, 118, 119, 120, -1, 121, -1, -1, 122, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 123, 124, -1, -1, -1, -1, 125, -1, -1, -1, -1, -1, 126, -1, 127, -1, -1, 128, -1, -1, 129, -1, -1, -1, -1, -1, 130, -1, -1, -1, -1, -1, -1, -1, 131, 132, -1, -1, -1, 133, 134, -1, -1, -1, 135, 136, -1, -1, -1, 137, 138, -1, -1, 139, 140, -1, -1, -1, 141, -1, -1, -1, -1, -1, -1, -1, -1, -1, 142, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 143, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 144, -1, -1, 145, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 146, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 147, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 148, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 149, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 150, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 151, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 152, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 153 }; if (len <= MAX_WORD_LENGTH && len >= MIN_WORD_LENGTH) { register int key = hash_attr (str, len); if (key <= MAX_HASH_VALUE && key >= 0) { register int index = lookup[key]; if (index >= 0) { register const char *s = wordlist_attr[index].name; if (*str == *s && !strncmp (str + 1, s + 1, len - 1) && s[len] == '\0') return &wordlist_attr[index]; } else if (index < -TOTAL_KEYWORDS) { register int offset = - 1 - TOTAL_KEYWORDS - index; register const struct attrs *wordptr = &wordlist_attr[TOTAL_KEYWORDS + lookup[offset]]; register const struct attrs *wordendptr = wordptr + -lookup[offset + 1]; while (wordptr < wordendptr) { register const char *s = wordptr->name; if (*str == *s && !strncmp (str + 1, s + 1, len - 1) && s[len] == '\0') return wordptr; wordptr++; } } } } return 0; } static const char * const attrList[] = { "ABBR", "ACCEPT-CHARSET", "ACCEPT", "ACCESSKEY", "ACTION", "ALIGN", "ALINK", "ALT", "ARCHIVE", "AUTOCOMPLETE", "AXIS", "BACKGROUND", "BEHAVIOR", "BGCOLOR", "BGPROPERTIES", "BORDER", "BORDERCOLOR", "CELLPADDING", "CELLSPACING", "CHAR", "CHALLENGE", "CHAROFF", "CHARSET", "CHECKED", "CITE", "CLASS", "CLASSID", "CLEAR", "CODE", "CODEBASE", "CODETYPE", "COLOR", "COLS", "COLSPAN", "COMPACT", "CONTENT", "CONTENTEDITABLE", "COORDS", "DATA", "DATETIME", "DECLARE", "DEFER", "DIR", "DIRECTION", "DISABLED", "ENCTYPE", "FACE", "FOR", "FRAME", "FRAMEBORDER", "HEADERS", "HEIGHT", "HIDDEN", "HREF", "HREFLANG", "HSPACE", "HTML", "HTTP-EQUIV", "ID", "ISMAP", "KEYTYPE", "LABEL", "LANG", "LANGUAGE", "LEFT", "LEFTMARGIN", "LINK", "LONGDESC", "LOOP", "MARGINHEIGHT", "MARGINWIDTH", "MAXLENGTH", "MAYSCRIPT", "MEDIA", "METHOD", "MULTIPLE", "NAME", "NOHREF", "NORESIZE", "NOSAVE", "NOSHADE", "NOWRAP", "OBJECT", "ONABORT", "ONBLUR", "ONCHANGE", "ONCLICK", "ONCONTEXTMENU", "ONDBLCLICK", "ONERROR", "ONFOCUS", "ONKEYDOWN", "ONKEYPRESS", "ONKEYUP", "ONLOAD", "ONMOUSEDOWN", "ONMOUSEMOVE", "ONMOUSEOUT", "ONMOUSEOVER", "ONMOUSEUP", "ONRESET", "ONRESIZE", "ONSELECT", "ONSUBMIT", "ONUNLOAD", "OVERSRC", "PAGEX", "PAGEY", "PLAIN", "PLUGINPAGE", "PLUGINSPAGE", "PLUGINURL", "PROFILE", "PROMPT", "READONLY", "REL", "REV", "ROWS", "ROWSPAN", "RULES", "SCHEME", "SCOPE", "SCROLLAMOUNT", "SCROLLDELAY", "SCROLLING", "SELECTED", "SHAPE", "SIZE", "SPAN", "SRC", "STANDBY", "START", "STYLE", "SUMMARY", "TABINDEX", "TARGET", "TEXT", "TITLE", "TOP", "TOPMARGIN", "TRUESPEED", "TYPE", "UNKNOWN", "USEMAP", "VALIGN", "VALUE", "VALUETYPE", "VERSION", "VISIBILITY", "VLINK", "VSPACE", "WIDTH", "WRAP", "Z-INDEX", 0 }; DOMString getAttrName(unsigned short id) { return attrList[id-1]; };