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			; > ;

Attachment: pgpVth7i1J2f7.pgp
Description: PGP signature

Reply via email to