mirror of
https://github.com/reactos/reactos.git
synced 2024-12-28 18:15:11 +00:00
262 lines
7.8 KiB
Text
262 lines
7.8 KiB
Text
|
Hi!
|
|||
|
|
|||
|
Now I come back to telnet source, and make some changes, wich you suggest
|
|||
|
to me:
|
|||
|
|
|||
|
1. telnet.rc renamed to telnet.cfg
|
|||
|
2. I change syntax of 'keys' command (but I did'nt found a tool for edit
|
|||
|
msg*.bin files - so it's remain unchanged). Syntax are
|
|||
|
|
|||
|
keys load keymapname [file]
|
|||
|
keys display
|
|||
|
keys switch number
|
|||
|
|
|||
|
|
|||
|
I fix some 'political' ;) problem with charmap, now we (citizens of xUSSR)
|
|||
|
have koi8, koi8r and koi8u(RFC on draft) on UNIX, wich are diff's on 6 or
|
|||
|
8 letters; cp866 and many (3 or 4) very near to cp866 on DOS.
|
|||
|
|
|||
|
So, I rewrite code to able a charmap addition like a keymap done.
|
|||
|
|
|||
|
And I make more smart command line processing, look at telCommandLine().
|
|||
|
|
|||
|
And last: my english is not so good :( to rewrite documentation, but there are
|
|||
|
things, wich would be described - look on next page. I think that you will
|
|||
|
translate my english to more understable, ok?
|
|||
|
|
|||
|
and now is a list of files, wich I touch
|
|||
|
|
|||
|
|
|||
|
old new
|
|||
|
|
|||
|
ANSIPRSR.CPP 32763 05.10.97 11:09 33237 24.12.97 17:42
|
|||
|
ANSIPRSR.H 3311 04.09.97 0:25 3410 23.12.97 13:18
|
|||
|
KEYTRANS.CPP 9504 28.05.97 22:43 26547 03.02.98 21:33
|
|||
|
KEYTRANS.H 8020 25.01.97 16:06 8090 03.02.98 19:53
|
|||
|
TNCLASS.CPP 13663 17.08.97 23:55 13891 03.02.98 20:09
|
|||
|
TNCLASS.H 1112 01.06.97 14:19 1233 03.02.98 20:09
|
|||
|
TNMAIN.CPP 12668 02.10.97 20:38 16610 03.02.98 21:22
|
|||
|
TNNET.CPP 3445 01.06.97 14:21 3474 23.12.97 13:16
|
|||
|
TNPARSER.CPP 17653 05.10.97 11:09 17715 23.12.97 18:03
|
|||
|
TNPARSER.H 2129 01.06.97 14:22 2188 23.12.97 13:25
|
|||
|
|
|||
|
KEYS.CFG erased
|
|||
|
TELNET.CFG new
|
|||
|
|
|||
|
TELNET.IDE 65810 26.10.97 16:53 66118 03.02.98 21:34
|
|||
|
|
|||
|
|
|||
|
I was start my work with file telc2b4s.zip with size 132619 bytes, and now send
|
|||
|
to you just files, wich I touch.
|
|||
|
|
|||
|
with best regards
|
|||
|
Andrei V. Smilianets
|
|||
|
|
|||
|
smile@head.aval.kiev.ua
|
|||
|
22:25 03 Feb 1998
|
|||
|
|
|||
|
|
|||
|
|
|||
|
There are all of my changes (from 2.04b), wich have to be described:
|
|||
|
|
|||
|
1. command line (telnet>) processing
|
|||
|
|
|||
|
a 'keys' command
|
|||
|
|
|||
|
was
|
|||
|
keys keymapname [file]
|
|||
|
new
|
|||
|
keys load keymapname [file] // mean unchanged
|
|||
|
keys display // display a list of loaded keymaps
|
|||
|
keys switch number // switch to keymap
|
|||
|
|
|||
|
more smart command processing
|
|||
|
|
|||
|
command might be writed shortly
|
|||
|
|
|||
|
cl[ose]
|
|||
|
op[en]
|
|||
|
ke[ys]
|
|||
|
qu[it]
|
|||
|
|
|||
|
subcommands of 'keys'
|
|||
|
|
|||
|
l[oad]
|
|||
|
d[isplay]
|
|||
|
s[witch]
|
|||
|
|
|||
|
synonym of '?' -> h[elp]
|
|||
|
|
|||
|
2. file 'keys.cfg' renamed to 'telnet.cfg'
|
|||
|
|
|||
|
3. Added codepage conversion, look [charmap]
|
|||
|
|
|||
|
4. completely changed conception of telnet.cfg
|
|||
|
|
|||
|
Now you can define multiple keymaps, character maps, combine it in your
|
|||
|
ways.
|
|||
|
|
|||
|
file is splitted into following sections:
|
|||
|
|
|||
|
[COMMENT]
|
|||
|
...
|
|||
|
[END COMMENT]
|
|||
|
|
|||
|
it is for comment a big part of text. can be nested.
|
|||
|
in text also work:
|
|||
|
|
|||
|
; - first printable character in line, which is completelly
|
|||
|
ignored.
|
|||
|
// - like C++ comment
|
|||
|
|
|||
|
[GLOBAL]
|
|||
|
...
|
|||
|
[END GLOBAL]
|
|||
|
|
|||
|
mean of [global] unchanged
|
|||
|
|
|||
|
[KEYMAP name]
|
|||
|
...
|
|||
|
[END KEYMAP]
|
|||
|
'name' - is a keymap name for reference. in 'name' you can use
|
|||
|
any char exept spaces, '+', ':' and ']'. '+' and ':' reserved for
|
|||
|
CONFIG section.
|
|||
|
body is a sequence of key definition:
|
|||
|
|
|||
|
<vk_name> [keymodifier[+keymodifier[+...]]] <keytranslation>
|
|||
|
|
|||
|
example:
|
|||
|
VK_F1 RIGHT_ALT+RIGHT_CTRL this_would_print
|
|||
|
|
|||
|
vk_name is an ASCII string equivalent to an entry in [GLOBAL].
|
|||
|
|
|||
|
valid keymodifiers are:
|
|||
|
RIGHT_ALT
|
|||
|
LEFT_ALT
|
|||
|
RIGHT_CTRL
|
|||
|
LEFT_CTRL
|
|||
|
SHIFT
|
|||
|
ENHANCED
|
|||
|
|
|||
|
Undefined enhanced keys will use the non-enhanced definition.
|
|||
|
|
|||
|
keytranslation is the string you want printed for the key.
|
|||
|
The notation ^[ can be used to denote an escape character.
|
|||
|
Any ASCII value can be represented by
|
|||
|
|
|||
|
\nnn where nnn is a 3 digit decimal ASCII value or
|
|||
|
\xhh where hh is a 2 digit hexadecimal ASCII value.
|
|||
|
|
|||
|
Leading zeros may not be omitted.
|
|||
|
A value of \000(\x00) will not be transmitted.
|
|||
|
|
|||
|
note: In order to have both left and right alt have the same
|
|||
|
action, you must create a separate def for left and right.
|
|||
|
|
|||
|
|
|||
|
[CHARMAP name]
|
|||
|
...
|
|||
|
[END CHARMAP]
|
|||
|
'name' - is a charmap name for reference. requirements is the same
|
|||
|
as for keymap name.
|
|||
|
body is a sequence of char conversion definition:
|
|||
|
|
|||
|
<host_char> <console_char>
|
|||
|
|
|||
|
where host_char is a char received from host, and console_char
|
|||
|
is a char, which would be displayed on console.
|
|||
|
|
|||
|
The main purpose of it is a conversion between differents code
|
|||
|
pages, for example, on former USSR part of world most unix's hosts
|
|||
|
uses 'koi8' code page, and on W95 machines - 866 code page and
|
|||
|
(as say I.Ioannou) Greece has the same problem with 737 and 928
|
|||
|
code-pages.
|
|||
|
|
|||
|
|
|||
|
Any ASCII value can be represented by
|
|||
|
|
|||
|
\nnn where nnn is a 3 digit decimal ASCII value or
|
|||
|
\xhh where hh is a 2 digit hexadecimal ASCII value.
|
|||
|
|
|||
|
Leading zeros may be omitted.
|
|||
|
A value of \000(\x00) will not be accepted.
|
|||
|
|
|||
|
look for example at [charmap koi8-cp866].
|
|||
|
|
|||
|
[CONFIG name]
|
|||
|
...
|
|||
|
[END CONFIG]
|
|||
|
'name' - is a configuration name for reference. requirements is
|
|||
|
the same as for keymap name.
|
|||
|
|
|||
|
you must define one with name 'default', which will be used as
|
|||
|
default.
|
|||
|
|
|||
|
in body of this part you can combine keymaps and set charmap,
|
|||
|
format is:
|
|||
|
|
|||
|
KEYMAP name_list [: <vk_name> [keymodifier[+keymodifier[+...]]] ]
|
|||
|
|
|||
|
where
|
|||
|
name_list:
|
|||
|
keymap_name
|
|||
|
keymap_name '+' name_list
|
|||
|
|
|||
|
keymap_name is a name of [KEYMAP]
|
|||
|
|
|||
|
You can specify multiple keymaps, for first (mean default)
|
|||
|
you can not define ': <vk_name> ...' part, but for rests
|
|||
|
(secondary) you must!
|
|||
|
The ': <vk_name> ...' part define a key for switch to this
|
|||
|
keymap.
|
|||
|
|
|||
|
Assigning a switching key to first (default) keymap will be
|
|||
|
ignored, but you can switch to by pressing second time switch
|
|||
|
key of current keymap.
|
|||
|
|
|||
|
If a key not found in switched keymap, a program will be look
|
|||
|
for it in default keymap. So, you can redefine only needed keys
|
|||
|
in secondary keymaps.
|
|||
|
|
|||
|
CHARMAP name_list
|
|||
|
|
|||
|
where
|
|||
|
name_list:
|
|||
|
charmap_name
|
|||
|
charmap_name '+' name_list
|
|||
|
|
|||
|
charmap_name is a name of [CHARMAP]
|
|||
|
|
|||
|
|
|||
|
define wich charmap(s) is to use.
|
|||
|
|
|||
|
examples:
|
|||
|
[config default]
|
|||
|
keymap default
|
|||
|
[end config]
|
|||
|
|
|||
|
[config linux]
|
|||
|
keymap default + linux
|
|||
|
[end config]
|
|||
|
|
|||
|
[config default_koi8]
|
|||
|
keymap default
|
|||
|
keymap koi8u + koi8r : VK_/ RIGHT_ALT // russian keyboard
|
|||
|
keymap koi8u : VK_. RIGHT_ALT // ukranian
|
|||
|
|
|||
|
charmap koi8-cp866
|
|||
|
[end config]
|
|||
|
|
|||
|
[config linux_koi8]
|
|||
|
keymap default + linux
|
|||
|
keymap koi8u + koi8r : VK_/ RIGHT_ALT // russian keyboard
|
|||
|
keymap koi8u : VK_. RIGHT_ALT // ukranian
|
|||
|
|
|||
|
charmap koi8-cp866 + koi8u-cp866
|
|||
|
[end config]
|
|||
|
|
|||
|
so, for switch to russian keyboard just press RIGHT_ALT and '/'.
|
|||
|
and, for switch back to default press it again.
|
|||
|
|
|||
|
|