/* Copyright (C) 1999-2000 Free Software Foundation, Inc.
   This file is part of the GNU ICONV Library.

   The GNU ICONV Library 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 of the
   License, or (at your option) any later version.

   The GNU ICONV Library 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 the GNU ICONV Library; see the file COPYING.LIB.  If not,
   write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
   Boston, MA 02111-1307, USA.  */

/* The list of all user-visible encodings. */

/* By convention, an encoding named FOOBAR or FOO_BAR or FOO-BAR is defined
   in a file named "foobar.h" through the functions foobar_mbtowc and
   foobar_wctomb (and possibly foobar_reset). */

/* DEFENCODING(( name, alias1, ..., ),
               xxx,
               { xxx_mbtowc },
               { xxx_wctomb, xxx_reset })
   defines an encoding with the given name and aliases. (There is no
   difference between a name and an alias. By convention, the name is chosen
   as the preferred MIME name or the standard name.)
   All names and aliases must be in ASCII. Case is not significant, but
   for the "cs*" aliases mixed case is preferred, otherwise UPPERCASE is
   preferred.
   xxx is the name as used in the C code (lowercase).
 */


DEFENCODING(( "US-ASCII",
              "ASCII",
              "ISO646-US",
              "ISO_646.IRV:1991",
              "ISO-IR-6",
              "ANSI_X3.4-1968",
              "CP367",
              "IBM367",
              "US",
              "csASCII",
            ),
            ascii,
            { ascii_mbtowc },             { ascii_wctomb, NULL })

/* General multi-byte encodings */

DEFENCODING(( "UTF-8",
            ),
            utf8,
            { utf8_mbtowc },              { utf8_wctomb, NULL })

DEFENCODING(( "UCS-2",
              "ISO-10646-UCS-2",
              "csUnicode",
            ),
            ucs2,
            { ucs2_mbtowc },              { ucs2_wctomb, NULL })

DEFENCODING(( "UCS-4",
              "ISO-10646-UCS-4",
              "csUCS4",
            ),
            ucs4,
            { ucs4_mbtowc },              { ucs4_wctomb, NULL })

DEFENCODING(( "UTF-16",
            ),
            utf16,
            { utf16_mbtowc },             { utf16_wctomb, NULL })

DEFENCODING(( "UTF-7",
              "UNICODE-1-1-UTF-7",
              "csUnicode11UTF7",
            ),
            utf7,
            { utf7_mbtowc },              { utf7_wctomb, utf7_reset })

DEFENCODING(( "UCS-2-INTERNAL",
            ),
            ucs2internal,
            { ucs2internal_mbtowc },      { ucs2internal_wctomb, NULL })

DEFENCODING(( "UCS-2-SWAPPED",
            ),
            ucs2swapped,
            { ucs2swapped_mbtowc },       { ucs2swapped_wctomb, NULL })

DEFENCODING(( "UCS-2-BE",
              "UNICODEBIG", /* glibc compatibility */
              "UNICODE-1-1",
              "csUnicode11",
            ),
            ucs2be,
            { ucs2be_mbtowc },            { ucs2be_wctomb, NULL })

DEFENCODING(( "UCS-2-LE",
              "UNICODELITTLE", /* glibc compatibility */
            ),
            ucs2le,
            { ucs2le_mbtowc },            { ucs2le_wctomb, NULL })

DEFENCODING(( "UCS-4-INTERNAL",
            ),
            ucs4internal,
            { ucs4internal_mbtowc },      { ucs4internal_wctomb, NULL })

DEFENCODING(( "UCS-4-SWAPPED",
            ),
            ucs4swapped,
            { ucs4swapped_mbtowc },       { ucs4swapped_wctomb, NULL })

DEFENCODING(( "UCS-4-BE",
            ),
            ucs4be,
            { ucs4be_mbtowc },            { ucs4be_wctomb, NULL })

DEFENCODING(( "UCS-4-LE",
            ),
            ucs4le,
            { ucs4le_mbtowc },            { ucs4le_wctomb, NULL })

DEFENCODING(( "JAVA",
            ),
            java,
            { java_mbtowc },              { java_wctomb, NULL })

/* Standard 8-bit encodings */

DEFENCODING(( "ISO-8859-1",
              "ISO_8859-1",
              "ISO_8859-1:1987",
              "ISO-IR-100",
              "CP819",
              "IBM819",
              "LATIN1",
              "L1",
              "csISOLatin1",
            ),
            iso8859_1,
            { iso8859_1_mbtowc },         { iso8859_1_wctomb, NULL })

DEFENCODING(( "ISO-8859-2",
              "ISO_8859-2",
              "ISO_8859-2:1987",
              "ISO-IR-101",
              "LATIN2",
              "L2",
              "csISOLatin2",
            ),
            iso8859_2,
            { iso8859_2_mbtowc },         { iso8859_2_wctomb, NULL })

DEFENCODING(( "ISO-8859-3",
              "ISO_8859-3",
              "ISO_8859-3:1988",
              "ISO-IR-109",
              "LATIN3",
              "L3",
              "csISOLatin3",
            ),
            iso8859_3,
            { iso8859_3_mbtowc },         { iso8859_3_wctomb, NULL })

DEFENCODING(( "ISO-8859-4",
              "ISO_8859-4",
              "ISO_8859-4:1988",
              "ISO-IR-110",
              "LATIN4",
              "L4",
              "csISOLatin4",
            ),
            iso8859_4,
            { iso8859_4_mbtowc },         { iso8859_4_wctomb, NULL })

DEFENCODING(( "ISO-8859-5",
              "ISO_8859-5",
              "ISO_8859-5:1988",
              "ISO-IR-144",
              "CYRILLIC",
              "csISOLatinCyrillic",
            ),
            iso8859_5,
            { iso8859_5_mbtowc },         { iso8859_5_wctomb, NULL })

DEFENCODING(( "ISO-8859-6",
              "ISO_8859-6",
              "ISO_8859-6:1987",
              "ISO-IR-127",
              "ECMA-114",
              "ASMO-708",
              "ARABIC",
              "csISOLatinArabic",
            ),
            iso8859_6,
            { iso8859_6_mbtowc },         { iso8859_6_wctomb, NULL })

DEFENCODING(( "ISO-8859-7",
              "ISO_8859-7",
              "ISO_8859-7:1987",
              "ISO-IR-126",
              "ECMA-118",
              "ELOT_928",
              "GREEK8",
              "GREEK",
              "csISOLatinGreek",
            ),
            iso8859_7,
            { iso8859_7_mbtowc },         { iso8859_7_wctomb, NULL })

DEFENCODING(( "ISO-8859-8",
              "ISO_8859-8",
              "ISO_8859-8:1988",
              "ISO-IR-138",
              "HEBREW",
              "csISOLatinHebrew",
            ),
            iso8859_8,
            { iso8859_8_mbtowc },         { iso8859_8_wctomb, NULL })

DEFENCODING(( "ISO-8859-9",
              "ISO_8859-9",
              "ISO_8859-9:1989",
              "ISO-IR-148",
              "LATIN5",
              "L5",
              "csISOLatin5",
            ),
            iso8859_9,
            { iso8859_9_mbtowc },         { iso8859_9_wctomb, NULL })

DEFENCODING(( "ISO-8859-10",
              "ISO_8859-10",
              "ISO_8859-10:1992",
              "ISO-IR-157",
              "LATIN6",
              "L6",
              "csISOLatin6",
            ),
            iso8859_10,
            { iso8859_10_mbtowc },        { iso8859_10_wctomb, NULL })

DEFENCODING(( "ISO-8859-13",
              "ISO_8859-13",
              "ISO-IR-179",
              "LATIN7",
              "L7",
            ),
            iso8859_13,
            { iso8859_13_mbtowc },        { iso8859_13_wctomb, NULL })

DEFENCODING(( "ISO-8859-14",
              "ISO_8859-14",
              "ISO_8859-14:1998",
              "LATIN8",
              "L8",
            ),
            iso8859_14,
            { iso8859_14_mbtowc },        { iso8859_14_wctomb, NULL })

DEFENCODING(( "ISO-8859-15",
              "ISO_8859-15",
              "ISO_8859-15:1998",
            ),
            iso8859_15,
            { iso8859_15_mbtowc },        { iso8859_15_wctomb, NULL })

DEFENCODING(( "KOI8-R",
              "csKOI8R",
            ),
            koi8_r,
            { koi8_r_mbtowc },            { koi8_r_wctomb, NULL })

DEFENCODING(( "KOI8-U",
            ),
            koi8_u,
            { koi8_u_mbtowc },            { koi8_u_wctomb, NULL })

DEFENCODING(( "KOI8-RU",
            ),
            koi8_ru,
            { koi8_ru_mbtowc },           { koi8_ru_wctomb, NULL })

/* Windows 8-bit encodings */

DEFENCODING(( "CP1250",
              "WINDOWS-1250",
              "MS-EE",
            ),
            cp1250,
            { cp1250_mbtowc },            { cp1250_wctomb, NULL })

DEFENCODING(( "CP1251",
              "WINDOWS-1251",
              "MS-CYRL",
            ),
            cp1251,
            { cp1251_mbtowc },            { cp1251_wctomb, NULL })

DEFENCODING(( "CP1252",
              "WINDOWS-1252",
              "MS-ANSI",
            ),
            cp1252,
            { cp1252_mbtowc },            { cp1252_wctomb, NULL })

DEFENCODING(( "CP1253",
              "WINDOWS-1253",
              "MS-GREEK",
            ),
            cp1253,
            { cp1253_mbtowc },            { cp1253_wctomb, NULL })

DEFENCODING(( "CP1254",
              "WINDOWS-1254",
              "MS-TURK",
            ),
            cp1254,
            { cp1254_mbtowc },            { cp1254_wctomb, NULL })

DEFENCODING(( "CP1255",
              "WINDOWS-1255",
              "MS-HEBR",
            ),
            cp1255,
            { cp1255_mbtowc },            { cp1255_wctomb, NULL })

DEFENCODING(( "CP1256",
              "WINDOWS-1256",
              "MS-ARAB",
            ),
            cp1256,
            { cp1256_mbtowc },            { cp1256_wctomb, NULL })

DEFENCODING(( "CP1257",
              "WINDOWS-1257",
              "WINBALTRIM",
            ),
            cp1257,
            { cp1257_mbtowc },            { cp1257_wctomb, NULL })

DEFENCODING(( "CP1258",
              "WINDOWS-1258",
            ),
            cp1258,
            { cp1258_mbtowc },            { cp1258_wctomb, NULL })

/* DOS 8-bit encodings */

DEFENCODING(( "CP850",
              "IBM850",
              "850",
              "csPC850Multilingual",
            ),
            cp850,
            { cp850_mbtowc },             { cp850_wctomb, NULL })

DEFENCODING(( "CP866",
              "IBM866",
              "866",
              "csIBM866",
            ),
            cp866,
            { cp866_mbtowc },             { cp866_wctomb, NULL })

/* Macintosh 8-bit encodings */

DEFENCODING(( "MacRoman",  /* This is the best table for MACINTOSH. The ones */
              "MACINTOSH", /* in glibc and FreeBSD-iconv are bad quality. */
              "MAC",
              "csMacintosh",
            ),
            mac_roman,
            { mac_roman_mbtowc },         { mac_roman_wctomb, NULL })

DEFENCODING(( "MacCentralEurope",
            ),
            mac_centraleurope,
            { mac_centraleurope_mbtowc }, { mac_centraleurope_wctomb, NULL })

DEFENCODING(( "MacIceland",
            ),
            mac_iceland,
            { mac_iceland_mbtowc },       { mac_iceland_wctomb, NULL })

DEFENCODING(( "MacCroatian",
            ),
            mac_croatian,
            { mac_croatian_mbtowc },      { mac_croatian_wctomb, NULL })

DEFENCODING(( "MacRomania",
            ),
            mac_romania,
            { mac_romania_mbtowc },       { mac_romania_wctomb, NULL })

DEFENCODING(( "MacCyrillic",
            ),
            mac_cyrillic,
            { mac_cyrillic_mbtowc },      { mac_cyrillic_wctomb, NULL })

DEFENCODING(( "MacUkraine",
            ),
            mac_ukraine,
            { mac_ukraine_mbtowc },       { mac_ukraine_wctomb, NULL })

DEFENCODING(( "MacGreek",
            ),
            mac_greek,
            { mac_greek_mbtowc },         { mac_greek_wctomb, NULL })

DEFENCODING(( "MacTurkish",
            ),
            mac_turkish,
            { mac_turkish_mbtowc },       { mac_turkish_wctomb, NULL })

DEFENCODING(( "MacHebrew",
            ),
            mac_hebrew,
            { mac_hebrew_mbtowc },        { mac_hebrew_wctomb, NULL })

DEFENCODING(( "MacArabic",
            ),
            mac_arabic,
            { mac_arabic_mbtowc },        { mac_arabic_wctomb, NULL })

DEFENCODING(( "MacThai",
            ),
            mac_thai,
            { mac_thai_mbtowc },          { mac_thai_wctomb, NULL })

/* Other platform specific 8-bit encodings */

DEFENCODING(( "HP-ROMAN8",
              "ROMAN8",
              "R8",
              "csHPRoman8",
            ),
            hp_roman8,
            { hp_roman8_mbtowc },         { hp_roman8_wctomb, NULL })

DEFENCODING(( "NEXTSTEP",
            ),
            nextstep,
            { nextstep_mbtowc },          { nextstep_wctomb, NULL })

/* Regional 8-bit encodings used for a single language */

DEFENCODING(( "ARMSCII-8",
            ),
            armscii_8,
            { armscii_8_mbtowc },         { armscii_8_wctomb, NULL })

DEFENCODING(( "GEORGIAN-ACADEMY",
            ),
            georgian_academy,
            { georgian_academy_mbtowc },  { georgian_academy_wctomb, NULL })

DEFENCODING(( "GEORGIAN-PS",
            ),
            georgian_ps,
            { georgian_ps_mbtowc },       { georgian_ps_wctomb, NULL })

DEFENCODING(( "MULELAO-1",
            ),
            mulelao,
            { mulelao_mbtowc },           { mulelao_wctomb, NULL })

DEFENCODING(( "CP1133",
              "IBM-CP1133",
            ),
            cp1133,
            { cp1133_mbtowc },            { cp1133_wctomb, NULL })

DEFENCODING(( "TIS-620",
              "TIS620",
              "TIS620-0",
              "TIS620.2529-1",
              "TIS620.2533-0",
              "TIS620.2533-1",
              "ISO-IR-166",
            ),
            tis620,
            { tis620_mbtowc },            { tis620_wctomb, NULL })

DEFENCODING(( "CP874",
              "WINDOWS-874",
            ),
            cp874,
            { cp874_mbtowc },             { cp874_wctomb, NULL })

DEFENCODING(( "VISCII",
              "VISCII1.1-1",
              "csVISCII",
            ),
            viscii,
            { viscii_mbtowc },            { viscii_wctomb, NULL })

DEFENCODING(( "TCVN",
              "TCVN-5712",
              "TCVN5712-1",
              "TCVN5712-1:1993",
            ),
            tcvn,
            { tcvn_mbtowc },              { tcvn_wctomb, NULL })

/* CJK character sets */

DEFENCODING(( "JIS_X0201",
              "JISX0201-1976",
              "JISX0201.1976-0",
              "X0201",
              "csHalfWidthKatakana",
            ),
            jisx0201,
            { jisx0201_mbtowc },          { jisx0201_wctomb, NULL })

DEFENCODING(( "JIS_X0208",
              "JIS_X0208.1983-0",
              "JIS_X0208.1983-1",
              "JIS_X0208-1983",
              "JIS_X0208-1990",
              "JIS0208",
              "X0208",
              "ISO-IR-87",
              "csISO87JISX0208",
            ),
            jisx0208,
            { jisx0208_mbtowc },          { jisx0208_wctomb, NULL })

DEFENCODING(( "JIS_X0212",
              "JIS_X0212.1990-0",
              "JIS_X0212-1990",
              "X0212",
              "ISO-IR-159",
              "csISO159JISX02121990",
            ),
            jisx0212,
            { jisx0212_mbtowc },          { jisx0212_wctomb, NULL })

DEFENCODING(( "GB_2312-80",
              "ISO-IR-58",
              "csISO58GB231280",
              "CHINESE",
            ),
            gb2312,
            { gb2312_mbtowc },            { gb2312_wctomb, NULL })

DEFENCODING(( "KSC_5601",
              "KSC5601.1987-0",
              "KS_C_5601-1987",
              "KS_C_5601-1989",
              "ISO-IR-149",
              "csKSC56011987",
              "KOREAN",
              "CP949",
            ),
            ksc5601,
            { ksc5601_mbtowc },           { ksc5601_wctomb, NULL })

/* CJK encodings */

DEFENCODING(( "EUC-JP",
              "EUCJP",
              "Extended_UNIX_Code_Packed_Format_for_Japanese",
              "csEUCPkdFmtJapanese",
            ),
            euc_jp,
            { euc_jp_mbtowc },            { euc_jp_wctomb, NULL })

DEFENCODING(( "SJIS",
              "SHIFT_JIS",
              "SHIFT-JIS",
              "MS_KANJI",
              "csShiftJIS",
            ),
            sjis,
            { sjis_mbtowc },              { sjis_wctomb, NULL })

DEFENCODING(( "CP932",
            ),
            cp932,
            { cp932_mbtowc },             { cp932_wctomb, NULL })

DEFENCODING(( "ISO-2022-JP",
              "csISO2022JP",
            ),
            iso2022_jp,
            { iso2022_jp_mbtowc },        { iso2022_jp_wctomb, iso2022_jp_reset })

DEFENCODING(( "ISO-2022-JP-1",
            ),
            iso2022_jp1,
            { iso2022_jp1_mbtowc },       { iso2022_jp1_wctomb, iso2022_jp1_reset })

DEFENCODING(( "ISO-2022-JP-2",
              "csISO2022JP2",
            ),
            iso2022_jp2,
            { iso2022_jp2_mbtowc },       { iso2022_jp2_wctomb, iso2022_jp2_reset })

DEFENCODING(( "EUC-CN",
              "EUCCN",
              "GB2312", /* yes, GB2312 as registered by IANA is actually EUC-CN */
              "csGB2312",
            ),
            euc_cn,
            { euc_cn_mbtowc },            { euc_cn_wctomb, NULL })

DEFENCODING(( "GBK",
              "CP936",
            ),
            ces_gbk,
            { ces_gbk_mbtowc },           { ces_gbk_wctomb, NULL })

DEFENCODING(( "ISO-2022-CN",
              "csISO2022CN",
            ),
            iso2022_cn,
            { iso2022_cn_mbtowc },        { iso2022_cn_wctomb, iso2022_cn_reset })

DEFENCODING(( "ISO-2022-CN-EXT",
            ),
            iso2022_cn_ext,
            { iso2022_cn_ext_mbtowc },    { iso2022_cn_ext_wctomb, iso2022_cn_ext_reset })

DEFENCODING(( "HZ",
              "HZ-GB-2312",
            ),
            hz,
            { hz_mbtowc },                { hz_wctomb, hz_reset })

DEFENCODING(( "EUC-TW",
              "EUCTW",
              "csEUCTW",
            ),
            euc_tw,
            { euc_tw_mbtowc },            { euc_tw_wctomb, NULL })

DEFENCODING(( "BIG5",
              "BIG-5",
              "BIG-FIVE",
              "BIGFIVE",
              "csBig5",
            ),
            ces_big5,
            { ces_big5_mbtowc },          { ces_big5_wctomb, NULL })

DEFENCODING(( "CP950",
            ),
            cp950,
            { cp950_mbtowc },             { cp950_wctomb, NULL })

DEFENCODING(( "EUC-KR",
              "EUCKR",
              "csEUCKR",
            ),
            euc_kr,
            { euc_kr_mbtowc },            { euc_kr_wctomb, NULL })

DEFENCODING(( "JOHAB",
              "CP1361",
            ),
            johab,
            { johab_mbtowc },             { johab_wctomb, NULL })

DEFENCODING(( "ISO-2022-KR",
              "csISO2022KR",
            ),
            iso2022_kr,
            { iso2022_kr_mbtowc },        { iso2022_kr_wctomb, iso2022_kr_reset })

