This directory contains tools for maintaining the tables in the localcharset.c
file.

The main script is "all-charsets". Before using it, you must configure
this package. For all installed locales, it prints
  - the result of the command "locale charmap",
  - the result of "nl_langinfo (CODESET)",
  - the result of "locale_charset ()".

It uses the following auxiliary scripts and programs:
  - all-locales
    Prints all usable locales in the system, one per line.
  - locale_charmap
    Executes "locale charmap".
  - locale_codeset.c
    Prints nl_langinfo (CODESET).
  - locale_charset.c
    Prints locale_charset().

A second main script is "all-charsets-X11". It also prints the X11
encoding name. Before using it, you must tweak the X11 paths needed
for compiling locale_x11encoding (a simple X11 program), and let your
DISPLAY environment variable point to a running X11 screen.

The other files are test results from various operating systems.

