Untabify.
diff --git a/libcharset/lib/ChangeLog b/libcharset/lib/ChangeLog
index 375d23f..af3607b 100644
--- a/libcharset/lib/ChangeLog
+++ b/libcharset/lib/ChangeLog
@@ -1,3 +1,8 @@
+2009-12-12  Bruno Haible  <bruno@clisp.org>
+
+	* config.charset: Untabify.
+	* localcharset.c: Untabify.
+
 2009-10-18  Bruno Haible  <bruno@clisp.org>
 
 	Avoid symlink attack in localcharset module.
diff --git a/libcharset/lib/config.charset b/libcharset/lib/config.charset
old mode 100755
new mode 100644
index 21d55a4..82d2e8d
--- a/libcharset/lib/config.charset
+++ b/libcharset/lib/config.charset
@@ -124,561 +124,561 @@
 # 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"
-	;;
+  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
diff --git a/libcharset/lib/localcharset.c b/libcharset/lib/localcharset.c
index e808967..5f13f84 100644
--- a/libcharset/lib/localcharset.c
+++ b/libcharset/lib/localcharset.c
@@ -130,214 +130,214 @@
       char *file_name;
 
       /* Make it possible to override the charset.alias location.  This is
-	 necessary for running the testsuite before "make install".  */
+         necessary for running the testsuite before "make install".  */
       dir = getenv ("CHARSETALIASDIR");
       if (dir == NULL || dir[0] == '\0')
-	dir = relocate (LIBDIR);
+        dir = relocate (LIBDIR);
 
       /* Concatenate dir and base into freshly allocated file_name.  */
       {
-	size_t dir_len = strlen (dir);
-	size_t base_len = strlen (base);
-	int add_slash = (dir_len > 0 && !ISSLASH (dir[dir_len - 1]));
-	file_name = (char *) malloc (dir_len + add_slash + base_len + 1);
-	if (file_name != NULL)
-	  {
-	    memcpy (file_name, dir, dir_len);
-	    if (add_slash)
-	      file_name[dir_len] = DIRECTORY_SEPARATOR;
-	    memcpy (file_name + dir_len + add_slash, base, base_len + 1);
-	  }
+        size_t dir_len = strlen (dir);
+        size_t base_len = strlen (base);
+        int add_slash = (dir_len > 0 && !ISSLASH (dir[dir_len - 1]));
+        file_name = (char *) malloc (dir_len + add_slash + base_len + 1);
+        if (file_name != NULL)
+          {
+            memcpy (file_name, dir, dir_len);
+            if (add_slash)
+              file_name[dir_len] = DIRECTORY_SEPARATOR;
+            memcpy (file_name + dir_len + add_slash, base, base_len + 1);
+          }
       }
 
       if (file_name == NULL)
-	/* Out of memory.  Treat the file as empty.  */
-	cp = "";
+        /* Out of memory.  Treat the file as empty.  */
+        cp = "";
       else
-	{
-	  int fd;
+        {
+          int fd;
 
-	  /* Open the file.  Reject symbolic links on platforms that support
-	     O_NOFOLLOW.  This is a security feature.  Without it, an attacker
-	     could retrieve parts of the contents (namely, the tail of the
-	     first line that starts with "* ") of an arbitrary file by placing
-	     a symbolic link to that file under the name "charset.alias" in
-	     some writable directory and defining the environment variable
-	     CHARSETALIASDIR to point to that directory.  */
-	  fd = open (file_name,
-		     O_RDONLY | (HAVE_WORKING_O_NOFOLLOW ? O_NOFOLLOW : 0));
-	  if (fd < 0)
-	    /* File not found.  Treat it as empty.  */
-	    cp = "";
-	  else
-	    {
-	      FILE *fp;
+          /* Open the file.  Reject symbolic links on platforms that support
+             O_NOFOLLOW.  This is a security feature.  Without it, an attacker
+             could retrieve parts of the contents (namely, the tail of the
+             first line that starts with "* ") of an arbitrary file by placing
+             a symbolic link to that file under the name "charset.alias" in
+             some writable directory and defining the environment variable
+             CHARSETALIASDIR to point to that directory.  */
+          fd = open (file_name,
+                     O_RDONLY | (HAVE_WORKING_O_NOFOLLOW ? O_NOFOLLOW : 0));
+          if (fd < 0)
+            /* File not found.  Treat it as empty.  */
+            cp = "";
+          else
+            {
+              FILE *fp;
 
-	      fp = fdopen (fd, "r");
-	      if (fp == NULL)
-		{
-		  /* Out of memory.  Treat the file as empty.  */
-		  close (fd);
-		  cp = "";
-		}
-	      else
-		{
-		  /* Parse the file's contents.  */
-		  char *res_ptr = NULL;
-		  size_t res_size = 0;
+              fp = fdopen (fd, "r");
+              if (fp == NULL)
+                {
+                  /* Out of memory.  Treat the file as empty.  */
+                  close (fd);
+                  cp = "";
+                }
+              else
+                {
+                  /* Parse the file's contents.  */
+                  char *res_ptr = NULL;
+                  size_t res_size = 0;
 
-		  for (;;)
-		    {
-		      int c;
-		      char buf1[50+1];
-		      char buf2[50+1];
-		      size_t l1, l2;
-		      char *old_res_ptr;
+                  for (;;)
+                    {
+                      int c;
+                      char buf1[50+1];
+                      char buf2[50+1];
+                      size_t l1, l2;
+                      char *old_res_ptr;
 
-		      c = getc (fp);
-		      if (c == EOF)
-			break;
-		      if (c == '\n' || c == ' ' || c == '\t')
-			continue;
-		      if (c == '#')
-			{
-			  /* Skip comment, to end of line.  */
-			  do
-			    c = getc (fp);
-			  while (!(c == EOF || c == '\n'));
-			  if (c == EOF)
-			    break;
-			  continue;
-			}
-		      ungetc (c, fp);
-		      if (fscanf (fp, "%50s %50s", buf1, buf2) < 2)
-			break;
-		      l1 = strlen (buf1);
-		      l2 = strlen (buf2);
-		      old_res_ptr = res_ptr;
-		      if (res_size == 0)
-			{
-			  res_size = l1 + 1 + l2 + 1;
-			  res_ptr = (char *) malloc (res_size + 1);
-			}
-		      else
-			{
-			  res_size += l1 + 1 + l2 + 1;
-			  res_ptr = (char *) realloc (res_ptr, res_size + 1);
-			}
-		      if (res_ptr == NULL)
-			{
-			  /* Out of memory. */
-			  res_size = 0;
-			  if (old_res_ptr != NULL)
-			    free (old_res_ptr);
-			  break;
-			}
-		      strcpy (res_ptr + res_size - (l2 + 1) - (l1 + 1), buf1);
-		      strcpy (res_ptr + res_size - (l2 + 1), buf2);
-		    }
-		  fclose (fp);
-		  if (res_size == 0)
-		    cp = "";
-		  else
-		    {
-		      *(res_ptr + res_size) = '\0';
-		      cp = res_ptr;
-		    }
-		}
-	    }
+                      c = getc (fp);
+                      if (c == EOF)
+                        break;
+                      if (c == '\n' || c == ' ' || c == '\t')
+                        continue;
+                      if (c == '#')
+                        {
+                          /* Skip comment, to end of line.  */
+                          do
+                            c = getc (fp);
+                          while (!(c == EOF || c == '\n'));
+                          if (c == EOF)
+                            break;
+                          continue;
+                        }
+                      ungetc (c, fp);
+                      if (fscanf (fp, "%50s %50s", buf1, buf2) < 2)
+                        break;
+                      l1 = strlen (buf1);
+                      l2 = strlen (buf2);
+                      old_res_ptr = res_ptr;
+                      if (res_size == 0)
+                        {
+                          res_size = l1 + 1 + l2 + 1;
+                          res_ptr = (char *) malloc (res_size + 1);
+                        }
+                      else
+                        {
+                          res_size += l1 + 1 + l2 + 1;
+                          res_ptr = (char *) realloc (res_ptr, res_size + 1);
+                        }
+                      if (res_ptr == NULL)
+                        {
+                          /* Out of memory. */
+                          res_size = 0;
+                          if (old_res_ptr != NULL)
+                            free (old_res_ptr);
+                          break;
+                        }
+                      strcpy (res_ptr + res_size - (l2 + 1) - (l1 + 1), buf1);
+                      strcpy (res_ptr + res_size - (l2 + 1), buf2);
+                    }
+                  fclose (fp);
+                  if (res_size == 0)
+                    cp = "";
+                  else
+                    {
+                      *(res_ptr + res_size) = '\0';
+                      cp = res_ptr;
+                    }
+                }
+            }
 
-	  free (file_name);
-	}
+          free (file_name);
+        }
 
 #else
 
 # if defined DARWIN7
       /* To avoid the trouble of installing a file that is shared by many
-	 GNU packages -- many packaging systems have problems with this --,
-	 simply inline the aliases here.  */
+         GNU packages -- many packaging systems have problems with this --,
+         simply inline the aliases here.  */
       cp = "ISO8859-1" "\0" "ISO-8859-1" "\0"
-	   "ISO8859-2" "\0" "ISO-8859-2" "\0"
-	   "ISO8859-4" "\0" "ISO-8859-4" "\0"
-	   "ISO8859-5" "\0" "ISO-8859-5" "\0"
-	   "ISO8859-7" "\0" "ISO-8859-7" "\0"
-	   "ISO8859-9" "\0" "ISO-8859-9" "\0"
-	   "ISO8859-13" "\0" "ISO-8859-13" "\0"
-	   "ISO8859-15" "\0" "ISO-8859-15" "\0"
-	   "KOI8-R" "\0" "KOI8-R" "\0"
-	   "KOI8-U" "\0" "KOI8-U" "\0"
-	   "CP866" "\0" "CP866" "\0"
-	   "CP949" "\0" "CP949" "\0"
-	   "CP1131" "\0" "CP1131" "\0"
-	   "CP1251" "\0" "CP1251" "\0"
-	   "eucCN" "\0" "GB2312" "\0"
-	   "GB2312" "\0" "GB2312" "\0"
-	   "eucJP" "\0" "EUC-JP" "\0"
-	   "eucKR" "\0" "EUC-KR" "\0"
-	   "Big5" "\0" "BIG5" "\0"
-	   "Big5HKSCS" "\0" "BIG5-HKSCS" "\0"
-	   "GBK" "\0" "GBK" "\0"
-	   "GB18030" "\0" "GB18030" "\0"
-	   "SJIS" "\0" "SHIFT_JIS" "\0"
-	   "ARMSCII-8" "\0" "ARMSCII-8" "\0"
-	   "PT154" "\0" "PT154" "\0"
-	 /*"ISCII-DEV" "\0" "?" "\0"*/
-	   "*" "\0" "UTF-8" "\0";
+           "ISO8859-2" "\0" "ISO-8859-2" "\0"
+           "ISO8859-4" "\0" "ISO-8859-4" "\0"
+           "ISO8859-5" "\0" "ISO-8859-5" "\0"
+           "ISO8859-7" "\0" "ISO-8859-7" "\0"
+           "ISO8859-9" "\0" "ISO-8859-9" "\0"
+           "ISO8859-13" "\0" "ISO-8859-13" "\0"
+           "ISO8859-15" "\0" "ISO-8859-15" "\0"
+           "KOI8-R" "\0" "KOI8-R" "\0"
+           "KOI8-U" "\0" "KOI8-U" "\0"
+           "CP866" "\0" "CP866" "\0"
+           "CP949" "\0" "CP949" "\0"
+           "CP1131" "\0" "CP1131" "\0"
+           "CP1251" "\0" "CP1251" "\0"
+           "eucCN" "\0" "GB2312" "\0"
+           "GB2312" "\0" "GB2312" "\0"
+           "eucJP" "\0" "EUC-JP" "\0"
+           "eucKR" "\0" "EUC-KR" "\0"
+           "Big5" "\0" "BIG5" "\0"
+           "Big5HKSCS" "\0" "BIG5-HKSCS" "\0"
+           "GBK" "\0" "GBK" "\0"
+           "GB18030" "\0" "GB18030" "\0"
+           "SJIS" "\0" "SHIFT_JIS" "\0"
+           "ARMSCII-8" "\0" "ARMSCII-8" "\0"
+           "PT154" "\0" "PT154" "\0"
+         /*"ISCII-DEV" "\0" "?" "\0"*/
+           "*" "\0" "UTF-8" "\0";
 # endif
 
 # if defined VMS
       /* To avoid the troubles of an extra file charset.alias_vms in the
-	 sources of many GNU packages, simply inline the aliases here.  */
+         sources of many GNU packages, simply inline the aliases here.  */
       /* The list of encodings is taken from the OpenVMS 7.3-1 documentation
-	 "Compaq C Run-Time Library Reference Manual for OpenVMS systems"
-	 section 10.7 "Handling Different Character Sets".  */
+         "Compaq C Run-Time Library Reference Manual for OpenVMS systems"
+         section 10.7 "Handling Different Character Sets".  */
       cp = "ISO8859-1" "\0" "ISO-8859-1" "\0"
-	   "ISO8859-2" "\0" "ISO-8859-2" "\0"
-	   "ISO8859-5" "\0" "ISO-8859-5" "\0"
-	   "ISO8859-7" "\0" "ISO-8859-7" "\0"
-	   "ISO8859-8" "\0" "ISO-8859-8" "\0"
-	   "ISO8859-9" "\0" "ISO-8859-9" "\0"
-	   /* Japanese */
-	   "eucJP" "\0" "EUC-JP" "\0"
-	   "SJIS" "\0" "SHIFT_JIS" "\0"
-	   "DECKANJI" "\0" "DEC-KANJI" "\0"
-	   "SDECKANJI" "\0" "EUC-JP" "\0"
-	   /* Chinese */
-	   "eucTW" "\0" "EUC-TW" "\0"
-	   "DECHANYU" "\0" "DEC-HANYU" "\0"
-	   "DECHANZI" "\0" "GB2312" "\0"
-	   /* Korean */
-	   "DECKOREAN" "\0" "EUC-KR" "\0";
+           "ISO8859-2" "\0" "ISO-8859-2" "\0"
+           "ISO8859-5" "\0" "ISO-8859-5" "\0"
+           "ISO8859-7" "\0" "ISO-8859-7" "\0"
+           "ISO8859-8" "\0" "ISO-8859-8" "\0"
+           "ISO8859-9" "\0" "ISO-8859-9" "\0"
+           /* Japanese */
+           "eucJP" "\0" "EUC-JP" "\0"
+           "SJIS" "\0" "SHIFT_JIS" "\0"
+           "DECKANJI" "\0" "DEC-KANJI" "\0"
+           "SDECKANJI" "\0" "EUC-JP" "\0"
+           /* Chinese */
+           "eucTW" "\0" "EUC-TW" "\0"
+           "DECHANYU" "\0" "DEC-HANYU" "\0"
+           "DECHANZI" "\0" "GB2312" "\0"
+           /* Korean */
+           "DECKOREAN" "\0" "EUC-KR" "\0";
 # endif
 
 # if defined WIN32_NATIVE || defined __CYGWIN__
       /* To avoid the troubles of installing a separate file in the same
-	 directory as the DLL and of retrieving the DLL's directory at
-	 runtime, simply inline the aliases here.  */
+         directory as the DLL and of retrieving the DLL's directory at
+         runtime, simply inline the aliases here.  */
 
       cp = "CP936" "\0" "GBK" "\0"
-	   "CP1361" "\0" "JOHAB" "\0"
-	   "CP20127" "\0" "ASCII" "\0"
-	   "CP20866" "\0" "KOI8-R" "\0"
-	   "CP20936" "\0" "GB2312" "\0"
-	   "CP21866" "\0" "KOI8-RU" "\0"
-	   "CP28591" "\0" "ISO-8859-1" "\0"
-	   "CP28592" "\0" "ISO-8859-2" "\0"
-	   "CP28593" "\0" "ISO-8859-3" "\0"
-	   "CP28594" "\0" "ISO-8859-4" "\0"
-	   "CP28595" "\0" "ISO-8859-5" "\0"
-	   "CP28596" "\0" "ISO-8859-6" "\0"
-	   "CP28597" "\0" "ISO-8859-7" "\0"
-	   "CP28598" "\0" "ISO-8859-8" "\0"
-	   "CP28599" "\0" "ISO-8859-9" "\0"
-	   "CP28605" "\0" "ISO-8859-15" "\0"
-	   "CP38598" "\0" "ISO-8859-8" "\0"
-	   "CP51932" "\0" "EUC-JP" "\0"
-	   "CP51936" "\0" "GB2312" "\0"
-	   "CP51949" "\0" "EUC-KR" "\0"
-	   "CP51950" "\0" "EUC-TW" "\0"
-	   "CP54936" "\0" "GB18030" "\0"
-	   "CP65001" "\0" "UTF-8" "\0";
+           "CP1361" "\0" "JOHAB" "\0"
+           "CP20127" "\0" "ASCII" "\0"
+           "CP20866" "\0" "KOI8-R" "\0"
+           "CP20936" "\0" "GB2312" "\0"
+           "CP21866" "\0" "KOI8-RU" "\0"
+           "CP28591" "\0" "ISO-8859-1" "\0"
+           "CP28592" "\0" "ISO-8859-2" "\0"
+           "CP28593" "\0" "ISO-8859-3" "\0"
+           "CP28594" "\0" "ISO-8859-4" "\0"
+           "CP28595" "\0" "ISO-8859-5" "\0"
+           "CP28596" "\0" "ISO-8859-6" "\0"
+           "CP28597" "\0" "ISO-8859-7" "\0"
+           "CP28598" "\0" "ISO-8859-8" "\0"
+           "CP28599" "\0" "ISO-8859-9" "\0"
+           "CP28605" "\0" "ISO-8859-15" "\0"
+           "CP38598" "\0" "ISO-8859-8" "\0"
+           "CP51932" "\0" "EUC-JP" "\0"
+           "CP51936" "\0" "GB2312" "\0"
+           "CP51949" "\0" "EUC-KR" "\0"
+           "CP51950" "\0" "EUC-TW" "\0"
+           "CP54936" "\0" "GB18030" "\0"
+           "CP65001" "\0" "UTF-8" "\0";
 # endif
 #endif
 
@@ -381,34 +381,34 @@
 
       locale = getenv ("LC_ALL");
       if (locale == NULL || locale[0] == '\0')
-	{
-	  locale = getenv ("LC_CTYPE");
-	  if (locale == NULL || locale[0] == '\0')
-	    locale = getenv ("LANG");
-	}
+        {
+          locale = getenv ("LC_CTYPE");
+          if (locale == NULL || locale[0] == '\0')
+            locale = getenv ("LANG");
+        }
       if (locale != NULL && locale[0] != '\0')
-	{
-	  /* If the locale name contains an encoding after the dot, return
-	     it.  */
-	  const char *dot = strchr (locale, '.');
+        {
+          /* If the locale name contains an encoding after the dot, return
+             it.  */
+          const char *dot = strchr (locale, '.');
 
-	  if (dot != NULL)
-	    {
-	      const char *modifier;
+          if (dot != NULL)
+            {
+              const char *modifier;
 
-	      dot++;
-	      /* Look for the possible @... trailer and remove it, if any.  */
-	      modifier = strchr (dot, '@');
-	      if (modifier == NULL)
-		return dot;
-	      if (modifier - dot < sizeof (buf))
-		{
-		  memcpy (buf, dot, modifier - dot);
-		  buf [modifier - dot] = '\0';
-		  return buf;
-		}
-	    }
-	}
+              dot++;
+              /* Look for the possible @... trailer and remove it, if any.  */
+              modifier = strchr (dot, '@');
+              if (modifier == NULL)
+                return dot;
+              if (modifier - dot < sizeof (buf))
+                {
+                  memcpy (buf, dot, modifier - dot);
+                  buf [modifier - dot] = '\0';
+                  return buf;
+                }
+            }
+        }
 
       /* Woe32 has a function returning the locale's codepage as a number.  */
       sprintf (buf, "CP%u", GetACP ());
@@ -432,11 +432,11 @@
     {
       locale = getenv ("LC_ALL");
       if (locale == NULL || locale[0] == '\0')
-	{
-	  locale = getenv ("LC_CTYPE");
-	  if (locale == NULL || locale[0] == '\0')
-	    locale = getenv ("LANG");
-	}
+        {
+          locale = getenv ("LC_CTYPE");
+          if (locale == NULL || locale[0] == '\0')
+            locale = getenv ("LANG");
+        }
     }
 
   /* On some old systems, one used to set locale = "iso8859_1". On others,
@@ -468,7 +468,7 @@
     {
       locale = getenv ("LC_CTYPE");
       if (locale == NULL || locale[0] == '\0')
-	locale = getenv ("LANG");
+        locale = getenv ("LANG");
     }
   if (locale != NULL && locale[0] != '\0')
     {
@@ -476,21 +476,21 @@
       const char *dot = strchr (locale, '.');
 
       if (dot != NULL)
-	{
-	  const char *modifier;
+        {
+          const char *modifier;
 
-	  dot++;
-	  /* Look for the possible @... trailer and remove it, if any.  */
-	  modifier = strchr (dot, '@');
-	  if (modifier == NULL)
-	    return dot;
-	  if (modifier - dot < sizeof (buf))
-	    {
-	      memcpy (buf, dot, modifier - dot);
-	      buf [modifier - dot] = '\0';
-	      return buf;
-	    }
-	}
+          dot++;
+          /* Look for the possible @... trailer and remove it, if any.  */
+          modifier = strchr (dot, '@');
+          if (modifier == NULL)
+            return dot;
+          if (modifier - dot < sizeof (buf))
+            {
+              memcpy (buf, dot, modifier - dot);
+              buf [modifier - dot] = '\0';
+              return buf;
+            }
+        }
 
       /* Resolve through the charset.alias file.  */
       codeset = locale;
@@ -499,12 +499,12 @@
     {
       /* OS/2 has a function returning the locale's codepage as a number.  */
       if (DosQueryCp (sizeof (cp), cp, &cplen))
-	codeset = "";
+        codeset = "";
       else
-	{
-	  sprintf (buf, "CP%u", cp[0]);
-	  codeset = buf;
-	}
+        {
+          sprintf (buf, "CP%u", cp[0]);
+          codeset = buf;
+        }
     }
 
 #endif
@@ -518,10 +518,10 @@
        *aliases != '\0';
        aliases += strlen (aliases) + 1, aliases += strlen (aliases) + 1)
     if (strcmp (codeset, aliases) == 0
-	|| (aliases[0] == '*' && aliases[1] == '\0'))
+        || (aliases[0] == '*' && aliases[1] == '\0'))
       {
-	codeset = aliases + strlen (aliases) + 1;
-	break;
+        codeset = aliases + strlen (aliases) + 1;
+        break;
       }
 
   /* Don't return an empty string.  GNU libc and GNU libiconv interpret