#! /bin/sh
# Output a system dependent table of character encoding aliases.
#
#   Copyright (C) 2000-2004 Free Software Foundation, Inc.
#
#   This program is free software; you can redistribute it and/or modify it
#   under the terms of the GNU Library General Public License as published
#   by the Free Software Foundation; either version 2, or (at your option)
#   any later version.
#
#   This program is distributed in the hope that it will be useful,
#   but WITHOUT ANY WARRANTY; without even the implied warranty of
#   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
#   Library General Public License for more details.
#
#   You should have received a copy of the GNU Library General Public
#   License along with this program; if not, write to the Free Software
#   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
#   USA.
#
# The table consists of lines of the form
#    ALIAS  CANONICAL
#
# ALIAS is the (system dependent) result of "nl_langinfo (CODESET)".
# ALIAS is compared in a case sensitive way.
#
# CANONICAL is the GNU canonical name for this character encoding.
# It must be an encoding supported by libiconv. Support by GNU libc is
# also desirable. CANONICAL is case insensitive. Usually an upper case
# MIME charset name is preferred.
# The current list of GNU canonical charset names is as follows.
#
#       name              MIME?             used by which systems
#   ASCII, ANSI_X3.4-1968       glibc solaris freebsd darwin
#   ISO-8859-1              Y   glibc aix hpux irix osf solaris freebsd darwin
#   ISO-8859-2              Y   glibc aix hpux irix osf solaris freebsd darwin
#   ISO-8859-3              Y   glibc solaris
#   ISO-8859-4              Y   osf solaris freebsd darwin
#   ISO-8859-5              Y   glibc aix hpux irix osf solaris freebsd darwin
#   ISO-8859-6              Y   glibc aix hpux solaris
#   ISO-8859-7              Y   glibc aix hpux irix osf solaris darwin
#   ISO-8859-8              Y   glibc aix hpux osf solaris
#   ISO-8859-9              Y   glibc aix hpux irix osf solaris darwin
#   ISO-8859-13                 glibc darwin
#   ISO-8859-14                 glibc
#   ISO-8859-15                 glibc aix osf solaris freebsd darwin
#   KOI8-R                  Y   glibc solaris freebsd darwin
#   KOI8-U                  Y   glibc freebsd darwin
#   KOI8-T                      glibc
#   CP437                       dos
#   CP775                       dos
#   CP850                       aix osf dos
#   CP852                       dos
#   CP855                       dos
#   CP856                       aix
#   CP857                       dos
#   CP861                       dos
#   CP862                       dos
#   CP864                       dos
#   CP865                       dos
#   CP866                       freebsd darwin dos
#   CP869                       dos
#   CP874                       woe32 dos
#   CP922                       aix
#   CP932                       aix woe32 dos
#   CP943                       aix
#   CP949                       osf woe32 dos
#   CP950                       woe32 dos
#   CP1046                      aix
#   CP1124                      aix
#   CP1125                      dos
#   CP1129                      aix
#   CP1250                      woe32
#   CP1251                      glibc solaris darwin woe32
#   CP1252                      aix woe32
#   CP1253                      woe32
#   CP1254                      woe32
#   CP1255                      glibc woe32
#   CP1256                      woe32
#   CP1257                      woe32
#   GB2312                  Y   glibc aix hpux irix solaris freebsd darwin
#   EUC-JP                  Y   glibc aix hpux irix osf solaris freebsd darwin
#   EUC-KR                  Y   glibc aix hpux irix osf solaris freebsd darwin
#   EUC-TW                      glibc aix hpux irix osf solaris
#   BIG5                    Y   glibc aix hpux osf solaris freebsd darwin
#   BIG5-HKSCS                  glibc solaris
#   GBK                         glibc aix osf solaris woe32 dos
#   GB18030                     glibc solaris
#   SHIFT_JIS               Y   hpux osf solaris freebsd darwin
#   JOHAB                       glibc solaris woe32
#   TIS-620                     glibc aix hpux osf solaris
#   VISCII                  Y   glibc
#   TCVN5712-1                  glibc
#   GEORGIAN-PS                 glibc
#   HP-ROMAN8                   hpux
#   HP-ARABIC8                  hpux
#   HP-GREEK8                   hpux
#   HP-HEBREW8                  hpux
#   HP-TURKISH8                 hpux
#   HP-KANA8                    hpux
#   DEC-KANJI                   osf
#   DEC-HANYU                   osf
#   UTF-8                   Y   glibc aix hpux osf solaris darwin
#
# Note: Names which are not marked as being a MIME name should not be used in
# Internet protocols for information interchange (mail, news, etc.).
#
# Note: ASCII and ANSI_X3.4-1968 are synonymous canonical names. Applications
# must understand both names and treat them as equivalent.
#
# The first argument passed to this file is the canonical host specification,
#    CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM
# or
#    CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM

host="$1"
os=`echo "$host" | sed -e 's/^[^-]*-[^-]*-\(.*\)$/\1/'`
echo "# This file contains a table of character encoding aliases,"
echo "# suitable for operating system '${os}'."
echo "# It was automatically generated from config.charset."
# List of references, updated during installation:
echo "# Packages using this file: "
case "$os" in
    linux-gnulibc1*)
	# Linux libc5 doesn't have nl_langinfo(CODESET); therefore
	# localcharset.c falls back to using the full locale name
	# from the environment variables.
	echo "C ASCII"
	echo "POSIX ASCII"
	for l in af af_ZA ca ca_ES da da_DK de de_AT de_BE de_CH de_DE de_LU \
	         en en_AU en_BW en_CA en_DK en_GB en_IE en_NZ en_US en_ZA \
	         en_ZW es es_AR es_BO es_CL es_CO es_DO es_EC es_ES es_GT \
	         es_HN es_MX es_PA es_PE es_PY es_SV es_US es_UY es_VE et \
	         et_EE eu eu_ES fi fi_FI fo fo_FO fr fr_BE fr_CA fr_CH fr_FR \
	         fr_LU ga ga_IE gl gl_ES id id_ID in in_ID is is_IS it it_CH \
	         it_IT kl kl_GL nl nl_BE nl_NL no no_NO pt pt_BR pt_PT sv \
	         sv_FI sv_SE; do
	  echo "$l ISO-8859-1"
	  echo "$l.iso-8859-1 ISO-8859-1"
	  echo "$l.iso-8859-15 ISO-8859-15"
	  echo "$l.iso-8859-15@euro ISO-8859-15"
	  echo "$l@euro ISO-8859-15"
	  echo "$l.cp-437 CP437"
	  echo "$l.cp-850 CP850"
	  echo "$l.cp-1252 CP1252"
	  echo "$l.cp-1252@euro CP1252"
	  #echo "$l.atari-st ATARI-ST" # not a commonly used encoding
	  echo "$l.utf-8 UTF-8"
	  echo "$l.utf-8@euro UTF-8"
	done
	for l in cs cs_CZ hr hr_HR hu hu_HU pl pl_PL ro ro_RO sk sk_SK sl \
	         sl_SI sr sr_CS sr_YU; do
	  echo "$l ISO-8859-2"
	  echo "$l.iso-8859-2 ISO-8859-2"
	  echo "$l.cp-852 CP852"
	  echo "$l.cp-1250 CP1250"
	  echo "$l.utf-8 UTF-8"
	done
	for l in mk mk_MK ru ru_RU; do
	  echo "$l ISO-8859-5"
	  echo "$l.iso-8859-5 ISO-8859-5"
	  echo "$l.koi8-r KOI8-R"
	  echo "$l.cp-866 CP866"
	  echo "$l.cp-1251 CP1251"
	  echo "$l.utf-8 UTF-8"
	done
	for l in ar ar_SA; do
	  echo "$l ISO-8859-6"
	  echo "$l.iso-8859-6 ISO-8859-6"
	  echo "$l.cp-864 CP864"
	  #echo "$l.cp-868 CP868" # not a commonly used encoding
	  echo "$l.cp-1256 CP1256"
	  echo "$l.utf-8 UTF-8"
	done
	for l in el el_GR gr gr_GR; do
	  echo "$l ISO-8859-7"
	  echo "$l.iso-8859-7 ISO-8859-7"
	  echo "$l.cp-869 CP869"
	  echo "$l.cp-1253 CP1253"
	  echo "$l.cp-1253@euro CP1253"
	  echo "$l.utf-8 UTF-8"
	  echo "$l.utf-8@euro UTF-8"
	done
	for l in he he_IL iw iw_IL; do
	  echo "$l ISO-8859-8"
	  echo "$l.iso-8859-8 ISO-8859-8"
	  echo "$l.cp-862 CP862"
	  echo "$l.cp-1255 CP1255"
	  echo "$l.utf-8 UTF-8"
	done
	for l in tr tr_TR; do
	  echo "$l ISO-8859-9"
	  echo "$l.iso-8859-9 ISO-8859-9"
	  echo "$l.cp-857 CP857"
	  echo "$l.cp-1254 CP1254"
	  echo "$l.utf-8 UTF-8"
	done
	for l in lt lt_LT lv lv_LV; do
	  #echo "$l BALTIC" # not a commonly used encoding, wrong encoding name
	  echo "$l ISO-8859-13"
	done
	for l in ru_UA uk uk_UA; do
	  echo "$l KOI8-U"
	done
	for l in zh zh_CN; do
	  #echo "$l GB_2312-80" # not a commonly used encoding, wrong encoding name
	  echo "$l GB2312"
	done
	for l in ja ja_JP ja_JP.EUC; do
	  echo "$l EUC-JP"
	done
	for l in ko ko_KR; do
	  echo "$l EUC-KR"
	done
	for l in th th_TH; do
	  echo "$l TIS-620"
	done
	for l in fa fa_IR; do
	  #echo "$l ISIRI-3342" # a broken encoding
	  echo "$l.utf-8 UTF-8"
	done
	;;
    linux* | *-gnu*)
	# With glibc-2.1 or newer, we don't need any canonicalization,
	# because glibc has iconv and both glibc and libiconv support all
	# GNU canonical names directly. Therefore, the Makefile does not
	# need to install the alias file at all.
	# The following applies only to glibc-2.0.x and older libcs.
	echo "ISO_646.IRV:1983 ASCII"
	;;
    aix*)
	echo "ISO8859-1 ISO-8859-1"
	echo "ISO8859-2 ISO-8859-2"
	echo "ISO8859-5 ISO-8859-5"
	echo "ISO8859-6 ISO-8859-6"
	echo "ISO8859-7 ISO-8859-7"
	echo "ISO8859-8 ISO-8859-8"
	echo "ISO8859-9 ISO-8859-9"
	echo "ISO8859-15 ISO-8859-15"
	echo "IBM-850 CP850"
	echo "IBM-856 CP856"
	echo "IBM-921 ISO-8859-13"
	echo "IBM-922 CP922"
	echo "IBM-932 CP932"
	echo "IBM-943 CP943"
	echo "IBM-1046 CP1046"
	echo "IBM-1124 CP1124"
	echo "IBM-1129 CP1129"
	echo "IBM-1252 CP1252"
	echo "IBM-eucCN GB2312"
	echo "IBM-eucJP EUC-JP"
	echo "IBM-eucKR EUC-KR"
	echo "IBM-eucTW EUC-TW"
	echo "big5 BIG5"
	echo "GBK GBK"
	echo "TIS-620 TIS-620"
	echo "UTF-8 UTF-8"
	;;
    hpux*)
	echo "iso88591 ISO-8859-1"
	echo "iso88592 ISO-8859-2"
	echo "iso88595 ISO-8859-5"
	echo "iso88596 ISO-8859-6"
	echo "iso88597 ISO-8859-7"
	echo "iso88598 ISO-8859-8"
	echo "iso88599 ISO-8859-9"
	echo "iso885915 ISO-8859-15"
	echo "roman8 HP-ROMAN8"
	echo "arabic8 HP-ARABIC8"
	echo "greek8 HP-GREEK8"
	echo "hebrew8 HP-HEBREW8"
	echo "turkish8 HP-TURKISH8"
	echo "kana8 HP-KANA8"
	echo "tis620 TIS-620"
	echo "big5 BIG5"
	echo "eucJP EUC-JP"
	echo "eucKR EUC-KR"
	echo "eucTW EUC-TW"
	echo "hp15CN GB2312"
	#echo "ccdc ?" # what is this?
	echo "SJIS SHIFT_JIS"
	echo "utf8 UTF-8"
	;;
    irix*)
	echo "ISO8859-1 ISO-8859-1"
	echo "ISO8859-2 ISO-8859-2"
	echo "ISO8859-5 ISO-8859-5"
	echo "ISO8859-7 ISO-8859-7"
	echo "ISO8859-9 ISO-8859-9"
	echo "eucCN GB2312"
	echo "eucJP EUC-JP"
	echo "eucKR EUC-KR"
	echo "eucTW EUC-TW"
	;;
    osf*)
	echo "ISO8859-1 ISO-8859-1"
	echo "ISO8859-2 ISO-8859-2"
	echo "ISO8859-4 ISO-8859-4"
	echo "ISO8859-5 ISO-8859-5"
	echo "ISO8859-7 ISO-8859-7"
	echo "ISO8859-8 ISO-8859-8"
	echo "ISO8859-9 ISO-8859-9"
	echo "ISO8859-15 ISO-8859-15"
	echo "cp850 CP850"
	echo "big5 BIG5"
	echo "dechanyu DEC-HANYU"
	echo "dechanzi GB2312"
	echo "deckanji DEC-KANJI"
	echo "deckorean EUC-KR"
	echo "eucJP EUC-JP"
	echo "eucKR EUC-KR"
	echo "eucTW EUC-TW"
	echo "GBK GBK"
	echo "KSC5601 CP949"
	echo "sdeckanji EUC-JP"
	echo "SJIS SHIFT_JIS"
	echo "TACTIS TIS-620"
	echo "UTF-8 UTF-8"
	;;
    solaris*)
	echo "646 ASCII"
	echo "ISO8859-1 ISO-8859-1"
	echo "ISO8859-2 ISO-8859-2"
	echo "ISO8859-3 ISO-8859-3"
	echo "ISO8859-4 ISO-8859-4"
	echo "ISO8859-5 ISO-8859-5"
	echo "ISO8859-6 ISO-8859-6"
	echo "ISO8859-7 ISO-8859-7"
	echo "ISO8859-8 ISO-8859-8"
	echo "ISO8859-9 ISO-8859-9"
	echo "ISO8859-15 ISO-8859-15"
	echo "koi8-r KOI8-R"
	echo "ansi-1251 CP1251"
	echo "BIG5 BIG5"
	echo "Big5-HKSCS BIG5-HKSCS"
	echo "gb2312 GB2312"
	echo "GBK GBK"
	echo "GB18030 GB18030"
	echo "cns11643 EUC-TW"
	echo "5601 EUC-KR"
	echo "ko_KR.johap92 JOHAB"
	echo "eucJP EUC-JP"
	echo "PCK SHIFT_JIS"
	echo "TIS620.2533 TIS-620"
	#echo "sun_eu_greek ?" # what is this?
	echo "UTF-8 UTF-8"
	;;
    freebsd* | os2*)
	# FreeBSD 4.2 doesn't have nl_langinfo(CODESET); therefore
	# localcharset.c falls back to using the full locale name
	# from the environment variables.
	# Likewise for OS/2. OS/2 has XFree86 just like FreeBSD. Just
	# reuse FreeBSD's locale data for OS/2.
	echo "C ASCII"
	echo "US-ASCII ASCII"
	for l in la_LN lt_LN; do
	  echo "$l.ASCII ASCII"
	done
	for l in da_DK de_AT de_CH de_DE en_AU en_CA en_GB en_US es_ES \
	         fi_FI fr_BE fr_CA fr_CH fr_FR is_IS it_CH it_IT la_LN \
	         lt_LN nl_BE nl_NL no_NO pt_PT sv_SE; do
	  echo "$l.ISO_8859-1 ISO-8859-1"
	  echo "$l.DIS_8859-15 ISO-8859-15"
	done
	for l in cs_CZ hr_HR hu_HU la_LN lt_LN pl_PL sl_SI; do
	  echo "$l.ISO_8859-2 ISO-8859-2"
	done
	for l in la_LN lt_LT; do
	  echo "$l.ISO_8859-4 ISO-8859-4"
	done
	for l in ru_RU ru_SU; do
	  echo "$l.KOI8-R KOI8-R"
	  echo "$l.ISO_8859-5 ISO-8859-5"
	  echo "$l.CP866 CP866"
	done
	echo "uk_UA.KOI8-U KOI8-U"
	echo "zh_TW.BIG5 BIG5"
	echo "zh_TW.Big5 BIG5"
	echo "zh_CN.EUC GB2312"
	echo "ja_JP.EUC EUC-JP"
	echo "ja_JP.SJIS SHIFT_JIS"
	echo "ja_JP.Shift_JIS SHIFT_JIS"
	echo "ko_KR.EUC EUC-KR"
	;;
    netbsd*)
	echo "646 ASCII"
	echo "ISO8859-1 ISO-8859-1"
	echo "ISO8859-2 ISO-8859-2"
	echo "ISO8859-4 ISO-8859-4"
	echo "ISO8859-5 ISO-8859-5"
	echo "ISO8859-15 ISO-8859-15"
	echo "eucCN GB2312"
	echo "eucJP EUC-JP"
	echo "eucKR EUC-KR"
	echo "eucTW EUC-TW"
	echo "BIG5 BIG5"
	echo "SJIS SHIFT_JIS"
	;;
    darwin[56]*)
	# Darwin 6.8 doesn't have nl_langinfo(CODESET); therefore
	# localcharset.c falls back to using the full locale name
	# from the environment variables.
	echo "C ASCII"
	for l in en_AU en_CA en_GB en_US la_LN; do
	  echo "$l.US-ASCII ASCII"
	done
	for l in da_DK de_AT de_CH de_DE en_AU en_CA en_GB en_US es_ES \
	         fi_FI fr_BE fr_CA fr_CH fr_FR is_IS it_CH it_IT nl_BE \
	         nl_NL no_NO pt_PT sv_SE; do
	  echo "$l ISO-8859-1"
	  echo "$l.ISO8859-1 ISO-8859-1"
	  echo "$l.ISO8859-15 ISO-8859-15"
	done
	for l in la_LN; do
	  echo "$l.ISO8859-1 ISO-8859-1"
	  echo "$l.ISO8859-15 ISO-8859-15"
	done
	for l in cs_CZ hr_HR hu_HU la_LN pl_PL sl_SI; do
	  echo "$l.ISO8859-2 ISO-8859-2"
	done
	for l in la_LN lt_LT; do
	  echo "$l.ISO8859-4 ISO-8859-4"
	done
	for l in ru_RU; do
	  echo "$l.KOI8-R KOI8-R"
	  echo "$l.ISO8859-5 ISO-8859-5"
	  echo "$l.CP866 CP866"
	done
	for l in bg_BG; do
	  echo "$l.CP1251 CP1251"
	done
	echo "uk_UA.KOI8-U KOI8-U"
	echo "zh_TW.BIG5 BIG5"
	echo "zh_TW.Big5 BIG5"
	echo "zh_CN.EUC GB2312"
	echo "ja_JP.EUC EUC-JP"
	echo "ja_JP.SJIS SHIFT_JIS"
	echo "ko_KR.EUC EUC-KR"
	;;
    darwin*)
	# Darwin 7.5 has nl_langinfo(CODESET), but it is useless:
	# - It returns the empty string when LANG is set to a locale of the
	#   form ll_CC, although ll_CC/LC_CTYPE is a symlink to an UTF-8
	#   LC_CTYPE file.
	# - The environment variables LANG, LC_CTYPE, LC_ALL are not set by
	#   the system; nl_langinfo(CODESET) returns "US-ASCII" in this case.
	# - The documentation says:
	#     "... all code that calls BSD system routines should ensure
	#      that the const *char parameters of these routines are in UTF-8
	#      encoding. All BSD system functions expect their string
	#      parameters to be in UTF-8 encoding and nothing else."
	#   It also says
	#     "An additional caveat is that string parameters for files,
	#      paths, and other file-system entities must be in canonical
	#      UTF-8. In a canonical UTF-8 Unicode string, all decomposable
	#      characters are decomposed ..."
	#   but this is not true: You can pass non-decomposed UTF-8 strings
	#   to file system functions, and it is the OS which will convert
	#   them to decomposed UTF-8 before accessing the file system.
	# - The Apple Terminal application displays UTF-8 by default.
	# - However, other applications are free to use different encodings:
	#   - xterm uses ISO-8859-1 by default.
	#   - TextEdit uses MacRoman by default.
	# We prefer UTF-8 over decomposed UTF-8-MAC because one should
	# minimize the use of decomposed Unicode. Unfortunately, through the
	# Darwin file system, decomposed UTF-8 strings are leaked into user
	# space nevertheless.
	echo "* UTF-8"
	;;
    beos*)
	# BeOS has a single locale, and it has UTF-8 encoding.
	echo "* UTF-8"
	;;
    msdosdjgpp*)
	# DJGPP 2.03 doesn't have nl_langinfo(CODESET); therefore
	# localcharset.c falls back to using the full locale name
	# from the environment variables.
	echo "#"
	echo "# The encodings given here may not all be correct."
	echo "# If you find that the encoding given for your language and"
	echo "# country is not the one your DOS machine actually uses, just"
	echo "# correct it in this file, and send a mail to"
	echo "# Juan Manuel Guerrero <st001906@hrz1.hrz.tu-darmstadt.de>"
	echo "# and Bruno Haible <bruno@clisp.org>."
	echo "#"
	echo "C ASCII"
	# ISO-8859-1 languages
	echo "ca CP850"
	echo "ca_ES CP850"
	echo "da CP865"    # not CP850 ??
	echo "da_DK CP865" # not CP850 ??
	echo "de CP850"
	echo "de_AT CP850"
	echo "de_CH CP850"
	echo "de_DE CP850"
	echo "en CP850"
	echo "en_AU CP850" # not CP437 ??
	echo "en_CA CP850"
	echo "en_GB CP850"
	echo "en_NZ CP437"
	echo "en_US CP437"
	echo "en_ZA CP850" # not CP437 ??
	echo "es CP850"
	echo "es_AR CP850"
	echo "es_BO CP850"
	echo "es_CL CP850"
	echo "es_CO CP850"
	echo "es_CR CP850"
	echo "es_CU CP850"
	echo "es_DO CP850"
	echo "es_EC CP850"
	echo "es_ES CP850"
	echo "es_GT CP850"
	echo "es_HN CP850"
	echo "es_MX CP850"
	echo "es_NI CP850"
	echo "es_PA CP850"
	echo "es_PY CP850"
	echo "es_PE CP850"
	echo "es_SV CP850"
	echo "es_UY CP850"
	echo "es_VE CP850"
	echo "et CP850"
	echo "et_EE CP850"
	echo "eu CP850"
	echo "eu_ES CP850"
	echo "fi CP850"
	echo "fi_FI CP850"
	echo "fr CP850"
	echo "fr_BE CP850"
	echo "fr_CA CP850"
	echo "fr_CH CP850"
	echo "fr_FR CP850"
	echo "ga CP850"
	echo "ga_IE CP850"
	echo "gd CP850"
	echo "gd_GB CP850"
	echo "gl CP850"
	echo "gl_ES CP850"
	echo "id CP850"    # not CP437 ??
	echo "id_ID CP850" # not CP437 ??
	echo "is CP861"    # not CP850 ??
	echo "is_IS CP861" # not CP850 ??
	echo "it CP850"
	echo "it_CH CP850"
	echo "it_IT CP850"
	echo "lt CP775"
	echo "lt_LT CP775"
	echo "lv CP775"
	echo "lv_LV CP775"
	echo "nb CP865"    # not CP850 ??
	echo "nb_NO CP865" # not CP850 ??
	echo "nl CP850"
	echo "nl_BE CP850"
	echo "nl_NL CP850"
	echo "nn CP865"    # not CP850 ??
	echo "nn_NO CP865" # not CP850 ??
	echo "no CP865"    # not CP850 ??
	echo "no_NO CP865" # not CP850 ??
	echo "pt CP850"
	echo "pt_BR CP850"
	echo "pt_PT CP850"
	echo "sv CP850"
	echo "sv_SE CP850"
	# ISO-8859-2 languages
	echo "cs CP852"
	echo "cs_CZ CP852"
	echo "hr CP852"
	echo "hr_HR CP852"
	echo "hu CP852"
	echo "hu_HU CP852"
	echo "pl CP852"
	echo "pl_PL CP852"
	echo "ro CP852"
	echo "ro_RO CP852"
	echo "sk CP852"
	echo "sk_SK CP852"
	echo "sl CP852"
	echo "sl_SI CP852"
	echo "sq CP852"
	echo "sq_AL CP852"
	echo "sr CP852"    # CP852 or CP866 or CP855 ??
	echo "sr_CS CP852" # CP852 or CP866 or CP855 ??
	echo "sr_YU CP852" # CP852 or CP866 or CP855 ??
	# ISO-8859-3 languages
	echo "mt CP850"
	echo "mt_MT CP850"
	# ISO-8859-5 languages
	echo "be CP866"
	echo "be_BE CP866"
	echo "bg CP866"    # not CP855 ??
	echo "bg_BG CP866" # not CP855 ??
	echo "mk CP866"    # not CP855 ??
	echo "mk_MK CP866" # not CP855 ??
	echo "ru CP866"
	echo "ru_RU CP866"
	echo "uk CP1125"
	echo "uk_UA CP1125"
	# ISO-8859-6 languages
	echo "ar CP864"
	echo "ar_AE CP864"
	echo "ar_DZ CP864"
	echo "ar_EG CP864"
	echo "ar_IQ CP864"
	echo "ar_IR CP864"
	echo "ar_JO CP864"
	echo "ar_KW CP864"
	echo "ar_MA CP864"
	echo "ar_OM CP864"
	echo "ar_QA CP864"
	echo "ar_SA CP864"
	echo "ar_SY CP864"
	# ISO-8859-7 languages
	echo "el CP869"
	echo "el_GR CP869"
	# ISO-8859-8 languages
	echo "he CP862"
	echo "he_IL CP862"
	# ISO-8859-9 languages
	echo "tr CP857"
	echo "tr_TR CP857"
	# Japanese
	echo "ja CP932"
	echo "ja_JP CP932"
	# Chinese
	echo "zh_CN GBK"
	echo "zh_TW CP950" # not CP938 ??
	# Korean
	echo "kr CP949"    # not CP934 ??
	echo "kr_KR CP949" # not CP934 ??
	# Thai
	echo "th CP874"
	echo "th_TH CP874"
	# Other
	echo "eo CP850"
	echo "eo_EO CP850"
	;;
esac
