libpayload: Add PDCurses and ncurses' libform/libmenu
[coreboot.git] / payloads / libpayload / curses / PDCurses-3.4 / x11 / compose.h
1 /* Public Domain Curses */
2
3 /* $Id: compose.h,v 1.3 2008/07/14 04:24:52 wmcbrine Exp $ */
4
5 /* Tables and variables for the built-in compose key system. This file 
6    is not included when PDCurses is built with XIM support. */
7
8 #define MAX_COMPOSE_CHARS 14
9 #define MAX_COMPOSE_PRE 60
10
11 static const char *compose_chars =
12     "`'~^,/\"AaPpSs!?0123CcRr-_<>Xx.=Yy |EeIiOoUu+NnLlgDd:*TtMmVv";
13
14 /*
15    ` :  À  È  Ì  Ò  Ù  à  è  ì  ò  ù
16    ' :  ´  Á  É  Í  Ó  Ú  Ý  á  é  í  ó  ú  ý  ´
17    ~ :  Ã  Ñ  Õ  ã  ñ  õ
18    ^ :  Â  Ê  Î  Ô  Û  â  ê  î  ô  û  °  ¹  ²  ³
19    , :  ¸  Ç  ç  ¸
20    / :  Ø  ø  µ  µ
21    " :  ¨  Ä  Ë  Ï  Ö  Ü  ä  ë  ï  ö  ü  ÿ  ¨
22    A :  Æ  À  Á  Ã  Â  Å  Å  Ã  Â  ª
23    a :  æ  à  á  ã  â  å  å  ã  â  ª
24    P :  Þ  ¶  ¶
25    p :  þ  ¶  ¶
26    S :  §  §  §  º  ª
27    s :  ß  §  ª  ¹  ²  ³  º  §
28    ! :  ¡  ¡
29    ? :  ¿  ¿
30    0 :  °  °
31    1 :  ¹  ½  ¼  ¹
32    2 :  ²  ²
33    3 :  ³  ¾  ³
34    C :  ©  Ç  ¢  ¢
35    c :  ¢  ©  ç  ¢  ¢
36    R :  ®
37    r :  ®
38    - :  ­  ±  ¬  ­  ¯  ÷
39    _ :  ¯  ¯
40    < :  «
41    > :  «
42    X :  ¤  ×
43    x :  ×  ¤  ×
44    . :  ·  ·  ·
45    = :  ¥  ¥
46    Y :  ¥  Ý  ¥
47    y :  ¥  ý  ÿ  ¥  ¥
48      :
49    | :  ¦  ¢  ¦  Þ  þ  ¦  £
50    E :  È  É  Ê  Ë  Ê
51    e :  è  é  ê  ë  ê
52    I :  Ì  Í  Î  Ï  Î
53    i :  ì  í  î  ï  î
54    O :  Ò  Ó  Ô  Õ  Ö  Ø  ©  ®  Õ  Ô  Å  å
55    o :  °  Å  å  ¤  õ  ò  ó  ô  õ  ö  ø  ô  º
56    U :  Ù  Ú  Û  Ü  Û
57    u :  ù  ú  û  ü  µ  û
58    + :  ±
59    N :  Ñ  Ñ  ¬
60    n :  ñ  ñ  ¬
61    L :  £  £  £
62    l :  £  £  £
63    g :  ¤
64    D :  °  Ð
65    d :  °  ð
66    : :  ÷
67    * :  µ  µ  å  Å
68    T :  Þ
69    t :  þ
70    M :  ×
71    m :  ×
72    V :  ¦
73    v :  ¦
74 */
75
76 static const char compose_lookups[MAX_COMPOSE_PRE][MAX_COMPOSE_CHARS] =
77 {
78 /* ` */ {'A','E','I','O','U','a','e','i','o','u',  0,  0,  0,  0},
79 /* ' */ {' ','A','E','I','O','U','Y','a','e','i','o','u','y', 39},
80 /* ~ */ {'A','N','O','a','n','o',  0,  0,  0,  0,  0,  0,  0,  0},
81 /* ^ */ {'A','E','I','O','U','a','e','i','o','u','0','1','2','3'},
82 /* , */ {' ','C','c',',',  0,  0,  0,  0,  0,  0,  0,  0,  0,  0},
83 /* / */ {'O','o','u','U',  0,  0,  0,  0,  0,  0,  0,  0,  0,  0},
84 /* " */ {' ','A','E','I','O','U','a','e','i','o','u','y','\"', 0},
85 /* A */ {'E','`', 39,'~','^','"','o','*','-','>','_',  0,  0,  0},
86 /* a */ {'e','`', 39,'~','^','"','o','*','-','>','_',  0,  0,  0},
87 /* P */ {' ','G','!',  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0},
88 /* p */ {' ','g','!',  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0},
89 /* S */ {'S','!','O','0','A',  0,  0,  0,  0,  0,  0,  0,  0,  0},
90 /* s */ {'s','!','a','1','2','3','0','o',  0,  0,  0,  0,  0,  0},
91 /* ! */ {' ','!',  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0},
92 /* ? */ {' ','?',  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0},
93 /* 0 */ {'^','*',  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0},
94 /* 1 */ {' ','2','4','^',  0,  0,  0,  0,  0,  0,  0,  0,  0,  0},
95 /* 2 */ {' ','^',  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0},
96 /* 3 */ {' ','4','^',  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0},
97 /* C */ {'O',',','$','|',  0,  0,  0,  0,  0,  0,  0,  0,  0,  0},
98 /* c */ {'|','o',',','/','$',  0,  0,  0,  0,  0,  0,  0,  0,  0},
99 /* R */ {'O',  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0},
100 /* r */ {'o',  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0},
101 /* - */ {' ','+',',','-','^',':',  0,  0,  0,  0,  0,  0,  0,  0},
102 /* _ */ {'_','^',  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0},
103 /* < */ {'<',  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0},
104 /* > */ {'>',  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0},
105 /* X */ {'O','X',  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0},
106 /* x */ {' ','o','x',  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0},
107 /* . */ {' ','^','.',  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0},
108 /* = */ {'Y','y',  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0},
109 /* Y */ {'=', 39,'-',  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0},
110 /* y */ {'=', 39,'"','$','-',  0,  0,  0,  0,  0,  0,  0,  0,  0},
111 /*   */ {' ',  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0},
112 /* | */ {' ','c','|','P','p','^','-',  0,  0,  0,  0,  0,  0,  0},
113 /* E */ {'`', 39,'^','"','>',  0,  0,  0,  0,  0,  0,  0,  0,  0},
114 /* e */ {'`', 39,'^','"','>',  0,  0,  0,  0,  0,  0,  0,  0,  0},
115 /* I */ {'`', 39,'^','"','>',  0,  0,  0,  0,  0,  0,  0,  0,  0},
116 /* i */ {'`', 39,'^','"','>',  0,  0,  0,  0,  0,  0,  0,  0,  0},
117 /* O */ {'`', 39,'^','~','"','/','C','R','-','>','A','a',  0,  0},
118 /* o */ {' ','A','a','x','-','`', 39,'^','~','"','/','>','_',  0},
119 /* U */ {'`', 39,'^','"','>',  0,  0,  0,  0,  0,  0,  0,  0,  0},
120 /* u */ {'`', 39,'^','"',' ','>',  0,  0,  0,  0,  0,  0,  0,  0},
121 /* + */ {'-',  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0},
122 /* N */ {'~','-','O',  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0},
123 /* n */ {'~','-','o',  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0},
124 /* L */ {'$','=','-',  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0},
125 /* l */ {'$','=','-',  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0},
126 /* g */ {'$',  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0},
127 /* D */ {'E','-',  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0},
128 /* d */ {'e','-',  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0},
129 /* : */ {'-',  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0},
130 /* * */ {'m','M','a','A',  0,  0,  0,  0,  0,  0,  0,  0,  0,  0},
131 /* T */ {'H',  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0},
132 /* t */ {'h',  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0},
133 /* M */ {'U',  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0},
134 /* m */ {'u',  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0},
135 /* V */ {'B',  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0},
136 /* v */ {'b',  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0},
137 };
138
139 static const unsigned char compose_keys[MAX_COMPOSE_PRE][MAX_COMPOSE_CHARS] =
140 {
141 /* ` */ {192,200,204,210,217,224,232,236,242,249,  0,  0,  0,  0},
142 /* ' */ {180,193,201,205,211,218,221,225,233,237,243,250,253,180},
143 /* ~ */ {195,209,213,227,241,245,  0,  0,  0,  0,  0,  0,  0,  0},
144 /* ^ */ {194,202,206,212,219,226,234,238,244,251,176,185,178,179},
145 /* , */ {184,199,231,184,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0},
146 /* / */ {216,248,181,181,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0},
147 /* " */ {168,196,203,207,214,220,228,235,239,246,252,255,168,  0},
148 /* A */ {198,192,193,195,194,196,197,197,195,194,170,  0,  0,  0},
149 /* a */ {230,224,225,227,226,228,229,229,227,226,170,  0,  0,  0},
150 /* P */ {222,182,182,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0},
151 /* p */ {254,182,182,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0},
152 /* S */ {167,167,167,186,170,  0,  0,  0,  0,  0,  0,  0,  0,  0},
153 /* s */ {223,167,170,185,178,179,186,167,  0,  0,  0,  0,  0,  0},
154 /* ! */ {161,161,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0},
155 /* ? */ {191,191,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0},
156 /* 0 */ {176,176,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0},
157 /* 1 */ {185,189,188,185,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0},
158 /* 2 */ {178,178,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0},
159 /* 3 */ {179,190,179,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0},
160 /* C */ {169,199,162,162,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0},
161 /* c */ {162,169,231,162,162,  0,  0,  0,  0,  0,  0,  0,  0,  0},
162 /* R */ {174,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0},
163 /* r */ {174,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0},
164 /* - */ {173,177,172,173,175,247,  0,  0,  0,  0,  0,  0,  0,  0},
165 /* _ */ {175,175,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0},
166 /* < */ {171,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0},
167 /* > */ {187,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0},
168 /* X */ {164,215,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0},
169 /* x */ {215,164,215,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0},
170 /* . */ {183,183,183,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0},
171 /* = */ {165,165,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0},
172 /* Y */ {165,221,165,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0},
173 /* y */ {165,253,255,165,165,  0,  0,  0,  0,  0,  0,  0,  0,  0},
174 /*   */ {160,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0},
175 /* | */ {166,162,166,222,254,166,163,  0,  0,  0,  0,  0,  0,  0},
176 /* E */ {200,201,202,203,202,  0,  0,  0,  0,  0,  0,  0,  0,  0},
177 /* e */ {232,233,234,235,234,  0,  0,  0,  0,  0,  0,  0,  0,  0},
178 /* I */ {204,205,206,207,206,  0,  0,  0,  0,  0,  0,  0,  0,  0},
179 /* i */ {236,237,238,239,238,  0,  0,  0,  0,  0,  0,  0,  0,  0},
180 /* O */ {210,211,212,213,214,216,169,174,213,212,197,229,  0,  0},
181 /* o */ {176,197,229,164,245,242,243,244,245,246,248,244,186,  0},
182 /* U */ {217,218,219,220,219,  0,  0,  0,  0,  0,  0,  0,  0,  0},
183 /* u */ {249,250,251,252,181,251,  0,  0,  0,  0,  0,  0,  0,  0},
184 /* + */ {177,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0},
185 /* N */ {209,209,172,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0},
186 /* n */ {241,241,172,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0},
187 /* L */ {163,163,163,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0},
188 /* l */ {163,163,163,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0},
189 /* g */ {164,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0},
190 /* D */ {176,208,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0},
191 /* d */ {176,240,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0},
192 /* : */ {247,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0},
193 /* * */ {181,181,229,197,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0},
194 /* T */ {222,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0},
195 /* t */ {254,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0},
196 /* M */ {215,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0},
197 /* u */ {215,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0},
198 /* V */ {166,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0},
199 /* v */ {166,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0},
200 };
201
202 static KeySym compose_key = 0;
203 static int compose_mask = 0;