Пример #1
0
const struct attrs *findAttr(register const char *str, register unsigned int len)
{
    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 + spool_attr;

                if(*str == *s && !strncmp(str + 1, s + 1, len - 1) && s[len] == '\0')
                    return &wordlist_attr[index];
            }
        }
    }
    return 0;
}
Пример #2
0
__inline
#endif
const struct attrs *
findAttr (register const char *str, register unsigned int len)
{
  enum
    {
      TOTAL_KEYWORDS = 136,
      MIN_WORD_LENGTH = 2,
      MAX_WORD_LENGTH = 14,
      MIN_HASH_VALUE = 19,
      MAX_HASH_VALUE = 1189
    };

  static const struct attrs wordlist_attr[] =
    {
      {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0},
      {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0},
      {"", 0},
      {"link", ATTR_LINK},
      {"", 0}, {"", 0}, {"", 0}, {"", 0},
      {"size", ATTR_SIZE},
      {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0},
      {"left", ATTR_LEFT},
      {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0},
      {"", 0},
      {"title", ATTR_TITLE},
      {"", 0}, {"", 0}, {"", 0},
      {"text", ATTR_TEXT},
      {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0},
      {"", 0}, {"", 0}, {"", 0}, {"", 0},
      {"rel", ATTR_REL},
      {"rows", ATTR_ROWS},
      {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0},
      {"", 0}, {"", 0}, {"", 0}, {"", 0},
      {"for", ATTR_FOR},
      {"", 0}, {"", 0}, {"", 0},
      {"onreset", ATTR_ONRESET},
      {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0},
      {"noresize", ATTR_NORESIZE},
      {"", 0}, {"", 0}, {"", 0}, {"", 0},
      {"alt", ATTR_ALT},
      {"html", ATTR_HTML},
      {"alink", ATTR_ALINK},
      {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0},
      {"axis", ATTR_AXIS},
      {"vlink", ATTR_VLINK},
      {"", 0},
      {"unknown", ATTR_UNKNOWN},
      {"", 0}, {"", 0},
      {"label", ATTR_LABEL},
      {"", 0}, {"", 0}, {"", 0},
      {"href", ATTR_HREF},
      {"", 0},
      {"nohref", ATTR_NOHREF},
      {"", 0},
      {"top", ATTR_TOP},
      {"name", ATTR_NAME},
      {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0},
      {"style", ATTR_STYLE},
      {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0},
      {"lang", ATTR_LANG},
      {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0},
      {"", 0},
      {"align", ATTR_ALIGN},
      {"", 0}, {"", 0},
      {"rev", ATTR_REV},
      {"", 0}, {"", 0}, {"", 0},
      {"id", ATTR_ID},
      {"", 0}, {"", 0}, {"", 0},
      {"height", ATTR_HEIGHT},
      {"", 0}, {"", 0}, {"", 0},
      {"rules", ATTR_RULES},
      {"", 0},
      {"version", ATTR_VERSION},
      {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0},
      {"start", ATTR_START},
      {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0},
      {"span", ATTR_SPAN},
      {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0},
      {"z-index", ATTR_Z_INDEX},
      {"", 0}, {"", 0},
      {"plain", ATTR_PLAIN},
      {"onblur", ATTR_ONBLUR},
      {"profile", ATTR_PROFILE},
      {"", 0}, {"", 0},
      {"frame", ATTR_FRAME},
      {"", 0}, {"", 0},
      {"onsubmit", ATTR_ONSUBMIT},
      {"abbr", ATTR_ABBR},
      {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0},
      {"width", ATTR_WIDTH},
      {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0},
      {"dir", ATTR_DIR},
      {"", 0},
      {"shape", ATTR_SHAPE},
      {"", 0}, {"", 0}, {"", 0}, {"", 0},
      {"defer", ATTR_DEFER},
      {"onload", ATTR_ONLOAD},
      {"", 0}, {"", 0},
      {"type", ATTR_TYPE},
      {"", 0},
      {"target", ATTR_TARGET},
      {"", 0}, {"", 0}, {"", 0},
      {"ismap", ATTR_ISMAP},
      {"valign", ATTR_VALIGN},
      {"", 0}, {"", 0}, {"", 0}, {"", 0},
      {"method", ATTR_METHOD},
      {"", 0}, {"", 0},
      {"wrap", ATTR_WRAP},
      {"", 0},
      {"nowrap", ATTR_NOWRAP},
      {"rowspan", ATTR_ROWSPAN},
      {"", 0},
      {"maxlength", ATTR_MAXLENGTH},
      {"", 0}, {"", 0}, {"", 0},
      {"hreflang", ATTR_HREFLANG},
      {"", 0},
      {"pagex", ATTR_PAGEX},
      {"", 0}, {"", 0}, {"", 0}, {"", 0},
      {"onmouseout", ATTR_ONMOUSEOUT},
      {"", 0},
      {"noshade", ATTR_NOSHADE},
      {"", 0},
      {"onkeydown", ATTR_ONKEYDOWN},
      {"value", ATTR_VALUE},
      {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0},
      {"multiple", ATTR_MULTIPLE},
      {"cols", ATTR_COLS},
      {"media", ATTR_MEDIA},
      {"onmousemove", ATTR_ONMOUSEMOVE},
      {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0},
      {"onkeypress", ATTR_ONKEYPRESS},
      {"", 0}, {"", 0}, {"", 0}, {"", 0},
      {"visibility", ATTR_VISIBILITY},
      {"onmousedown", ATTR_ONMOUSEDOWN},
      {"", 0},
      {"onselect", ATTR_ONSELECT},
      {"", 0}, {"", 0},
      {"onmouseover", ATTR_ONMOUSEOVER},
      {"", 0},
      {"tabindex", ATTR_TABINDEX},
      {"cite", ATTR_CITE},
      {"", 0},
      {"border", ATTR_BORDER},
      {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0},
      {"content", ATTR_CONTENT},
      {"datetime", ATTR_DATETIME},
      {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0},
      {"data", ATTR_DATA},
      {"", 0}, {"", 0},
      {"onkeyup", ATTR_ONKEYUP},
      {"", 0}, {"", 0}, {"", 0},
      {"usemap", ATTR_USEMAP},
      {"headers", ATTR_HEADERS},
      {"onunload", ATTR_ONUNLOAD},
      {"", 0}, {"", 0},
      {"prompt", ATTR_PROMPT},
      {"", 0}, {"", 0}, {"", 0}, {"", 0},
      {"object", ATTR_OBJECT},
      {"", 0},
      {"src", ATTR_SRC},
      {"", 0},
      {"color", ATTR_COLOR},
      {"hidden", ATTR_HIDDEN},
      {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0},
      {"onmouseup", ATTR_ONMOUSEUP},
      {"pagey", ATTR_PAGEY},
      {"", 0}, {"", 0}, {"", 0}, {"", 0},
      {"class", ATTR_CLASS},
      {"scheme", ATTR_SCHEME},
      {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0},
      {"", 0}, {"", 0}, {"", 0},
      {"face", ATTR_FACE},
      {"", 0}, {"", 0}, {"", 0},
      {"language", ATTR_LANGUAGE},
      {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0},
      {"scope", ATTR_SCOPE},
      {"action", ATTR_ACTION},
      {"standby", ATTR_STANDBY},
      {"", 0}, {"", 0},
      {"http-equiv", ATTR_HTTP_EQUIV},
      {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0},
      {"onfocus", ATTR_ONFOCUS},
      {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0},
      {"readonly", ATTR_READONLY},
      {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0},
      {"", 0},
      {"scrolling", ATTR_SCROLLING},
      {"", 0}, {"", 0},
      {"marginheight", ATTR_MARGINHEIGHT},
      {"disabled", ATTR_DISABLED},
      {"", 0},
      {"clear", ATTR_CLEAR},
      {"", 0}, {"", 0}, {"", 0},
      {"code", ATTR_CODE},
      {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0},
      {"bgcolor", ATTR_BGCOLOR},
      {"", 0}, {"", 0}, {"", 0}, {"", 0},
      {"summary", ATTR_SUMMARY},
      {"", 0},
      {"pluginurl", ATTR_PLUGINURL},
      {"", 0}, {"", 0}, {"", 0},
      {"selected", ATTR_SELECTED},
      {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0},
      {"onchange", ATTR_ONCHANGE},
      {"char", ATTR_CHAR},
      {"", 0}, {"", 0},
      {"bgproperties", ATTR_BGPROPERTIES},
      {"", 0}, {"", 0}, {"", 0}, {"", 0},
      {"colspan", ATTR_COLSPAN},
      {"", 0}, {"", 0}, {"", 0},
      {"marginwidth", ATTR_MARGINWIDTH},
      {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0},
      {"charset", ATTR_CHARSET},
      {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0},
      {"", 0},
      {"longdesc", ATTR_LONGDESC},
      {"", 0}, {"", 0},
      {"coords", ATTR_COORDS},
      {"charoff", ATTR_CHAROFF},
      {"", 0}, {"", 0}, {"", 0}, {"", 0},
      {"oversrc", ATTR_OVERSRC},
      {"", 0}, {"", 0}, {"", 0},
      {"hspace", ATTR_HSPACE},
      {"", 0}, {"", 0},
      {"valuetype", ATTR_VALUETYPE},
      {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0},
      {"frameborder", ATTR_FRAMEBORDER},
      {"enctype", ATTR_ENCTYPE},
      {"", 0}, {"", 0}, {"", 0}, {"", 0},
      {"classid", ATTR_CLASSID},
      {"", 0}, {"", 0},
      {"pluginpage", ATTR_PLUGINPAGE},
      {"pluginspage", ATTR_PLUGINSPAGE},
      {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0},
      {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0},
      {"codebase", ATTR_CODEBASE},
      {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0},
      {"", 0}, {"", 0}, {"", 0},
      {"vspace", ATTR_VSPACE},
      {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0},
      {"archive", ATTR_ARCHIVE},
      {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0},
      {"declare", ATTR_DECLARE},
      {"", 0}, {"", 0}, {"", 0}, {"", 0},
      {"onclick", ATTR_ONCLICK},
      {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0},
      {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0},
      {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0},
      {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0},
      {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0},
      {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0},
      {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0},
      {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0},
      {"", 0},
      {"bordercolor", ATTR_BORDERCOLOR},
      {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0},
      {"codetype", ATTR_CODETYPE},
      {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0},
      {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0},
      {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0},
      {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0},
      {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0},
      {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0},
      {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0},
      {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0},
      {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0},
      {"", 0}, {"", 0},
      {"checked", ATTR_CHECKED},
      {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0},
      {"accesskey", ATTR_ACCESSKEY},
      {"ondblclick", ATTR_ONDBLCLICK},
      {"accept", ATTR_ACCEPT},
      {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0},
      {"background", ATTR_BACKGROUND},
      {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0},
      {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0},
      {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0},
      {"", 0}, {"", 0}, {"", 0}, {"", 0},
      {"compact", ATTR_COMPACT},
      {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0},
      {"", 0}, {"", 0}, {"", 0}, {"", 0},
      {"cellspacing", ATTR_CELLSPACING},
      {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0},
      {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0},
      {"cellpadding", ATTR_CELLPADDING},
      {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0},
      {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0},
      {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0},
      {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0},
      {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0},
      {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0},
      {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0},
      {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0},
      {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0},
      {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0},
      {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0},
      {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0},
      {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0},
      {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0},
      {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0},
      {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0},
      {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0},
      {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0},
      {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0},
      {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0},
      {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0},
      {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0},
      {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0},
      {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0},
      {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0},
      {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0},
      {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0},
      {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0},
      {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0},
      {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0},
      {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0},
      {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0},
      {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0},
      {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0},
      {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0},
      {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0},
      {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0},
      {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0},
      {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0},
      {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0},
      {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0},
      {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0},
      {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0},
      {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0},
      {"accept-charset", ATTR_ACCEPT_CHARSET}
    };

  if (len <= MAX_WORD_LENGTH && len >= MIN_WORD_LENGTH)
    {
      register int key = hash_attr (str, len);

      if (key <= MAX_HASH_VALUE && key >= 0)
        {
          register const char *s = wordlist_attr[key].name;

          if (*str == *s && !strcmp (str + 1, s + 1))
            return &wordlist_attr[key];
        }
    }
  return 0;
}