
The whole charset thing resides in charset.{c,h} and is written for the
linux de-latin1.map keymap.

How to add a new charset
------------------------

Edit charset.h

Add one (or more) to MAXCHRS

STDCHRS is the charset which will be used, if no valid charset can be found
in an incoming message.

Edit charset.c:

Add a new description for your charset in CHRSETS

SETS translates incoming chars to the internal set, BACK translates internal
chars back to outgoing ones. In each of these enter a new 256 byte table
which represents the translation.
The easy way to do this is to use GNU recode.

Example: To add a new charset called 'gnudu' increment MAXCHRS by one. Then
add a new line in CHRSETS such as '"GNUDU","GNUDU-1","",'. Now start recode:
for the SETS table call 'recode -h gnudu:latin1 >gnudu.set' and call 'recode
-h latin1:gnudu >gnudu.back' for the BACK table. Now insert each table in
the right set (SETS/BACK).
(In this example the internal charset is latin1)

How to change the internal charset
----------------------------------

As in 'add a new charset' but now you must change all the SETS and BACK
tables to your new internal set.

The PRINTABLECHAR table shows which chars can be printet to the screen,
converted, or piped through the translation (untranslated).
Tip: use a ASCII-Table to see which char can actually be seen on the screen.
If there are any chars which can be translated (so as the german umlaute)
then enter a 2 in PRINTABLECHARS (inthe right place) and add an entry to
CONVERTCHAR. The first place holds the code of the char, the second is the
string to print. Don't forget to update also maxCONVERTCHAR!

How to get ignore case matching work
------------------------------------

Simply change the RE_ICASE_TRANS_MAP in charset.c . Map all uppercase to the
corresponding lowercase chars. The standart set maps only german umlaute in
addition to the standart set.
