summaryrefslogtreecommitdiff
path: root/sal/textenc/tencinfo.c
diff options
context:
space:
mode:
Diffstat (limited to 'sal/textenc/tencinfo.c')
-rw-r--r--sal/textenc/tencinfo.c1002
1 files changed, 0 insertions, 1002 deletions
diff --git a/sal/textenc/tencinfo.c b/sal/textenc/tencinfo.c
deleted file mode 100644
index da5018076..000000000
--- a/sal/textenc/tencinfo.c
+++ /dev/null
@@ -1,1002 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org 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 Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#include "rtl/tencinfo.h"
-#include "gettextencodingdata.h"
-#include "tenchelp.h"
-
-#ifndef _RTL_ALLOC_H
-#include "rtl/alloc.h"
-#endif
-
-#ifndef INCLUDED_STDDEF_H
-#include <stddef.h>
-#define INCLUDED_STDDEF_H
-#endif
-#ifndef INCLUDED_STRING_H
-#include <string.h>
-#define INCLUDED_STRING_H
-#endif
-
-sal_Bool SAL_CALL rtl_isOctetTextEncoding(rtl_TextEncoding nEncoding)
-{
- return (sal_Bool)
- (nEncoding > RTL_TEXTENCODING_DONTKNOW
- && (nEncoding <= RTL_TEXTENCODING_ADOBE_DINGBATS)
- /* always update this! */
- && nEncoding != 9); /* RTL_TEXTENCODING_SYSTEM */
-}
-
-/* ======================================================================= */
-
-static void Impl_toAsciiLower( const sal_Char* pName, sal_Char* pBuf )
-{
- while ( *pName )
- {
- /* A-Z */
- if ( (*pName >= 0x41) && (*pName <= 0x5A) )
- *pBuf = (*pName)+0x20; /* toAsciiLower */
- else
- *pBuf = *pName;
-
- pBuf++;
- pName++;
- }
-
- *pBuf = '\0';
-}
-
-/* ----------------------------------------------------------------------- */
-
-static void Impl_toAsciiLowerAndRemoveNonAlphanumeric( const sal_Char* pName, sal_Char* pBuf )
-{
- while ( *pName )
- {
- /* A-Z */
- if ( (*pName >= 0x41) && (*pName <= 0x5A) )
- {
- *pBuf = (*pName)+0x20; /* toAsciiLower */
- pBuf++;
- }
- /* a-z, 0-9 */
- else if ( ((*pName >= 0x61) && (*pName <= 0x7A)) ||
- ((*pName >= 0x30) && (*pName <= 0x39)) )
- {
- *pBuf = *pName;
- pBuf++;
- }
-
- pName++;
- }
-
- *pBuf = '\0';
-}
-
-/* ----------------------------------------------------------------------- */
-
-/* pMatchStr must match with all characters in pCompStr */
-static sal_Bool Impl_matchString( const sal_Char* pCompStr, const sal_Char* pMatchStr )
-{
- /* We test only for end in MatchStr, because the last 0 character from */
- /* pCompStr is unequal a character in MatchStr, so the loop terminates */
- while ( *pMatchStr )
- {
- if ( *pCompStr != *pMatchStr )
- return sal_False;
-
- pCompStr++;
- pMatchStr++;
- }
-
- return sal_True;
-}
-
-/* ======================================================================= */
-
-typedef struct
-{
- const sal_Char* mpCharsetStr;
- rtl_TextEncoding meTextEncoding;
-} ImplStrCharsetDef;
-
-typedef struct
-{
- const sal_Char* mpCharsetStr;
- const ImplStrCharsetDef* mpSecondPartTab;
-} ImplStrFirstPartCharsetDef;
-
-/* ======================================================================= */
-
-sal_Bool SAL_CALL rtl_getTextEncodingInfo( rtl_TextEncoding eTextEncoding, rtl_TextEncodingInfo* pEncInfo )
-{
- const ImplTextEncodingData* pData;
-
- pData = Impl_getTextEncodingData( eTextEncoding );
- if ( !pData )
- {
- /* HACK: For not implemented encoding, because not all
- calls handle the errors */
- if ( pEncInfo->StructSize < 5 )
- return sal_False;
- pEncInfo->MinimumCharSize = 1;
-
- if ( pEncInfo->StructSize < 6 )
- return sal_True;
- pEncInfo->MaximumCharSize = 1;
-
- if ( pEncInfo->StructSize < 7 )
- return sal_True;
- pEncInfo->AverageCharSize = 1;
-
- if ( pEncInfo->StructSize < 12 )
- return sal_True;
- pEncInfo->Flags = 0;
-
- return sal_False;
- }
-
- if ( pEncInfo->StructSize < 5 )
- return sal_False;
- pEncInfo->MinimumCharSize = pData->mnMinCharSize;
-
- if ( pEncInfo->StructSize < 6 )
- return sal_True;
- pEncInfo->MaximumCharSize = pData->mnMaxCharSize;
-
- if ( pEncInfo->StructSize < 7 )
- return sal_True;
- pEncInfo->AverageCharSize = pData->mnAveCharSize;
-
- if ( pEncInfo->StructSize < 12 )
- return sal_True;
- pEncInfo->Flags = pData->mnInfoFlags;
-
- return sal_True;
-}
-
-/* ======================================================================= */
-
-rtl_TextEncoding SAL_CALL rtl_getTextEncodingFromWindowsCharset( sal_uInt8 nWinCharset )
-{
- rtl_TextEncoding eTextEncoding;
-
- switch ( nWinCharset )
- {
- case 0: eTextEncoding = RTL_TEXTENCODING_MS_1252; break; /* ANSI_CHARSET */
- case 2: eTextEncoding = RTL_TEXTENCODING_SYMBOL; break; /* SYMBOL_CHARSET */
- case 77: eTextEncoding = RTL_TEXTENCODING_APPLE_ROMAN; break;/* MAC_CHARSET */
- case 128: eTextEncoding = RTL_TEXTENCODING_MS_932; break; /* SHIFTJIS_CHARSET */
- case 129: eTextEncoding = RTL_TEXTENCODING_MS_949; break; /* HANGEUL_CHARSET */
- case 130: eTextEncoding = RTL_TEXTENCODING_MS_1361; break; /* JOHAB_CHARSET */
- case 134: eTextEncoding = RTL_TEXTENCODING_MS_936; break; /* GB2312_CHARSET */
- case 136: eTextEncoding = RTL_TEXTENCODING_MS_950; break; /* CHINESEBIG5_CHARSET */
- case 161: eTextEncoding = RTL_TEXTENCODING_MS_1253; break; /* GREEK_CHARSET */
- case 162: eTextEncoding = RTL_TEXTENCODING_MS_1254; break; /* TURKISH_CHARSET */
- case 163: eTextEncoding = RTL_TEXTENCODING_MS_1258; break; /* VIETNAMESE_CHARSET !!! */
- case 177: eTextEncoding = RTL_TEXTENCODING_MS_1255; break; /* HEBREW_CHARSET */
- case 178: eTextEncoding = RTL_TEXTENCODING_MS_1256; break; /* ARABIC_CHARSET */
- case 186: eTextEncoding = RTL_TEXTENCODING_MS_1257; break; /* BALTIC_CHARSET */
- case 204: eTextEncoding = RTL_TEXTENCODING_MS_1251; break; /* RUSSIAN_CHARSET */
- case 222: eTextEncoding = RTL_TEXTENCODING_MS_874; break; /* THAI_CHARSET */
- case 238: eTextEncoding = RTL_TEXTENCODING_MS_1250; break; /* EASTEUROPE_CHARSET */
- case 255: eTextEncoding = RTL_TEXTENCODING_IBM_850; break; /* OEM_CHARSET */
- default: eTextEncoding = RTL_TEXTENCODING_DONTKNOW; break;
- };
-
- return eTextEncoding;
-}
-
-/* ----------------------------------------------------------------------- */
-
-rtl_TextEncoding SAL_CALL rtl_getTextEncodingFromUnixCharset( const sal_Char* pUnixCharset )
-{
- /* See <ftp://ftp.x.org/pub/DOCS/registry>, section 14 ("Font Charset
- * (Registry and Encoding) Names").
- */
-
- /* All Identifiers in the tables are lower case The function search */
- /* for the first matching string in the tables. */
- /* Sort order: unique (first 14, than 1), important */
-
- static ImplStrCharsetDef const aUnixCharsetISOTab[] =
- {
- { "15", RTL_TEXTENCODING_ISO_8859_15 },
- { "14", RTL_TEXTENCODING_ISO_8859_14 },
- { "13", RTL_TEXTENCODING_ISO_8859_13 },
- { "11", RTL_TEXTENCODING_TIS_620 },
- { "10", RTL_TEXTENCODING_ISO_8859_10 },
- { "1", RTL_TEXTENCODING_ISO_8859_1 },
- { "2", RTL_TEXTENCODING_ISO_8859_2 },
- { "3", RTL_TEXTENCODING_ISO_8859_3 },
- { "4", RTL_TEXTENCODING_ISO_8859_4 },
- { "5", RTL_TEXTENCODING_ISO_8859_5 },
- { "6", RTL_TEXTENCODING_ISO_8859_6 },
- { "7", RTL_TEXTENCODING_ISO_8859_7 },
- { "8", RTL_TEXTENCODING_ISO_8859_8 },
- { "9", RTL_TEXTENCODING_ISO_8859_9 },
- { NULL, RTL_TEXTENCODING_DONTKNOW }
- };
-
- static ImplStrCharsetDef const aUnixCharsetADOBETab[] =
- {
- { "fontspecific", RTL_TEXTENCODING_SYMBOL },
- { NULL, RTL_TEXTENCODING_DONTKNOW }
- };
-
- static ImplStrCharsetDef const aUnixCharsetMSTab[] =
- {
- { "1252", RTL_TEXTENCODING_MS_1252 },
- { "1250", RTL_TEXTENCODING_MS_1250 },
- { "1251", RTL_TEXTENCODING_MS_1251 },
- { "1253", RTL_TEXTENCODING_MS_1253 },
- { "1254", RTL_TEXTENCODING_MS_1254 },
- { "1255", RTL_TEXTENCODING_MS_1255 },
- { "1256", RTL_TEXTENCODING_MS_1256 },
- { "1257", RTL_TEXTENCODING_MS_1257 },
- { "1258", RTL_TEXTENCODING_MS_1258 },
- { "932", RTL_TEXTENCODING_MS_932 },
- { "936", RTL_TEXTENCODING_MS_936 },
- { "949", RTL_TEXTENCODING_MS_949 },
- { "950", RTL_TEXTENCODING_MS_950 },
- { "1361", RTL_TEXTENCODING_MS_1361 },
- { "cp1252", RTL_TEXTENCODING_MS_1252 },
- { "cp1250", RTL_TEXTENCODING_MS_1250 },
- { "cp1251", RTL_TEXTENCODING_MS_1251 },
- { "cp1253", RTL_TEXTENCODING_MS_1253 },
- { "cp1254", RTL_TEXTENCODING_MS_1254 },
- { "cp1255", RTL_TEXTENCODING_MS_1255 },
- { "cp1256", RTL_TEXTENCODING_MS_1256 },
- { "cp1257", RTL_TEXTENCODING_MS_1257 },
- { "cp1258", RTL_TEXTENCODING_MS_1258 },
- { "cp932", RTL_TEXTENCODING_MS_932 },
- { "cp936", RTL_TEXTENCODING_MS_936 },
- { "cp949", RTL_TEXTENCODING_MS_949 },
- { "cp950", RTL_TEXTENCODING_MS_950 },
- { "cp1361", RTL_TEXTENCODING_MS_1361 },
- { NULL, RTL_TEXTENCODING_DONTKNOW }
- };
-
- static ImplStrCharsetDef const aUnixCharsetIBMTab[] =
- {
- { "437", RTL_TEXTENCODING_IBM_437 },
- { "850", RTL_TEXTENCODING_IBM_850 },
- { "860", RTL_TEXTENCODING_IBM_860 },
- { "861", RTL_TEXTENCODING_IBM_861 },
- { "863", RTL_TEXTENCODING_IBM_863 },
- { "865", RTL_TEXTENCODING_IBM_865 },
- { "737", RTL_TEXTENCODING_IBM_737 },
- { "775", RTL_TEXTENCODING_IBM_775 },
- { "852", RTL_TEXTENCODING_IBM_852 },
- { "855", RTL_TEXTENCODING_IBM_855 },
- { "857", RTL_TEXTENCODING_IBM_857 },
- { "862", RTL_TEXTENCODING_IBM_862 },
- { "864", RTL_TEXTENCODING_IBM_864 },
- { "866", RTL_TEXTENCODING_IBM_866 },
- { "869", RTL_TEXTENCODING_IBM_869 },
- { "874", RTL_TEXTENCODING_MS_874 },
- { "1004", RTL_TEXTENCODING_MS_1252 },
- { "65400", RTL_TEXTENCODING_SYMBOL },
- { NULL, RTL_TEXTENCODING_DONTKNOW }
- };
-
- static ImplStrCharsetDef const aUnixCharsetKOI8Tab[] =
- {
- { "r", RTL_TEXTENCODING_KOI8_R },
- { "u", RTL_TEXTENCODING_KOI8_U },
- { NULL, RTL_TEXTENCODING_DONTKNOW }
- };
-
- static ImplStrCharsetDef aUnixCharsetJISX0208Tab[] =
- {
- { NULL, RTL_TEXTENCODING_JIS_X_0208 }
- };
-
- static ImplStrCharsetDef aUnixCharsetJISX0201Tab[] =
- {
- { NULL, RTL_TEXTENCODING_JIS_X_0201 }
- };
-
- static ImplStrCharsetDef aUnixCharsetJISX0212Tab[] =
- {
- { NULL, RTL_TEXTENCODING_JIS_X_0212 }
- };
-
- static ImplStrCharsetDef aUnixCharsetGBTab[] =
- {
- { NULL, RTL_TEXTENCODING_GB_2312 }
- };
-
- static ImplStrCharsetDef aUnixCharsetGBKTab[] =
- {
- { NULL, RTL_TEXTENCODING_GBK }
- };
-
- static ImplStrCharsetDef aUnixCharsetBIG5Tab[] =
- {
- { NULL, RTL_TEXTENCODING_BIG5 }
- };
-
- static ImplStrCharsetDef const aUnixCharsetKSC56011987Tab[] =
- {
- { NULL, RTL_TEXTENCODING_EUC_KR }
- };
-
- static ImplStrCharsetDef const aUnixCharsetKSC56011992Tab[] =
- {
- { NULL, RTL_TEXTENCODING_MS_1361 }
- };
-
- static ImplStrCharsetDef const aUnixCharsetISO10646Tab[] =
- {
- { NULL, RTL_TEXTENCODING_UNICODE }
- };
-
- static ImplStrCharsetDef const aUnixCharsetUNICODETab[] =
- {
-/* Currently every Unicode Encoding is for us Unicode */
-/* { "fontspecific", RTL_TEXTENCODING_UNICODE }, */
- { NULL, RTL_TEXTENCODING_UNICODE }
- };
-
- static ImplStrCharsetDef const aUnixCharsetSymbolTab[] =
- {
- { NULL, RTL_TEXTENCODING_SYMBOL }
- };
-
- /* See <http://cvs.freedesktop.org/xorg/xc/fonts/encodings/iso8859-11.enc?
- rev=1.1.1.1>: */
- static ImplStrCharsetDef const aUnixCharsetTIS620Tab[] =
- {
- { "0", RTL_TEXTENCODING_TIS_620 },
- { "2529", RTL_TEXTENCODING_TIS_620 },
- { "2533", RTL_TEXTENCODING_TIS_620 },
- { NULL, RTL_TEXTENCODING_DONTKNOW }
- };
- static ImplStrCharsetDef const aUnixCharsetTIS6202529Tab[] =
- {
- { "1", RTL_TEXTENCODING_TIS_620 },
- { NULL, RTL_TEXTENCODING_DONTKNOW }
- };
- static ImplStrCharsetDef const aUnixCharsetTIS6202533Tab[] =
- {
- { "0", RTL_TEXTENCODING_TIS_620 },
- { "1", RTL_TEXTENCODING_TIS_620 },
- { NULL, RTL_TEXTENCODING_DONTKNOW }
- };
-
- static ImplStrFirstPartCharsetDef const aUnixCharsetFirstPartTab[] =
- {
- { "iso8859", aUnixCharsetISOTab },
- { "adobe", aUnixCharsetADOBETab },
- { "ansi", aUnixCharsetMSTab },
- { "microsoft", aUnixCharsetMSTab },
- { "ibm", aUnixCharsetIBMTab },
- { "koi8", aUnixCharsetKOI8Tab },
- { "jisx0208", aUnixCharsetJISX0208Tab },
- { "jisx0208.1983", aUnixCharsetJISX0208Tab },
- { "jisx0201", aUnixCharsetJISX0201Tab },
- { "jisx0201.1976", aUnixCharsetJISX0201Tab },
- { "jisx0212", aUnixCharsetJISX0212Tab },
- { "jisx0212.1990", aUnixCharsetJISX0212Tab },
- { "gb2312", aUnixCharsetGBTab },
- { "gbk", aUnixCharsetGBKTab },
- { "big5", aUnixCharsetBIG5Tab },
- { "iso10646", aUnixCharsetISO10646Tab },
-/* { "unicode", aUnixCharsetUNICODETab }, */ /* fonts contain only default chars */
- { "sunolcursor", aUnixCharsetSymbolTab },
- { "sunolglyph", aUnixCharsetSymbolTab },
- { "iso10646", aUnixCharsetUNICODETab },
- { "ksc5601.1987", aUnixCharsetKSC56011987Tab },
- { "ksc5601.1992", aUnixCharsetKSC56011992Tab },
- { "tis620.2529", aUnixCharsetTIS6202529Tab },
- { "tis620.2533", aUnixCharsetTIS6202533Tab },
- { "tis620", aUnixCharsetTIS620Tab },
-/* { "sunudcja.1997", }, */
-/* { "sunudcko.1997", }, */
-/* { "sunudczh.1997", }, */
-/* { "sunudczhtw.1997", }, */
- { NULL, NULL }
- };
-
- rtl_TextEncoding eEncoding = RTL_TEXTENCODING_DONTKNOW;
- sal_Char* pBuf;
- sal_Char* pTempBuf;
- sal_uInt32 nBufLen = strlen( pUnixCharset )+1;
- const sal_Char* pFirstPart;
- const sal_Char* pSecondPart;
-
- /* Alloc Buffer and map to lower case */
- pBuf = (char*)rtl_allocateMemory( nBufLen );
- Impl_toAsciiLower( pUnixCharset, pBuf );
-
- /* Search FirstPart */
- pFirstPart = pBuf;
- pSecondPart = NULL;
- pTempBuf = pBuf;
- while ( *pTempBuf )
- {
- if ( *pTempBuf == '-' )
- {
- *pTempBuf = '\0';
- pSecondPart = pTempBuf+1;
- break;
- }
-
- pTempBuf++;
- }
-
- /* Parttrenner gefunden */
- if ( pSecondPart )
- {
- /* Search for the part tab */
- const ImplStrFirstPartCharsetDef* pFirstPartData = aUnixCharsetFirstPartTab;
- while ( pFirstPartData->mpCharsetStr )
- {
- if ( Impl_matchString( pFirstPart, pFirstPartData->mpCharsetStr ) )
- {
- /* Search for the charset in the second part tab */
- const ImplStrCharsetDef* pData = pFirstPartData->mpSecondPartTab;
- while ( pData->mpCharsetStr )
- {
- if ( Impl_matchString( pSecondPart, pData->mpCharsetStr ) )
- {
- eEncoding = pData->meTextEncoding;
- break;
- }
-
- pData++;
- }
-
- /* use default encoding for first part */
- eEncoding = pData->meTextEncoding;
- break;
- }
-
- pFirstPartData++;
- }
- }
-
- rtl_freeMemory( pBuf );
-
- return eEncoding;
-}
-
-/* ----------------------------------------------------------------------- */
-
-rtl_TextEncoding SAL_CALL rtl_getTextEncodingFromMimeCharset( const sal_Char* pMimeCharset )
-{
- /* All Identifiers are in lower case and contain only alphanumeric */
- /* characters. The function search for the first equal string in */
- /* the table. In this table are only the most used mime types. */
- /* Sort order: important */
- static ImplStrCharsetDef const aVIPMimeCharsetTab[] =
- {
- { "usascii", RTL_TEXTENCODING_ASCII_US },
- { "utf8", RTL_TEXTENCODING_UTF8 },
- { "utf7", RTL_TEXTENCODING_UTF7 },
- { "iso88591", RTL_TEXTENCODING_ISO_8859_1 },
- { "iso88592", RTL_TEXTENCODING_ISO_8859_2 },
- { "iso88593", RTL_TEXTENCODING_ISO_8859_3 },
- { "iso88594", RTL_TEXTENCODING_ISO_8859_4 },
- { "iso88595", RTL_TEXTENCODING_ISO_8859_5 },
- { "iso88596", RTL_TEXTENCODING_ISO_8859_6 },
- { "iso88597", RTL_TEXTENCODING_ISO_8859_7 },
- { "iso88598", RTL_TEXTENCODING_ISO_8859_8 },
- { "iso88599", RTL_TEXTENCODING_ISO_8859_9 },
- { "iso885910", RTL_TEXTENCODING_ISO_8859_10 },
- { "iso885913", RTL_TEXTENCODING_ISO_8859_13 },
- { "iso885914", RTL_TEXTENCODING_ISO_8859_14 },
- { "iso885915", RTL_TEXTENCODING_ISO_8859_15 },
- { "iso2022jp", RTL_TEXTENCODING_ISO_2022_JP },
- { "iso2022jp2", RTL_TEXTENCODING_ISO_2022_JP },
- { "iso2022cn", RTL_TEXTENCODING_ISO_2022_CN },
- { "iso2022cnext", RTL_TEXTENCODING_ISO_2022_CN },
- { "iso2022kr", RTL_TEXTENCODING_ISO_2022_KR },
- { "eucjp", RTL_TEXTENCODING_EUC_JP },
- { "shiftjis", RTL_TEXTENCODING_SHIFT_JIS },
- { "mskanji", RTL_TEXTENCODING_MS_932 },
- { "gb2312", RTL_TEXTENCODING_GB_2312 },
- { "cngb", RTL_TEXTENCODING_GB_2312 },
- { "big5", RTL_TEXTENCODING_BIG5 },
- { "cnbig5", RTL_TEXTENCODING_BIG5 },
- { "cngb12345", RTL_TEXTENCODING_GBT_12345 },
- { "euckr", RTL_TEXTENCODING_EUC_KR },
- { "koi8r", RTL_TEXTENCODING_KOI8_R },
- { "windows1252", RTL_TEXTENCODING_MS_1252 },
- { "windows1250", RTL_TEXTENCODING_MS_1250 },
- { "windows1251", RTL_TEXTENCODING_MS_1251 },
- { "windows1253", RTL_TEXTENCODING_MS_1253 },
- { "windows1254", RTL_TEXTENCODING_MS_1254 },
- { "windows1255", RTL_TEXTENCODING_MS_1255 },
- { "windows1256", RTL_TEXTENCODING_MS_1256 },
- { "windows1257", RTL_TEXTENCODING_MS_1257 },
- { "windows1258", RTL_TEXTENCODING_MS_1258 },
- { NULL, RTL_TEXTENCODING_DONTKNOW }
- };
-
- /* All Identifiers are in lower case and contain only alphanumeric */
- /* characters. The function search for the first matching string in */
- /* the table. */
- /* Sort order: unique (first iso885914, than iso88591), important */
- static ImplStrCharsetDef const aMimeCharsetTab[] =
- {
- { "unicode11utf7", RTL_TEXTENCODING_UTF7 },
- { "caunicode11utf7", RTL_TEXTENCODING_UTF7 },
- { "iso88591windows30", RTL_TEXTENCODING_ISO_8859_1 },
- { "iso88591win", RTL_TEXTENCODING_MS_1252 },
- { "iso88592win", RTL_TEXTENCODING_MS_1250 },
- { "iso88599win", RTL_TEXTENCODING_MS_1254 },
- { "iso885915", RTL_TEXTENCODING_ISO_8859_15 },
- { "iso885914", RTL_TEXTENCODING_ISO_8859_14 },
- { "iso885913", RTL_TEXTENCODING_ISO_8859_13 },
- { "iso885911", RTL_TEXTENCODING_TIS_620 },
- /* This is no official MIME character set name, but it might be in
- use in Thailand. */
- { "iso885910", RTL_TEXTENCODING_ISO_8859_10 },
- { "iso88591", RTL_TEXTENCODING_ISO_8859_1 },
- { "iso88592", RTL_TEXTENCODING_ISO_8859_2 },
- { "iso88593", RTL_TEXTENCODING_ISO_8859_3 },
- { "iso88594", RTL_TEXTENCODING_ISO_8859_4 },
- { "iso88595", RTL_TEXTENCODING_ISO_8859_5 },
- { "iso88596", RTL_TEXTENCODING_ISO_8859_6 },
- { "iso88597", RTL_TEXTENCODING_ISO_8859_7 },
- { "iso88598", RTL_TEXTENCODING_ISO_8859_8 },
- { "iso88599", RTL_TEXTENCODING_ISO_8859_9 },
- { "isoir100", RTL_TEXTENCODING_ISO_8859_1 },
- { "latin1", RTL_TEXTENCODING_ISO_8859_1 },
- { "l1", RTL_TEXTENCODING_ISO_8859_1 },
- { "cp819", RTL_TEXTENCODING_ISO_8859_1 },
- { "ibm819", RTL_TEXTENCODING_ISO_8859_1 },
- { "csisolatin1", RTL_TEXTENCODING_ISO_8859_1 },
- { "isoir101", RTL_TEXTENCODING_ISO_8859_2 },
- { "latin2", RTL_TEXTENCODING_ISO_8859_2 },
- { "l2", RTL_TEXTENCODING_ISO_8859_2 },
- { "csisolatin2", RTL_TEXTENCODING_ISO_8859_2 },
- { "isoir109", RTL_TEXTENCODING_ISO_8859_3 },
- { "latin3", RTL_TEXTENCODING_ISO_8859_3 },
- { "l3", RTL_TEXTENCODING_ISO_8859_3 },
- { "csisolatin3", RTL_TEXTENCODING_ISO_8859_3 },
- { "isoir110", RTL_TEXTENCODING_ISO_8859_4 },
- { "latin4", RTL_TEXTENCODING_ISO_8859_4 },
- { "l4", RTL_TEXTENCODING_ISO_8859_4 },
- { "csisolatin4", RTL_TEXTENCODING_ISO_8859_4 },
- { "isoir144", RTL_TEXTENCODING_ISO_8859_5 },
- { "cyrillicasian", RTL_TEXTENCODING_PT154 },
- { "cyrillic", RTL_TEXTENCODING_ISO_8859_5 },
- { "csisolatincyrillic", RTL_TEXTENCODING_ISO_8859_5 },
- { "isoir127", RTL_TEXTENCODING_ISO_8859_6 },
- { "arabic", RTL_TEXTENCODING_ISO_8859_6 },
- { "csisolatinarabic", RTL_TEXTENCODING_ISO_8859_6 },
- { "ecma114", RTL_TEXTENCODING_ISO_8859_6 },
- { "asmo708", RTL_TEXTENCODING_ISO_8859_6 },
- { "isoir126", RTL_TEXTENCODING_ISO_8859_7 },
- { "greek", RTL_TEXTENCODING_ISO_8859_7 },
- { "csisolatingreek", RTL_TEXTENCODING_ISO_8859_7 },
- { "elot928", RTL_TEXTENCODING_ISO_8859_7 },
- { "ecma118", RTL_TEXTENCODING_ISO_8859_7 },
- { "isoir138", RTL_TEXTENCODING_ISO_8859_8 },
- { "hebrew", RTL_TEXTENCODING_ISO_8859_8 },
- { "csisolatinhebrew", RTL_TEXTENCODING_ISO_8859_8 },
- { "isoir148", RTL_TEXTENCODING_ISO_8859_9 },
- { "latin5", RTL_TEXTENCODING_ISO_8859_9 },
- { "l5", RTL_TEXTENCODING_ISO_8859_9 },
- { "csisolatin5", RTL_TEXTENCODING_ISO_8859_9 },
- { "cswindows30latin1", RTL_TEXTENCODING_ISO_8859_1 },
- { "cswindows30latin1", RTL_TEXTENCODING_ISO_8859_1 },
- { "cswindows31latin1", RTL_TEXTENCODING_MS_1252 },
- { "cswindows31latin2", RTL_TEXTENCODING_MS_1250 },
- { "cswindows31latin5", RTL_TEXTENCODING_MS_1254 },
- { "iso10646us", RTL_TEXTENCODING_ASCII_US },
- { "iso646irv", RTL_TEXTENCODING_ASCII_US },
- { "cskoi8r", RTL_TEXTENCODING_KOI8_R },
- { "ibm437", RTL_TEXTENCODING_IBM_437 },
- { "cp437", RTL_TEXTENCODING_IBM_437 },
- { "437", RTL_TEXTENCODING_IBM_437 },
- { "cspc8codepage437", RTL_TEXTENCODING_IBM_437 },
- { "ansix34", RTL_TEXTENCODING_ASCII_US },
- { "ibm367", RTL_TEXTENCODING_ASCII_US },
- { "cp367", RTL_TEXTENCODING_ASCII_US },
- { "csascii", RTL_TEXTENCODING_ASCII_US },
- { "ibm775", RTL_TEXTENCODING_IBM_775 },
- { "cp775", RTL_TEXTENCODING_IBM_775 },
- { "cspc775baltic", RTL_TEXTENCODING_IBM_775 },
- { "ibm850", RTL_TEXTENCODING_IBM_850 },
- { "cp850", RTL_TEXTENCODING_IBM_850 },
- { "850", RTL_TEXTENCODING_IBM_850 },
- { "cspc850multilingual", RTL_TEXTENCODING_IBM_850 },
-/* { "ibm851", RTL_TEXTENCODING_IBM_851 }, */
-/* { "cp851", RTL_TEXTENCODING_IBM_851 }, */
-/* { "851", RTL_TEXTENCODING_IBM_851 }, */
-/* { "csibm851", RTL_TEXTENCODING_IBM_851 }, */
- { "ibm852", RTL_TEXTENCODING_IBM_852 },
- { "cp852", RTL_TEXTENCODING_IBM_852 },
- { "852", RTL_TEXTENCODING_IBM_852 },
- { "cspcp852", RTL_TEXTENCODING_IBM_852 },
- { "ibm855", RTL_TEXTENCODING_IBM_855 },
- { "cp855", RTL_TEXTENCODING_IBM_855 },
- { "855", RTL_TEXTENCODING_IBM_855 },
- { "csibm855", RTL_TEXTENCODING_IBM_855 },
- { "ibm857", RTL_TEXTENCODING_IBM_857 },
- { "cp857", RTL_TEXTENCODING_IBM_857 },
- { "857", RTL_TEXTENCODING_IBM_857 },
- { "csibm857", RTL_TEXTENCODING_IBM_857 },
- { "ibm860", RTL_TEXTENCODING_IBM_860 },
- { "cp860", RTL_TEXTENCODING_IBM_860 },
- { "860", RTL_TEXTENCODING_IBM_860 },
- { "csibm860", RTL_TEXTENCODING_IBM_860 },
- { "ibm861", RTL_TEXTENCODING_IBM_861 },
- { "cp861", RTL_TEXTENCODING_IBM_861 },
- { "861", RTL_TEXTENCODING_IBM_861 },
- { "csis", RTL_TEXTENCODING_IBM_861 },
- { "csibm861", RTL_TEXTENCODING_IBM_861 },
- { "ibm862", RTL_TEXTENCODING_IBM_862 },
- { "cp862", RTL_TEXTENCODING_IBM_862 },
- { "862", RTL_TEXTENCODING_IBM_862 },
- { "cspc862latinhebrew", RTL_TEXTENCODING_IBM_862 },
- { "ibm863", RTL_TEXTENCODING_IBM_863 },
- { "cp863", RTL_TEXTENCODING_IBM_863 },
- { "863", RTL_TEXTENCODING_IBM_863 },
- { "csibm863", RTL_TEXTENCODING_IBM_863 },
- { "ibm864", RTL_TEXTENCODING_IBM_864 },
- { "cp864", RTL_TEXTENCODING_IBM_864 },
- { "864", RTL_TEXTENCODING_IBM_864 },
- { "csibm864", RTL_TEXTENCODING_IBM_864 },
- { "ibm865", RTL_TEXTENCODING_IBM_865 },
- { "cp865", RTL_TEXTENCODING_IBM_865 },
- { "865", RTL_TEXTENCODING_IBM_865 },
- { "csibm865", RTL_TEXTENCODING_IBM_865 },
- { "ibm866", RTL_TEXTENCODING_IBM_866 },
- { "cp866", RTL_TEXTENCODING_IBM_866 },
- { "866", RTL_TEXTENCODING_IBM_866 },
- { "csibm866", RTL_TEXTENCODING_IBM_866 },
-/* { "ibm868", RTL_TEXTENCODING_IBM_868 }, */
-/* { "cp868", RTL_TEXTENCODING_IBM_868 }, */
-/* { "cpar", RTL_TEXTENCODING_IBM_868 }, */
-/* { "csibm868", RTL_TEXTENCODING_IBM_868 }, */
- { "ibm869", RTL_TEXTENCODING_IBM_869 },
- { "cp869", RTL_TEXTENCODING_IBM_869 },
- { "869", RTL_TEXTENCODING_IBM_869 },
- { "cpgr", RTL_TEXTENCODING_IBM_869 },
- { "csibm869", RTL_TEXTENCODING_IBM_869 },
- { "ibm869", RTL_TEXTENCODING_IBM_869 },
- { "cp869", RTL_TEXTENCODING_IBM_869 },
- { "869", RTL_TEXTENCODING_IBM_869 },
- { "cpgr", RTL_TEXTENCODING_IBM_869 },
- { "csibm869", RTL_TEXTENCODING_IBM_869 },
- { "mac", RTL_TEXTENCODING_APPLE_ROMAN },
- { "csmacintosh", RTL_TEXTENCODING_APPLE_ROMAN },
- { "shiftjis", RTL_TEXTENCODING_SHIFT_JIS },
- { "mskanji", RTL_TEXTENCODING_MS_932 },
- { "csshiftjis", RTL_TEXTENCODING_SHIFT_JIS },
- { "jisx0208", RTL_TEXTENCODING_JIS_X_0208 },
- { "jisc62261983", RTL_TEXTENCODING_JIS_X_0208 },
- { "csiso87jisx0208", RTL_TEXTENCODING_JIS_X_0208 },
- { "isoir86", RTL_TEXTENCODING_JIS_X_0208 },
- { "x0208", RTL_TEXTENCODING_JIS_X_0208 },
- { "jisx0201", RTL_TEXTENCODING_JIS_X_0201 },
- { "cshalfwidthkatakana", RTL_TEXTENCODING_JIS_X_0201 },
- { "x0201", RTL_TEXTENCODING_JIS_X_0201 },
- { "jisx0212", RTL_TEXTENCODING_JIS_X_0212 },
- { "csiso159jisx0212", RTL_TEXTENCODING_JIS_X_0212 },
- { "isoir159", RTL_TEXTENCODING_JIS_X_0208 },
- { "x0212", RTL_TEXTENCODING_JIS_X_0212 },
- { "isoir6", RTL_TEXTENCODING_ASCII_US },
- { "xsjis", RTL_TEXTENCODING_SHIFT_JIS },
- { "sjis", RTL_TEXTENCODING_SHIFT_JIS },
- { "ascii", RTL_TEXTENCODING_ASCII_US },
- { "us", RTL_TEXTENCODING_ASCII_US },
- { "gb180302000", RTL_TEXTENCODING_GB_18030 },
- /* This is no actual MIME character set name, it is only in here
- for backwards compatibility (before "GB18030" was officially
- registered with IANA, this code contained some guesses of what
- would become official names for GB18030). */
- { "gb18030", RTL_TEXTENCODING_GB_18030 },
- { "big5hkscs", RTL_TEXTENCODING_BIG5_HKSCS },
- { "tis620", RTL_TEXTENCODING_TIS_620 },
- { "gbk", RTL_TEXTENCODING_GBK },
- { "cp936", RTL_TEXTENCODING_GBK },
- { "ms936", RTL_TEXTENCODING_GBK },
- { "windows936", RTL_TEXTENCODING_GBK },
- { "cp874", RTL_TEXTENCODING_MS_874 },
- /* This is no official MIME character set name, but it might be in
- use in Thailand. */
- { "ms874", RTL_TEXTENCODING_MS_874 },
- /* This is no official MIME character set name, but it might be in
- use in Thailand. */
- { "windows874", RTL_TEXTENCODING_MS_874 },
- /* This is no official MIME character set name, but it might be in
- use in Thailand. */
- { "koi8u", RTL_TEXTENCODING_KOI8_U },
- { "cpis", RTL_TEXTENCODING_IBM_861 },
- { "ksc56011987", RTL_TEXTENCODING_MS_949 },
- { "isoir149", RTL_TEXTENCODING_MS_949 },
- { "ksc56011989", RTL_TEXTENCODING_MS_949 },
- { "ksc5601", RTL_TEXTENCODING_MS_949 },
- { "korean", RTL_TEXTENCODING_MS_949 },
- { "csksc56011987", RTL_TEXTENCODING_MS_949 },
- /* Map KS_C_5601-1987 and aliases to MS-949 instead of EUC-KR, as
- this character set identifier seems to be prominently used by MS
- to stand for KS C 5601 plus MS-949 extensions */
- { "latin9", RTL_TEXTENCODING_ISO_8859_15 },
- { "adobestandardencoding", RTL_TEXTENCODING_ADOBE_STANDARD },
- { "csadobestandardencoding", RTL_TEXTENCODING_ADOBE_STANDARD },
- { "adobesymbolencoding", RTL_TEXTENCODING_ADOBE_SYMBOL },
- { "cshppsmath", RTL_TEXTENCODING_ADOBE_SYMBOL },
- { "ptcp154", RTL_TEXTENCODING_PT154 },
- { "csptcp154", RTL_TEXTENCODING_PT154 },
- { "pt154", RTL_TEXTENCODING_PT154 },
- { "cp154", RTL_TEXTENCODING_PT154 },
- { "xisciide", RTL_TEXTENCODING_ISCII_DEVANAGARI },
- /* This is not an official MIME character set name, but is in use by
- various windows APIs. */
- { NULL, RTL_TEXTENCODING_DONTKNOW }
- };
-
- rtl_TextEncoding eEncoding = RTL_TEXTENCODING_DONTKNOW;
- sal_Char* pBuf;
- const ImplStrCharsetDef* pData = aVIPMimeCharsetTab;
- sal_uInt32 nBufLen = strlen( pMimeCharset )+1;
-
- /* Alloc Buffer and map to lower case and remove non alphanumeric chars */
- pBuf = (char*)rtl_allocateMemory( nBufLen );
- Impl_toAsciiLowerAndRemoveNonAlphanumeric( pMimeCharset, pBuf );
-
- /* Search for equal in the VIP table */
- while ( pData->mpCharsetStr )
- {
- if ( strcmp( pBuf, pData->mpCharsetStr ) == 0 )
- {
- eEncoding = pData->meTextEncoding;
- break;
- }
-
- pData++;
- }
-
- /* Search for matching in the mime table */
- if ( eEncoding == RTL_TEXTENCODING_DONTKNOW )
- {
- pData = aMimeCharsetTab;
- while ( pData->mpCharsetStr )
- {
- if ( Impl_matchString( pBuf, pData->mpCharsetStr ) )
- {
- eEncoding = pData->meTextEncoding;
- break;
- }
-
- pData++;
- }
- }
-
- rtl_freeMemory( pBuf );
-
- return eEncoding;
-}
-
-/* ======================================================================= */
-
-sal_uInt8 SAL_CALL rtl_getBestWindowsCharsetFromTextEncoding( rtl_TextEncoding eTextEncoding )
-{
- const ImplTextEncodingData* pData = Impl_getTextEncodingData( eTextEncoding );
- if ( pData )
- return pData->mnBestWindowsCharset;
- else
- return 1;
-}
-
-/* ----------------------------------------------------------------------- */
-
-const sal_Char* SAL_CALL rtl_getBestUnixCharsetFromTextEncoding( rtl_TextEncoding eTextEncoding )
-{
- const ImplTextEncodingData* pData = Impl_getTextEncodingData( eTextEncoding );
- if ( pData )
- return (sal_Char const *) pData->mpBestUnixCharset;
- else if( eTextEncoding == RTL_TEXTENCODING_UNICODE )
- return (sal_Char const *) "iso10646-1";
- else
- return 0;
-}
-
-/* ----------------------------------------------------------------------- */
-
-char const * SAL_CALL rtl_getMimeCharsetFromTextEncoding(rtl_TextEncoding
- nEncoding)
-{
- ImplTextEncodingData const * p = Impl_getTextEncodingData(nEncoding);
- return p && (p->mnInfoFlags & RTL_TEXTENCODING_INFO_MIME) != 0 ?
- p->mpBestMimeCharset : NULL;
-}
-
-const sal_Char* SAL_CALL rtl_getBestMimeCharsetFromTextEncoding( rtl_TextEncoding eTextEncoding )
-{
- const ImplTextEncodingData* pData = Impl_getTextEncodingData( eTextEncoding );
- if ( pData )
- return (sal_Char const *) pData->mpBestMimeCharset;
- else
- return 0;
-}
-
-/* The following two functions are based on <http://www.sharmahd.com/tm/
- codepages.html>, <http://msdn.microsoft.com/workshop/author/dhtml/reference/
- charsets/charset4.asp>, and <http://www.iana.org/assignments/character-sets>.
- */
-
-rtl_TextEncoding SAL_CALL
-rtl_getTextEncodingFromWindowsCodePage(sal_uInt32 nCodePage)
-{
- switch (nCodePage)
- {
- case 437: return RTL_TEXTENCODING_IBM_437;
- case 708: return RTL_TEXTENCODING_ISO_8859_6;
- case 737: return RTL_TEXTENCODING_IBM_737;
- case 775: return RTL_TEXTENCODING_IBM_775;
- case 850: return RTL_TEXTENCODING_IBM_850;
- case 852: return RTL_TEXTENCODING_IBM_852;
- case 855: return RTL_TEXTENCODING_IBM_855;
- case 857: return RTL_TEXTENCODING_IBM_857;
- case 860: return RTL_TEXTENCODING_IBM_860;
- case 861: return RTL_TEXTENCODING_IBM_861;
- case 862: return RTL_TEXTENCODING_IBM_862;
- case 863: return RTL_TEXTENCODING_IBM_863;
- case 864: return RTL_TEXTENCODING_IBM_864;
- case 865: return RTL_TEXTENCODING_IBM_865;
- case 866: return RTL_TEXTENCODING_IBM_866;
- case 869: return RTL_TEXTENCODING_IBM_869;
- case 874: return RTL_TEXTENCODING_MS_874;
- case 932: return RTL_TEXTENCODING_MS_932;
- case 936: return RTL_TEXTENCODING_MS_936;
- case 949: return RTL_TEXTENCODING_MS_949;
- case 950: return RTL_TEXTENCODING_MS_950;
- case 1250: return RTL_TEXTENCODING_MS_1250;
- case 1251: return RTL_TEXTENCODING_MS_1251;
- case 1252: return RTL_TEXTENCODING_MS_1252;
- case 1253: return RTL_TEXTENCODING_MS_1253;
- case 1254: return RTL_TEXTENCODING_MS_1254;
- case 1255: return RTL_TEXTENCODING_MS_1255;
- case 1256: return RTL_TEXTENCODING_MS_1256;
- case 1257: return RTL_TEXTENCODING_MS_1257;
- case 1258: return RTL_TEXTENCODING_MS_1258;
- case 1361: return RTL_TEXTENCODING_MS_1361;
- case 10000: return RTL_TEXTENCODING_APPLE_ROMAN;
- case 10001: return RTL_TEXTENCODING_APPLE_JAPANESE;
- case 10002: return RTL_TEXTENCODING_APPLE_CHINTRAD;
- case 10003: return RTL_TEXTENCODING_APPLE_KOREAN;
- case 10004: return RTL_TEXTENCODING_APPLE_ARABIC;
- case 10005: return RTL_TEXTENCODING_APPLE_HEBREW;
- case 10006: return RTL_TEXTENCODING_APPLE_GREEK;
- case 10007: return RTL_TEXTENCODING_APPLE_CYRILLIC;
- case 10008: return RTL_TEXTENCODING_APPLE_CHINSIMP;
- case 10010: return RTL_TEXTENCODING_APPLE_ROMANIAN;
- case 10017: return RTL_TEXTENCODING_APPLE_UKRAINIAN;
- case 10029: return RTL_TEXTENCODING_APPLE_CENTEURO;
- case 10079: return RTL_TEXTENCODING_APPLE_ICELAND;
- case 10081: return RTL_TEXTENCODING_APPLE_TURKISH;
- case 10082: return RTL_TEXTENCODING_APPLE_CROATIAN;
- case 20127: return RTL_TEXTENCODING_ASCII_US;
- case 20866: return RTL_TEXTENCODING_KOI8_R;
- case 21866: return RTL_TEXTENCODING_KOI8_U;
- case 28591: return RTL_TEXTENCODING_ISO_8859_1;
- case 28592: return RTL_TEXTENCODING_ISO_8859_2;
- case 28593: return RTL_TEXTENCODING_ISO_8859_3;
- case 28594: return RTL_TEXTENCODING_ISO_8859_4;
- case 28595: return RTL_TEXTENCODING_ISO_8859_5;
- case 28596: return RTL_TEXTENCODING_ISO_8859_6;
- case 28597: return RTL_TEXTENCODING_ISO_8859_7;
- case 28598: return RTL_TEXTENCODING_ISO_8859_8;
- case 28599: return RTL_TEXTENCODING_ISO_8859_9;
- case 28605: return RTL_TEXTENCODING_ISO_8859_15;
- case 50220: return RTL_TEXTENCODING_ISO_2022_JP;
- case 50225: return RTL_TEXTENCODING_ISO_2022_KR;
- case 51932: return RTL_TEXTENCODING_EUC_JP;
- case 51936: return RTL_TEXTENCODING_EUC_CN;
- case 51949: return RTL_TEXTENCODING_EUC_KR;
- case 57002: return RTL_TEXTENCODING_ISCII_DEVANAGARI;
- case 65000: return RTL_TEXTENCODING_UTF7;
- case 65001: return RTL_TEXTENCODING_UTF8;
- default: return RTL_TEXTENCODING_DONTKNOW;
- }
-}
-
-sal_uInt32 SAL_CALL
-rtl_getWindowsCodePageFromTextEncoding(rtl_TextEncoding nEncoding)
-{
- switch (nEncoding)
- {
- case RTL_TEXTENCODING_IBM_437: return 437;
- /* case RTL_TEXTENCODING_ISO_8859_6: return 708; */
- case RTL_TEXTENCODING_IBM_737: return 737;
- case RTL_TEXTENCODING_IBM_775: return 775;
- case RTL_TEXTENCODING_IBM_850: return 850;
- case RTL_TEXTENCODING_IBM_852: return 852;
- case RTL_TEXTENCODING_IBM_855: return 855;
- case RTL_TEXTENCODING_IBM_857: return 857;
- case RTL_TEXTENCODING_IBM_860: return 860;
- case RTL_TEXTENCODING_IBM_861: return 861;
- case RTL_TEXTENCODING_IBM_862: return 862;
- case RTL_TEXTENCODING_IBM_863: return 863;
- case RTL_TEXTENCODING_IBM_864: return 864;
- case RTL_TEXTENCODING_IBM_865: return 865;
- case RTL_TEXTENCODING_IBM_866: return 866;
- case RTL_TEXTENCODING_IBM_869: return 869;
- case RTL_TEXTENCODING_MS_874: return 874;
- case RTL_TEXTENCODING_MS_932: return 932;
- case RTL_TEXTENCODING_MS_936: return 936;
- case RTL_TEXTENCODING_MS_949: return 949;
- case RTL_TEXTENCODING_MS_950: return 950;
- case RTL_TEXTENCODING_MS_1250: return 1250;
- case RTL_TEXTENCODING_MS_1251: return 1251;
- case RTL_TEXTENCODING_MS_1252: return 1252;
- case RTL_TEXTENCODING_MS_1253: return 1253;
- case RTL_TEXTENCODING_MS_1254: return 1254;
- case RTL_TEXTENCODING_MS_1255: return 1255;
- case RTL_TEXTENCODING_MS_1256: return 1256;
- case RTL_TEXTENCODING_MS_1257: return 1257;
- case RTL_TEXTENCODING_MS_1258: return 1258;
- case RTL_TEXTENCODING_MS_1361: return 1361;
- case RTL_TEXTENCODING_APPLE_ROMAN: return 10000;
- case RTL_TEXTENCODING_APPLE_JAPANESE: return 10001;
- case RTL_TEXTENCODING_APPLE_CHINTRAD: return 10002;
- case RTL_TEXTENCODING_APPLE_KOREAN: return 10003;
- case RTL_TEXTENCODING_APPLE_ARABIC: return 10004;
- case RTL_TEXTENCODING_APPLE_HEBREW: return 10005;
- case RTL_TEXTENCODING_APPLE_GREEK: return 10006;
- case RTL_TEXTENCODING_APPLE_CYRILLIC: return 10007;
- case RTL_TEXTENCODING_APPLE_CHINSIMP: return 10008;
- case RTL_TEXTENCODING_APPLE_ROMANIAN: return 10010;
- case RTL_TEXTENCODING_APPLE_UKRAINIAN: return 10017;
- case RTL_TEXTENCODING_APPLE_CENTEURO: return 10029;
- case RTL_TEXTENCODING_APPLE_ICELAND: return 10079;
- case RTL_TEXTENCODING_APPLE_TURKISH: return 10081;
- case RTL_TEXTENCODING_APPLE_CROATIAN: return 10082;
- case RTL_TEXTENCODING_ASCII_US: return 20127;
- case RTL_TEXTENCODING_KOI8_R: return 20866;
- case RTL_TEXTENCODING_KOI8_U: return 21866;
- case RTL_TEXTENCODING_ISO_8859_1: return 28591;
- case RTL_TEXTENCODING_ISO_8859_2: return 28592;
- case RTL_TEXTENCODING_ISO_8859_3: return 28593;
- case RTL_TEXTENCODING_ISO_8859_4: return 28594;
- case RTL_TEXTENCODING_ISO_8859_5: return 28595;
- case RTL_TEXTENCODING_ISO_8859_6: return 28596;
- case RTL_TEXTENCODING_ISO_8859_7: return 28597;
- case RTL_TEXTENCODING_ISO_8859_8: return 28598;
- case RTL_TEXTENCODING_ISO_8859_9: return 28599;
- case RTL_TEXTENCODING_ISO_8859_15: return 28605;
- case RTL_TEXTENCODING_ISO_2022_JP: return 50220;
- case RTL_TEXTENCODING_ISO_2022_KR: return 50225;
- case RTL_TEXTENCODING_EUC_JP: return 51932;
- case RTL_TEXTENCODING_EUC_CN: return 51936;
- case RTL_TEXTENCODING_EUC_KR: return 51949;
- case RTL_TEXTENCODING_ISCII_DEVANAGARI: return 57002;
- case RTL_TEXTENCODING_UTF7: return 65000;
- case RTL_TEXTENCODING_UTF8: return 65001;
- default: return 0;
- }
-}
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */