root/lib/libncurses/include/comp_userdefs.c
/*
 * generated by ./tinfo/MKuserdefs.sh
 */

/*
 *    comp_userdefs.c -- The names of widely used user-defined capabilities
 *                       indexed via a hash table for the compiler.
 *
 */

#include <curses.priv.h>
#include <tic.h>
#include <hashsize.h>

#if NCURSES_XNAMES
/* 10 collisions out of 90 entries */
static const char user_names_text[] = \
"E3\0" "RGB\0" "TS\0" "U8\0" "XM\0" "grbom\0" "gsbom\0" "xm\0" "AN\0" \
"AX\0" "C0\0" "C8\0" "CE\0" "CS\0" "E0\0" "G0\0" "KJ\0" "OL\0" "S0\0" \
"TF\0" "WS\0" "XC\0" "XT\0" "Z0\0" "Z1\0" "Cr\0" "Cs\0" "Csr\0" "Ms\0" \
"Se\0" "Smulx\0" "Ss\0" "rmxx\0" "smxx\0" "kDC3\0" "kDC4\0" "kDC5\0" \
"kDC6\0" "kDC7\0" "kDN\0" "kDN3\0" "kDN4\0" "kDN5\0" "kDN6\0" "kDN7\0" \
"kEND3\0" "kEND4\0" "kEND5\0" "kEND6\0" "kEND7\0" "kHOM3\0" "kHOM4\0" \
"kHOM5\0" "kHOM6\0" "kHOM7\0" "kIC3\0" "kIC4\0" "kIC5\0" "kIC6\0" \
"kIC7\0" "kLFT3\0" "kLFT4\0" "kLFT5\0" "kLFT6\0" "kLFT7\0" "kNXT3\0" \
"kNXT4\0" "kNXT5\0" "kNXT6\0" "kNXT7\0" "kPRV3\0" "kPRV4\0" "kPRV5\0" \
"kPRV6\0" "kPRV7\0" "kRIT3\0" "kRIT4\0" "kRIT5\0" "kRIT6\0" "kRIT7\0" \
"kUP\0" "kUP3\0" "kUP4\0" "kUP5\0" "kUP6\0" "kUP7\0" "ka2\0" "kb1\0" \
"kb3\0" "kc2\0" ;

static user_table_data const user_names_data[] =
{
        {               0,      (1<<STRING),    0,0,      0,  -1 },
        {               3,      (1<<BOOLEAN|1<<NUMBER|1<<STRING),       0,0,      1,  -1 },
        {               7,      (1<<STRING),    0,0,      2,  -1 },
        {              10,      (1<<NUMBER),    0,0,      1,  -1 },
        {              13,      (1<<STRING),    1,0,      3,  -1 },
        {              16,      (1<<STRING),    0,0,      4,  -1 },
        {              22,      (1<<STRING),    0,0,      5,  -1 },
        {              28,      (1<<STRING),    8,8,     14,  -1 },
        {              31,      (1<<BOOLEAN),   0,0,      1,  -1 },
        {              34,      (1<<BOOLEAN),   0,0,      2,  -1 },
        {              37,      (1<<STRING),    0,0,     15,  -1 },
        {              40,      (1<<BOOLEAN),   0,0,      3,  -1 },
        {              43,      (1<<STRING),    0,0,     16,  -1 },
        {              46,      (1<<STRING),    0,0,     17,  -1 },
        {              49,      (1<<STRING),    0,0,     18,  -1 },
        {              52,      (1<<BOOLEAN),   0,0,      4,  -1 },
        {              55,      (1<<STRING),    1,1,     19,  -1 },
        {              58,      (1<<NUMBER),    0,0,      2,  -1 },
        {              61,      (1<<STRING),    1,1,     20,  -1 },
        {              64,      (1<<BOOLEAN),   0,0,      5,  -1 },
        {              67,      (1<<STRING),    2,0,     21,  -1 },
        {              70,      (1<<STRING),    1,1,     22,  -1 },
        {              73,      (1<<BOOLEAN),   0,0,      6,  -1 },
        {              76,      (1<<STRING),    0,0,     23,  -1 },
        {              79,      (1<<STRING),    0,0,     24,  -1 },
        {              82,      (1<<STRING),    0,0,     25,  -1 },
        {              85,      (1<<STRING),    1,1,     26,  -1 },
        {              88,      (1<<STRING),    1,0,     27,  -1 },
        {              92,      (1<<STRING),    2,3,     28,  -1 },
        {              95,      (1<<STRING),    0,0,     29,  -1 },
        {              98,      (1<<STRING),    1,0,     30,  -1 },
        {             104,      (1<<STRING),    1,0,     31,  -1 },
        {             107,      (1<<STRING),    0,0,     32,  -1 },
        {             112,      (1<<STRING),    0,0,     33,  -1 },
        {             117,      (1<<STRING),    0,0,     34,  -1 },
        {             122,      (1<<STRING),    0,0,     35,  -1 },
        {             127,      (1<<STRING),    0,0,     36,  -1 },
        {             132,      (1<<STRING),    0,0,     37,  -1 },
        {             137,      (1<<STRING),    0,0,     38,   8 },
        {             142,      (1<<STRING),    0,0,     39,  -1 },
        {             146,      (1<<STRING),    0,0,     40,  -1 },
        {             151,      (1<<STRING),    0,0,     41,  -1 },
        {             156,      (1<<STRING),    0,0,     42,  -1 },
        {             161,      (1<<STRING),    0,0,     43,   9 },
        {             166,      (1<<STRING),    0,0,     44,  -1 },
        {             171,      (1<<STRING),    0,0,     45,  -1 },
        {             177,      (1<<STRING),    0,0,     46,  -1 },
        {             183,      (1<<STRING),    0,0,     47,  -1 },
        {             189,      (1<<STRING),    0,0,     48,  -1 },
        {             195,      (1<<STRING),    0,0,     49,  -1 },
        {             201,      (1<<STRING),    0,0,     50,  -1 },
        {             207,      (1<<STRING),    0,0,     51,  -1 },
        {             213,      (1<<STRING),    0,0,     52,  -1 },
        {             219,      (1<<STRING),    0,0,     53,  -1 },
        {             225,      (1<<STRING),    0,0,     54,  -1 },
        {             231,      (1<<STRING),    0,0,     55,  -1 },
        {             236,      (1<<STRING),    0,0,     56,  -1 },
        {             241,      (1<<STRING),    0,0,     57,  -1 },
        {             246,      (1<<STRING),    0,0,     58,  -1 },
        {             251,      (1<<STRING),    0,0,     59,  -1 },
        {             256,      (1<<STRING),    0,0,     60,  52 },
        {             262,      (1<<STRING),    0,0,     61,  53 },
        {             268,      (1<<STRING),    0,0,     62,  54 },
        {             274,      (1<<STRING),    0,0,     63,  -1 },
        {             280,      (1<<STRING),    0,0,     64,  -1 },
        {             286,      (1<<STRING),    0,0,     65,  -1 },
        {             292,      (1<<STRING),    0,0,     66,  -1 },
        {             298,      (1<<STRING),    0,0,     67,  -1 },
        {             304,      (1<<STRING),    0,0,     68,  -1 },
        {             310,      (1<<STRING),    0,0,     69,  -1 },
        {             316,      (1<<STRING),    0,0,     70,  -1 },
        {             322,      (1<<STRING),    0,0,     71,  -1 },
        {             328,      (1<<STRING),    0,0,     72,  65 },
        {             334,      (1<<STRING),    0,0,     73,  66 },
        {             340,      (1<<STRING),    0,0,     74,  67 },
        {             346,      (1<<STRING),    0,0,     75,  -1 },
        {             352,      (1<<STRING),    0,0,     76,  -1 },
        {             358,      (1<<STRING),    0,0,     77,  -1 },
        {             364,      (1<<STRING),    0,0,     78,  -1 },
        {             370,      (1<<STRING),    0,0,     79,  -1 },
        {             376,      (1<<STRING),    0,0,     80,  -1 },
        {             380,      (1<<STRING),    0,0,     81,  -1 },
        {             385,      (1<<STRING),    0,0,     82,  -1 },
        {             390,      (1<<STRING),    0,0,     83,  -1 },
        {             395,      (1<<STRING),    0,0,     84,  -1 },
        {             400,      (1<<STRING),    0,0,     85,  -1 },
        {             405,      (1<<STRING),    0,0,     86,  -1 },
        {             409,      (1<<STRING),    0,0,     87,  86 },
        {             413,      (1<<STRING),    0,0,     88,  -1 },
        {             417,      (1<<STRING),    0,0,     89,  88 } 
};

static struct user_table_entry *_nc_user_table = 0;

static const HashValue _nc_user_hash_table[995] =
{
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         57,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         61,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         40,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
          6,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         44,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         75,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         87,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         79,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         46,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         19,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         73,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         29,
         34,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         16,
         -1,
         -1,
         -1,
         -1,
         82,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         38,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         50,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
          0,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         58,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         27,
         -1,
         62,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         41,
         -1,
          7,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         76,
         -1,
         -1,
         32,
         33,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         47,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         21,
         -1,
         -1,
         70,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         74,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         35,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         30,
         -1,
         -1,
         -1,
         -1,
         -1,
         83,
         -1,
         -1,
         -1,
         -1,
         -1,
         10,
         -1,
         14,
         -1,
         15,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         55,
         -1,
         -1,
         18,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         23,
         51,
         -1,
          1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         59,
         -1,
         13,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         63,
         -1,
         -1,
         -1,
         -1,
         -1,
         25,
         -1,
          2,
         -1,
         11,
         20,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         42,
         -1,
         -1,
         -1,
         -1,
          3,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         77,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         89,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         48,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         71,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         68,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         36,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         17,
         84,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         56,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         24,
         60,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         80,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         64,
         -1,
         -1,
          5,
         -1,
         -1,
         26,
         -1,
         -1,
         -1,
         -1,
         -1,
         22,
         -1,
         -1,
         -1,
         28,
         -1,
         -1,
         -1,
         -1,
         -1,
         31,
         43,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         39,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         78,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         45,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         12,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         49,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         72,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         81,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         69,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         37,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         85,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
         -1,
          4,
         -1,
         -1,
        0       /* base-of-table */
};


#define USERTABSIZE SIZEOF(user_names_data)

#if 1
static void
next_string(const char *strings, unsigned *offset)
{
    *offset += (unsigned) strlen(strings + *offset) + 1;
}

static const struct user_table_entry *
_nc_build_names(struct user_table_entry **actual,
                const user_table_data *source,
                const char *strings)
{
    if (*actual == 0) {
        *actual = typeCalloc(struct user_table_entry, USERTABSIZE);
        if (*actual != 0) {
            unsigned n;
            unsigned len = 0;
            for (n = 0; n < USERTABSIZE; ++n) {
                (*actual)[n].ute_name = strings + len;
                (*actual)[n].ute_type = (int) source[n].ute_type;
                (*actual)[n].ute_argc = source[n].ute_argc;
                (*actual)[n].ute_args = source[n].ute_args;
                (*actual)[n].ute_index = source[n].ute_index;
                (*actual)[n].ute_link = source[n].ute_link;
                next_string(strings, &len);
            }
        }
    }
    return *actual;
}

#define build_names(root) _nc_build_names(&_nc_##root##_table, \
                                          root##_names_data, \
                                          root##_names_text)
#else
#define build_names(root) _nc_ ## root ## _table
#endif

NCURSES_EXPORT(const struct user_table_entry *) _nc_get_userdefs_table (void)
{
    return build_names(user) ;
}

static HashValue
info_hash(const char *string)
{
    long sum = 0;

    DEBUG(9, ("hashing %s", string));
    while (*string) {
        sum += (long) (*string + (*(string + 1) << 8));
        string++;
    }

    DEBUG(9, ("sum is %ld", sum));
    return (HashValue) (sum % HASHTABSIZE);
}

static int
compare_info_names(const char *a, const char *b)
{
    return !strcmp(a, b);
}

static const HashData hash_data[] = {
    { HASHTABSIZE, _nc_user_hash_table, info_hash, compare_info_names }
};

NCURSES_EXPORT(const HashData *) _nc_get_hash_user (void)
{
    return hash_data;
}

#if NO_LEAKS
NCURSES_EXPORT(void) _nc_comp_userdefs_leaks(void)
{
#if 1
    FreeIfNeeded(_nc_user_table);
#endif
}
#endif /* NO_LEAKS */

#else /*! NCURSES_XNAMES */
NCURSES_EXPORT(void) _nc_comp_userdefs(void);
NCURSES_EXPORT(void) _nc_comp_userdefs(void) { }
#endif /* NCURSES_XNAMES */