Annotation of embedaddon/ntp/sntp/libopts/xat-attribute.c, revision 1.1.1.1

1.1       misho       1: /* ANSI-C code produced by gperf version 3.0.4 */
                      2: 
                      3: 
                      4: #if 0 /* gperf build options: */
                      5: // %struct-type
                      6: // %language=ANSI-C
                      7: // %includes
                      8: // %global-table
                      9: // %omit-struct-type
                     10: // %readonly-tables
                     11: // %compare-strncmp
                     12: // 
                     13: // %define slot-name               xat_name
                     14: // %define hash-function-name      xat_attribute_hash
                     15: // %define lookup-function-name    find_xat_attribute_name
                     16: // %define word-array-name         xat_attribute_table
                     17: // %define initializer-suffix      ,XAT_COUNT_KWD
                     18: #endif /* gperf build options: */
                     19: 
                     20: #include "xat-attribute.h"
                     21: 
                     22: typedef struct {
                     23:     char const *    xat_name;
                     24:     xat_attribute_enum_t   xat_id;
                     25: } xat_attribute_map_t;
                     26: #include <string.h>
                     27: 
                     28: /* maximum key range = 9, duplicates = 0 */
                     29: 
                     30: #ifdef __GNUC__
                     31: #else
                     32: #ifdef __cplusplus
                     33: #endif
                     34: #endif
                     35: inline static unsigned int
                     36: xat_attribute_hash (register const char *str, register unsigned int len)
                     37: {
                     38:   static const unsigned char asso_values[] =
                     39:     {
                     40:       13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
                     41:       13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
                     42:       13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
                     43:       13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
                     44:       13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
                     45:       13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
                     46:       13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
                     47:       13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
                     48:       13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
                     49:       13, 13, 13, 13, 13, 13, 13, 13, 13,  0,
                     50:       13, 13, 13, 13, 13,  5, 13,  5, 13,  0,
                     51:       13, 13, 13, 13, 13, 13,  0,  0, 13,  0,
                     52:       13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
                     53:       13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
                     54:       13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
                     55:       13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
                     56:       13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
                     57:       13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
                     58:       13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
                     59:       13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
                     60:       13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
                     61:       13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
                     62:       13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
                     63:       13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
                     64:       13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
                     65:       13, 13, 13, 13, 13, 13
                     66:     };
                     67:   return len + asso_values[(unsigned char)str[0]];
                     68: }
                     69: 
                     70: static const xat_attribute_map_t xat_attribute_table[] =
                     71:   {
                     72:     {"",XAT_COUNT_KWD}, {"",XAT_COUNT_KWD},
                     73:     {"",XAT_COUNT_KWD}, {"",XAT_COUNT_KWD},
                     74:     {"type",            XAT_KWD_TYPE},
                     75:     {"words",           XAT_KWD_WORDS},
                     76:     {"cooked",          XAT_KWD_COOKED},
                     77:     {"members",         XAT_KWD_MEMBERS},
                     78:     {"uncooked",        XAT_KWD_UNCOOKED},
                     79:     {"keep",            XAT_KWD_KEEP},
                     80:     {"",XAT_COUNT_KWD}, {"",XAT_COUNT_KWD},
                     81:     {"invalid",         XAT_KWD_INVALID}
                     82:   };
                     83: 
                     84: #ifdef __GNUC__
                     85: #if defined __GNUC_STDC_INLINE__ || defined __GNUC_GNU_INLINE__
                     86: __attribute__ ((__gnu_inline__))
                     87: #endif
                     88: #endif
                     89: static inline const xat_attribute_map_t *
                     90: find_xat_attribute_name (register const char *str, register unsigned int len)
                     91: {
                     92:   if (len <= 8 && len >= 4)
                     93:     {
                     94:       register int key = xat_attribute_hash (str, len);
                     95: 
                     96:       if (key <= 12 && key >= 0)
                     97:         {
                     98:           register const char *s = xat_attribute_table[key].xat_name;
                     99: 
                    100:           if (*str == *s && !strncmp (str + 1, s + 1, len - 1) && s[len] == '\0')
                    101:             return &xat_attribute_table[key];
                    102:         }
                    103:     }
                    104:   return 0;
                    105: }
                    106: 
                    107: 
                    108: xat_attribute_enum_t
                    109: find_xat_attribute_id(char const * str, unsigned int len)
                    110: {
                    111:     const xat_attribute_map_t * p =
                    112:         find_xat_attribute_name(str, len);
                    113:     return (p == 0) ? XAT_KWD_INVALID : p->xat_id;
                    114: }

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>