another fix: better baltic codepage support.

Toomas Soome tsoome at ut.ee
Tue Jan 9 00:00:07 GMT 2001


this fix will add iso8859-15 (estonian uses this) and 8859-13 support.
estonian unix environment is useing 8859-15 (www.eki.ee/itstandard), so
8859-15 -> CP775 was needed. 8859-15 support in this fix is generic of
course.

toomas
-- 
You scratch my tape, and I'll scratch yours.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: codepages.tar
Type: application/x-tar
Size: 30720 bytes
Desc: codepages.tar
Url : http://lists.samba.org/archive/samba-technical/attachments/20010109/1a6d8d58/codepages.tar
-------------- next part --------------
Index: lib/charcnv.c
===================================================================
RCS file: /cvsroot/samba/source/lib/charcnv.c,v
retrieving revision 1.17
diff -c -r1.17 charcnv.c
*** lib/charcnv.c	2000/02/18 03:11:22	1.17
--- lib/charcnv.c	2001/01/08 23:52:22
***************
*** 95,100 ****
--- 95,136 ----
      }
  }
  
+ static void init_iso8859_15(int codepage) {
+ 
+ 	setupmaps();
+ 
+ 
+     if (codepage == 775) {
+         /* MSDOS Code Page 775 -> ISO-8859-15  this is for estonian */
+ update_map("\240\377\242\226\243\234\246\276\247\365");
+ update_map("\250\325\251\250\253\256\254\252\255\360\256\251");
+ update_map("\260\370\261\361\262\375\263\374\264\317\265\346\266\364\267\372");
+ update_map("\270\330\271\373\273\257");
+ update_map("\304\216\305\217\306\222");
+ update_map("\311\220");
+ update_map("\323\340\325\345\326\231\327\236");
+ update_map("\330\235\334\232\337\341");
+ update_map("\344\204\345\206\346\221");
+ update_map("\351\202");
+ update_map("\363\242\365\344\366\224\367\366");
+ update_map("\370\233\374\201");
+     } else {
+         /* MSDOS Code Page 850 -> ISO-8859-15 */
+ update_map("\240\377\241\255\242\275\243\234\244\317\245\276\246\321\247\365");
+ update_map("\250\320\251\270\252\246\253\256\254\252\255\360\256\251\257\356");
+ update_map("\260\370\261\361\262\375\263\374\264\350\265\346\266\364\267\372");
+ update_map("\270\347\271\373\272\247\273\257\274\254\275\253\276\363\277\250");
+ update_map("\300\267\301\265\302\266\303\307\304\216\305\217\306\222\307\200");
+ update_map("\310\324\311\220\312\322\313\323\314\336\315\326\316\327\317\330");
+ update_map("\320\321\321\245\322\343\323\340\324\342\325\345\326\231\327\236");
+ update_map("\330\235\331\353\332\351\333\352\334\232\335\355\336\350\337\341");
+ update_map("\340\205\341\240\342\203\343\306\344\204\345\206\346\221\347\207");
+ update_map("\350\212\351\202\352\210\353\211\354\215\355\241\356\214\357\213");
+ update_map("\360\320\361\244\362\225\363\242\364\223\365\344\366\224\367\366");
+ update_map("\370\233\371\227\372\243\373\226\374\201\375\354\376\347\377\230");
+ }
+ }
+ 
  /* Init for eastern european languages. */
  
  static void init_iso8859_2(void) {
***************
*** 166,171 ****
--- 202,228 ----
  update_map("\270\353\271\354\272\355\274\356\276\357\277\360");
  }
  
+ /* init for Baltic Rim */
+ 
+ static void init_iso8859_13() {
+ 
+ 	setupmaps();
+ 
+         /* MSDOS Code Page 775 -> ISO-8859-13 */
+ update_map("\240\377\241\246\242\226\243\234\244\237\245\367\246\247\247\365");
+ update_map("\250\235\251\250\252\212\253\256\254\252\255\360\256\251\257\222");
+ update_map("\260\370\261\361\262\375\263\374\264\362\265\346\266\364\267\372");
+ update_map("\270\233\271\373\272\213\273\257\274\254\275\253\276\363\277\221");
+ update_map("\300\265\301\275\302\240\303\200\304\216\305\217\306\267\307\355");
+ update_map("\310\266\311\220\312\215\313\270\314\225\315\350\316\241\317\352");
+ update_map("\320\276\321\343\322\356\323\340\324\342\325\345\326\231\327\236");
+ update_map("\330\306\331\255\332\227\333\307\334\232\335\243\336\317\337\341");
+ update_map("\340\320\341\324\342\203\343\207\344\204\345\206\346\322\347\211");
+ update_map("\350\321\351\202\352\245\353\323\354\205\355\351\356\214\357\353");
+ update_map("\360\325\361\347\362\354\363\242\364\223\365\344\366\224\367\366");
+ update_map("\370\326\371\210\372\230\373\327\374\201\375\244\376\330\377\357");
+ }
+ 
  /* Init for russian language (koi8) */
  
  static void init_koi8_r(void)
***************
*** 273,278 ****
--- 330,339 ----
          init_iso8859_5();
      } else if (strequal (str, "iso8859-7")) {
          init_iso8859_7();
+     } else if (strequal (str, "iso8859-13")) {
+         init_iso8859_13();
+     } else if (strequal (str, "iso8859-15")) {
+         init_iso8859_15(codepage);
      } else if (strequal (str, "koi8-r")) {
          init_koi8_r();
      } else if (strequal (str, "roman8")) {


More information about the samba-technical mailing list