trace(1): resolve all level-5 LLVM warnings
[minix3.git] / lib / libterminfo / termcap_map.c
blob00814ad393a5137bc8923191669703f506bdcd84
1 /* $NetBSD: termcap_map.c,v 1.3 2010/09/22 06:10:51 roy Exp $ */
3 /*
4 * Copyright (c) 2009 The NetBSD Foundation, Inc.
6 * This code is derived from software contributed to The NetBSD Foundation
7 * by Roy Marples.
9 * Redistribution and use in source and binary forms, with or without
10 * modification, are permitted provided that the following conditions
11 * are met:
12 * 1. Redistributions of source code must retain the above copyright
13 * notice, this list of conditions and the following disclaimer.
14 * 2. Redistributions in binary form must reproduce the above copyright
15 * notice, this list of conditions and the following disclaimer in the
16 * documentation and/or other materials provided with the distribution.
18 * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
19 * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
20 * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
21 * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
22 * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
23 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
24 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
25 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
26 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
27 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
30 #include <sys/cdefs.h>
31 __RCSID("$NetBSD: termcap_map.c,v 1.3 2010/09/22 06:10:51 roy Exp $");
33 typedef struct {
34 const char id[3];
35 int ti;
36 } TENTRY;
38 static const TENTRY _ti_cap_flagids[] = {
39 { "bw", TICODE_bw },
40 { "am", TICODE_am },
41 { "ut", TICODE_bce },
42 { "cc", TICODE_ccc },
43 { "xs", TICODE_xhp },
44 { "YA", TICODE_xhpa },
45 { "YF", TICODE_cpix },
46 { "YB", TICODE_crxm },
47 { "xt", TICODE_xt },
48 { "xn", TICODE_xenl },
49 { "eo", TICODE_eo },
50 { "gn", TICODE_gn },
51 { "hc", TICODE_hc },
52 { "HC", TICODE_chts },
53 { "km", TICODE_km },
54 { "YC", TICODE_daisy },
55 { "hs", TICODE_hs },
56 { "hl", TICODE_hls },
57 { "in", TICODE_in },
58 { "YG", TICODE_lpix },
59 { "da", TICODE_da },
60 { "db", TICODE_db },
61 { "mi", TICODE_mir },
62 { "ms", TICODE_msgr },
63 { "nx", TICODE_nxon },
64 { "xb", TICODE_xsb },
65 { "NP", TICODE_npc },
66 { "ND", TICODE_ndscr },
67 { "NR", TICODE_nrrmc },
68 { "os", TICODE_os } ,
69 { "5i", TICODE_mc5i },
70 { "YD", TICODE_xvpa },
71 { "YE", TICODE_sam },
72 { "es", TICODE_eslok },
73 { "hz", TICODE_hz },
74 { "ul", TICODE_ul },
75 { "xo", TICODE_xon }
78 static const TENTRY _ti_cap_numids[] = {
79 { "Yo", TICODE_bitwin },
80 { "Yp", TICODE_bitype },
81 { "Ya", TICODE_bufsz },
82 { "BT", TICODE_btns },
83 { "co", TICODE_cols },
84 { "Yc", TICODE_spinh },
85 { "Yb", TICODE_spinv },
86 { "it", TICODE_it },
87 { "lh", TICODE_lh },
88 { "lw", TICODE_lw },
89 { "li", TICODE_lines },
90 { "lm", TICODE_lm },
91 { "ma", TICODE_ma },
92 { "sg", TICODE_xmc },
93 { "Co", TICODE_colors },
94 { "Yd", TICODE_maddr },
95 { "Ye", TICODE_mjump },
96 { "pa", TICODE_pairs },
97 { "MW", TICODE_wnum },
98 { "Yf", TICODE_mcs },
99 { "Yg", TICODE_mls },
100 { "NC", TICODE_ncv },
101 { "Nl", TICODE_nlab },
102 { "Yh", TICODE_npins },
103 { "Yi", TICODE_orc },
104 { "Yj", TICODE_orl },
105 { "Yk", TICODE_orhi },
106 { "Yl", TICODE_orvi },
107 { "pb", TICODE_pb },
108 { "Ym", TICODE_cps },
109 { "vt", TICODE_vt },
110 { "Yn", TICODE_widcs },
111 { "ws", TICODE_wsl }
114 static const TENTRY _ti_cap_strids[] = {
115 { "ac", TICODE_acsc },
116 { "S8", TICODE_scesa },
117 { "bt", TICODE_cbt },
118 { "bl", TICODE_bel },
119 { "Yv", TICODE_bicr },
120 { "Zz", TICODE_binel },
121 { "Xy", TICODE_birep },
122 { "cr", TICODE_cr },
123 { "ZA", TICODE_cpi },
124 { "ZB", TICODE_lpi },
125 { "ZC", TICODE_chr },
126 { "ZD", TICODE_cvr },
127 { "cs", TICODE_csr },
128 { "rP", TICODE_rmp },
129 { "Zy", TICODE_csnm },
130 { "ct", TICODE_tbc },
131 { "MC", TICODE_mgc },
132 { "cl", TICODE_clear },
133 { "cb", TICODE_el1 },
134 { "ce", TICODE_el },
135 { "cd", TICODE_ed },
136 { "ci", TICODE_csin },
137 { "Yw", TICODE_colornm },
138 { "ch", TICODE_hpa },
139 { "CC", TICODE_cmdch },
140 { "cm", TICODE_cup },
141 { "do", TICODE_cud1 },
142 { "ho", TICODE_home },
143 { "vi", TICODE_civis },
144 { "le", TICODE_cub1 },
145 { "CM", TICODE_mrcup },
146 { "ve", TICODE_cnorm },
147 { "nd", TICODE_cuf1 },
148 { "ll", TICODE_ll },
149 { "up", TICODE_cuu1 },
150 { "vs", TICODE_cvvis },
151 { "Yx", TICODE_defbi },
152 { "ZE", TICODE_defc },
153 { "dc", TICODE_dch1 },
154 { "dl", TICODE_dl1 },
155 { "dv", TICODE_devt },
156 { "DI", TICODE_dial },
157 { "ds", TICODE_dsl },
158 { "DK", TICODE_dclk },
159 { "S1", TICODE_dispc },
160 { "hd", TICODE_hd },
161 { "eA", TICODE_enacs },
162 { "Yy", TICODE_endbi },
163 { "as", TICODE_smacs },
164 { "SA", TICODE_smam },
165 { "mb", TICODE_blink },
166 { "md", TICODE_bold },
167 { "ti", TICODE_smcup },
168 { "dm", TICODE_smdc },
169 { "mh", TICODE_dim },
170 { "ZF", TICODE_swidm },
171 { "ZG", TICODE_sdrfq },
172 { "Xh", TICODE_ehhlm },
173 { "im", TICODE_smir },
174 { "ZH", TICODE_sitm },
175 { "Xl", TICODE_elhlm },
176 { "ZI", TICODE_slm },
177 { "Xo", TICODE_elohlm },
178 { "ZJ", TICODE_smicm },
179 { "ZK", TICODE_snlq },
180 { "ZL", TICODE_snrmq },
181 { "S2", TICODE_smpch },
182 { "mp", TICODE_prot },
183 { "mr", TICODE_rev },
184 { "Xr", TICODE_erhlm },
185 { "S4", TICODE_smsc },
186 { "mk", TICODE_invis },
187 { "ZM", TICODE_sshm },
188 { "so", TICODE_smso },
189 { "ZN", TICODE_ssubm },
190 { "ZO", TICODE_ssupm },
191 { "Xt", TICODE_ethlm },
192 { "us", TICODE_smul },
193 { "ZP", TICODE_sum },
194 { "Xv", TICODE_evhlm },
195 { "SX", TICODE_smxon },
196 { "ec", TICODE_ech },
197 { "ae", TICODE_rmacs },
198 { "RA", TICODE_rmam },
199 { "me", TICODE_sgr0 },
200 { "te", TICODE_rmcup },
201 { "ed", TICODE_rmdc },
202 { "ZQ", TICODE_rwidm },
203 { "ei", TICODE_rmir },
204 { "ZR", TICODE_ritm },
205 { "ZS", TICODE_rlm },
206 { "ZT", TICODE_rmicm },
207 { "S3", TICODE_rmpch },
208 { "S5", TICODE_rmsc },
209 { "ZU", TICODE_rshm },
210 { "se", TICODE_rmso },
211 { "ZV", TICODE_rsubm },
212 { "ZW", TICODE_rsupm },
213 { "ue", TICODE_rmul },
214 { "ZX", TICODE_rum },
215 { "RX", TICODE_rmxon },
216 { "PA", TICODE_pause },
217 { "fh", TICODE_hook },
218 { "vb", TICODE_flash },
219 { "ff", TICODE_ff },
220 { "fs", TICODE_fsl },
221 { "Gm", TICODE_getm },
222 { "WG", TICODE_wingo },
223 { "HU", TICODE_hup },
224 { "i1", TICODE_is1 },
225 { "i2", TICODE_is2 },
226 { "i3", TICODE_is3 },
227 { "is", TICODE_is2 },
228 { "if", TICODE_if },
229 { "iP", TICODE_iprog },
230 { "Ic", TICODE_initc },
231 { "Ip", TICODE_initp },
232 { "ic", TICODE_ich1 },
233 { "al", TICODE_il1 },
234 { "ip", TICODE_ip },
235 { "K1", TICODE_ka1 },
236 { "K3", TICODE_ka3 },
237 { "K2", TICODE_kb2 },
238 { "kb", TICODE_kbs },
239 { "kB", TICODE_kcbt },
240 { "K4", TICODE_kc1 },
241 { "K5", TICODE_kc3 },
242 { "ka", TICODE_ktbc },
243 { "kC", TICODE_kclr },
244 { "kt", TICODE_kctab },
245 { "kD", TICODE_kdch1 },
246 { "kL", TICODE_kdl1 },
247 { "kd", TICODE_kcud1 },
248 { "kM", TICODE_krmir },
249 { "kE", TICODE_kel },
250 { "kS", TICODE_ked },
251 { "k0", TICODE_kf0 },
252 { "k1", TICODE_kf1 },
253 { "k2", TICODE_kf2 },
254 { "k3", TICODE_kf3 },
255 { "k4", TICODE_kf4 },
256 { "k5", TICODE_kf5 },
257 { "k6", TICODE_kf6 },
258 { "k7", TICODE_kf7 },
259 { "k8", TICODE_kf8 },
260 { "k9", TICODE_kf9 },
261 { "k;", TICODE_kf10 },
262 { "F1", TICODE_kf11 },
263 { "F2", TICODE_kf12 },
264 { "F3", TICODE_kf13 },
265 { "F4", TICODE_kf14 },
266 { "F5", TICODE_kf15 },
267 { "F6", TICODE_kf16 },
268 { "F7", TICODE_kf17 },
269 { "F8", TICODE_kf18 },
270 { "F9", TICODE_kf19 },
271 { "FA", TICODE_kf20 },
272 { "FB", TICODE_kf21 },
273 { "FC", TICODE_kf22 },
274 { "FD", TICODE_kf23 },
275 { "FE", TICODE_kf24 },
276 { "FF", TICODE_kf25 },
277 { "FG", TICODE_kf26 },
278 { "FH", TICODE_kf27 },
279 { "FI", TICODE_kf28 },
280 { "FJ", TICODE_kf29 },
281 { "FK", TICODE_kf30 },
282 { "FL", TICODE_kf31 },
283 { "FM", TICODE_kf32 },
284 { "FN", TICODE_kf33 },
285 { "FO", TICODE_kf34 },
286 { "FP", TICODE_kf35 },
287 { "FQ", TICODE_kf36 },
288 { "FR", TICODE_kf37 },
289 { "FS", TICODE_kf38 },
290 { "FT", TICODE_kf39 },
291 { "FU", TICODE_kf40 },
292 { "FV", TICODE_kf41 },
293 { "FW", TICODE_kf42 },
294 { "FX", TICODE_kf43 },
295 { "FY", TICODE_kf44 },
296 { "FZ", TICODE_kf45 },
297 { "Fa", TICODE_kf46 },
298 { "Fb", TICODE_kf47 },
299 { "Fc", TICODE_kf48 },
300 { "Fd", TICODE_kf49 },
301 { "Fe", TICODE_kf50 },
302 { "Ff", TICODE_kf51 },
303 { "Fg", TICODE_kf52 },
304 { "Fh", TICODE_kf53 },
305 { "Fi", TICODE_kf54 },
306 { "Fj", TICODE_kf55 },
307 { "Fk", TICODE_kf56 },
308 { "Fl", TICODE_kf57 },
309 { "Fm", TICODE_kf58 },
310 { "Fn", TICODE_kf59 },
311 { "Fo", TICODE_kf60 },
312 { "Fp", TICODE_kf61 },
313 { "Fq", TICODE_kf62 },
314 { "Fr", TICODE_kf63 },
315 { "%1", TICODE_khlp },
316 { "kh", TICODE_khome },
317 { "kI", TICODE_kich1 },
318 { "kA", TICODE_kil1 },
319 { "kl", TICODE_kcub1 },
320 { "kH", TICODE_kll },
321 { "%2", TICODE_kmrk },
322 { "%3", TICODE_kmsg },
323 { "Km", TICODE_kmous },
324 { "%4", TICODE_kmov },
325 { "%5", TICODE_knxt },
326 { "kN", TICODE_knp },
327 { "%6", TICODE_kopn },
328 { "%7", TICODE_kopt },
329 { "kP", TICODE_kpp },
330 { "%8", TICODE_kprv },
331 { "%9", TICODE_kprt },
332 { "%0", TICODE_krdo },
333 { "&1", TICODE_kref },
334 { "&2", TICODE_krfr },
335 { "&3", TICODE_krpl },
336 { "&4", TICODE_krst },
337 { "&5", TICODE_kres },
338 { "kr", TICODE_kcuf1 },
339 { "&6", TICODE_ksav },
340 { "&9", TICODE_kBEG },
341 { "&0", TICODE_kCAN },
342 { "*1", TICODE_kCMD },
343 { "*2", TICODE_kCPY },
344 { "*3", TICODE_kCRT },
345 { "*4", TICODE_kDC },
346 { "*5", TICODE_kDL },
347 { "*6", TICODE_kslt },
348 { "*7", TICODE_kEND },
349 { "*8", TICODE_kEOL },
350 { "*9", TICODE_kEXT },
351 { "kF", TICODE_kind },
352 { "*0", TICODE_kFND },
353 { "#1", TICODE_kHLP },
354 { "#2", TICODE_kHOM },
355 { "#3", TICODE_kIC },
356 { "#4", TICODE_kLFT },
357 { "%a", TICODE_kMSG },
358 { "%b", TICODE_kMOV },
359 { "%c", TICODE_kNXT },
360 { "%d", TICODE_kOPT },
361 { "%e", TICODE_kPRV },
362 { "%f", TICODE_kPRT },
363 { "kR", TICODE_kri },
364 { "%g", TICODE_kRDO },
365 { "%h", TICODE_kRPL },
366 { "%i", TICODE_kRIT },
367 { "%j", TICODE_kRES },
368 { "!1", TICODE_kSAV },
369 { "!2", TICODE_kSPD },
370 { "kT", TICODE_khts },
371 { "!3", TICODE_kUND },
372 { "&7", TICODE_kspd },
373 { "&8", TICODE_kund },
374 { "ku", TICODE_kcuu1 },
375 { "ke", TICODE_rmkx },
376 { "ks", TICODE_smkx },
377 { "l0", TICODE_lf0 },
378 { "l1", TICODE_lf1 },
379 { "l2", TICODE_lf2 },
380 { "l3", TICODE_lf3 },
381 { "l4", TICODE_lf4 },
382 { "l5", TICODE_lf5 },
383 { "l6", TICODE_lf6 },
384 { "l7", TICODE_lf7 },
385 { "l8", TICODE_lf8 },
386 { "l9", TICODE_lf9 },
387 { "la", TICODE_lf10 },
388 { "Lf", TICODE_fln },
389 { "LF", TICODE_rmln },
390 { "LO", TICODE_smln },
391 { "mo", TICODE_rmm },
392 { "mm", TICODE_smm },
393 { "ZY", TICODE_mhpa },
394 { "ZZ", TICODE_mcud1 },
395 { "Za", TICODE_mcub1 },
396 { "Zb", TICODE_mcuf1 },
397 { "Zc", TICODE_mvpa },
398 { "Zd", TICODE_mcuu1 },
399 { "Mi", TICODE_minfo },
400 { "nw", TICODE_nel },
401 { "Ze", TICODE_porder },
402 { "oc", TICODE_oc },
403 { "op", TICODE_op },
404 { "pc", TICODE_pad },
405 { "DC", TICODE_dch },
406 { "DL", TICODE_dl },
407 { "DO", TICODE_cud },
408 { "Zf", TICODE_mcud },
409 { "IC", TICODE_ich },
410 { "SF", TICODE_indn },
411 { "AL", TICODE_il },
412 { "LE", TICODE_cub },
413 { "Zg", TICODE_mcub },
414 { "RI", TICODE_cuf },
415 { "Zh", TICODE_mcuf },
416 { "SR", TICODE_rin },
417 { "UP", TICODE_cuu },
418 { "Zi", TICODE_mcuu },
419 { "S6", TICODE_pctrm },
420 { "pk", TICODE_pfkey },
421 { "pl", TICODE_pfloc },
422 { "xl", TICODE_pfxl },
423 { "px", TICODE_pfx },
424 { "pn", TICODE_pln },
425 { "ps", TICODE_mc0 },
426 { "pO", TICODE_mc5p },
427 { "pf", TICODE_mc4 },
428 { "po", TICODE_mc5 },
429 { "PU", TICODE_pulse },
430 { "QD", TICODE_qdial },
431 { "RC", TICODE_rmclk },
432 { "rp", TICODE_rep },
433 { "RF", TICODE_rfi },
434 { "RQ", TICODE_reqmp },
435 { "r1", TICODE_rs1 },
436 { "r2", TICODE_rs2 },
437 { "r3", TICODE_rs3 },
438 { "rf", TICODE_rf },
439 { "rc", TICODE_rc },
440 { "cv", TICODE_vpa },
441 { "sc", TICODE_sc },
442 { "S7", TICODE_scesc },
443 { "sf", TICODE_ind },
444 { "sr", TICODE_ri },
445 { "Zj", TICODE_scs },
446 { "s0", TICODE_s0ds },
447 { "s1", TICODE_s1ds },
448 { "s2", TICODE_s2ds },
449 { "s3", TICODE_s3ds },
450 { "sA", TICODE_sgr1 },
451 { "AB", TICODE_setab },
452 { "AF", TICODE_setaf },
453 { "sa", TICODE_sgr },
454 { "Sb", TICODE_setb },
455 { "Zk", TICODE_smgb },
456 { "Zl", TICODE_smgbp },
457 { "SC", TICODE_sclk },
458 { "Yz", TICODE_slines },
459 { "sL", TICODE_slength },
460 { "sp", TICODE_scp },
461 { "Sf", TICODE_setf },
462 { "ML", TICODE_smgl }, /* We should fallback to TICODE_smglr */
463 { "Zm", TICODE_smglp },
464 { "YZ", TICODE_slines },
465 { "YI", TICODE_slength },
466 { "MR", TICODE_smgr },
467 { "Zn", TICODE_smgrp },
468 { "st", TICODE_hts },
469 { "MT", TICODE_smgtb },
470 { "Zo", TICODE_smgt },
471 { "Zp", TICODE_smgtp },
472 { "wi", TICODE_wind },
473 { "Zq", TICODE_sbim },
474 { "Zr", TICODE_scsd },
475 { "Zs", TICODE_rbim },
476 { "Zt", TICODE_rcsd },
477 { "Zu", TICODE_subcs },
478 { "Zv", TICODE_supcs },
479 { "ta", TICODE_ht },
480 { "Zw", TICODE_docr },
481 { "ts", TICODE_tsl },
482 { "TO", TICODE_tone },
483 { "u0", TICODE_u0 },
484 { "u1", TICODE_u1 },
485 { "u2", TICODE_u2 },
486 { "u3", TICODE_u3 },
487 { "u4", TICODE_u4 },
488 { "u5", TICODE_u5 },
489 { "u6", TICODE_u6 },
490 { "u7", TICODE_u7 },
491 { "u8", TICODE_u8 },
492 { "u9", TICODE_u9 },
493 { "uc", TICODE_uc },
494 { "hu", TICODE_hu },
495 { "WA", TICODE_wait },
496 { "XF", TICODE_xoffc },
497 { "XN", TICODE_xonc },
498 { "Zx", TICODE_zerom },
500 /* NetBSD extensions */
501 { "@0", TICODE_kfnd },
502 { "@1", TICODE_kbeg },
503 { "@2", TICODE_kcan },
504 { "@3", TICODE_kclo },
505 { "@4", TICODE_kcmd },
506 { "@5", TICODE_kcpy },
507 { "@6", TICODE_kcrt },
508 { "@7", TICODE_kend },
509 { "@8", TICODE_kent },
510 { "@9", TICODE_kext },