Hi, I want to add new encoding for filters of encoded text files. This encoding is not oficla, it it unoficial encoding used in Bulgaria. It is a little bit similar with 866 encoding but some symbols are replaced. I made the patch but it is not working. I have attached the patch wich I made. If somebody can look and help me what more I have to do that this encoding to work. Thanks
Best regards. -- ------------------------------------------------------------- Hristo Simeonov Hristov Leader of OpenOffice.org - Bulgaria
diff -urN ooo_SRC680_m86_src.orig/sal/inc/rtl/textenc.h ooo_SRC680_m86_src/sal/inc/rtl/textenc.h
--- ooo_SRC680_m86_src.orig/sal/inc/rtl/textenc.h 2005-03-14 17:54:05.000000000 +0200
+++ ooo_SRC680_m86_src/sal/inc/rtl/textenc.h 2005-03-14 21:50:29.000000000 +0200
@@ -180,6 +180,7 @@
#define RTL_TEXTENCODING_ADOBE_STANDARD (RTL_TEXTENC_CAST( 91 ))
#define RTL_TEXTENCODING_ADOBE_SYMBOL (RTL_TEXTENC_CAST( 92 ))
#define RTL_TEXTENCODING_PT154 (RTL_TEXTENC_CAST( 93 ))
+#define RTL_TEXTENCODING_MIK (RTL_TEXTENC_CAST( 94 ))
/* ATTENTION! Whenever some encoding is added here, make sure to update
* rtl_isOctetTextEncoding in tencinfo.c.
*/
@@ -229,6 +230,7 @@
Cyrillic (Apple Macintosh/Ukrainian) RTL_TEXTENCODING_APPLE_UKRAINIAN
Cyrillic (DOS/OS2-855) RTL_TEXTENCODING_IBM_855
Cyrillic (DOS/OS2-866/Russian) RTL_TEXTENCODING_IBM_866
+Cyrillic (DOS/MIK/Bulgarian) RTL_TEXTENCODING_MIK
Cyrillic (ISO-8859-5) RTL_TEXTENCODING_ISO_8859_5
Cyrillic (KOI8-R) RTL_TEXTENCODING_KOI8_R
Cyrillic (KOI8-U) RTL_TEXTENCODING_KOI8_U
diff -urN ooo_SRC680_m86_src.orig/sal/textenc/tcvtest1.tab ooo_SRC680_m86_src/sal/textenc/tcvtest1.tab
--- ooo_SRC680_m86_src.orig/sal/textenc/tcvtest1.tab 2005-03-14 17:54:11.000000000 +0200
+++ ooo_SRC680_m86_src/sal/textenc/tcvtest1.tab 2005-03-14 21:58:42.000000000 +0200
@@ -4616,3 +4616,153 @@
"PTCP154",
RTL_TEXTENCODING_INFO_ASCII | RTL_TEXTENCODING_INFO_MIME };
/* SCRIPT_CYRILLIC */
+
+/* ======================================================================= */
+
+/* MIK */
+/* Standard Charset for Bulgarian DOS MIK Cyrillic */
+/* Single Byte, 0x00-0x7F equals ASCII */
+/* Conversion Tables: hand made */
+
+#define MIKUNI_START 0x80
+#define MIKUNI_END 0xFF
+static sal_uInt16 const aImplMIKToUniTab[MIKUNI_END - MIKUNI_START + 1] =
+{
+/* 0 1 2 3 4 5 6 7 */
+/* 8 9 A B C D E F */
+ 0x0410, 0x0411, 0x0412, 0x0413, 0x0414, 0x0415, 0x0416, 0x0417, /* 0x80 */
+ 0x0418, 0x0419, 0x041A, 0x041B, 0x041C, 0x041D, 0x041E, 0x041F, /* 0x80 */
+ 0x0420, 0x0421, 0x0422, 0x0423, 0x0424, 0x0425, 0x0426, 0x0427, /* 0x90 */
+ 0x0428, 0x0429, 0x042A, 0x042B, 0x042C, 0x042D, 0x042E, 0x042F, /* 0x90 */
+ 0x0430, 0x0431, 0x0432, 0x0433, 0x0434, 0x0435, 0x0436, 0x0437, /* 0xA0 */
+ 0x0438, 0x0439, 0x043A, 0x043B, 0x043C, 0x043D, 0x043E, 0x043F, /* 0xA0 */
+ 0x0440, 0x0441, 0x0442, 0x0443, 0x0444, 0x0445, 0x0446, 0x0447, /* 0xB0 */
+ 0x0448, 0x0449, 0x044A, 0x044B, 0x044C, 0x044D, 0x044E, 0x044F, /* 0xB0 */
+ 0x2514, 0x2534, 0x252C, 0x251C, 0x2500, 0x253C, 0x2563, 0x2551, /* 0xC0 */
+ 0x255A, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256C, 0x2510, /* 0xC0 */
+ 0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x2116, 0x00A7, 0x2557, /* 0xD0 */
+ 0x255D, 0x2518, 0x250C, 0x2588, 0x2584, 0x258C, 0x2590, 0x2580, /* 0xD0 */
+ 0x03B1, 0x03B2, 0x0393, 0x03C0, 0x03A3, 0x03C3, 0x03BC, 0x03C4, /* 0xE0 */
+ 0x03A6, 0x0398, 0x03A9, 0x03B4, 0x221E, 0x2205, 0x2208, 0x2229, /* 0xE0 */
+ 0x2261, 0x00B1, 0x2265, 0x2264, 0x2320, 0x2321, 0x00F7, 0x2248, /* 0xF0 */
+ 0x00B0, 0x2219, 0x00B7, 0x221A, 0x207F, 0x00B2, 0x25A0, 0x00A0 /* 0xF0 */
+};
+
+#define MIKCHAR_START 0x0410
+#define MIKCHAR_END 0x044F
+static sal_uChar const
+aImplMIKToCharTab[MIKCHAR_END - MIKCHAR_START + 1] =
+{
+/* 0 1 2 3 4 5 6 7 */
+/* 8 9 A B C D E F */
+ 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, /* 0x0410 */
+ 0x88, 0x89, 0x8A, 0x8B, 0x8C, 0x8D, 0x8E, 0x8F, /* 0x0410 */
+ 0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, /* 0x0420 */
+ 0x98, 0x99, 0x9A, 0x9B, 0x9C, 0x9D, 0x9E, 0x9F, /* 0x0420 */
+ 0xA0, 0xA1, 0xA2, 0xA3, 0xA4, 0xA5, 0xA6, 0xA7, /* 0x0430 */
+ 0xA8, 0xA9, 0xAA, 0xAB, 0xAC, 0xAD, 0xAE, 0xAF, /* 0x0430 */
+ 0xB0, 0xB1, 0xB2, 0xB3, 0xB4, 0xB5, 0xB6, 0xB7, /* 0x0440 */
+ 0xB8, 0xB9, 0xBA, 0xBB, 0xBC, 0xBD, 0xBE, 0xBF /* 0x0440 */
+};
+
+#define MIKTOCHARTABEX_COUNT 64
+static ImplUniCharTabData const aImplMIKToCharTabEx[MIKTOCHARTABEX_COUNT] =
+{
+ { 0x00A0, 0xFF },
+ { 0x00A7, 0xD6 },
+ { 0x00B0, 0xF8 },
+ { 0x00B1, 0xF1 },
+ { 0x00B2, 0xFD },
+ { 0x00B7, 0xFA },
+ { 0x00F7, 0xF6 },
+ { 0x0393, 0xE2 },
+ { 0x0398, 0xE9 },
+ { 0x03A3, 0xE4 },
+ { 0x03A6, 0xE8 },
+ { 0x03A9, 0xEA },
+ { 0x03B1, 0xE0 },
+ { 0x03B2, 0xE1 },
+ { 0x03B4, 0xEB },
+ { 0x03BC, 0xE6 },
+ { 0x03C0, 0xE3 },
+ { 0x03C3, 0xE5 },
+ { 0x03C4, 0xE7 },
+ { 0x207F, 0xFC },
+ { 0x2116, 0xD5 },
+ { 0x2205, 0xED },
+ { 0x2208, 0xEE },
+ { 0x2219, 0xF9 },
+ { 0x221A, 0xFB },
+ { 0x221E, 0xEC },
+ { 0x2229, 0xEF },
+ { 0x2248, 0xF7 },
+ { 0x2261, 0xF0 },
+ { 0x2264, 0xF3 },
+ { 0x2265, 0xF2 },
+ { 0x2320, 0xF4 },
+ { 0x2321, 0xF5 },
+ { 0x2500, 0xC4 },
+ { 0x2502, 0xD3 },
+ { 0x250C, 0xDA },
+ { 0x2510, 0xCF },
+ { 0x2514, 0xC0 },
+ { 0x2518, 0xD9 },
+ { 0x251C, 0xC3 },
+ { 0x2524, 0xD4 },
+ { 0x252C, 0xC2 },
+ { 0x2534, 0xC1 },
+ { 0x253C, 0xC5 },
+ { 0x2550, 0xCD },
+ { 0x2551, 0xC7 },
+ { 0x2554, 0xC9 },
+ { 0x2557, 0xD7 },
+ { 0x255A, 0xC8 },
+ { 0x255D, 0xD8 },
+ { 0x2560, 0xCC },
+ { 0x2563, 0xC6 },
+ { 0x2566, 0xCB },
+ { 0x2569, 0xCA },
+ { 0x256C, 0xCE },
+ { 0x2580, 0xDF },
+ { 0x2584, 0xDC },
+ { 0x2588, 0xDB },
+ { 0x258C, 0xDD },
+ { 0x2590, 0xDE },
+ { 0x2591, 0xD0 },
+ { 0x2592, 0xD1 },
+ { 0x2593, 0xD2 },
+ { 0x25A0, 0xFE }
+};
+
+static ImplByteConvertData const aImplMIKByteCvtData =
+{
+ aImplMIKToUniTab,
+ NULL,
+ MIKUNI_START, MIKUNI_END,
+ NOTABUNI_START, NOTABUNI_END,
+ aImplMIKToCharTab,
+ NULL,
+ aImplMIKToCharTabEx,
+ MIKCHAR_START, MIKCHAR_END,
+ NOTABCHAR_START, NOTABCHAR_END,
+ MIKTOCHARTABEX_COUNT
+};
+
+static ImplTextEncodingData const aImplMIKTextEncodingData
+ = { { &aImplMIKByteCvtData,
+ ImplCharToUnicode,
+ ImplUnicodeToChar,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ NULL },
+ 1,
+ 1,
+ 1,
+ 238,
+ "iso8859-5",
+ "MIK",
+ RTL_TEXTENCODING_INFO_ASCII | RTL_TEXTENCODING_INFO_MIME };
+ /* SCRIPT_CYRILLIC Bulgarian MIK encoding*/
diff -urN ooo_SRC680_m86_src.orig/sal/textenc/tencinfo.c ooo_SRC680_m86_src/sal/textenc/tencinfo.c
--- ooo_SRC680_m86_src.orig/sal/textenc/tencinfo.c 2005-03-14 17:54:13.000000000 +0200
+++ ooo_SRC680_m86_src/sal/textenc/tencinfo.c 2005-03-14 21:56:46.000000000 +0200
@@ -86,7 +86,7 @@
sal_Bool SAL_CALL rtl_isOctetTextEncoding(rtl_TextEncoding nEncoding)
{
return nEncoding > RTL_TEXTENCODING_DONTKNOW
- && nEncoding <= RTL_TEXTENCODING_PT154
+ && nEncoding <= RTL_TEXTENCODING_MIK
/* always update this! */
&& nEncoding != 9; /* RTL_TEXTENCODING_SYSTEM */
}
diff -urN ooo_SRC680_m86_src.orig/sal/textenc/textenc.cxx ooo_SRC680_m86_src/sal/textenc/textenc.cxx
--- ooo_SRC680_m86_src.orig/sal/textenc/textenc.cxx 2005-03-14 17:54:13.000000000 +0200
+++ ooo_SRC680_m86_src/sal/textenc/textenc.cxx 2005-03-14 21:56:15.000000000 +0200
@@ -259,7 +259,8 @@
&aImplJavaUtf8TextEncodingData, /* JAVA_UTF8 */
&adobeStandardEncodingData, /* ADOBE_STANDARD */
&adobeSymbolEncodingData, /* ADOBE_SYMBOL */
- &aImplPT154TextEncodingData }; /* PT154 */
+ &aImplPT154TextEncodingData, /* PT154 */
+ &aImplMIKTextEncodingData }; /* MIK */
return
nEncoding < sizeof aData / sizeof aData[0] ? aData[nEncoding] : NULL;
}
diff -urN ooo_SRC680_m86_src.orig/svx/source/dialog/txenctab.src ooo_SRC680_m86_src/svx/source/dialog/txenctab.src
--- ooo_SRC680_m86_src.orig/svx/source/dialog/txenctab.src 2005-03-14 17:52:55.000000000 +0200
+++ ooo_SRC680_m86_src/svx/source/dialog/txenctab.src 2005-03-14 22:01:11.000000000 +0200
@@ -101,6 +101,7 @@
< "Hebrдisch (DOS/OS2-862)" ; RTL_TEXTENCODING_IBM_862 ; > ;
< "Arabisch (DOS/OS2-864)" ; RTL_TEXTENCODING_IBM_864 ; > ;
< "Kyrillisch (DOS/OS2-866/Russisch)" ; RTL_TEXTENCODING_IBM_866 ; > ;
+ < "Kyrillisch (DOS/MIK/Bulgarisch)" ; RTL_TEXTENCODING_MIK ; > ;
< "Griechisch (DOS/OS2-869/Modern)" ; RTL_TEXTENCODING_IBM_869 ; > ;
< "Osteuropa (Windows-1250/WinLatin 2)" ; RTL_TEXTENCODING_MS_1250 ; > ;
< "Kyrillisch (Windows-1251)" ; RTL_TEXTENCODING_MS_1251 ; > ;
@@ -192,6 +193,7 @@
< "Hebrew (DOS/OS2-862)" ; RTL_TEXTENCODING_IBM_862 ; > ;
< "Arabic (DOS/OS2-864)" ; RTL_TEXTENCODING_IBM_864 ; > ;
< "Cyrillic (DOS/OS2-866/Russian)" ; RTL_TEXTENCODING_IBM_866 ; > ;
+ < "Cyrillic (DOS/MIK/Bulgarian)" ; RTL_TEXTENCODING_MIK ; > ;
< "Greek (DOS/OS2-869/Modern)" ; RTL_TEXTENCODING_IBM_869 ; > ;
< "Eastern Europe (Windows-1250/WinLatin 2)" ; RTL_TEXTENCODING_MS_1250 ; > ;
< "Cyrillic (Windows-1251)" ; RTL_TEXTENCODING_MS_1251 ; > ;
pgpVth7i1J2f7.pgp
Description: PGP signature
