Annotation of src/lib/libterminfo/termcap_map.c, Revision 1.2
1.2 ! roy 1: /* $NetBSD: termcap_map.c,v 1.1 2010/02/03 15:16:32 roy Exp $ */
1.1 roy 2:
3: /*
4: * Copyright (c) 2009 The NetBSD Foundation, Inc.
5: *
6: * This code is derived from software contributed to The NetBSD Foundation
7: * by Roy Marples.
8: *
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.
17: *
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.
28: */
29:
30: #include <sys/cdefs.h>
1.2 ! roy 31: __RCSID("$NetBSD: termcap_map.c,v 1.1 2010/02/03 15:16:32 roy Exp $");
1.1 roy 32:
33: typedef struct termcap_entry {
34: const char id[3];
35: int ti;
36: } TENTRY;
37:
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 }
76: };
77:
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 }
112: };
113:
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 },
499:
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 },
511: };
CVSweb <webmaster@jp.NetBSD.org>