#! /bin/sh
# Output a system dependent table of character encoding aliases.
#
#   Copyright (C) 2000-2004, 2006-2009 Free Software Foundation, Inc.
#
#   This program is free software; you can redistribute it and/or modify
#   it under the terms of the GNU General Public License as published by
#   the Free Software Foundation; either version 3, 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 General Public License for more details.
#
#   You should have received a copy of the GNU 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 netbsd darwin
#   ISO-8859-1              Y   glibc aix hpux irix osf solaris freebsd netbsd openbsd darwin
#   ISO-8859-2              Y   glibc aix hpux irix osf solaris freebsd netbsd openbsd darwin
#   ISO-8859-3              Y   glibc solaris
#   ISO-8859-4              Y   osf solaris freebsd netbsd openbsd darwin
#   ISO-8859-5              Y   glibc aix hpux irix osf solaris freebsd netbsd openbsd darwin
#   ISO-8859-6              Y   glibc aix hpux solaris
#   ISO-8859-7              Y   glibc aix hpux irix osf solaris netbsd openbsd 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 netbsd openbsd darwin
#   ISO-8859-14                 glibc
#   ISO-8859-15                 glibc aix osf solaris freebsd netbsd openbsd darwin
#   KOI8-R                  Y   glibc solaris freebsd netbsd openbsd darwin
#   KOI8-U                  Y   glibc freebsd netbsd openbsd 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 netbsd openbsd darwin dos
#   CP869                       dos
#   CP874                       woe32 dos
#   CP922                       aix
#   CP932                       aix woe32 dos
#   CP943                       aix
#   CP949                       osf darwin woe32 dos
#   CP950                       woe32 dos
#   CP1046                      aix
#   CP1124                      aix
#   CP1125                      dos
#   CP1129                      aix
#   CP1131                      darwin
#   CP1250                      woe32
#   CP1251                      glibc solaris netbsd openbsd darwin woe32
#   CP1252                      aix woe32
#   CP1253                      woe32
#   CP1254                      woe32
#   CP1255                      glibc woe32
#   CP1256                      woe32
#   CP1257                      woe32
#   GB2312                  Y   glibc aix hpux irix solaris freebsd netbsd darwin
#   EUC-JP                  Y   glibc aix hpux irix osf solaris freebsd netbsd darwin
#   EUC-KR                  Y   glibc aix hpux irix osf solaris freebsd netbsd darwin
#   EUC-TW                      glibc aix hpux irix osf solaris netbsd
#   BIG5                    Y   glibc aix hpux osf solaris freebsd netbsd darwin
#   BIG5-HKSCS                  glibc solaris darwin
#   GBK                         glibc aix osf solaris darwin woe32 dos
#   GB18030                     glibc solaris netbsd darwin
#   SHIFT_JIS               Y   hpux osf solaris freebsd netbsd darwin
#   JOHAB                       glibc solaris woe32
#   TIS-620                     glibc aix hpux osf solaris
#   VISCII                  Y   glibc
#   TCVN5712-1                  glibc
#   ARMSCII-8                   glibc darwin
#   GEORGIAN-PS                 glibc
#   PT154                       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 netbsd 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-7 ISO-8859-7"
	echo "ISO8859-13 ISO-8859-13"
	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"
	;;
    openbsd*)
	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-7 ISO-8859-7"
	echo "ISO8859-13 ISO-8859-13"
	echo "ISO8859-15 ISO-8859-15"
	;;
    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 sometimes its value 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.
	# Then there are also the locales with encodings other than US-ASCII
	# and UTF-8. These locales can be occasionally useful to users (e.g.
	# when grepping through ISO-8859-1 encoded text files), when all their
	# file names are in US-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-7 ISO-8859-7"
	echo "ISO8859-9 ISO-8859-9"
	echo "ISO8859-13 ISO-8859-13"
	echo "ISO8859-15 ISO-8859-15"
	echo "KOI8-R KOI8-R"
	echo "KOI8-U KOI8-U"
	echo "CP866 CP866"
	echo "CP949 CP949"
	echo "CP1131 CP1131"
	echo "CP1251 CP1251"
	echo "eucCN GB2312"
	echo "GB2312 GB2312"
	echo "eucJP EUC-JP"
	echo "eucKR EUC-KR"
	echo "Big5 BIG5"
	echo "Big5HKSCS BIG5-HKSCS"
	echo "GBK GBK"
	echo "GB18030 GB18030"
	echo "SJIS SHIFT_JIS"
	echo "ARMSCII-8 ARMSCII-8"
	echo "PT154 PT154"
	#echo "ISCII-DEV ?"
	echo "* UTF-8"
	;;
    beos* | haiku*)
	# BeOS and Haiku have 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 <juan.guerrero@gmx.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
