/* -*- C -*- code produced by gperf version 2.1 (K&R C version) */
/* -- modified jmacd@cs.berkeley.edu */
/* Command-line: jgperf -A -G -C -a -t -T -p -N is_file_attribute -H is_file_attribute_hash */
#include "prcs.h"
#include "projdesc.h"
#define MIN_WORD_LENGTH 4
#define MAX_WORD_LENGTH 19
#define MIN_HASH_VALUE 4
#define MAX_HASH_VALUE 41
/*
23 keywords
38 is the maximum key range
*/
int
is_file_attribute_hash (register const char *str, register int len)
{
static const unsigned char hash_table[] =
{
41, 41, 41, 41, 41, 41, 41, 41, 41, 41,
41, 41, 41, 41, 41, 41, 41, 41, 41, 41,
41, 41, 41, 41, 41, 41, 41, 41, 41, 41,
41, 41, 41, 41, 41, 41, 41, 41, 41, 41,
41, 41, 41, 41, 41, 41, 41, 41, 20, 5,
10, 15, 0, 20, 25, 30, 3, 18, 0, 41,
41, 41, 41, 41, 41, 41, 41, 41, 41, 41,
41, 41, 41, 41, 41, 41, 41, 41, 41, 41,
41, 41, 41, 41, 41, 41, 41, 41, 41, 41,
41, 41, 41, 41, 41, 41, 41, 41, 41, 41,
41, 5, 41, 0, 41, 41, 41, 0, 15, 41,
41, 41, 41, 41, 41, 25, 41, 41, 41, 41,
41, 0, 41, 41, 41, 41, 41, 41,
};
return len + hash_table[str[len - 1]] + hash_table[str[0]];
}
const class AttrDesc wordlist[] =
{
{"",}, {"",}, {"",}, {"",},
{":tag", TagAttr},
{"",}, {"",}, {"",},
{":symlink", SymlinkAttr},
{"",},
{":directory", DirectoryAttr},
{":mergerule4", Mergerule4Attr},
{":mergerule14", Mergerule14Attr},
{"",},
{":mergerule8", Mergerule8Attr},
{":real-file", RealFileAttr},
{":mergerule1", Mergerule1Attr},
{":mergerule11", Mergerule11Attr},
{":project-file", ProjectFileAttr},
{":implicit-directory", ImplicitDirectoryAttr},
{"",},
{":mergerule2", Mergerule2Attr},
{":mergerule12", Mergerule12Attr},
{"",},
{":difftool", DifftoolAttr},
{":mergetool", MergetoolAttr},
{":mergerule3", Mergerule3Attr},
{":mergerule13", Mergerule13Attr},
{"",},
{":mergerule9", Mergerule9Attr},
{"",},
{":mergerule5", Mergerule5Attr},
{":mergerule10", Mergerule10Attr},
{"",}, {"",}, {"",},
{":mergerule6", Mergerule6Attr},
{":no-keywords", NoKeywordAttr},
{"",}, {"",}, {"",},
{":mergerule7", Mergerule7Attr},
};
const class AttrDesc *
is_file_attribute (register const char *str, register int len)
{
if (len <= MAX_WORD_LENGTH && len >= MIN_WORD_LENGTH)
{
register int key = is_file_attribute_hash (str, len);
if (key <= MAX_HASH_VALUE && key >= MIN_HASH_VALUE)
{
register const char *s = wordlist[key].name;
if (*s == *str && !strcmp (str + 1, s + 1))
return &wordlist[key];
}
}
return 0;
}
syntax highlighted by Code2HTML, v. 0.9.1