Samba vs. cestina

Leos Bitto bitto na altec.cz
Pátek Srpen 8 15:02:36 CEST 1997


Stejne jako spousta lidi prede mnou jsem si nabil usta pri pouzivani
diakritiky na disku pripojenem do Windows pres Sambu z Linuxu. Vzpomnel
jsem si ze se o tom kdysi diskutovalo i v teto konferenci. Nakonec jsem
nasel mail od Pavla Liseho z 3.6.1997 ve kterem radil napsat do smb.conf
"valid chars = .....". Kdyz jsem to udelal tak to vypadalo perfektne, uz
jsem mohl vytvorit adresar "Nova' sloz~ka". :-) Bohuzel po blizsim
zkoumani jsem zjistil ze stale nefunguji pismena s~ y' u^ t'. Rozpitval
jsem to nastaveni "valid chars = ..." ale to vypadalo v poradku. Tak jsem
se zacal vrtat ve zdrojacich Samby a ejhle - nasel jsem nedokumentovanou
polozku v smb.conf, jmenem "client code page". Standardni nastaveni je 850
coz je DOSovsky Latin 1. Bohuzel toto nastaveni ma vetsi prioritu nez to
co se napise v valid chars. A neda se to vypnout. Samozrejme cp852 (alias
DOS Latin 2) v Sambe neni. Tak jsem se to pokusil dopsat. Vysledek
prikladam, je to patch proti Sambe 1.9.17alpha5 ale melo by to jit
aplikovat bez vetsich problemu na jakoukoliv rozumne novou verzi Samby.
Pak staci jen prelozit a do smb.conf napsat "client code page = 852" (a uz
zadne "valid chars = ...") a cestina chodi bez problemu. Doufam. Vzhledem
k tomu ze ten patch jsem napsal dneska dopoledne tak jsem ho jeste nestihl
poradne otestovat. Ale na prvni pohled to vypada ze vsechno funguje tak
jak ma. Budu to jeste chvilku testovat a pak to poslu autorum Samby at to
zahrnou do standardni distribuce. Doufam ze mi v tom testovani pomuzete,
proto taky pisu tenhle mail, zejo. Takze pokud to nekdo budete pouzivat,
tak mi prosim dejte vedet jak jste dopadli (uspechy i neuspechy). Ve
ctvrtek 14.8. (nez odjedu na dovolenou) bych to rad poslal autorum Samby
aby to v ostre verzi 1.9.17 uz bylo zahrnuto. Pak uz snad bude definitivne
vyreseny problem "Mne nejde vytvorit v exploreru novy adresar...". 



Leos Bitto
------------- další část ---------------
--- charset.c.orig	Fri Aug  8 11:35:30 1997
+++ charset.c	Fri Aug  8 12:52:55 1997
@@ -95,6 +95,51 @@
   {0x9C,0,0,0},     /* Pound        */
   {0,0,0,0}
 };
+
+/* lower->upper mapping for IBM Code Page 852 - MS-DOS Latin 2 */
+unsigned char cp_852[][4] = {
+{0x87,0x80,1,1},
+{0x81,0x9A,1,1},
+{0x82,0x90,1,1},
+{0x83,0xB6,1,1},
+{0x84,0x8E,1,1},
+{0x85,0xDE,1,1},
+{0x86,0x8F,1,1},
+{0x88,0x9D,1,1},
+{0x89,0xD3,1,1},
+{0x8B,0x8A,1,1},
+{0x8C,0xD7,1,1},
+{0x8D,0xAB,1,1},
+{0x92,0x91,1,1},
+{0x93,0xE2,1,1},
+{0x94,0x99,1,1},
+{0x96,0x95,1,1},
+{0x98,0x97,1,1},
+{0x9C,0x9B,1,1},
+{0x9F,0xAC,1,1},
+{0xAD,0xB8,1,1},
+{0xA0,0xB5,1,1},
+{0xA1,0xD6,1,1},
+{0xA2,0xE0,1,1},
+{0xA3,0xE9,1,1},
+{0xA5,0xA4,1,1},
+{0xA7,0xA6,1,1},
+{0xA9,0xA8,1,1},
+{0xD8,0xB7,1,1},
+{0xBE,0xBD,1,1},
+{0xC7,0xC6,1,1},
+{0xD0,0xD1,1,1},
+{0xD4,0xD2,1,1},
+{0xE5,0xD5,1,1},
+{0xEE,0xDD,1,1},
+{0xE4,0xE3,1,1},
+{0xE7,0xE6,1,1},
+{0xEA,0xE8,1,1},
+{0xEB,0xFB,1,1},
+{0xEC,0xED,1,1},
+{0xFD,0xFC,1,1},
+{0,0,0,0}
+};
  
 /* lower->upper mapping for IBM Code Page 437 - MS-DOS Latin US */
 unsigned char cp_437[][4] = {
@@ -242,6 +287,9 @@
   {
     case 850:
       cp = cp_850;
+      break;
+    case 852:
+      cp = cp_852;
       break;
     case 437:
       cp = cp_437;


Další informace o konferenci Linux