Screen has a powerful mechanism to translate characters to
arbitrary strings depending on the current font and terminal
type. Use this feature if you want to work with a common
standard character set (say ISO8851-latin1) even on terminals
that scatter the more unusual characters over several national
language font pages.
Syntax:
XC=
<charset-mapping>{,,
<charset-mapping>}
<charset-mapping> := <designator><template>{,
<mapping>}
<mapping> := <char-to-be-mapped><template-arg>
The things in braces may be repeated any number of times.
A <charset-mapping> tells screen how to map characters in font
<designator> ('B': Ascii, 'A': UK, 'K': German, etc.) to
strings. Every <mapping> describes to what string a single
character will be translated. A template mechanism is used, as
most of the time the codes have a lot in common (for example
strings to switch to and from another charset). Each occurrence
of '%' in <template> gets substituted with the <template-arg>
specified together with the character. If your strings are not
similar at all, then use '%' as a template and place the full
string in <template-arg>. A quoting mechanism was added to make
it possible to use a real '%'. The '\' character quotes the
special characters '\', '%', and ','.
Here is an example:
termcap hp700 'XC=B\E(K%\E(B,\304[,\326\\\\,\334]'
This tells screen how to translate ISOlatin1 (charset 'B') upper
case umlaut characters on a hp700 terminal that has a German
charset. '\304' gets translated to '\E(K[\E(B' and so on. Note
that this line gets parsed *three* times before the internal
lookup table is built, therefore a lot of quoting is needed to
create a single '\'.
Another extension was added to allow more emulation: If a mapping
translates the unquoted '%' char, it will be sent to the terminal
whenever screen switches to the corresponding <designator>. In
this special case the template is assumed to be just '%' because
the charset switch sequence and the character mappings normally
haven't much in common.
This example shows one use of the extension:
termcap xterm 'XC=K%,%\E(B,[\304,\\\\\326,]\334'
Here, a part of the German ('K') charset is emulated on an xterm.
If screen has to change to the 'K' charset, '\E(B' will be sent
to the terminal, i.e. the ASCII charset is used instead. The
template is just '%', so the mapping is straightforward: '[' to
'\304', '\' to '\326', and ']' to '\334'.