836 lines
24 KiB
C
836 lines
24 KiB
C
/* C code produced by gperf version 3.0.1 */
|
|
/* Command-line: gperf --output-file atoms.c atoms.gperf */
|
|
/* Computed positions: -k'3,6,9,$' */
|
|
|
|
#if !((' ' == 32) && ('!' == 33) && ('"' == 34) && ('#' == 35) \
|
|
&& ('%' == 37) && ('&' == 38) && ('\'' == 39) && ('(' == 40) \
|
|
&& (')' == 41) && ('*' == 42) && ('+' == 43) && (',' == 44) \
|
|
&& ('-' == 45) && ('.' == 46) && ('/' == 47) && ('0' == 48) \
|
|
&& ('1' == 49) && ('2' == 50) && ('3' == 51) && ('4' == 52) \
|
|
&& ('5' == 53) && ('6' == 54) && ('7' == 55) && ('8' == 56) \
|
|
&& ('9' == 57) && (':' == 58) && (';' == 59) && ('<' == 60) \
|
|
&& ('=' == 61) && ('>' == 62) && ('?' == 63) && ('A' == 65) \
|
|
&& ('B' == 66) && ('C' == 67) && ('D' == 68) && ('E' == 69) \
|
|
&& ('F' == 70) && ('G' == 71) && ('H' == 72) && ('I' == 73) \
|
|
&& ('J' == 74) && ('K' == 75) && ('L' == 76) && ('M' == 77) \
|
|
&& ('N' == 78) && ('O' == 79) && ('P' == 80) && ('Q' == 81) \
|
|
&& ('R' == 82) && ('S' == 83) && ('T' == 84) && ('U' == 85) \
|
|
&& ('V' == 86) && ('W' == 87) && ('X' == 88) && ('Y' == 89) \
|
|
&& ('Z' == 90) && ('[' == 91) && ('\\' == 92) && (']' == 93) \
|
|
&& ('^' == 94) && ('_' == 95) && ('a' == 97) && ('b' == 98) \
|
|
&& ('c' == 99) && ('d' == 100) && ('e' == 101) && ('f' == 102) \
|
|
&& ('g' == 103) && ('h' == 104) && ('i' == 105) && ('j' == 106) \
|
|
&& ('k' == 107) && ('l' == 108) && ('m' == 109) && ('n' == 110) \
|
|
&& ('o' == 111) && ('p' == 112) && ('q' == 113) && ('r' == 114) \
|
|
&& ('s' == 115) && ('t' == 116) && ('u' == 117) && ('v' == 118) \
|
|
&& ('w' == 119) && ('x' == 120) && ('y' == 121) && ('z' == 122) \
|
|
&& ('{' == 123) && ('|' == 124) && ('}' == 125) && ('~' == 126))
|
|
/* The character set is not based on ISO-646. */
|
|
error "gperf generated tables don't work with this execution character set. Please report a bug to <bug-gnu-gperf@gnu.org>."
|
|
#endif
|
|
|
|
#line 1 "atoms.gperf"
|
|
|
|
|
|
/* Rely on vasprintf (GNU extension) instead of vsnprintf if
|
|
possible... */
|
|
#ifdef HAVE_VASPRINTF
|
|
#define _GNU_SOURCE
|
|
#include <stdio.h>
|
|
#endif
|
|
|
|
#include <xcb/xcb.h>
|
|
#include <stdlib.h>
|
|
#include <stdarg.h>
|
|
#include "xcb_atom.h"
|
|
|
|
const xcb_atom_t PRIMARY = 1;
|
|
const xcb_atom_t SECONDARY = 2;
|
|
const xcb_atom_t ARC = 3;
|
|
const xcb_atom_t ATOM = 4;
|
|
const xcb_atom_t BITMAP = 5;
|
|
const xcb_atom_t CARDINAL = 6;
|
|
const xcb_atom_t COLORMAP = 7;
|
|
const xcb_atom_t CURSOR = 8;
|
|
const xcb_atom_t CUT_BUFFER0 = 9;
|
|
const xcb_atom_t CUT_BUFFER1 = 10;
|
|
const xcb_atom_t CUT_BUFFER2 = 11;
|
|
const xcb_atom_t CUT_BUFFER3 = 12;
|
|
const xcb_atom_t CUT_BUFFER4 = 13;
|
|
const xcb_atom_t CUT_BUFFER5 = 14;
|
|
const xcb_atom_t CUT_BUFFER6 = 15;
|
|
const xcb_atom_t CUT_BUFFER7 = 16;
|
|
const xcb_atom_t DRAWABLE = 17;
|
|
const xcb_atom_t FONT = 18;
|
|
const xcb_atom_t INTEGER = 19;
|
|
const xcb_atom_t PIXMAP = 20;
|
|
const xcb_atom_t POINT = 21;
|
|
const xcb_atom_t RECTANGLE = 22;
|
|
const xcb_atom_t RESOURCE_MANAGER = 23;
|
|
const xcb_atom_t RGB_COLOR_MAP = 24;
|
|
const xcb_atom_t RGB_BEST_MAP = 25;
|
|
const xcb_atom_t RGB_BLUE_MAP = 26;
|
|
const xcb_atom_t RGB_DEFAULT_MAP = 27;
|
|
const xcb_atom_t RGB_GRAY_MAP = 28;
|
|
const xcb_atom_t RGB_GREEN_MAP = 29;
|
|
const xcb_atom_t RGB_RED_MAP = 30;
|
|
const xcb_atom_t STRING = 31;
|
|
const xcb_atom_t VISUALID = 32;
|
|
const xcb_atom_t WINDOW = 33;
|
|
const xcb_atom_t WM_COMMAND = 34;
|
|
const xcb_atom_t WM_HINTS = 35;
|
|
const xcb_atom_t WM_CLIENT_MACHINE = 36;
|
|
const xcb_atom_t WM_ICON_NAME = 37;
|
|
const xcb_atom_t WM_ICON_SIZE = 38;
|
|
const xcb_atom_t WM_NAME = 39;
|
|
const xcb_atom_t WM_NORMAL_HINTS = 40;
|
|
const xcb_atom_t WM_SIZE_HINTS = 41;
|
|
const xcb_atom_t WM_ZOOM_HINTS = 42;
|
|
const xcb_atom_t MIN_SPACE = 43;
|
|
const xcb_atom_t NORM_SPACE = 44;
|
|
const xcb_atom_t MAX_SPACE = 45;
|
|
const xcb_atom_t END_SPACE = 46;
|
|
const xcb_atom_t SUPERSCRIPT_X = 47;
|
|
const xcb_atom_t SUPERSCRIPT_Y = 48;
|
|
const xcb_atom_t SUBSCRIPT_X = 49;
|
|
const xcb_atom_t SUBSCRIPT_Y = 50;
|
|
const xcb_atom_t UNDERLINE_POSITION = 51;
|
|
const xcb_atom_t UNDERLINE_THICKNESS = 52;
|
|
const xcb_atom_t STRIKEOUT_ASCENT = 53;
|
|
const xcb_atom_t STRIKEOUT_DESCENT = 54;
|
|
const xcb_atom_t ITALIC_ANGLE = 55;
|
|
const xcb_atom_t X_HEIGHT = 56;
|
|
const xcb_atom_t QUAD_WIDTH = 57;
|
|
const xcb_atom_t WEIGHT = 58;
|
|
const xcb_atom_t POINT_SIZE = 59;
|
|
const xcb_atom_t RESOLUTION = 60;
|
|
const xcb_atom_t COPYRIGHT = 61;
|
|
const xcb_atom_t NOTICE = 62;
|
|
const xcb_atom_t FONT_NAME = 63;
|
|
const xcb_atom_t FAMILY_NAME = 64;
|
|
const xcb_atom_t FULL_NAME = 65;
|
|
const xcb_atom_t CAP_HEIGHT = 66;
|
|
const xcb_atom_t WM_CLASS = 67;
|
|
const xcb_atom_t WM_TRANSIENT_FOR = 68;
|
|
#line 93 "atoms.gperf"
|
|
struct atom_map { int name; xcb_atom_t value; };
|
|
#include <string.h>
|
|
/* maximum key range = 146, duplicates = 0 */
|
|
|
|
#ifdef __GNUC__
|
|
__inline
|
|
#else
|
|
#ifdef __cplusplus
|
|
inline
|
|
#endif
|
|
#endif
|
|
static unsigned int
|
|
hash (str, len)
|
|
register const char *str;
|
|
register unsigned int len;
|
|
{
|
|
static const unsigned char asso_values[] =
|
|
{
|
|
150, 150, 150, 150, 150, 150, 150, 150, 150, 150,
|
|
150, 150, 150, 150, 150, 150, 150, 150, 150, 150,
|
|
150, 150, 150, 150, 150, 150, 150, 150, 150, 150,
|
|
150, 150, 150, 150, 150, 150, 150, 150, 150, 150,
|
|
150, 150, 150, 150, 150, 150, 150, 150, 75, 70,
|
|
65, 60, 40, 35, 20, 5, 150, 150, 150, 150,
|
|
150, 150, 150, 150, 150, 35, 0, 45, 15, 0,
|
|
150, 50, 0, 5, 150, 150, 15, 35, 0, 40,
|
|
5, 150, 10, 15, 0, 25, 150, 20, 70, 40,
|
|
55, 150, 150, 150, 150, 15, 150, 150, 150, 150,
|
|
150, 150, 150, 150, 150, 150, 150, 150, 150, 150,
|
|
150, 150, 150, 150, 150, 150, 150, 150, 150, 150,
|
|
150, 150, 150, 150, 150, 150, 150, 150, 150, 150,
|
|
150, 150, 150, 150, 150, 150, 150, 150, 150, 150,
|
|
150, 150, 150, 150, 150, 150, 150, 150, 150, 150,
|
|
150, 150, 150, 150, 150, 150, 150, 150, 150, 150,
|
|
150, 150, 150, 150, 150, 150, 150, 150, 150, 150,
|
|
150, 150, 150, 150, 150, 150, 150, 150, 150, 150,
|
|
150, 150, 150, 150, 150, 150, 150, 150, 150, 150,
|
|
150, 150, 150, 150, 150, 150, 150, 150, 150, 150,
|
|
150, 150, 150, 150, 150, 150, 150, 150, 150, 150,
|
|
150, 150, 150, 150, 150, 150, 150, 150, 150, 150,
|
|
150, 150, 150, 150, 150, 150, 150, 150, 150, 150,
|
|
150, 150, 150, 150, 150, 150, 150, 150, 150, 150,
|
|
150, 150, 150, 150, 150, 150, 150, 150, 150, 150,
|
|
150, 150, 150, 150, 150, 150
|
|
};
|
|
register int hval = len;
|
|
|
|
switch (hval)
|
|
{
|
|
default:
|
|
hval += asso_values[(unsigned char)str[8]];
|
|
/*FALLTHROUGH*/
|
|
case 8:
|
|
case 7:
|
|
case 6:
|
|
hval += asso_values[(unsigned char)str[5]];
|
|
/*FALLTHROUGH*/
|
|
case 5:
|
|
case 4:
|
|
case 3:
|
|
hval += asso_values[(unsigned char)str[2]];
|
|
break;
|
|
}
|
|
return hval + asso_values[(unsigned char)str[len - 1]];
|
|
}
|
|
|
|
struct stringpool_t
|
|
{
|
|
char stringpool_str4[sizeof("FONT")];
|
|
char stringpool_str6[sizeof("NOTICE")];
|
|
char stringpool_str9[sizeof("FONT_NAME")];
|
|
char stringpool_str10[sizeof("POINT")];
|
|
char stringpool_str11[sizeof("WEIGHT")];
|
|
char stringpool_str14[sizeof("MIN_SPACE")];
|
|
char stringpool_str15[sizeof("CAP_HEIGHT")];
|
|
char stringpool_str16[sizeof("BITMAP")];
|
|
char stringpool_str17[sizeof("INTEGER")];
|
|
char stringpool_str19[sizeof("COPYRIGHT")];
|
|
char stringpool_str24[sizeof("FULL_NAME")];
|
|
char stringpool_str26[sizeof("STRIKEOUT_ASCENT")];
|
|
char stringpool_str27[sizeof("STRIKEOUT_DESCENT")];
|
|
char stringpool_str28[sizeof("RGB_GREEN_MAP")];
|
|
char stringpool_str29[sizeof("END_SPACE")];
|
|
char stringpool_str32[sizeof("RGB_BEST_MAP")];
|
|
char stringpool_str33[sizeof("CARDINAL")];
|
|
char stringpool_str36[sizeof("CURSOR")];
|
|
char stringpool_str37[sizeof("WM_CLIENT_MACHINE")];
|
|
char stringpool_str38[sizeof("WM_HINTS")];
|
|
char stringpool_str41[sizeof("CUT_BUFFER7")];
|
|
char stringpool_str42[sizeof("RGB_GRAY_MAP")];
|
|
char stringpool_str43[sizeof("DRAWABLE")];
|
|
char stringpool_str45[sizeof("RGB_DEFAULT_MAP")];
|
|
char stringpool_str46[sizeof("WINDOW")];
|
|
char stringpool_str47[sizeof("RGB_BLUE_MAP")];
|
|
char stringpool_str48[sizeof("UNDERLINE_POSITION")];
|
|
char stringpool_str51[sizeof("RGB_RED_MAP")];
|
|
char stringpool_str53[sizeof("VISUALID")];
|
|
char stringpool_str54[sizeof("RECTANGLE")];
|
|
char stringpool_str56[sizeof("CUT_BUFFER6")];
|
|
char stringpool_str57[sizeof("WM_NAME")];
|
|
char stringpool_str58[sizeof("X_HEIGHT")];
|
|
char stringpool_str61[sizeof("SUBSCRIPT_Y")];
|
|
char stringpool_str62[sizeof("PRIMARY")];
|
|
char stringpool_str63[sizeof("COLORMAP")];
|
|
char stringpool_str64[sizeof("UNDERLINE_THICKNESS")];
|
|
char stringpool_str65[sizeof("QUAD_WIDTH")];
|
|
char stringpool_str66[sizeof("RESOURCE_MANAGER")];
|
|
char stringpool_str67[sizeof("WM_ICON_NAME")];
|
|
char stringpool_str68[sizeof("RGB_COLOR_MAP")];
|
|
char stringpool_str70[sizeof("WM_NORMAL_HINTS")];
|
|
char stringpool_str71[sizeof("CUT_BUFFER5")];
|
|
char stringpool_str73[sizeof("WM_CLASS")];
|
|
char stringpool_str75[sizeof("WM_COMMAND")];
|
|
char stringpool_str76[sizeof("CUT_BUFFER4")];
|
|
char stringpool_str78[sizeof("SUPERSCRIPT_Y")];
|
|
char stringpool_str79[sizeof("ATOM")];
|
|
char stringpool_str80[sizeof("NORM_SPACE")];
|
|
char stringpool_str81[sizeof("WM_TRANSIENT_FOR")];
|
|
char stringpool_str82[sizeof("WM_ICON_SIZE")];
|
|
char stringpool_str83[sizeof("WM_ZOOM_HINTS")];
|
|
char stringpool_str84[sizeof("MAX_SPACE")];
|
|
char stringpool_str85[sizeof("POINT_SIZE")];
|
|
char stringpool_str86[sizeof("PIXMAP")];
|
|
char stringpool_str90[sizeof("RESOLUTION")];
|
|
char stringpool_str91[sizeof("SUBSCRIPT_X")];
|
|
char stringpool_str92[sizeof("ITALIC_ANGLE")];
|
|
char stringpool_str93[sizeof("ARC")];
|
|
char stringpool_str96[sizeof("CUT_BUFFER3")];
|
|
char stringpool_str98[sizeof("WM_SIZE_HINTS")];
|
|
char stringpool_str101[sizeof("CUT_BUFFER2")];
|
|
char stringpool_str106[sizeof("CUT_BUFFER1")];
|
|
char stringpool_str108[sizeof("SUPERSCRIPT_X")];
|
|
char stringpool_str111[sizeof("CUT_BUFFER0")];
|
|
char stringpool_str116[sizeof("STRING")];
|
|
char stringpool_str121[sizeof("FAMILY_NAME")];
|
|
char stringpool_str149[sizeof("SECONDARY")];
|
|
};
|
|
static const struct stringpool_t stringpool_contents =
|
|
{
|
|
"FONT",
|
|
"NOTICE",
|
|
"FONT_NAME",
|
|
"POINT",
|
|
"WEIGHT",
|
|
"MIN_SPACE",
|
|
"CAP_HEIGHT",
|
|
"BITMAP",
|
|
"INTEGER",
|
|
"COPYRIGHT",
|
|
"FULL_NAME",
|
|
"STRIKEOUT_ASCENT",
|
|
"STRIKEOUT_DESCENT",
|
|
"RGB_GREEN_MAP",
|
|
"END_SPACE",
|
|
"RGB_BEST_MAP",
|
|
"CARDINAL",
|
|
"CURSOR",
|
|
"WM_CLIENT_MACHINE",
|
|
"WM_HINTS",
|
|
"CUT_BUFFER7",
|
|
"RGB_GRAY_MAP",
|
|
"DRAWABLE",
|
|
"RGB_DEFAULT_MAP",
|
|
"WINDOW",
|
|
"RGB_BLUE_MAP",
|
|
"UNDERLINE_POSITION",
|
|
"RGB_RED_MAP",
|
|
"VISUALID",
|
|
"RECTANGLE",
|
|
"CUT_BUFFER6",
|
|
"WM_NAME",
|
|
"X_HEIGHT",
|
|
"SUBSCRIPT_Y",
|
|
"PRIMARY",
|
|
"COLORMAP",
|
|
"UNDERLINE_THICKNESS",
|
|
"QUAD_WIDTH",
|
|
"RESOURCE_MANAGER",
|
|
"WM_ICON_NAME",
|
|
"RGB_COLOR_MAP",
|
|
"WM_NORMAL_HINTS",
|
|
"CUT_BUFFER5",
|
|
"WM_CLASS",
|
|
"WM_COMMAND",
|
|
"CUT_BUFFER4",
|
|
"SUPERSCRIPT_Y",
|
|
"ATOM",
|
|
"NORM_SPACE",
|
|
"WM_TRANSIENT_FOR",
|
|
"WM_ICON_SIZE",
|
|
"WM_ZOOM_HINTS",
|
|
"MAX_SPACE",
|
|
"POINT_SIZE",
|
|
"PIXMAP",
|
|
"RESOLUTION",
|
|
"SUBSCRIPT_X",
|
|
"ITALIC_ANGLE",
|
|
"ARC",
|
|
"CUT_BUFFER3",
|
|
"WM_SIZE_HINTS",
|
|
"CUT_BUFFER2",
|
|
"CUT_BUFFER1",
|
|
"SUPERSCRIPT_X",
|
|
"CUT_BUFFER0",
|
|
"STRING",
|
|
"FAMILY_NAME",
|
|
"SECONDARY"
|
|
};
|
|
#define stringpool ((const char *) &stringpool_contents)
|
|
#ifdef __GNUC__
|
|
__inline
|
|
#endif
|
|
const struct atom_map *
|
|
in_word_set (str, len)
|
|
register const char *str;
|
|
register unsigned int len;
|
|
{
|
|
enum
|
|
{
|
|
TOTAL_KEYWORDS = 68,
|
|
MIN_WORD_LENGTH = 3,
|
|
MAX_WORD_LENGTH = 19,
|
|
MIN_HASH_VALUE = 4,
|
|
MAX_HASH_VALUE = 149
|
|
};
|
|
|
|
static const struct atom_map wordlist[] =
|
|
{
|
|
{-1}, {-1}, {-1}, {-1},
|
|
#line 112 "atoms.gperf"
|
|
{(int)(long)&((struct stringpool_t *)0)->stringpool_str4,18},
|
|
{-1},
|
|
#line 156 "atoms.gperf"
|
|
{(int)(long)&((struct stringpool_t *)0)->stringpool_str6,62},
|
|
{-1}, {-1},
|
|
#line 157 "atoms.gperf"
|
|
{(int)(long)&((struct stringpool_t *)0)->stringpool_str9,63},
|
|
#line 115 "atoms.gperf"
|
|
{(int)(long)&((struct stringpool_t *)0)->stringpool_str10,21},
|
|
#line 152 "atoms.gperf"
|
|
{(int)(long)&((struct stringpool_t *)0)->stringpool_str11,58},
|
|
{-1}, {-1},
|
|
#line 137 "atoms.gperf"
|
|
{(int)(long)&((struct stringpool_t *)0)->stringpool_str14,43},
|
|
#line 160 "atoms.gperf"
|
|
{(int)(long)&((struct stringpool_t *)0)->stringpool_str15,66},
|
|
#line 99 "atoms.gperf"
|
|
{(int)(long)&((struct stringpool_t *)0)->stringpool_str16,5},
|
|
#line 113 "atoms.gperf"
|
|
{(int)(long)&((struct stringpool_t *)0)->stringpool_str17,19},
|
|
{-1},
|
|
#line 155 "atoms.gperf"
|
|
{(int)(long)&((struct stringpool_t *)0)->stringpool_str19,61},
|
|
{-1}, {-1}, {-1}, {-1},
|
|
#line 159 "atoms.gperf"
|
|
{(int)(long)&((struct stringpool_t *)0)->stringpool_str24,65},
|
|
{-1},
|
|
#line 147 "atoms.gperf"
|
|
{(int)(long)&((struct stringpool_t *)0)->stringpool_str26,53},
|
|
#line 148 "atoms.gperf"
|
|
{(int)(long)&((struct stringpool_t *)0)->stringpool_str27,54},
|
|
#line 123 "atoms.gperf"
|
|
{(int)(long)&((struct stringpool_t *)0)->stringpool_str28,29},
|
|
#line 140 "atoms.gperf"
|
|
{(int)(long)&((struct stringpool_t *)0)->stringpool_str29,46},
|
|
{-1}, {-1},
|
|
#line 119 "atoms.gperf"
|
|
{(int)(long)&((struct stringpool_t *)0)->stringpool_str32,25},
|
|
#line 100 "atoms.gperf"
|
|
{(int)(long)&((struct stringpool_t *)0)->stringpool_str33,6},
|
|
{-1}, {-1},
|
|
#line 102 "atoms.gperf"
|
|
{(int)(long)&((struct stringpool_t *)0)->stringpool_str36,8},
|
|
#line 130 "atoms.gperf"
|
|
{(int)(long)&((struct stringpool_t *)0)->stringpool_str37,36},
|
|
#line 129 "atoms.gperf"
|
|
{(int)(long)&((struct stringpool_t *)0)->stringpool_str38,35},
|
|
{-1}, {-1},
|
|
#line 110 "atoms.gperf"
|
|
{(int)(long)&((struct stringpool_t *)0)->stringpool_str41,16},
|
|
#line 122 "atoms.gperf"
|
|
{(int)(long)&((struct stringpool_t *)0)->stringpool_str42,28},
|
|
#line 111 "atoms.gperf"
|
|
{(int)(long)&((struct stringpool_t *)0)->stringpool_str43,17},
|
|
{-1},
|
|
#line 121 "atoms.gperf"
|
|
{(int)(long)&((struct stringpool_t *)0)->stringpool_str45,27},
|
|
#line 127 "atoms.gperf"
|
|
{(int)(long)&((struct stringpool_t *)0)->stringpool_str46,33},
|
|
#line 120 "atoms.gperf"
|
|
{(int)(long)&((struct stringpool_t *)0)->stringpool_str47,26},
|
|
#line 145 "atoms.gperf"
|
|
{(int)(long)&((struct stringpool_t *)0)->stringpool_str48,51},
|
|
{-1}, {-1},
|
|
#line 124 "atoms.gperf"
|
|
{(int)(long)&((struct stringpool_t *)0)->stringpool_str51,30},
|
|
{-1},
|
|
#line 126 "atoms.gperf"
|
|
{(int)(long)&((struct stringpool_t *)0)->stringpool_str53,32},
|
|
#line 116 "atoms.gperf"
|
|
{(int)(long)&((struct stringpool_t *)0)->stringpool_str54,22},
|
|
{-1},
|
|
#line 109 "atoms.gperf"
|
|
{(int)(long)&((struct stringpool_t *)0)->stringpool_str56,15},
|
|
#line 133 "atoms.gperf"
|
|
{(int)(long)&((struct stringpool_t *)0)->stringpool_str57,39},
|
|
#line 150 "atoms.gperf"
|
|
{(int)(long)&((struct stringpool_t *)0)->stringpool_str58,56},
|
|
{-1}, {-1},
|
|
#line 144 "atoms.gperf"
|
|
{(int)(long)&((struct stringpool_t *)0)->stringpool_str61,50},
|
|
#line 95 "atoms.gperf"
|
|
{(int)(long)&((struct stringpool_t *)0)->stringpool_str62,1},
|
|
#line 101 "atoms.gperf"
|
|
{(int)(long)&((struct stringpool_t *)0)->stringpool_str63,7},
|
|
#line 146 "atoms.gperf"
|
|
{(int)(long)&((struct stringpool_t *)0)->stringpool_str64,52},
|
|
#line 151 "atoms.gperf"
|
|
{(int)(long)&((struct stringpool_t *)0)->stringpool_str65,57},
|
|
#line 117 "atoms.gperf"
|
|
{(int)(long)&((struct stringpool_t *)0)->stringpool_str66,23},
|
|
#line 131 "atoms.gperf"
|
|
{(int)(long)&((struct stringpool_t *)0)->stringpool_str67,37},
|
|
#line 118 "atoms.gperf"
|
|
{(int)(long)&((struct stringpool_t *)0)->stringpool_str68,24},
|
|
{-1},
|
|
#line 134 "atoms.gperf"
|
|
{(int)(long)&((struct stringpool_t *)0)->stringpool_str70,40},
|
|
#line 108 "atoms.gperf"
|
|
{(int)(long)&((struct stringpool_t *)0)->stringpool_str71,14},
|
|
{-1},
|
|
#line 161 "atoms.gperf"
|
|
{(int)(long)&((struct stringpool_t *)0)->stringpool_str73,67},
|
|
{-1},
|
|
#line 128 "atoms.gperf"
|
|
{(int)(long)&((struct stringpool_t *)0)->stringpool_str75,34},
|
|
#line 107 "atoms.gperf"
|
|
{(int)(long)&((struct stringpool_t *)0)->stringpool_str76,13},
|
|
{-1},
|
|
#line 142 "atoms.gperf"
|
|
{(int)(long)&((struct stringpool_t *)0)->stringpool_str78,48},
|
|
#line 98 "atoms.gperf"
|
|
{(int)(long)&((struct stringpool_t *)0)->stringpool_str79,4},
|
|
#line 138 "atoms.gperf"
|
|
{(int)(long)&((struct stringpool_t *)0)->stringpool_str80,44},
|
|
#line 162 "atoms.gperf"
|
|
{(int)(long)&((struct stringpool_t *)0)->stringpool_str81,68},
|
|
#line 132 "atoms.gperf"
|
|
{(int)(long)&((struct stringpool_t *)0)->stringpool_str82,38},
|
|
#line 136 "atoms.gperf"
|
|
{(int)(long)&((struct stringpool_t *)0)->stringpool_str83,42},
|
|
#line 139 "atoms.gperf"
|
|
{(int)(long)&((struct stringpool_t *)0)->stringpool_str84,45},
|
|
#line 153 "atoms.gperf"
|
|
{(int)(long)&((struct stringpool_t *)0)->stringpool_str85,59},
|
|
#line 114 "atoms.gperf"
|
|
{(int)(long)&((struct stringpool_t *)0)->stringpool_str86,20},
|
|
{-1}, {-1}, {-1},
|
|
#line 154 "atoms.gperf"
|
|
{(int)(long)&((struct stringpool_t *)0)->stringpool_str90,60},
|
|
#line 143 "atoms.gperf"
|
|
{(int)(long)&((struct stringpool_t *)0)->stringpool_str91,49},
|
|
#line 149 "atoms.gperf"
|
|
{(int)(long)&((struct stringpool_t *)0)->stringpool_str92,55},
|
|
#line 97 "atoms.gperf"
|
|
{(int)(long)&((struct stringpool_t *)0)->stringpool_str93,3},
|
|
{-1}, {-1},
|
|
#line 106 "atoms.gperf"
|
|
{(int)(long)&((struct stringpool_t *)0)->stringpool_str96,12},
|
|
{-1},
|
|
#line 135 "atoms.gperf"
|
|
{(int)(long)&((struct stringpool_t *)0)->stringpool_str98,41},
|
|
{-1}, {-1},
|
|
#line 105 "atoms.gperf"
|
|
{(int)(long)&((struct stringpool_t *)0)->stringpool_str101,11},
|
|
{-1}, {-1}, {-1}, {-1},
|
|
#line 104 "atoms.gperf"
|
|
{(int)(long)&((struct stringpool_t *)0)->stringpool_str106,10},
|
|
{-1},
|
|
#line 141 "atoms.gperf"
|
|
{(int)(long)&((struct stringpool_t *)0)->stringpool_str108,47},
|
|
{-1}, {-1},
|
|
#line 103 "atoms.gperf"
|
|
{(int)(long)&((struct stringpool_t *)0)->stringpool_str111,9},
|
|
{-1}, {-1}, {-1}, {-1},
|
|
#line 125 "atoms.gperf"
|
|
{(int)(long)&((struct stringpool_t *)0)->stringpool_str116,31},
|
|
{-1}, {-1}, {-1}, {-1},
|
|
#line 158 "atoms.gperf"
|
|
{(int)(long)&((struct stringpool_t *)0)->stringpool_str121,64},
|
|
{-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},
|
|
{-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},
|
|
{-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},
|
|
#line 96 "atoms.gperf"
|
|
{(int)(long)&((struct stringpool_t *)0)->stringpool_str149,2}
|
|
};
|
|
|
|
if (len <= MAX_WORD_LENGTH && len >= MIN_WORD_LENGTH)
|
|
{
|
|
register int key = hash (str, len);
|
|
|
|
if (key <= MAX_HASH_VALUE && key >= 0)
|
|
{
|
|
register int o = wordlist[key].name;
|
|
if (o >= 0)
|
|
{
|
|
register const char *s = o + stringpool;
|
|
|
|
if (*str == *s && !strncmp (str + 1, s + 1, len - 1) && s[len] == '\0')
|
|
return &wordlist[key];
|
|
}
|
|
}
|
|
}
|
|
return 0;
|
|
}
|
|
#line 163 "atoms.gperf"
|
|
|
|
|
|
static const char atom_names[] =
|
|
"PRIMARY\0"
|
|
"SECONDARY\0"
|
|
"ARC\0"
|
|
"ATOM\0"
|
|
"BITMAP\0"
|
|
"CARDINAL\0"
|
|
"COLORMAP\0"
|
|
"CURSOR\0"
|
|
"CUT_BUFFER0\0"
|
|
"CUT_BUFFER1\0"
|
|
"CUT_BUFFER2\0"
|
|
"CUT_BUFFER3\0"
|
|
"CUT_BUFFER4\0"
|
|
"CUT_BUFFER5\0"
|
|
"CUT_BUFFER6\0"
|
|
"CUT_BUFFER7\0"
|
|
"DRAWABLE\0"
|
|
"FONT\0"
|
|
"INTEGER\0"
|
|
"PIXMAP\0"
|
|
"POINT\0"
|
|
"RECTANGLE\0"
|
|
"RESOURCE_MANAGER\0"
|
|
"RGB_COLOR_MAP\0"
|
|
"RGB_BEST_MAP\0"
|
|
"RGB_BLUE_MAP\0"
|
|
"RGB_DEFAULT_MAP\0"
|
|
"RGB_GRAY_MAP\0"
|
|
"RGB_GREEN_MAP\0"
|
|
"RGB_RED_MAP\0"
|
|
"STRING\0"
|
|
"VISUALID\0"
|
|
"WINDOW\0"
|
|
"WM_COMMAND\0"
|
|
"WM_HINTS\0"
|
|
"WM_CLIENT_MACHINE\0"
|
|
"WM_ICON_NAME\0"
|
|
"WM_ICON_SIZE\0"
|
|
"WM_NAME\0"
|
|
"WM_NORMAL_HINTS\0"
|
|
"WM_SIZE_HINTS\0"
|
|
"WM_ZOOM_HINTS\0"
|
|
"MIN_SPACE\0"
|
|
"NORM_SPACE\0"
|
|
"MAX_SPACE\0"
|
|
"END_SPACE\0"
|
|
"SUPERSCRIPT_X\0"
|
|
"SUPERSCRIPT_Y\0"
|
|
"SUBSCRIPT_X\0"
|
|
"SUBSCRIPT_Y\0"
|
|
"UNDERLINE_POSITION\0"
|
|
"UNDERLINE_THICKNESS\0"
|
|
"STRIKEOUT_ASCENT\0"
|
|
"STRIKEOUT_DESCENT\0"
|
|
"ITALIC_ANGLE\0"
|
|
"X_HEIGHT\0"
|
|
"QUAD_WIDTH\0"
|
|
"WEIGHT\0"
|
|
"POINT_SIZE\0"
|
|
"RESOLUTION\0"
|
|
"COPYRIGHT\0"
|
|
"NOTICE\0"
|
|
"FONT_NAME\0"
|
|
"FAMILY_NAME\0"
|
|
"FULL_NAME\0"
|
|
"CAP_HEIGHT\0"
|
|
"WM_CLASS\0"
|
|
"WM_TRANSIENT_FOR\0"
|
|
;
|
|
|
|
static const uint16_t atom_name_offsets[] = {
|
|
0,
|
|
8,
|
|
18,
|
|
22,
|
|
27,
|
|
34,
|
|
43,
|
|
52,
|
|
59,
|
|
71,
|
|
83,
|
|
95,
|
|
107,
|
|
119,
|
|
131,
|
|
143,
|
|
155,
|
|
164,
|
|
169,
|
|
177,
|
|
184,
|
|
190,
|
|
200,
|
|
217,
|
|
231,
|
|
244,
|
|
257,
|
|
273,
|
|
286,
|
|
300,
|
|
312,
|
|
319,
|
|
328,
|
|
335,
|
|
346,
|
|
355,
|
|
373,
|
|
386,
|
|
399,
|
|
407,
|
|
423,
|
|
437,
|
|
451,
|
|
461,
|
|
472,
|
|
482,
|
|
492,
|
|
506,
|
|
520,
|
|
532,
|
|
544,
|
|
563,
|
|
583,
|
|
600,
|
|
618,
|
|
631,
|
|
640,
|
|
651,
|
|
658,
|
|
669,
|
|
680,
|
|
690,
|
|
697,
|
|
707,
|
|
719,
|
|
729,
|
|
740,
|
|
749,
|
|
};
|
|
|
|
xcb_atom_t xcb_atom_get(xcb_connection_t *connection, const char *atom_name)
|
|
{
|
|
xcb_intern_atom_reply_t *reply;
|
|
xcb_atom_t atom;
|
|
if(atom_name == NULL)
|
|
return XCB_NONE;
|
|
reply = xcb_intern_atom_reply(connection,
|
|
xcb_intern_atom(connection, 0, strlen(atom_name), atom_name), NULL);
|
|
if(!reply)
|
|
return XCB_NONE;
|
|
atom = reply->atom;
|
|
free(reply);
|
|
return atom;
|
|
}
|
|
|
|
xcb_atom_t xcb_atom_get_predefined(uint16_t name_len, const char *name)
|
|
{
|
|
const struct atom_map *value = in_word_set(name, name_len);
|
|
xcb_atom_t ret = XCB_NONE;
|
|
if(value)
|
|
ret = value->value;
|
|
return ret;
|
|
}
|
|
|
|
xcb_atom_fast_cookie_t xcb_atom_get_fast(xcb_connection_t *c, uint8_t only_if_exists, uint16_t name_len, const char *name)
|
|
{
|
|
xcb_atom_fast_cookie_t cookie;
|
|
|
|
if((cookie.u.atom = xcb_atom_get_predefined(name_len, name)) != XCB_NONE)
|
|
{
|
|
cookie.tag = TAG_VALUE;
|
|
return cookie;
|
|
}
|
|
|
|
cookie.tag = TAG_COOKIE;
|
|
cookie.u.cookie = xcb_intern_atom(c, only_if_exists, name_len, name);
|
|
return cookie;
|
|
}
|
|
|
|
xcb_atom_t xcb_atom_get_fast_reply(xcb_connection_t *c, xcb_atom_fast_cookie_t cookie, xcb_generic_error_t **e)
|
|
{
|
|
switch(cookie.tag)
|
|
{
|
|
xcb_intern_atom_reply_t *reply;
|
|
case TAG_VALUE:
|
|
if(e)
|
|
*e = 0;
|
|
break;
|
|
case TAG_COOKIE:
|
|
reply = xcb_intern_atom_reply(c, cookie.u.cookie, e);
|
|
if(reply)
|
|
{
|
|
cookie.u.atom = reply->atom;
|
|
free(reply);
|
|
}
|
|
else
|
|
cookie.u.atom = XCB_NONE;
|
|
break;
|
|
}
|
|
return cookie.u.atom;
|
|
}
|
|
|
|
const char *xcb_atom_get_name_predefined(xcb_atom_t atom)
|
|
{
|
|
if(atom <= 0 || atom > (sizeof(atom_name_offsets) / sizeof(*atom_name_offsets)))
|
|
return 0;
|
|
return atom_names + atom_name_offsets[atom - 1];
|
|
}
|
|
|
|
int xcb_atom_get_name(xcb_connection_t *c, xcb_atom_t atom, const char **namep, int *lengthp)
|
|
{
|
|
static char buf[100];
|
|
const char *name = xcb_atom_get_name_predefined(atom);
|
|
int namelen;
|
|
xcb_get_atom_name_cookie_t atomc;
|
|
xcb_get_atom_name_reply_t *atomr;
|
|
if(name)
|
|
{
|
|
*namep = name;
|
|
*lengthp = strlen(name);
|
|
return 1;
|
|
}
|
|
atomc = xcb_get_atom_name(c, atom);
|
|
atomr = xcb_get_atom_name_reply(c, atomc, 0);
|
|
if(!atomr)
|
|
return 0;
|
|
namelen = xcb_get_atom_name_name_length(atomr);
|
|
if(namelen > sizeof(buf))
|
|
namelen = sizeof(buf);
|
|
*lengthp = namelen;
|
|
memcpy(buf, xcb_get_atom_name_name(atomr), namelen);
|
|
*namep = buf;
|
|
free(atomr);
|
|
return 1;
|
|
}
|
|
|
|
static char *makename(const char *fmt, ...)
|
|
{
|
|
char *ret;
|
|
int n;
|
|
va_list ap;
|
|
|
|
#ifndef HAVE_VASPRINTF
|
|
char *np;
|
|
int size = 64;
|
|
|
|
/* First allocate 'size' bytes, should be enough usually */
|
|
if((ret = malloc(size)) == NULL)
|
|
return NULL;
|
|
|
|
while(1)
|
|
{
|
|
va_start(ap, fmt);
|
|
n = vsnprintf(ret, size, fmt, ap);
|
|
va_end(ap);
|
|
|
|
if(n < 0)
|
|
return NULL;
|
|
|
|
if(n < size)
|
|
return ret;
|
|
|
|
size = n + 1;
|
|
if((np = realloc(ret, size)) == NULL)
|
|
{
|
|
free(ret);
|
|
return NULL;
|
|
}
|
|
|
|
ret = np;
|
|
}
|
|
#else
|
|
va_start(ap, fmt);
|
|
n = vasprintf(&ret, fmt, ap);
|
|
va_end(ap);
|
|
|
|
if(n < 0)
|
|
return NULL;
|
|
|
|
return ret;
|
|
#endif
|
|
}
|
|
|
|
char *xcb_atom_name_by_screen(const char *base, uint8_t screen)
|
|
{
|
|
return makename("%s_S%u", base, screen);
|
|
}
|
|
|
|
char *xcb_atom_name_by_resource(const char *base, uint32_t resource)
|
|
{
|
|
return makename("%s_R%08X", base, resource);
|
|
}
|
|
|
|
char *xcb_atom_name_unique(const char *base, uint32_t id)
|
|
{
|
|
if(base)
|
|
return makename("%s_U%lu", base, id);
|
|
else
|
|
return makename("U%lu", id);
|
|
}
|