3 Now I come back to telnet source, and make some changes, wich you suggest
6 1. telnet.rc renamed to telnet.cfg
7 2. I change syntax of 'keys' command (but I did'nt found a tool for edit
8 msg*.bin files - so it's remain unchanged). Syntax are
10 keys load keymapname [file]
15 I fix some 'political' ;) problem with charmap, now we (citizens of xUSSR)
16 have koi8, koi8r and koi8u(RFC on draft) on UNIX, wich are diff's on 6 or
17 8 letters; cp866 and many (3 or 4) very near to cp866 on DOS.
19 So, I rewrite code to able a charmap addition like a keymap done.
21 And I make more smart command line processing, look at telCommandLine().
23 And last: my english is not so good :( to rewrite documentation, but there are
24 things, wich would be described - look on next page. I think that you will
25 translate my english to more understable, ok?
27 and now is a list of files, wich I touch
32 ANSIPRSR.CPP 32763 05.10.97 11:09 33237 24.12.97 17:42
33 ANSIPRSR.H 3311 04.09.97 0:25 3410 23.12.97 13:18
34 KEYTRANS.CPP 9504 28.05.97 22:43 26547 03.02.98 21:33
35 KEYTRANS.H 8020 25.01.97 16:06 8090 03.02.98 19:53
36 TNCLASS.CPP 13663 17.08.97 23:55 13891 03.02.98 20:09
37 TNCLASS.H 1112 01.06.97 14:19 1233 03.02.98 20:09
38 TNMAIN.CPP 12668 02.10.97 20:38 16610 03.02.98 21:22
39 TNNET.CPP 3445 01.06.97 14:21 3474 23.12.97 13:16
40 TNPARSER.CPP 17653 05.10.97 11:09 17715 23.12.97 18:03
41 TNPARSER.H 2129 01.06.97 14:22 2188 23.12.97 13:25
46 TELNET.IDE 65810 26.10.97 16:53 66118 03.02.98 21:34
49 I was start my work with file telc2b4s.zip with size 132619 bytes, and now send
50 to you just files, wich I touch.
55 smile@head.aval.kiev.ua
60 There are all of my changes (from 2.04b), wich have to be described:
62 1. command line (telnet>) processing
67 keys keymapname [file]
69 keys load keymapname [file] // mean unchanged
70 keys display // display a list of loaded keymaps
71 keys switch number // switch to keymap
73 more smart command processing
75 command might be writed shortly
88 synonym of '?' -> h[elp]
90 2. file 'keys.cfg' renamed to 'telnet.cfg'
92 3. Added codepage conversion, look [charmap]
94 4. completely changed conception of telnet.cfg
96 Now you can define multiple keymaps, character maps, combine it in your
99 file is splitted into following sections:
105 it is for comment a big part of text. can be nested.
108 ; - first printable character in line, which is completelly
110 // - like C++ comment
116 mean of [global] unchanged
121 'name' - is a keymap name for reference. in 'name' you can use
122 any char exept spaces, '+', ':' and ']'. '+' and ':' reserved for
124 body is a sequence of key definition:
126 <vk_name> [keymodifier[+keymodifier[+...]]] <keytranslation>
129 VK_F1 RIGHT_ALT+RIGHT_CTRL this_would_print
131 vk_name is an ASCII string equivalent to an entry in [GLOBAL].
133 valid keymodifiers are:
141 Undefined enhanced keys will use the non-enhanced definition.
143 keytranslation is the string you want printed for the key.
144 The notation ^[ can be used to denote an escape character.
145 Any ASCII value can be represented by
147 \nnn where nnn is a 3 digit decimal ASCII value or
148 \xhh where hh is a 2 digit hexadecimal ASCII value.
150 Leading zeros may not be omitted.
151 A value of \000(\x00) will not be transmitted.
153 note: In order to have both left and right alt have the same
154 action, you must create a separate def for left and right.
160 'name' - is a charmap name for reference. requirements is the same
162 body is a sequence of char conversion definition:
164 <host_char> <console_char>
166 where host_char is a char received from host, and console_char
167 is a char, which would be displayed on console.
169 The main purpose of it is a conversion between differents code
170 pages, for example, on former USSR part of world most unix's hosts
171 uses 'koi8' code page, and on W95 machines - 866 code page and
172 (as say I.Ioannou) Greece has the same problem with 737 and 928
176 Any ASCII value can be represented by
178 \nnn where nnn is a 3 digit decimal ASCII value or
179 \xhh where hh is a 2 digit hexadecimal ASCII value.
181 Leading zeros may be omitted.
182 A value of \000(\x00) will not be accepted.
184 look for example at [charmap koi8-cp866].
189 'name' - is a configuration name for reference. requirements is
190 the same as for keymap name.
192 you must define one with name 'default', which will be used as
195 in body of this part you can combine keymaps and set charmap,
198 KEYMAP name_list [: <vk_name> [keymodifier[+keymodifier[+...]]] ]
203 keymap_name '+' name_list
205 keymap_name is a name of [KEYMAP]
207 You can specify multiple keymaps, for first (mean default)
208 you can not define ': <vk_name> ...' part, but for rests
209 (secondary) you must!
210 The ': <vk_name> ...' part define a key for switch to this
213 Assigning a switching key to first (default) keymap will be
214 ignored, but you can switch to by pressing second time switch
215 key of current keymap.
217 If a key not found in switched keymap, a program will be look
218 for it in default keymap. So, you can redefine only needed keys
219 in secondary keymaps.
226 charmap_name '+' name_list
228 charmap_name is a name of [CHARMAP]
231 define wich charmap(s) is to use.
239 keymap default + linux
242 [config default_koi8]
244 keymap koi8u + koi8r : VK_/ RIGHT_ALT // russian keyboard
245 keymap koi8u : VK_. RIGHT_ALT // ukranian
251 keymap default + linux
252 keymap koi8u + koi8r : VK_/ RIGHT_ALT // russian keyboard
253 keymap koi8u : VK_. RIGHT_ALT // ukranian
255 charmap koi8-cp866 + koi8u-cp866
258 so, for switch to russian keyboard just press RIGHT_ALT and '/'.
259 and, for switch back to default press it again.