"Fossies" - the Fresh Open Source Software archive

Member "evolution-brutus-1.2.35/server/brutus_cpid.c" of archive evolution-brutus-1.2.35.tar.gz:


/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */

/*
 *    Implementation file for Brutus charset id utility functions.
 *    Copyright (C) 2005-2007 OMC Denmark ApS.
 *
 *    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 2 of the License, 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., 59 Temple Place, Suite 330, Boston,
 *    MA 02111-1307 USA
 */

#ifdef HAVE_CONFIG_H
#include <config.h>
#endif

#include <glib.h>
#include <glib/gprintf.h>

#include "brutus_cpid.h"

/*
 * The charset_cpid_map structure and the cpid_map array has been 
 * adapted from equivalent data structures found in the source
 * code for the Tidy program.
 *
 * See http://tidy.sourceforge.net/.
 */

struct _charset_cpid_map {
	const gchar *label;
	const CORBA_long cpid;
};
static const struct _charset_cpid_map cpid_map[] =
{
	{"adobe-standard-encoding", 0},
	{"csadobestandardencoding", 0},
	{"adobe-symbol-encoding", 0},
	{"cshppsmath", 0},
	{"iso-ir-99", 0},
	{"ansi_x3.110-1983", 0},
	{"csa_t500-1983", 0},
	{"naplps", 0},
	{"csiso99naplps", 0},
	{"us-ascii", 20127},
	{"iso-ir-6", 20127},
	{"ansi_x3.4-1968", 20127},
	{"ansi_x3.4-1986", 20127},
	{"iso_646.irv:1991", 20127},
	{"ascii", 20127},
	{"iso646-us", 20127},
	{"us", 20127},
	{"ibm367", 20127},
	{"cp367", 20127},
	{"csascii", 20127},
	{"iso-ir-6us", 20127},
	{"iso-ir-89", 0},
	{"asmo_449", 0},
	{"iso_9036", 0},
	{"arabic7", 0},
	{"csiso89asmo449", 0},
	{"big5", 950},
	{"csbig5", 950},
	{"cn-big5", 950},
	{"x-x-big5", 950},
	{"big5-hkscs", 950},
	{"cn-big5", 950},
	{"x-x-big5", 950},
	{"bocu-1", 0},
	{"csbocu-1", 0},
	{"iso-ir-4", 0},
	{"bs_4730", 0},
	{"iso646-gb", 0},
	{"gb", 0},
	{"uk", 0},
	{"csiso4unitedkingdom", 0},
	{"iso-ir-47", 0},
	{"bs_viewdata", 0},
	{"csiso47bsviewdata", 0},
	{"cesu-8", 0},
	{"cscesu-8", 0},
	{"iso-ir-121", 0},
	{"csa_z243.4-1985-1", 0},
	{"iso646-ca", 0},
	{"csa7-1", 0},
	{"ca", 0},
	{"csiso121canadian1", 0},
	{"iso-ir-122", 0},
	{"csa_z243.4-1985-2", 0},
	{"iso646-ca2", 0},
	{"csa7-2", 0},
	{"csiso122canadian2", 0},
	{"iso-ir-123", 0},
	{"csa_z243.4-1985-gr", 0},
	{"csiso123csaz24341985gr", 0},
	{"iso-ir-139", 0},
	{"csn_369103", 0},
	{"csiso139csn369103", 0},
	{"dec-mcs", 0},
	{"dec", 0},
	{"csdecmcs", 0},
	{"iso-ir-21", 20106},
	{"din_66003", 20106},
	{"de", 20106},
	{"iso646-de", 20106},
	{"csiso21german", 20106},
	{"x-ia5-german", 20106},
	{"dk-us", 0},
	{"csdkus", 0},
	{"ds_2089", 0},
	{"ds2089", 0},
	{"iso646-dk", 0},
	{"dk", 0},
	{"csiso646danish", 0},
	{"ebcdic-at-de", 0},
	{"csibmebcdicatde", 0},
	{"ebcdic-at-de-a", 0},
	{"csebcdicatdea", 0},
	{"ebcdic-ca-fr", 0},
	{"csebcdiccafr", 0},
	{"ebcdic-dk-no", 0},
	{"csebcdicdkno", 0},
	{"ebcdic-dk-no-a", 0},
	{"csebcdicdknoa", 0},
	{"ebcdic-es", 0},
	{"csebcdices", 0},
	{"ebcdic-es-a", 0},
	{"csebcdicesa", 0},
	{"ebcdic-es-s", 0},
	{"csebcdicess", 0},
	{"ebcdic-fi-se", 0},
	{"csebcdicfise", 0},
	{"ebcdic-fi-se-a", 0},
	{"csebcdicfisea", 0},
	{"ebcdic-fr", 0},
	{"csebcdicfr", 0},
	{"ebcdic-it", 0},
	{"csebcdicit", 0},
	{"ebcdic-pt", 0},
	{"csebcdicpt", 0},
	{"ebcdic-uk", 0},
	{"csebcdicuk", 0},
	{"ebcdic-us", 0},
	{"csebcdicus", 0},
	{"iso-ir-111", 0},
	{"ecma-cyrillic", 0},
	{"csiso111ecmacyrillic", 0},
	{"iso-ir-17", 0},
	{"es", 0},
	{"iso646-es", 0},
	{"csiso17spanish", 0},
	{"iso-ir-85", 0},
	{"es2", 0},
	{"iso646-es2", 0},
	{"csiso85spanish2", 0},
	{"euc-kr", 51949},
	{"cseuckr", 51949},
	{"extended_unix_code_fixed_width_for_japanese", 0},
	{"cseucfixwidjapanese", 0},
	{"euc-jp", 51932},
	{"extended_unix_code_packed_format_for_japanese", 51932},
	{"cseucpkdfmtjapanese", 51932},
	{"x-euc-jp", 51932},
	{"x-euc", 51932},
	{"gb18030", 54936},
	{"gb2312", 936},
	{"csgb2312", 936},
	{"csgb231280", 936},
	{"gb2312-80", 936},
	{"gb231280", 936},
	{"cn-gb", 936},
	{"iso-ir-57", 0},
	{"gb_1988-80", 0},
	{"cn", 0},
	{"iso646-cn", 0},
	{"csiso57gb1988", 0},
	{"iso-ir-58", 936},
	{"gb_2312-80", 936},
	{"chinese", 936},
	{"csiso58gb231280", 936},
	{"csgb231280", 936},
	{"gb2312-80", 936},
	{"gb231280", 936},
	{"cn-gb", 936},
	{"gbk", 936},
	{"cp936", 936},
	{"ms936", 936},
	{"windows-936", 936},
	{"csgb231280", 936},
	{"gb2312-80", 936},
	{"gb231280", 936},
	{"cn-gb", 936},
	{"iso-ir-153", 0},
	{"gost_19768-74", 0},
	{"st_sev_358-88", 0},
	{"csiso153gost1976874", 0},
	{"iso-ir-150", 0},
	{"greek-ccitt", 0},
	{"csiso150", 0},
	{"csiso150greekccitt", 0},
	{"iso-ir-88", 0},
	{"greek7", 0},
	{"csiso88greek7", 0},
	{"iso-ir-18", 0},
	{"greek7-old", 0},
	{"csiso18greek7old", 0},
	{"hp-desktop", 0},
	{"cshpdesktop", 0},
	{"hp-legal", 0},
	{"cshplegal", 0},
	{"hp-math8", 0},
	{"cshpmath8", 0},
	{"hp-pi-font", 0},
	{"cshppifont", 0},
	{"hp-roman8", 0},
	{"roman8", 0},
	{"r8", 0},
	{"cshproman8", 0},
	{"hz-gb-2312", 52936},
	{"ibm-symbols", 0},
	{"csibmsymbols", 0},
	{"ibm-thai", 20838},
	{"csibmthai", 20838},
	{"x-ebcdic-thai", 20838},
	{"ibm00858", 858},
	{"ccsid00858", 858},
	{"cp00858", 858},
	{"pc-multilingual-850+euro", 858},
	{"ibm00924", 20924},
	{"ccsid00924", 20924},
	{"cp00924", 20924},
	{"ebcdic-latin9--euro", 20924},
	{"ibm01140", 1140},
	{"ccsid01140", 1140},
	{"cp01140", 1140},
	{"ebcdic-us-37+euro", 1140},
	{"x-ebcdic-cp-us-euro", 1140},
	{"ibm01141", 1141},
	{"ccsid01141", 1141},
	{"cp01141", 1141},
	{"ebcdic-de-273+euro", 1141},
	{"x-ebcdic-germany-euro", 1141},
	{"ibm01142", 1142},
	{"ccsid01142", 1142},
	{"cp01142", 1142},
	{"ebcdic-dk-277+euro", 1142},
	{"ebcdic-no-277+euro", 1142},
	{"x-ebcdic-denmarknorway-euro", 1142},
	{"ibm01143", 1143},
	{"ccsid01143", 1143},
	{"cp01143", 1143},
	{"ebcdic-fi-278+euro", 1143},
	{"ebcdic-se-278+euro", 1143},
	{"x-ebcdic-france", 1143},
	{"x-ebcdic-finlandsweden-euro", 1143},
	{"ibm01144", 1144},
	{"ccsid01144", 1144},
	{"cp01144", 1144},
	{"ebcdic-it-280+euro", 1144},
	{"x-ebcdic-italy-euro", 1144},
	{"ibm01145", 1145},
	{"ccsid01145", 1145},
	{"cp01145", 1145},
	{"ebcdic-es-284+euro", 1145},
	{"x-ebcdic-spain-euro", 1145},
	{"ibm01146", 1146},
	{"ccsid01146", 1146},
	{"cp01146", 1146},
	{"ebcdic-gb-285+euro", 1146},
	{"x-ebcdic-uk-euro", 1146},
	{"ibm01147", 1147},
	{"ccsid01147", 1147},
	{"cp01147", 1147},
	{"ebcdic-fr-297+euro", 1147},
	{"x-ebcdic-france-euro", 1147},
	{"ibm01148", 1148},
	{"ccsid01148", 1148},
	{"cp01148", 1148},
	{"ebcdic-international-500+euro", 1148},
	{"x-ebcdic-international-euro", 1148},
	{"ibm01149", 1149},
	{"ccsid01149", 1149},
	{"cp01149", 1149},
	{"ebcdic-is-871+euro", 1149},
	{"x-ebcdic-icelandic-euro", 1149},
	{"ibm037", 37},
	{"cp037", 37},
	{"ebcdic-cp-us", 37},
	{"ebcdic-cp-ca", 37},
	{"ebcdic-cp-wt", 37},
	{"ebcdic-cp-nl", 37},
	{"csibm037", 37},
	{"ibm038", 0},
	{"ebcdic-int", 0},
	{"cp038", 0},
	{"csibm038", 0},
	{"ibm1026", 1026},
	{"cp1026", 1026},
	{"csibm1026", 1026},
	{"ibm1047", 0},
	{"ibm-1047", 0},
	{"ibm273", 20273},
	{"cp273", 20273},
	{"csibm273", 20273},
	{"x-ebcdic-germany", 20273},
	{"ibm274", 0},
	{"ebcdic-be", 0},
	{"cp274", 0},
	{"csibm274", 0},
	{"ibm275", 0},
	{"ebcdic-br", 0},
	{"cp275", 0},
	{"csibm275", 0},
	{"ibm277", 20277},
	{"ebcdic-cp-dk", 20277},
	{"ebcdic-cp-no", 20277},
	{"csibm277", 20277},
	{"x-ebcdic-denmarknorway", 20277},
	{"ibm278", 20278},
	{"cp278", 20278},
	{"ebcdic-cp-fi", 20278},
	{"ebcdic-cp-se", 20278},
	{"csibm278", 20278},
	{"x-ebcdic-finlandsweden", 20278},
	{"ibm280", 20280},
	{"cp280", 20280},
	{"ebcdic-cp-it", 20280},
	{"csibm280", 20280},
	{"x-ebcdic-italy", 20280},
	{"ibm281", 0},
	{"ebcdic-jp-e", 0},
	{"cp281", 0},
	{"csibm281", 0},
	{"ibm284", 20284},
	{"cp284", 20284},
	{"ebcdic-cp-es", 20284},
	{"csibm284", 20284},
	{"x-ebcdic-spain", 20284},
	{"ibm285", 20285},
	{"cp285", 20285},
	{"ebcdic-cp-gb", 20285},
	{"csibm285", 20285},
	{"x-ebcdic-uk", 20285},
	{"ibm290", 20290},
	{"cp290", 20290},
	{"ebcdic-jp-kana", 20290},
	{"csibm290", 20290},
	{"x-ebcdic-japanesekatakana", 20290},
	{"ibm297", 20297},
	{"cp297", 20297},
	{"ebcdic-cp-fr", 20297},
	{"csibm297", 20297},
	{"ibm420", 20420},
	{"cp420", 20420},
	{"ebcdic-cp-ar1", 20420},
	{"csibm420", 20420},
	{"x-ebcdic-arabic", 20420},
	{"ibm423", 20423},
	{"cp423", 20423},
	{"ebcdic-cp-gr", 20423},
	{"csibm423", 20423},
	{"x-ebcdic-greek", 20423},
	{"ibm424", 20424},
	{"cp424", 20424},
	{"ebcdic-cp-he", 20424},
	{"csibm424", 20424},
	{"x-ebcdic-hebrew", 20424},
	{"ibm437", 437},
	{"cp437", 437},
	{"437", 437},
	{"cspc8codepage437", 437},
	{"codepage437", 437},
	{"cspc8", 437},
	{"ibm500", 500},
	{"cp500", 500},
	{"ebcdic-cp-be", 500},
	{"ebcdic-cp-ch", 500},
	{"csibm500", 500},
	{"ibm775", 775},
	{"cp775", 775},
	{"cspc775baltic", 775},
	{"ibm850", 850},
	{"cp850", 850},
	{"850", 850},
	{"cspc850multilingual", 850},
	{"ibm851", 0},
	{"cp851", 0},
	{"851", 0},
	{"csibm851", 0},
	{"ibm852", 852},
	{"cp852", 852},
	{"852", 852},
	{"cspcp852", 852},
	{"ibm855", 855},
	{"cp855", 855},
	{"855", 855},
	{"csibm855", 855},
	{"ibm857", 857},
	{"cp857", 857},
	{"857", 857},
	{"csibm857", 857},
	{"ibm860", 860},
	{"cp860", 860},
	{"860", 860},
	{"csibm860", 860},
	{"ibm861", 861},
	{"cp861", 861},
	{"861", 861},
	{"cp-is", 861},
	{"csibm861", 861},
	{"ibm862", 862},
	{"cp862", 862},
	{"862", 862},
	{"cspc862latinhebrew", 862},
	{"dos-862", 862},
	{"ibm863", 863},
	{"cp863", 863},
	{"863", 863},
	{"csibm863", 863},
	{"ibm864", 864},
	{"cp864", 864},
	{"csibm864", 864},
	{"ibm865", 865},
	{"cp865", 865},
	{"865", 865},
	{"csibm865", 865},
	{"ibm866", 866},
	{"cp866", 866},
	{"866", 866},
	{"csibm866", 866},
	{"ibm868", 0},
	{"cp868", 0},
	{"cp-ar", 0},
	{"csibm868", 0},
	{"ibm869", 869},
	{"cp869", 869},
	{"869", 869},
	{"cp-gr", 869},
	{"csibm869", 869},
	{"ibm870", 870},
	{"cp870", 870},
	{"ebcdic-cp-roece", 870},
	{"ebcdic-cp-yu", 870},
	{"csibm870", 870},
	{"ibm871", 20871},
	{"cp871", 20871},
	{"ebcdic-cp-is", 20871},
	{"csibm871", 20871},
	{"x-ebcdic-icelandic", 20871},
	{"ibm880", 20880},
	{"cp880", 20880},
	{"ebcdic-cyrillic", 20880},
	{"csibm880", 20880},
	{"x-ebcdic-cyrillicrussian", 20880},
	{"ibm891", 0},
	{"cp891", 0},
	{"csibm891", 0},
	{"ibm903", 0},
	{"cp903", 0},
	{"csibm903", 0},
	{"ibm904", 0},
	{"cp904", 0},
	{"904", 0},
	{"csibbm904", 0},
	{"ibm905", 20905},
	{"cp905", 20905},
	{"ebcdic-cp-tr", 20905},
	{"csibm905", 20905},
	{"x-ebcdic-turkish", 20905},
	{"ibm918", 0},
	{"cp918", 0},
	{"ebcdic-cp-ar2", 0},
	{"csibm918", 0},
	{"iso-ir-143", 0},
	{"iec_p27-1", 0},
	{"csiso143iecp271", 0},
	{"iso-ir-49", 0},
	{"inis", 0},
	{"csiso49inis", 0},
	{"iso-ir-50", 0},
	{"inis-8", 0},
	{"csiso50inis8", 0},
	{"iso-ir-51", 0},
	{"inis-cyrillic", 0},
	{"csiso51iniscyrillic", 0},
	{"invariant", 0},
	{"csinvariant", 0},
	{"iso-10646-j-1", 0},
	{"iso-10646-ucs-2", 1200},
	{"csunicode", 1200},
	{"unicode", 1200},
	{"iso-10646-ucs-4", 0},
	{"csucs4", 0},
	{"iso-10646-ucs-basic", 0},
	{"csunicodeascii", 0},
	{"iso-10646-unicode-latin1", 0},
	{"iso-10646", 0},
	{"csunicodelatin1", 0},
	{"iso-10646-utf-1", 0},
	{"csiso10646utf1", 0},
	{"iso-2022-cn", 0},
	{"iso-2022-cn-ext", 0},
	{"iso-2022-jp", 50220},
	{"csiso2022jp", 50220},
	{"iso-2022-jp-2", 0},
	{"csiso2022jp2", 0},
	{"iso-2022-kr", 50225},
	{"csiso2022kr", 50225},
	{"iso-8859-1-windows-3.0-latin-1", 0},
	{"cswindows30latin1", 0},
	{"iso-8859-1-windows-3.1-latin-1", 0},
	{"cswindows31latin1", 0},
	{"iso-8859-10", 0},
	{"iso-ir-157", 0},
	{"l6", 0},
	{"iso_8859-10:1992", 0},
	{"csisolatin6", 0},
	{"latin6", 0},
	{"iso-8859-13", 28603},
	{"iso-8859-14", 0},
	{"iso-ir-199", 0},
	{"iso-celtic", 0},
	{"iso_8859-14:1998", 0},
	{"iso_8859-14", 0},
	{"latin8", 0},
	{"l8", 0},
	{"iso-8859-15", 28605},
	{"iso_8859-15", 28605},
	{"latin-9", 28605},
	{"l9", 28605},
	{"latin9", 28605},
	{"iso-8859-16", 0},
	{"iso-ir-226", 0},
	{"iso_8859-16:2001", 0},
	{"iso_8859-16", 0},
	{"latin10", 0},
	{"l10", 0},
	{"iso-8859-2-windows-latin-2", 0},
	{"cswindows31latin2", 0},
	{"iso-8859-9-windows-latin-5", 0},
	{"cswindows31latin5", 0},
	{"iso-ir-90", 0},
	{"csiso90", 0},
	{"iso-unicode-ibm-1261", 0},
	{"csunicodeibm1261", 0},
	{"iso-unicode-ibm-1264", 0},
	{"csunicodeibm1264", 0},
	{"iso-unicode-ibm-1265", 0},
	{"csunicodeibm1265", 0},
	{"iso-unicode-ibm-1268", 0},
	{"csunicodeibm1268", 0},
	{"iso-unicode-ibm-1276", 0},
	{"csunicodeibm1276", 0},
	{"iso-ir-155", 0},
	{"iso_10367-box", 0},
	{"csiso10367box", 0},
	{"iso-ir-98", 0},
	{"iso_2033-1983", 0},
	{"e13b", 0},
	{"csiso2033", 0},
	{"iso-ir-37", 0},
	{"iso_5427", 0},
	{"csiso5427cyrillic", 0},
	{"iso-ir-54", 0},
	{"iso_5427:1981", 0},
	{"iso5427cyrillic1981", 0},
	{"iso-ir-55", 0},
	{"iso_5428:1980", 0},
	{"csiso5428greek", 0},
	{"iso_646.basic:1983", 0},
	{"ref", 0},
	{"csiso646basic1983", 0},
	{"iso-ir-2", 20105},
	{"iso_646.irv:1983", 20105},
	{"irv", 20105},
	{"csiso2intlrefversion", 20105},
	{"x-ia5", 20105},
	{"iso-ir-152", 0},
	{"iso_6937-2-25", 0},
	{"csiso6937add", 0},
	{"iso-ir-142", 0},
	{"iso_6937-2-add", 0},
	{"csisotextcomm", 0},
	{"iso-8859-1", 28591},
	{"iso-ir-100", 28591},
	{"iso_8859-1:1987", 28591},
	{"iso_8859-1", 28591},
	{"latin1", 28591},
	{"l1", 28591},
	{"ibm819", 28591},
	{"cp819", 28591},
	{"csisolatin1", 28591},
	{"iso8859-1", 28591},
	{"iso-8859-2", 28592},
	{"iso-ir-101", 28592},
	{"iso_8859-2:1987", 28592},
	{"iso_8859-2", 28592},
	{"latin2", 28592},
	{"l2", 28592},
	{"csisolatin2", 28592},
	{"iso8859-2", 28592},
	{"iso-8859-3", 28593},
	{"iso-ir-109", 28593},
	{"iso_8859-3:1988", 28593},
	{"iso_8859-3", 28593},
	{"latin3", 28593},
	{"l3", 28593},
	{"csisolatin3", 28593},
	{"iso-8859-4", 28594},
	{"iso-ir-110", 28594},
	{"iso_8859-4:1988", 28594},
	{"iso_8859-4", 28594},
	{"latin4", 28594},
	{"l4", 28594},
	{"csisolatin4", 28594},
	{"iso-8859-5", 28595},
	{"iso-ir-144", 28595},
	{"iso_8859-5:1988", 28595},
	{"iso_8859-5", 28595},
	{"cyrillic", 28595},
	{"csisolatincyrillic", 28595},
	{"iso-8859-6-e", 0},
	{"iso_8859-6-e", 0},
	{"csiso88596e", 0},
	{"iso-8859-6-i", 0},
	{"iso_8859-6-i", 0},
	{"csiso88596i", 0},
	{"iso-8859-6", 28596},
	{"iso-ir-127", 28596},
	{"iso_8859-6:1987", 28596},
	{"iso_8859-6", 28596},
	{"ecma-114", 28596},
	{"asmo-708", 28596},
	{"arabic", 28596},
	{"csisolatinarabic", 28596},
	{"iso-8859-7", 28597},
	{"iso-ir-126", 28597},
	{"iso_8859-7:1987", 28597},
	{"iso_8859-7", 28597},
	{"elot_928", 28597},
	{"ecma-118", 28597},
	{"greek", 28597},
	{"greek8", 28597},
	{"csisolatingreek", 28597},
	{"iso-8859-8-e", 0},
	{"iso_8859-8-e", 0},
	{"csiso88598e", 0},
	{"iso-8859-8-i", 38598},
	{"iso_8859-8-i", 38598},
	{"csiso88598i", 38598},
	{"iso-8859-8", 28598},
	{"iso-ir-138", 28598},
	{"iso_8859-8:1988", 28598},
	{"iso_8859-8", 28598},
	{"hebrew", 28598},
	{"csisolatinhebrew", 28598},
	{"logical", 28598},
	{"visual", 28598},
	{"iso-8859-9", 28599},
	{"iso-ir-148", 28599},
	{"iso_8859-9:1989", 28599},
	{"iso_8859-9", 28599},
	{"latin5", 28599},
	{"l5", 28599},
	{"csisolatin5", 28599},
	{"iso-ir-154", 0},
	{"iso_8859-supp", 0},
	{"latin1-2-5", 0},
	{"csiso8859supp", 0},
	{"iso-ir-15", 0},
	{"it", 0},
	{"iso646-it", 0},
	{"csiso15italian", 0},
	{"iso-ir-13", 0},
	{"jis_c6220-1969-jp", 0},
	{"jis_c6220-1969", 0},
	{"katakana", 0},
	{"x0201-7", 0},
	{"csiso13jisc6220jp", 0},
	{"iso-ir-14", 0},
	{"jis_c6220-1969-ro", 0},
	{"jp", 0},
	{"iso646-jp", 0},
	{"csiso14jisc6220ro", 0},
	{"iso-ir-42", 0},
	{"jis_c6226-1978", 0},
	{"csiso42jisc62261978", 0},
	{"iso-ir-87", 0},
	{"jis_c6226-1983", 0},
	{"x0208", 0},
	{"jis_x0208-1983", 0},
	{"csiso87jisx0208", 0},
	{"iso-ir-91", 0},
	{"jis_c6229-1984-a", 0},
	{"jp-ocr-a", 0},
	{"csiso91jisc62291984a", 0},
	{"iso-ir-92", 0},
	{"jis_c6229-1984-b", 0},
	{"iso646-jp-ocr-b", 0},
	{"jp-ocr-b", 0},
	{"csiso92jisc62991984b", 0},
	{"iso-ir-93", 0},
	{"jis_c6229-1984-b-add", 0},
	{"jp-ocr-b-add", 0},
	{"csiso93jis62291984badd", 0},
	{"iso-ir-94", 0},
	{"jis_c6229-1984-hand", 0},
	{"jp-ocr-hand", 0},
	{"csiso94jis62291984hand", 0},
	{"iso-ir-95", 0},
	{"jis_c6229-1984-hand-add", 0},
	{"jp-ocr-hand-add", 0},
	{"csiso95jis62291984handadd", 0},
	{"iso-ir-96", 0},
	{"jis_c6229-1984-kana", 0},
	{"csiso96jisc62291984kana", 0},
	{"jis_encoding", 0},
	{"csjisencoding", 0},
	{"jis_x0201", 0},
	{"x0201", 0},
	{"cshalfwidthkatakana", 0},
	{"iso-ir-159", 0},
	{"jis_x0212-1990", 0},
	{"x0212", 0},
	{"csiso159jisx02121990", 0},
	{"iso-ir-141", 0},
	{"jus_i.b1.002", 0},
	{"iso646-yu", 0},
	{"js", 0},
	{"yu", 0},
	{"csiso141jusib1002", 0},
	{"iso-ir-147", 0},
	{"jus_i.b1.003-mac", 0},
	{"macedonian", 0},
	{"csiso147macedonian", 0},
	{"iso-ir-146", 0},
	{"jus_i.b1.003-serb", 0},
	{"serbian", 0},
	{"csiso146serbian", 0},
	{"koi8-r", 20866},
	{"cskoi8r", 20866},
	{"koi8", 20866},
	{"koi", 20866},
	{"koi8r", 20866},
	{"koi8-u", 21866},
	{"koi8-ru", 21866},
	{"iso-ir-149", 949},
	{"ks_c_5601-1987", 949},
	{"ks_c_5601-1989", 949},
	{"ksc_5601", 949},
	{"korean", 949},
	{"csksc56011987", 949},
	{"ks_c_5601_1987", 949},
	{"ksc5601", 949},
	{"ks_c_5601", 949},
	{"ksc5636", 0},
	{"iso646-kr", 0},
	{"csksc5636", 0},
	{"iso-ir-19", 0},
	{"latin-greek", 0},
	{"csiso19latingreek", 0},
	{"iso-ir-27", 0},
	{"latin-greek-1", 0},
	{"csiso27latingreek1", 0},
	{"iso-ir-158", 0},
	{"latin-lap", 0},
	{"lap", 0},
	{"csiso158lap", 0},
	{"macintosh", 10000},
	{"mac", 10000},
	{"csmacintosh", 10000},
	{"microsoft-publishing", 0},
	{"csmicrosoftpublishing", 0},
	{"mnem", 0},
	{"csmnem", 0},
	{"mnemonic", 0},
	{"csmnemonic", 0},
	{"iso-ir-86", 0},
	{"msz_7795.3", 0},
	{"iso646-hu", 0},
	{"hu", 0},
	{"csiso86hungarian", 0},
	{"iso-ir-9-1", 0},
	{"nats-dano", 0},
	{"csnatsdano", 0},
	{"iso-ir-9-2", 0},
	{"nats-dano-add", 0},
	{"csnatsdanoadd", 0},
	{"iso-ir-8-1", 0},
	{"nats-sefi", 0},
	{"csnatssefi", 0},
	{"iso-ir-8-2", 0},
	{"nats-sefi-add", 0},
	{"csnatssefiadd", 0},
	{"iso-ir-151", 0},
	{"nc_nc00-10:81", 0},
	{"cuba", 0},
	{"iso646-cu", 0},
	{"csiso151cuba", 0},
	{"iso-ir-69", 0},
	{"nf_z_62-010", 0},
	{"iso646-fr", 0},
	{"fr", 0},
	{"csiso69french", 0},
	{"iso-ir-25", 0},
	{"nf_z_62-010_(1973)", 0},
	{"iso646-fr1", 0},
	{"csiso25french", 0},
	{"iso-ir-60", 20108},
	{"ns_4551-1", 20108},
	{"iso646-no", 20108},
	{"no", 20108},
	{"csiso60danishnorwegian", 20108},
	{"csiso60norwegian1", 20108},
	{"x-ia5-norwegian", 20108},
	{"iso-ir-61", 0},
	{"ns_4551-2", 0},
	{"iso646-no2", 0},
	{"no2", 0},
	{"csiso61norwegian2", 0},
	{"pc8-danish-norwegian", 0},
	{"cspc8danishnorwegian", 0},
	{"pc8-turkish", 0},
	{"cspc8turkish", 0},
	{"iso-ir-16", 0},
	{"pt", 0},
	{"iso646-pt", 0},
	{"csiso16portuguese", 0},
	{"iso-ir-84", 0},
	{"pt2", 0},
	{"iso646-pt2", 0},
	{"csiso84portuguese2", 0},
	{"ptcp154", 0},
	{"csptcp154", 0},
	{"pt154", 0},
	{"cp154", 0},
	{"cyrillic-asian", 0},
	{"scsu", 0},
	{"iso-ir-10", 20107},
	{"sen_850200_b", 20107},
	{"fi", 20107},
	{"iso646-fi", 20107},
	{"iso646-se", 20107},
	{"se", 20107},
	{"csiso10swedish", 20107},
	{"x-ia5-swedish", 20107},
	{"iso-ir-11", 0},
	{"sen_850200_c", 0},
	{"iso646-se2", 0},
	{"se2", 0},
	{"csiso11swedishfornames", 0},
	{"shift_jis", 932},
	{"ms_kanji", 932},
	{"csshiftjis", 932},
	{"shift-jis", 932},
	{"x-ms-cp932", 932},
	{"x-sjis", 932},
	{"iso-ir-128", 0},
	{"t.101-g2", 0},
	{"csiso128t101g2", 0},
	{"iso-ir-102", 0},
	{"t.61-7bit", 0},
	{"csiso102t617bit", 0},
	{"iso-ir-103", 0},
	{"t.61-8bit", 0},
	{"t.61", 0},
	{"csiso103t618bit", 0},
	{"tis-620", 874},
	{"windows-874", 874},
	{"iso-8859-11", 874},
	{"dos-874", 874},
	{"unicode-1-1", 0},
	{"csunicode11", 0},
	{"unicode-1-1-utf-7", 65000},
	{"csunicode11utf7", 65000},
	{"x-unicode-2-0-utf-7", 65000},
	{"unknown-8bit", 0},
	{"csunknown8bit", 0},
	{"us-dk", 0},
	{"csusdk", 0},
	{"utf-16", 1200},
	{"unicode", 1200},
	{"utf-16be", 1201},
	{"unicodefffe", 1201},
	{"utf-16le", 1200},
	{"unicode", 1200},
	{"utf-32", 0},
	{"utf-32be", 0},
	{"utf-32le", 0},
	{"utf-7", 65000},
	{"x-unicode-2-0-utf-7", 65000},
	{"utf-8", 65001},
	{"unicode-2-0-utf-8", 65001},
	{"unicode-1-1-utf-8", 65001},
	{"x-unicode-2-0-utf-8", 65001},
	{"ventura-international", 0},
	{"csventurainternational", 0},
	{"ventura-math", 0},
	{"csventuramath", 0},
	{"ventura-us", 0},
	{"csventuraus", 0},
	{"iso-ir-70", 0},
	{"videotex-suppl", 0},
	{"csiso70videotexsupp1", 0},
	{"viqr", 0},
	{"csviqr", 0},
	{"viscii", 0},
	{"csviscii", 0},
	{"windows-1250", 1250},
	{"x-cp1250", 1250},
	{"windows-1251", 1251},
	{"x-cp1251", 1251},
	{"windows-1252", 1252},
	{"x-ansi", 1252},
	{"windows-1253", 1253},
	{"windows-1254", 1254},
	{"windows-1255", 1255},
	{"windows-1256", 1256},
	{"cp1256", 1256},
	{"windows-1257", 1257},
	{"windows-1258", 1258},
	{"windows-31j", 932},
	{"cswindows31j", 932},
	{"shift-jis", 932},
	{"x-ms-cp932", 932},
	{"x-sjis", 932},
	{"dos-720", 720},
	{"euc-cn", 51936},
	{"ibm737", 737},
	{"johab", 1361},
	{"x-chinese-cns", 20000},
	{"x-chinese-eten", 20002},
	{"x-ebcdic-cyrillicserbianbulgarian", 21025},
	{"x-ebcdic-greekmodern", 875},
	{"x-ebcdic-japaneseandjapaneselatin", 50939},
	{"x-ebcdic-japaneseandkana", 50930},
	{"x-ebcdic-japaneseanduscanada", 50931},
	{"x-ebcdic-koreanandkoreanextended", 50933},
	{"x-ebcdic-koreanextended", 20833},
	{"x-ebcdic-simplifiedchinese", 50935},
	{"x-ebcdic-traditionalchinese", 50937},
	{"x-euc-cn", 51936},
	{"x-europa", 29001},
	{"x-iscii-as", 57006},
	{"x-iscii-be", 57003},
	{"x-iscii-de", 57002},
	{"x-iscii-gu", 57010},
	{"x-iscii-ka", 57008},
	{"x-iscii-ma", 57009},
	{"x-iscii-or", 57007},
	{"x-iscii-pa", 57011},
	{"x-iscii-ta", 57004},
	{"x-iscii-te", 57005},
	{"x-mac-arabic", 10004},
	{"x-mac-ce", 10029},
	{"x-mac-chinesesimp", 10008},
	{"x-mac-chinesetrad", 10002},
	{"x-mac-cyrillic", 10007},
	{"x-mac-greek", 10006},
	{"x-mac-hebrew", 10005},
	{"x-mac-icelandic", 10079},
	{"x-mac-japanese", 10001},
	{"x-mac-korean", 10003},
	{"x-mac-turkish", 10081},
	{NULL, 0},
};

const gchar*
brutus_cpid_to_label(const CORBA_long cpid)
{
	int n = 0;

	while (cpid_map[n].label) {
		if (cpid == cpid_map[n].cpid)
			return cpid_map[n].label;
		n++;
	}

	return NULL;
}

CORBA_long
brutus_label_to_cpid(const gchar *label)
{
	int n = 0;

	while (cpid_map[n].label) {
		if (!g_ascii_strcasecmp(label, cpid_map[n].label))
			return cpid_map[n].cpid;
		n++;
	}

	return (-1);
}