1#!
2
3ticvttc() {
4    infocmp -L "$1" | sed -n "/^.*$2=\([^,]*\),.*/s//:$3=\1/p"
5}
6
7get_tc_list() {
8	# Fn keys
9    ticvttc "$1" key_f0 	'k0'
10    ticvttc "$1" key_f1 	'k1'
11    ticvttc "$1" key_f2 	'k2'
12    ticvttc "$1" key_f3 	'k3'
13    ticvttc "$1" key_f4 	'k4'
14    ticvttc "$1" key_f5 	'k5'
15    ticvttc "$1" key_f6 	'k6'
16    ticvttc "$1" key_f7 	'k7'
17    ticvttc "$1" key_f8 	'k8'
18    ticvttc "$1" key_f9 	'k9'
19    ticvttc "$1" key_f10 	'k;'
20    ticvttc "$1" key_f11 	'F1'
21    ticvttc "$1" key_f12 	'F2'
22    ticvttc "$1" key_f13 	'F3'
23    ticvttc "$1" key_f14 	'F4'
24    ticvttc "$1" key_f15 	'F5'
25    ticvttc "$1" key_f16 	'F6'
26    ticvttc "$1" key_f17 	'F7'
27    ticvttc "$1" key_f18 	'F8'
28    ticvttc "$1" key_f19 	'F9'
29    ticvttc "$1" key_f20 	'FA'
30    ticvttc "$1" key_f21 	'FB'
31    ticvttc "$1" key_f22 	'FC'
32    ticvttc "$1" key_f23 	'FD'
33    ticvttc "$1" key_f24 	'FE'
34    ticvttc "$1" key_f25 	'FF'
35    ticvttc "$1" key_f26 	'FG'
36    ticvttc "$1" key_f27 	'FH'
37    ticvttc "$1" key_f28 	'FI'
38    ticvttc "$1" key_f29 	'FJ'
39    ticvttc "$1" key_f30 	'FK'
40    ticvttc "$1" key_f31 	'FL'
41    ticvttc "$1" key_f32 	'FM'
42    ticvttc "$1" key_f33 	'FN'
43    ticvttc "$1" key_f34 	'FO'
44    ticvttc "$1" key_f35 	'FP'
45    ticvttc "$1" key_f36 	'FQ'
46    ticvttc "$1" key_f37 	'FR'
47    ticvttc "$1" key_f38 	'FS'
48    ticvttc "$1" key_f39 	'FT'
49    ticvttc "$1" key_f40 	'FU'
50    ticvttc "$1" key_f41 	'FV'
51    ticvttc "$1" key_f42 	'FW'
52    ticvttc "$1" key_f43 	'FX'
53    ticvttc "$1" key_f44 	'FY'
54    ticvttc "$1" key_f45 	'FZ'
55    ticvttc "$1" key_f46 	'Fa'
56    ticvttc "$1" key_f47 	'Fb'
57    ticvttc "$1" key_f48 	'Fc'
58    ticvttc "$1" key_f49 	'Fd'
59    ticvttc "$1" key_f50 	'Fe'
60    ticvttc "$1" key_f51 	'Ff'
61    ticvttc "$1" key_f52 	'Fg'
62    ticvttc "$1" key_f53 	'Fh'
63    ticvttc "$1" key_f54 	'Fi'
64    ticvttc "$1" key_f55 	'Fj'
65    ticvttc "$1" key_f56 	'Fk'
66    ticvttc "$1" key_f57 	'Fl'
67    ticvttc "$1" key_f58 	'Fm'
68    ticvttc "$1" key_f59 	'Fn'
69    ticvttc "$1" key_f60 	'Fo'
70    ticvttc "$1" key_f61 	'Fp'
71    ticvttc "$1" key_f62 	'Fq'
72    ticvttc "$1" key_f63 	'Fr'
73
74	# Shift-keys
75    ticvttc "$1" key_sbeg 	'&9'
76    ticvttc "$1" key_scancel 	'&0'
77    ticvttc "$1" key_scommand 	'*1'
78    ticvttc "$1" key_scopy 	'*2'
79    ticvttc "$1" key_screate 	'*3'
80    ticvttc "$1" key_sdc 	'*4'
81    ticvttc "$1" key_sdl 	'*5'
82    ticvttc "$1" key_send 	'*7'
83    ticvttc "$1" key_seol 	'*8'
84    ticvttc "$1" key_sexit 	'*9'
85    ticvttc "$1" key_sf 	'kF'	# Scroll-forward == <Shift>+<Down>
86    ticvttc "$1" key_sfind 	'*0'
87    ticvttc "$1" key_shelp 	'#1'
88    ticvttc "$1" key_shome 	'#2'
89    ticvttc "$1" key_sic 	'#3'
90    ticvttc "$1" key_sleft 	'#4'
91    ticvttc "$1" key_smessage 	'%a'
92    ticvttc "$1" key_smove 	'%b'
93    ticvttc "$1" key_snext 	'%c'
94    ticvttc "$1" key_soptions 	'%d'
95    ticvttc "$1" key_sprevious 	'%e'
96    ticvttc "$1" key_sprint 	'%f'
97    ticvttc "$1" key_sr 	'kR'	# Scroll-backward == <Shift>+<Up>
98    ticvttc "$1" key_sredo 	'%g'
99    ticvttc "$1" key_sreplace 	'%h'
100    ticvttc "$1" key_sright 	'%i'
101    ticvttc "$1" key_srsume 	'%j'
102    ticvttc "$1" key_ssave 	'!1'
103    ticvttc "$1" key_ssuspend 	'!2'
104    ticvttc "$1" key_stab 	'kT'
105    ticvttc "$1" key_sundo 	'!3'
106    ticvttc "$1" key_btab 	'kB'	# BackTab == <Shift>+<Tab>
107}
108
109get_tc_list "$1" | awk '{
110	if(!getline s1) {
111	    s1 = "";
112	}
113	if(!getline s2) {
114	    s2 = "";
115	}
116	if(!getline s3) {
117	    s3 = "";
118	}
119	if(!getline s4) {
120	    s4 = "";
121	}
122	print "\t" $0 s1 s2 s3 s4 ":\\";
123    }'
124
125