diff -crN Sablot/engine/enc_cyr.h Sablot/engine/enc_cyr.h
*** Sablot/engine/enc_cyr.h	Thu Jan  1 03:00:00 1970
--- Sablot/engine/enc_cyr.h	Thu Feb 22 16:58:56 2001
***************
*** 0 ****
--- 1,80 ----
+ /**
+ 
+ This file contains charset uncode conversion table for cyrillic charsets
+ windows-1251 (cp1251), cp866 and koi8-r.
+ 
+ Source for mappings ftp.unicode.org/pub/mappings
+ 
+ Copyright (C) by vvz (vvz@iname.com) 2000.
+ You can use it as you want (any kind of license you want).
+ 
+ */
+ 
+ int EncCP1251[] =
+ {
+ 
+ 	0x0402,	0x0403,	0x201a,	0x0453,	0x201e,	0x2026,	0x2020,	0x2021,
+ 	0x20ac,	0x2030,	0x0409,	0x2039,	0x040a,	0x040c,	0x040b,	0x040f,
+ 	0x0452,	0x2018,	0x2019,	0x201c,	0x201d,	0x2022,	0x2013,	0x2014,
+ 	    -1,	0x2122,	0x0459,	0x203a,	0x045a,	0x045c,	0x045b,	0x045f,
+ 	0x00a0,	0x040e,	0x045e,	0x0408,	0x00a4,	0x0490,	0x00a6,	0x00a7,
+ 	0x0401,	0x00a9,	0x0404,	0x00ab,	0x00ac,	0x00ad,	0x00ae,	0x0407,
+ 	0x00b0,	0x00b1,	0x0406,	0x0456,	0x0491,	0x00b5,	0x00b6,	0x00b7,
+ 	0x0451,	0x2116,	0x0454,	0x00bb,	0x0458,	0x0405,	0x0455,	0x0457,
+ 	0x0410,	0x0411,	0x0412,	0x0413,	0x0414,	0x0415,	0x0416,	0x0417,
+ 	0x0418,	0x0419,	0x041a,	0x041b,	0x041c,	0x041d,	0x041e,	0x041f,
+ 	0x0420,	0x0421,	0x0422,	0x0423,	0x0424,	0x0425,	0x0426,	0x0427,
+ 	0x0428,	0x0429,	0x042a,	0x042b,	0x042c,	0x042d,	0x042e,	0x042f,
+ 	0x0430,	0x0431,	0x0432,	0x0433,	0x0434,	0x0435,	0x0436,	0x0437,
+ 	0x0438,	0x0439,	0x043a,	0x043b,	0x043c,	0x043d,	0x043e,	0x043f,
+ 	0x0440,	0x0441,	0x0442,	0x0443,	0x0444,	0x0445,	0x0446,	0x0447,
+ 	0x0448,	0x0449,	0x044a,	0x044b,	0x044c,	0x044d,	0x044e,	0x044f
+ };
+ 
+ 
+ int EncCP866[] =
+ {
+ 
+ 	0x0410,	0x0411,	0x0412,	0x0413,	0x0414,	0x0415,	0x0416,	0x0417,
+ 	0x0418,	0x0419,	0x041a,	0x041b,	0x041c,	0x041d,	0x041e,	0x041f,
+ 	0x0420,	0x0421,	0x0422,	0x0423,	0x0424,	0x0425,	0x0426,	0x0427,
+ 	0x0428,	0x0429,	0x042a,	0x042b,	0x042c,	0x042d,	0x042e,	0x042f,
+ 	0x0430,	0x0431,	0x0432,	0x0433,	0x0434,	0x0435,	0x0436,	0x0437,
+ 	0x0438,	0x0439,	0x043a,	0x043b,	0x043c,	0x043d,	0x043e,	0x043f,
+ 	0x2591,	0x2592,	0x2593,	0x2502,	0x2524,	0x2561,	0x2562,	0x2556,
+ 	0x2555,	0x2563,	0x2551,	0x2557,	0x255d,	0x255c,	0x255b,	0x2510,
+ 	0x2514,	0x2534,	0x252c,	0x251c,	0x2500,	0x253c,	0x255e,	0x255f,
+ 	0x255a,	0x2554,	0x2569,	0x2566,	0x2560,	0x2550,	0x256c,	0x2567,
+ 	0x2568,	0x2564,	0x2565,	0x2559,	0x2558,	0x2552,	0x2553,	0x256b,
+ 	0x256a,	0x2518,	0x250c,	0x2588,	0x2584,	0x258c,	0x2590,	0x2580,
+ 	0x0440,	0x0441,	0x0442,	0x0443,	0x0444,	0x0445,	0x0446,	0x0447,
+ 	0x0448,	0x0449,	0x044a,	0x044b,	0x044c,	0x044d,	0x044e,	0x044f,
+ 	0x0401,	0x0451,	0x0404,	0x0454,	0x0407,	0x0457,	0x040e,	0x045e,
+ 	0x00b0,	0x2219,	0x00b7,	0x221a,	0x2116,	0x00a4,	0x25a0,	0x00a0
+ 
+ };
+ 
+ 
+ int EncKOI8_R[] =
+ {
+ 
+ 
+ 	0x2500,	0x2502,	0x250c,	0x2510,	0x2514,	0x2518,	0x251c,	0x2524,
+ 	0x252c,	0x2534,	0x253c,	0x2580,	0x2584,	0x2588,	0x258c,	0x2590,
+ 	0x2591,	0x2592,	0x2593,	0x2320,	0x25a0,	0x2219,	0x221a,	0x2248,
+ 	0x2264,	0x2265,	0x00a0,	0x2321,	0x00b0,	0x00b2,	0x00b7,	0x00f7,
+ 	0x2550,	0x2551,	0x2552,	0x0451,	0x2553,	0x2554,	0x2555,	0x2556,
+ 	0x2557,	0x2558,	0x2559,	0x255a,	0x255b,	0x255c,	0x255d,	0x255e,
+ 	0x255f,	0x2560,	0x2561,	0x0401,	0x2562,	0x2563,	0x2564,	0x2565,
+ 	0x2566,	0x2567,	0x2568,	0x2569,	0x256a,	0x256b,	0x256c,	0x00a9,
+ 	0x044e,	0x0430,	0x0431,	0x0446,	0x0434,	0x0435,	0x0444,	0x0433,
+ 	0x0445,	0x0438,	0x0439,	0x043a,	0x043b,	0x043c,	0x043d,	0x043e,
+ 	0x043f,	0x044f,	0x0440,	0x0441,	0x0442,	0x0443,	0x0436,	0x0432,
+ 	0x044c,	0x044b,	0x0437,	0x0448,	0x044d,	0x0449,	0x0447,	0x044a,
+ 	0x042e,	0x0410,	0x0411,	0x0426,	0x0414,	0x0415,	0x0424,	0x0413,
+ 	0x0425,	0x0418,	0x0419,	0x041a,	0x041b,	0x041c,	0x041d,	0x041e,
+ 	0x041f,	0x042f,	0x0420,	0x0421,	0x0422,	0x0423,	0x0416,	0x0412,
+ 	0x042c,	0x042b,	0x0417,	0x0428,	0x042d,	0x0429,	0x0427,	0x042a
+ };
+ 
+ 
diff -crN Sablot/engine/output.cpp Sablot/engine/output.cpp
*** Sablot/engine/output.cpp	Thu Feb 22 17:29:40 2001
--- Sablot/engine/output.cpp	Thu Feb 22 17:29:48 2001
***************
*** 258,263 ****
--- 258,271 ----
          return ENC_8859_1;
      else if (enc_.eqNoCase((char*) "iso-8859-2"))
          return ENC_8859_2;
+     else if (enc_.eqNoCase((char*) "koi8-r"))
+         return ENC_KOI8R;
+     else if (enc_.eqNoCase((char*) "windows-1251"))
+         return ENC_1251;
+     else if (enc_.eqNoCase((char*) "cp1251"))
+         return ENC_1251;
+     else if (enc_.eqNoCase((char*) "cp866" ))
+          return ENC_866;
      else if (enc_.eqNoCase((char*) "euc-jp"))
          return ENC_EUCJP;
      else if (enc_.eqNoCase((char*) "shift-jis"))
diff -crN Sablot/engine/parser.cpp Sablot/engine/parser.cpp
*** Sablot/engine/parser.cpp	Thu Feb 22 17:29:40 2001
--- Sablot/engine/parser.cpp	Thu Feb 22 17:29:48 2001
***************
*** 40,45 ****
--- 40,47 ----
  
  // for the windows-1250 encoding:
  #include "enc1250.h"
+ // for the cyrillic encoding
+ #include "enc_cyr.h"
  // (will change to encodings.h)
  
  // 
***************
*** 552,557 ****
--- 554,567 ----
          theTable = Enc1250;
      else if (strEqNoCase((char*) name,"iso-8859-2"))
          theTable = EncLatin2;
+     else if (strEqNoCase((char*) name,"koi8-r"))
+         theTable = EncKOI8_R;
+     else if (strEqNoCase((char*) name,"windows-1251"))
+         theTable = EncCP1251;
+     else if (strEqNoCase((char*) name,"cp1251"))
+         theTable = EncCP1251;
+     else if (strEqNoCase((char*) name,"cp866"))
+         theTable = EncCP866;
      else
          return 0;
      int i;
diff -crN Sablot/engine/utf8.cpp Sablot/engine/utf8.cpp
*** Sablot/engine/utf8.cpp	Thu Feb 22 17:29:41 2001
--- Sablot/engine/utf8.cpp	Thu Feb 22 17:29:48 2001
***************
*** 63,69 ****
  #endif
  
  /*  This MUST match the Encoding enum defined in utf8.h  */
! static const char* iconv_encoding[8] =
  {
      "UTF8",
      "UTF16",
--- 63,69 ----
  #endif
  
  /*  This MUST match the Encoding enum defined in utf8.h  */
! static const char* iconv_encoding[11] =
  {
      "UTF8",
      "UTF16",
***************
*** 71,76 ****
--- 71,79 ----
      "ISO-8859-1",
      "ISO-8859-2",
      "CP1250",
+     "KOI8-R",
+     "CP1251",
+     "CP866",
      "EUC-JP",
      "SHIFT-JIS"
  };
diff -crN Sablot/engine/utf8.h Sablot/engine/utf8.h
*** Sablot/engine/utf8.h	Thu Feb 22 17:29:40 2001
--- Sablot/engine/utf8.h	Thu Feb 22 17:29:48 2001
***************
*** 49,54 ****
--- 49,57 ----
      ENC_8859_1,
      ENC_8859_2,
      ENC_1250,
+     ENC_KOI8R,
+     ENC_1251,
+     ENC_866,
      ENC_EUCJP,
      ENC_SJIS    
  };
