1 /* $NetBSD: termcap_map.c,v 1.3 2010/09/22 06:10:51 roy Exp $ */
4 * Copyright (c) 2009 The NetBSD Foundation, Inc.
6 * This code is derived from software contributed to The NetBSD Foundation
9 * Redistribution and use in source and binary forms, with or without
10 * modification, are permitted provided that the following conditions
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 $");
38 static const TENTRY _ti_cap_flagids
[] = {
44 { "YA", TICODE_xhpa
},
45 { "YF", TICODE_cpix
},
46 { "YB", TICODE_crxm
},
48 { "xn", TICODE_xenl
},
52 { "HC", TICODE_chts
},
54 { "YC", TICODE_daisy
},
58 { "YG", TICODE_lpix
},
62 { "ms", TICODE_msgr
},
63 { "nx", TICODE_nxon
},
66 { "ND", TICODE_ndscr
},
67 { "NR", TICODE_nrrmc
},
69 { "5i", TICODE_mc5i
},
70 { "YD", TICODE_xvpa
},
72 { "es", TICODE_eslok
},
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
},
89 { "li", TICODE_lines
},
93 { "Co", TICODE_colors
},
94 { "Yd", TICODE_maddr
},
95 { "Ye", TICODE_mjump
},
96 { "pa", TICODE_pairs
},
97 { "MW", TICODE_wnum
},
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
},
108 { "Ym", TICODE_cps
},
110 { "Yn", TICODE_widcs
},
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
},
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
},
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
},
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
},
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
},
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
},
229 { "iP", TICODE_iprog
},
230 { "Ic", TICODE_initc
},
231 { "Ip", TICODE_initp
},
232 { "ic", TICODE_ich1
},
233 { "al", TICODE_il1
},
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
},
404 { "pc", TICODE_pad
},
405 { "DC", TICODE_dch
},
407 { "DO", TICODE_cud
},
408 { "Zf", TICODE_mcud
},
409 { "IC", TICODE_ich
},
410 { "SF", TICODE_indn
},
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
},
440 { "cv", TICODE_vpa
},
442 { "S7", TICODE_scesc
},
443 { "sf", TICODE_ind
},
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
},
480 { "Zw", TICODE_docr
},
481 { "ts", TICODE_tsl
},
482 { "TO", TICODE_tone
},
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
},