summaryrefslogtreecommitdiff
path: root/sal
diff options
context:
space:
mode:
authorVladimir Glazounov <vg@openoffice.org>2003-04-01 13:15:15 +0000
committerVladimir Glazounov <vg@openoffice.org>2003-04-01 13:15:15 +0000
commitf95901cf82a8f8fd632ca1bfd87b739ba1d08ee7 (patch)
treef9e7fb303c941b768c2e4862283792e9eb9ada8a /sal
parentb7b16ffa496b34a69b7e810efaeb2e558fcfb96b (diff)
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.
Diffstat (limited to 'sal')
-rw-r--r--sal/textenc/tencinfo.c198
1 files changed, 157 insertions, 41 deletions
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 <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 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;
+ }
+}