From f95901cf82a8f8fd632ca1bfd87b739ba1d08ee7 Mon Sep 17 00:00:00 2001 From: Vladimir Glazounov Date: Tue, 1 Apr 2003 13:15:15 +0000 Subject: INTEGRATION: CWS sb3 (1.18.10.2.22); FILE MERGED 2003/03/03 15:55:04 sb 1.18.10.2.22.1: #107718# Converting between Windows code pages and rtl_TextEncoding. --- sal/textenc/tencinfo.c | 198 +++++++++++++++++++++++++++++++++++++++---------- 1 file changed, 157 insertions(+), 41 deletions(-) (limited to 'sal') diff --git a/sal/textenc/tencinfo.c b/sal/textenc/tencinfo.c index 2e25744cc75f..98eb1d566ff8 100644 --- a/sal/textenc/tencinfo.c +++ b/sal/textenc/tencinfo.c @@ -2,9 +2,9 @@ * * $RCSfile: tencinfo.c,v $ * - * $Revision: 1.19 $ + * $Revision: 1.20 $ * - * last change: $Author: hr $ $Date: 2003-03-26 16:47:17 $ + * last change: $Author: vg $ $Date: 2003-04-01 14:15:15 $ * * The Contents of this file are made available subject to the terms of * either of the following licenses @@ -253,45 +253,6 @@ rtl_TextEncoding SAL_CALL rtl_getTextEncodingFromWindowsCharset( sal_uInt8 nWinC #if 0 -rtl_TextEncoding SAL_CALL rtl_getTextEncodingFromPCCodePage( sal_uInt32 nCodePage ) -{ - rtl_TextEncoding eTextEncoding; - - switch ( nCodePage ) - { - case 437: eTextEncoding = RTL_TEXTENCODING_IBM_437; break; - case 850: eTextEncoding = RTL_TEXTENCODING_IBM_850; break; - case 860: eTextEncoding = RTL_TEXTENCODING_IBM_860; break; - case 861: eTextEncoding = RTL_TEXTENCODING_IBM_861; break; - case 863: eTextEncoding = RTL_TEXTENCODING_IBM_863; break; - case 865: eTextEncoding = RTL_TEXTENCODING_IBM_865; break; - case 737: eTextEncoding = RTL_TEXTENCODING_IBM_737; break; - case 775: eTextEncoding = RTL_TEXTENCODING_IBM_775; break; - case 852: eTextEncoding = RTL_TEXTENCODING_IBM_852; break; - case 855: eTextEncoding = RTL_TEXTENCODING_IBM_855; break; - case 857: eTextEncoding = RTL_TEXTENCODING_IBM_857; break; - case 862: eTextEncoding = RTL_TEXTENCODING_IBM_862; break; - case 864: eTextEncoding = RTL_TEXTENCODING_IBM_864; break; - case 866: eTextEncoding = RTL_TEXTENCODING_IBM_866; break; - case 869: eTextEncoding = RTL_TEXTENCODING_IBM_869; break; - case 874: eTextEncoding = RTL_TEXTENCODING_MS_874; break; - case 932: eTextEncoding = RTL_TEXTENCODING_MS_932; break; - case 949: eTextEncoding = RTL_TEXTENCODING_MS_949; break; - case 950: eTextEncoding = RTL_TEXTENCODING_MS_950; break; - case 1004: eTextEncoding = RTL_TEXTENCODING_MS_1252; break; - case 65400: eTextEncoding = RTL_TEXTENCODING_SYMBOL; break; - default: eTextEncoding = RTL_TEXTENCODING_DONTKNOW; break; - }; - - return eTextEncoding; -} - -#endif - -/* ----------------------------------------------------------------------- */ - -#if 0 - rtl_TextEncoding SAL_CALL rtl_getTextEncodingFromMacTextEncoding( sal_uInt32 nMacTextEncoding ) { rtl_TextEncoding eTextEncoding; @@ -1032,3 +993,158 @@ const sal_Char* SAL_CALL rtl_getBestMimeCharsetFromTextEncoding( rtl_TextEncodin else return 0; } + +/* The following two functions are based on , , and . + */ + +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 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_UTF7: return 65000; + case RTL_TEXTENCODING_UTF8: return 65001; + default: return 0; + } +} -- cgit