This page is part of documentation of C-SaCzech and was created and has been maintained by Jaromír Doleček, dolecek@ics.muni.cz

C-SaCzech CSACEK_VERSION


 

Autor: Jára Doleček, dolecek@fi.muni.cz
Datum poslední změny:   3.prosince 1996, 18:03

C-SaCzech je zkratka vzniknuvší z C a SaCzech, a znamená C-Satrapa's Czech (tedy Céčkovská Satrapova čeština) Jako jméno se ujalo kratší a výstižné "CSáček".

Jedná se program, který umožňuje změnu kódování WWW dokumentů "on fly" podle přání uživatele. Stránky jsou uloženy v určitém typu kódování (ne nutně jednom) a CSáček je během odesílání uživateli změní tak, aby je klient dokázal správně zobrazit.

Proč verze v jazyce C, když původní sáček skvěle funguje ? Především proto, že verze v Perlu byla na můj vkus trochu pomalá. Moje myšlenka byla, že něco, co bude používat často hodně lidí, má být co nejefektivnější, nejrychlejší a málo náročné na systémové zdroje.
A tak vznikl C-SaCzech 1.0, jako potomek SaCzechu 2.0. Jeho pozdější verze s sebou přinesly mnohá rozšíření, takže není zaručena zpětná kompatibilita nově vytvořených stránek. Staré stránky budou fungovat bez potíží. S novými verzemi SaCzechu se C verze snaží držet krok, což se zatím daří.

CSáček by asi nevznikl bez páně Pavla Satrapy, jehož SaCzech byl předlohou při vytváření tohoto programu. Nikdy by taky nebyl tak dobrý jako je nyní bez podnětných připomínek a pomoci mnohých dalších lidí, z nichž bych chtěl asi nejvíce poděkovat Hynkovi Medovi.

CSáček je možno stáhnout na ftp serveru ftp://ftp.muni.cz/pub/localization/csacek/. CSáček 1.3 je momentálně k dispozici ve verzi pro Unix, ve zdrojové formě. Páně Zdeňka Pokorného port na NT je odvozen z CSáčku 1.23, verze 1.3 bude naportována na NT hned, jak budu mít chvíli (cca 2 dny) času. CSáček 1.23NT naleznete na tomtéž místě jako normální CSáček.

I když byl dán CSáček k téměř volnému použití, přesto platí jisté licenční podmínky. Prosím přečtěte si je dřív než budete CSáček používat.

 


Dokumentace


Máte-li připomínky k programu, zjistili jste nějaké chyby nebo máte námět na vylepšení, můžete mě kontaktovat na mé e-mailové adrese.


Pokud se tato stránka už prochází přes CSáček a chcete číst v jiném kódování češtiny, vyberte si z lišty, která se vypíše pod nápisem Výběr kódování:

Výběr kódování:
 


Licence

Upozornění:
Program C-SaCzech je dodáván zcela bez záruk. Autor neručí za jakékoli škody, vzniklé jeho používáním. Zdůrazňuji - autor je zříká VEŠKERÉ ODPOVĚDNOSTI za škody vzniklé přímým či nepřímým používáním CSáčku či kterékoli jeho součásti.

Copyright

CSáček či jeho libovolné části (jako public domain) můžete volně používat ve zdrojové i binární formě, pro soukromou potřebu, výuku, tak i na komerčních serverech. Je dán k všeobecnému užití v podmínkách upravené BSD licence:
All rights reserved.

Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions
are met:
1. Redistributions of source code must retain the above copyright
   notice, this list of conditions and the following disclaimer.
2. Redistributions in binary form must reproduce the above copyright
   notice, this list of conditions and the following disclaimer in the
   documentation and/or other materials provided with the distribution.
3. All advertising materials mentioning features or use of this software
   must display the following acknowledgement:
	This product includes software developed by Jaromir Dolecek, ICS MU 
	and contributors
4. Neither the name of Jaromir Dolecek nor the names of ICS MU
   may be used to endorse or promote products derived from this software
   without specific prior written permission.
5. On page, where users choose their encoding (normally the one
   generated by whichcode script) will be text:
        Coded by C-SaCzech.
   and link to program's home page (http://www.ics.muni.cz/~dolecek/c-saczech/)


THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
SUCH DAMAGE.

Pro uživatele to znamená, že jakákoli redistribuce musí obsahovat soubor COPYRIGHT a jakýkoli reklamní materiál hovořící o výhodách a vlastnostech CSáčku či odvozeného software musí jednoznačně říct, že tento produkt obsahuje software vyvinutý Jaromírem Dolečkem, ÚVT MU a jeho následníky. Ani moje jméno, ani jméno Ústavy výpočetní techniky MU nesmí však být použito ke schválení nebo podpoře jakýchkoli odvozených produktů bez písemného povolení od autora nebo ÚVT MU.
Při redistribuci či konečném nasazení na server dále:
  1. V dokumentaci a kódu zůstane zachována informace o původním autorovi a autorských právech.
  2. Na stránce, nabízející volbu kódování (v původní distribuci generována skriptem whichcode), zůstane zachována informace o tom, že změna kódování je realizována programem C-SaCzech, a odkaz na domácí stránku programu (http://www.ics.muni.cz/~dolecek/c-saczech/).

Rád bych viděl, jak se CSáček šíří, budu tedy rád, pokud byste mi napsali krátkou zprávu na adresu dolecek@ics.muni.cz, jestliže jej budete používat. Budu potěšen ;-).

Zpět  


Proč vznikl ?

Uvědomuji si, že již existují velmi kvalitní programy pro konverzi kódování na WWW - ať už je to WWWdia pana J.Košťála nebo program SaCzech od p. Pavla Satrapy, který byl vzorem i pro tento program.

WWWdia mě osobně připadá až příliš náročný na instalaci (ani po houževnatém asi 2 hodinovém úsilí se mi ho nepodařilo dostat do použitelné běhající verze) a zbytečně komplexní a složitý. SaCzech se mi od prvního pohledu líbil, ale postupem času mi začalo vadit, že odezva s použitím překódování byla výrazně pomalejší než bez něj. A proto jsem se rozhodl napsat nějakou rychlejší verzi, a protože algoritmus překódovávání asi výrazně zlepšit už nelze, zvolil jsem nižší programovací jazyk - C.

Bylo (a stále je) s CSáčkem mnoho práce, ale záměr je splněn - CSáček funguje a je výrazně čipernější než SaCzech.

C-SaCzech CSACEK_VERSION nabízí

C-SaCzech postrádá

 

Budoucnost ...

Zdá se, že se CSáček zalíbil mnoha lidem a je používán. Dokonce se našli lidé, kterým stálo za to udělat port na jiný operační systém. Nejdříve to byly NT. Pan Zdeněk Pokorný jej vytvořil z CSacku 1.23. Tato verze byla zahrnuta do distribuce CSáčku 1.3, v době psaní této stránky byla jinak dostupné na ftp://zps.agc.cz/ShareWare/CSaczech/.
Pan Martin Bílý začal pracovat na portu pro OpenVMS. V době psaní této stránky (16.11.1996) byl v závěrečné fázi. Domácí stránka tohoto portu bude na adrese http://cs.felk.cvut.cz/c-saczech/.

A co čeká CSáček do budoucna ? Port pro NT by se měl stát přímo součástí CSáčku a bude se vyvíjet zároveň s Unixovou verzí. To samé by bylo vhodné udělat pro OpenVMS, ale bude to asi trochu složitější, protože na žádný OpenVMS systém nemám přístup.
Rád bych také trochu pročistil kód, ještě CSáček zrychlil (jestli to bude možné) a udělal jej trochu intuitivnějším a nynější jednotlivé izolované příkazy sloučil do jazyka podobajícího se C. Také by bylo třeba zahrnout podporu Unicode a snad některých dalších oblíbených kodérů.

ZPET Zpět  


Instalace

CSáček je udělán tak, aby byl pokud možno co nejjednodušší na instalaci a údržbu. Od verze 1.3 byly rozděleny zdrojové soubory tak, aby byl pokud možno portovatelný. V praxi zatím neodzkoušeno, ale všechny funkce pro jednotlivé podporované operační systémy jsou v samostatném souboru, oddělené od těla CSáčku. Port na jiný operační systém než Unix je tedy možný, zatím provedené portace byly udělány většinou přepsáním většiny kódu tak, aby to na výsledném systému bylo použitelné.

Distribuce zdrojového kódu programu je uložena v souboru csaczechXXX.tar.gz (kde XXX je označení verze), který můžete získat na URL

ftp://ftp.muni.cz/pub/UNIX/localization/
Ten obsahuje zdrojáky pro Unixovou verzi a v podadresáři NT/ zdrojovou a binární distribuci CSáčku pro NT, kterou dal k dispozici pan Zdeněk Pokorný (další info k NT portu viz Budoucnost CSáčku). Distribuci je třeba rozbalit použitím příkazu
gunzip < csaczechXX.tar.gz | tar xvf -
pokud máte GNU tar stačí
tar xvzf csaczechXX.tar.gz
Soubory budou rozbaleny do podadresáře csaczech-XX. Poté následuje fáze přizpůsobení vašim konkrétním podmínkám. Po krátkém období laškování s GNU configure jsem se rozhodl přecejen používat pouze make. Konfigurace tedy spočívá v upravení hlavičkového souboru config.h a úpravě souboru Makefile. Je třeba tyto dva soubory zeditovat, zakomentovat to co nechcete a nastavit proměnné tak, aby vše odpovídalo Vašemu systému a tomu, co (ne)chcete po CSáčku. Bohužel Makefile je udělaný na a pro Unix (používá sed(1) a chmod(1), pro něž pokud vím není ekvivalent pod NT), takže není bez úprav použitelný na něčem jiném. Still no prob these times.

Níže je uveden přehled proměnných a voleb, kterými můžete určit chování budoucího CSáčku. Pokud Vám vyhovuje standardní nastavení nebo jsou pro vás dostatečné popisy přímo v souborech config.h a Makefile, můžete tuto část přeskočit. Proměnné jsou v pořadí,v jakém je najdete v příslušných souborech.

Proměnné ovlivňující chování budoucího C-SaCzechu (nastavuje se v config.h):
FILESEPARATOR
Znak, který chcete použít jako oddělovač jmen souborů v DEFAULTFILE.
Default - ,
DEFAULTFILE
Seznam souborů, které se zobrazí, jestliže je zadán pouze adresář. Nejrozumnější je, pokud je stejný jako seznam jmen za DirectoryIndex v konfiguračním souboru pro httpd. Použije se pouze při volání metodou file, popř. guess.
Default - index.html,welcome.html,Welcome.html,default.htm.
CGIPATH
Cesta k CGI skriptům. Obsahem této proměnné by měl být začátek cesty (část uváděná bezprostředně za jménem serveru) ke konverzním skriptům, která se uvádí v odkazech. Jestliže konverzní skripty uložíte do obecného adresáře, obsahujícího ostatní CGI skripty a budete se na ně odkazovat pomocí URL
http://www.kdesi.cz/cgi-bin/toASCII
můžete ponechat implicitní hodnotu "/cgi-bin". Je třeba uvést celou cestu, bez závěrečného lomítka. Tato hodota se používá při metodě guess k určení, zda požadovaný dokument je cgi skipt.
Default - /cgi-bin
CGISUFFIX
Přípona CGI skirptů. Pokud váš server vyžaduje, aby CGI skripty byly vyznačovány určitou konkrétní příponou (nejčastěji .cgi), uveďte ji jako hodnotu této proměnné. Je-li server dostatečně inteligentní na to, aby poznal CGI skript podle cesty, doporučuji ponechat jako hodnotu proměnné prázdný řetězec.
Default - nenastaveno.
DEFSOURCE
Implicitní kódování zdrojových textů stránek. Zde uveďte kódování, ve kterém bude pravděpodobně vytvořena většina Vašich stránek. Jestliže si stránka nepředepíše zdrojový kód, bude jako výchozí pro její překódování použit tento kód. Platné názvy kódů zjistíte prohlédnutím souboru nazvy nebo (lépe) cstools.h. Nedělá se rozdíl mezi velkými a malými písmeny.
Default - ISO-8859-2.
GETMETHOD
Způsob, kterým má C-SaCzech získávat kódované texty. Můžete si vybrat jednu z následujících alternativ (musí být vypsáno malými písmeny):
file
Soubory budou vyzvedávány přímo ze systému souborů počítače. Tento způsob je efektivní a rychlý, ale umožňuje kódovat jen texty, které jsou přítomny v podobě souborů. Nelze např. kódovat výstupy z CGI skriptů.

http
V tomto režimu práce C-SaCzech získává kódované dokumenty od svého serveru prostřednictvím HTTP protokolu. Tedy zahraje si na WWW klienta, odstraní své vlastní jméno z dotazu, který mu byl položen, a položí serveru tento modifikovaný dotaz. Data, která získá jako odpověď, posoudí a buď překóduje (jestliže se jedná o text, přesněji MIME typ text/html nebo text/plain) nebo propustí beze změny.

Tento způsob je podstatně méně efektivní (obsloužení každého dotazu vyvolává jeden dotaz navíc), umožňuje však překódovat vše, co je na serveru k dispozici - včetně výstupů z CGI skriptů.

Zvolíte-li tuto variantu, nemá žádný význam nastavení proměnné DEFAULTFILE a příznaků TIMESERVICES a IFMODIFIEDSINCE.

guess
C-SaCzech se pokusí automaticky určit pro každý dotaz, kterou z výše uvedených metod má použít. Využívá k tomu hodnotu proměnné CGIPATH a CGISUFFIX.Jestliže je začátek cesty ke kódované informaci (část URL, uvedená za voláním skriptu) shodný s CGIPATH nebo obsahuje CGISUFFIX, použíje pro získání dokumentu metoda http. http se použije i tehdy, jestliže se žádá o dokument .shtml nebo v některém adresáři obsaženém v proměnné prostředí PATH_TRANSLATED se nachází soubor s názvem uvedeným u SECURE. V opačném případě jej vyzvedne přímo ze systému souborů.

Metoda guess se tedy snaží o rozumný kompromis mezi předchozími alternativami.

Default - guess.
TIMESERVICES
Jedná se o první z příznaků. Jestliže je definována, znamená to, že se lze spolehnout výsledky funkce stat programovacího jazyka C, kterou C-SaCzech využívá pro získání informací o velikosti a době vzniku souboru.
Default - nastaveno.
IFMODIFIEDSINCE
Má skript reagovat na hlavičku If-Modified-Since? Pokud vámi používaný server nepředává CGI skriptům informace z HTTP hlaviček dotazu (v proměnných prostředí HTTP_hlavička), nedostává C-SaCzech potřebné informace. V takovém případě volbu vypněte.
Default - nastaveno.
SECURE
Pokud je definováno, otestuje se, zda v některém adresáři z PATH_TRANSLATED není soubor omezující přístup a sloužící většinou k autorizaci přístupu. Jméno souboru, který se takto používá záleží na tom, jaký httpd funguje na Vašem serveru, případné dotazy na to, jaký to je, směrujte na Vašeho systémového administrátora.
Default - ".htaccess"
DECODEQUERY
Definujte tuto proměnnou, pokud chcete, aby C-SaCzech překódovával i parametr z příkazové řádky.
Default - nenastaveno.
ADDBAR
Pokud je nastavena tato proměnná, C-SaCzech bude reagovat na text <!--BAR--> (popř.<!--BAR E-->) tak, že v daném místě vypíše text, umožňující změnu kódování dokumentu; podle toho, která varianta je použita, doplní buď českou hlavičku a závěr (obsah proměnných HEADBARTEX a TAILBARTEXT), nebo anglický (EHEADBARTEX a ETAILBARTEXT).
Default - nastaveno.
ALLWAYSADDBAR
Pokud je tato proměnná nastavena, C-SaCzech vypíše lištu vždy; pokud text neobsahuje řetězec <!--BAR-->, vypíše ji na konci dokumentu. Samozřejmě pouze tehdy, pokud daný dokument překódovává (takže obrázky jsou v pohodě) nebo se nejedná pouze o chybové hlášení.
Default - nenastaveno.
LONGNAMEBAR
Pokud je nastavena, v nabídce kódování se zobrazí celá jména kódů a ne pouze trojpísmenné zkratky.
Default - nenastaveno.
HEADBARTEXT, EHEADBARTEXT
Text, který se vypíše před lištu s nabídkou překódování. HEADBARTEXT se vypíše v české verzi, EHEADBARTEXT v anglické.
Default - viz defaultni config.h.
TAILBARTEXT, ETAILBARTEXT
Text, který se vypíše za lištu s nabídkou překódování. Standartně je to "<HR>", tedy vodorovná linka. Opět TAILBARTEXT je pro českou lištu, ETAILBARTEXT pro anglickou.
Default - "<HR>".
ADDWHICHCODE
Pokud je nastavena, v automaticky generované nabídce kódování se zobrazí i obsah proměnné BARWHICHCODENAME, který bude odkazem na volbu pomocí standartního whichcode. Má smysl pouze tehdy, pokud je nastaveno ADDBAR .
Default - nastaveno.
BARWHICHCODENAME
Text, který se vypíše do lišty.
Default - "whichcode".
MULTIPART
Nastavením této proměnné bude zkompilovaný C-SaCzech podporovat více různých dokumenů v jednom dokumentu; jak to funguje se můžete podívat na tento příklad. C-SaCzech bude reagovat na <--PART XXXXX--> odpovídajícím tak, že podle názvu zjistí, zda má danou část vypsat (pokud byl spuštěn jako např. toASCII.eng.cgi, bude vypisovat části <--PART eng-->).
Default - nastaveno.
PARSE_DOCUMENT
Podpora dokumentů používajících SSI (příkazy <!--#exec, <!--#include). CSáček také provede odpovídající příkazy v případě, že to httpd neumí nebo není nastaven tak, aby uměl. Pozor, toto nastavení může obejít systěmovou konfiguraci, takže pokud je nějaký důvod proč to není na Vašem serveru tak jistě tytéž důvody hovoří pro to, aby se SSI zakázaly i v CSáčku. Pozor - jestliže WWW server SSI umí a v CSáčku je zakážete, většinou se stejně neprovedou.
Pokud chcete povolit jen některý ze dvou podporovaných příkazů, můžete tak udělat správným (ne)nastavenim následujících dvou příznaků.
Default - nastaveno.
ENABLEEXEC
Viz PARSE_DOCUMENT. Povolí příkaz "<!--#exec". CSáček CSACEK_VERSION umí provést jen exec cmd.
Default - nastaveno.
ENABLEINCLUDE
Viz PARSE_DOCUMENT. Povolí příkaz "<!--#include". CSáček CSACEK_VERSION umí provést jen include file.
Default - nastaveno.
USECHARSET
Pokud definováno, CSáček připíše kódovaným dokumentům do hlavičky k údaji Content-type kromě správného typy dokumentu i nepovinný parametr "charset"; některé prohlížeče, které umí MIME se pak podle tohoto parametru dovedou zařídit a zobrazit ve správném kódování.
Default - nastaveno.
STATUSHACK
Některé httpd (např. NCSA httpd, Apache httpd) mají problémy s parsováním hlavičky dokumentu, jestliže se v části Status: uvede i typ serveru (tzn. předává se i HTTP/1.0). Pokud definujete tuto proměnnou, status se předává tak, aby první uvedený text za "Status:" bylo číslo.
Tuto proměnnou se doporučuje definovat.
Default - nastaveno.
CSACEKFILTERS
Umožní používat "CSáček filtry" k filtrování vstupu/výstupu do/z CSáčku. Tzv. "CSáček filtr" může být kterýkoli program který čte ze standartního vstupu a zapisuje na standartní výstup. Bližší informace u popisu příkazu.
Default - nenastaveno.
NPH
Pouze a jenom k testovacím účelům, nedoporučuji definovat dokud opravdu nevíte co děláte. Pokud definováno, CSáček se chová jako by se jeho hlavičky už neměl httpd parsovat -> Status: je bez klíčového slova Status:, přeskakuje se úvodní "nph-" ve SCRIPT_NAME.
Default - nenastaveno.
LOCALHOSTHACK
Pokud je definováno, CSáček se místo se serverem uvedeným v proměnné prostředí SERVER_NAME kontaktuje s počítačem na kterém byl spuštěn. V drtivé většině případů se jedná o tentýž stroj, takže je to korektní. Spojení se ale takto naváže rychleji a také komunikace by měla být rychlejší (nebylo testováno). CSáček se pokusí navázat spojení na IP adresu 127.0.0.1 což je většinou správné spojení na počítač na kterém jede (aspoň na Unixu). Definováním tohoto příznaku většinou nic neztratíte (když nepomůže aspoň neuškodí ;-).
Default - nastaveno.
CSACEK_REPORT
Pokud nastavíte tento příznak, CSáček vypíše svoji konfiguraci, pokud mu jako query podstrčíte parametr csacek_report nebo csacek_info. Celkem užitečné (aspoň se dá kdykoliv zjistit, co momentální verze umí a co ne).
Default - nastaveno.
CSACEK_BANNER
Pokud je definováno, CSáček na začátek dokumentů, které kóduje, napíše krátké info, že to udělal. Pokud vám to vyloženě vadí, můžete to samozřejmě zakázat.
Default - nastaveno.
RESTRICTDOMAINS
Od verze 1.3_BETA je možno měnit obsah dokumentu podle domény či stroje, odkud vzdálený uživatel přistupuje. Jedná se o příkaz DOMAIN, používá se podobným způsobem jako příkaz PART, adresu je možno zadat v doménovém tvaru i jako čisté IP.
Default - nastaveno.
CSACEK_HELP
Jestliže je definováno a dáte CSáčku parametr ?csacek_help, CSáček vygeneruje krátkou stránku s popisem příkazů, které podporuje.
Default - nastaveno.
CSACEK_HOMEPAGE
Jestliže je definováno a dáte CSáčku parametr ?csacek_homepage, CSáček přesměruje klienta na domácí stránku programu.
Default - nastaveno.

Proměnné používané pouze v čase kompilace (soubor Makefile):
CC
Tato proměnná obsahuje jméno kompilátoru, který bude použit pro vytvoření spustitelného C-SaCzechu. cc je standartní a programy jím zkompilované by měly běžet bez problémů. gcc je lepší, ale některé WWW servery odmítají spustit jím zkompilované programy. Na systémech BSD/OS se používá cc nebo shlicc, pokud chcete aby program používal sdílené knihovny.
Nastaveno na: cc
CFLAGS
Zde jsou uvedeny parametry předané kompilátoru uvedenému v ${CC}. Jedna se většinou o volbu optimalizace, popř. i jiné důležité parametry (jako třeba -fno-strength-reduce pokud používáte pro kompilaci nepatchnutý gcc 2.7.2 a používáte -O2).
LFLAGS
zde jsou uvedeny knihovny, které se musí nalinkovat, aby překlad proběhl úspěšně. Na SunOS a SCO Unix je třeba přidat -lsocket -lnsl, na UnixWare (a možná i jinde) ještě navíc -lresolv.
OS_TYPE
Typ operačního systému, na kterém CSáček budete chtít kompilovat. Prozatím jediná platná hodnota je unix.
Nastaveno na: unix
LN
Příkaz, kterým se na vašem souboru udělá symbolický (měkký) link.
SHELL
Jméno shellu, který se má použít ve skriptu whichcode. Má cenu pouze pro Unix (pod NT pokud vím nelze přímo ve skriptu nastavit, pod čím se má spustit). Podporované shelly (respektive ty, které vím, že fungují) jsou: sh, ksh, bash, ash, zsh, pdksh, csh nefunguje, není a nebude podporován.
Nastaveno na: /bin/sh
STRIP
Zkompilovaný binární soubor obsahuje některé informace, které jsou poté většinou zbytečné (tabulku symbolů atd. používají se při ladění programu). Pokud tedy CSáček budujete pro normální používání, nechte jako obsah strip, jinak echo. Ušetříte títo způsobem asi 3k na disku ;-)
Nastaveno na: strip
CGIPATH
Pravdépodobně budete chtít nastavit stejnou hodnotu jako v config.h. V souboru Makefile se užívá pro určení hodnory proměnné CGIPATH ve skriptech whichcode, whichcode.eng.
SUFFIX
Uveďte, pokud chcete, aby generované soubory měly nějakou příponu (např. .cgi). Není závislá na hodnotě CGISUFFIX, nastavené v config.h.
COMPILEDIR
Kam se mají uložit zkompilované binárky, soubory obsahující symbolické linky a soubory whichcode. Může být i adresář, kde máte ostatní CGI skripty, ušetříte si takl jeden krok při instalaci.
CSACEK_CODES
Seznam kódů, mezi kterými CSáček umí převádět. Když se v závěrečné fázi kompilace budou vytváňet symbolické odkazy na soubor, který bude oním "centrálním" převodníkem, vytvoří se pouze odkazy se jmény z tohoto seznamu. Ve většině případů asi není třeba přenastavit.
PARTLIST
Seznam názvů částí (viz příkaz PART), které chcete na vašem systému používat.
Nastaveno na: eng.
CZ_WHICHCODE, ENG_WHICHCODE, WHICHCODE_DIR
WHICHCODE_DIR obsahuje adresář, ve kterém jsou defaultní základy ke skriptům whichcode a whichcode.eng. Podívejte se tam a podle toho, který vám vyhovuje nastavte příslušně i proměnné CZ_WHICHCODE a ENG_WHICHCODE.

... a instalace pokračuje

Tím je ukončena konfigurační fáze. Nyní by v ideálním případě (který může a nemusí nastat) mělo stačit dát příkaz:
make
Tento program na základě Makefile vytvoří v podadresáři zadaném v proměnné COMPILEDIR zkopilovaný program to$TARGET a ostatní soubory toXXXX, které jsou symbolické odkazy na tento soubor; dále pak také spustitelný whichcode a whichcode.eng na základě souborů zadaných jako CZ_WHICHCODE a ENG_WHICHCODE. Také příslušně tyto dva soubory nalinkuje (tak, aby exitovaly odkazy to__CHARSET__ a to a to__CHARSET__.eng a to.eng. Pokud bylo definováno CGISUFFIX všechny soubory budou mít samozřejmě odpovídající příponu.

Pokud si přejete, můžete nyní ještě upravit komentáře ve vytvořeném $COMPILEDIR/whichcode.

A nyní už jen stačí přesunout soubory z podadresáře compile do adresáře s ostatními CGI skripty tak, aby je httpd mohl spustit a "HURÁ", CSáček by měl být připraven k používání.

  ZPET Zpět


Přenos do jiného operačního systému

Potenciální přenos na jiný OS než Unix není tak jednoduchý. Pokud začneme od rozbalení - je třeba tar a GNU gzip pro rozbalení. Ale to by zas takový problém být neměl (GNU software je volně přístupný a porty základních programů jako jsou tyto exitují snad pro jakýkoli na Zemi se vyskytující systém). Problémem mohou být dlouhá jména souborů. jiné oddělovače v názvech souborů, nepřítomnost něčeho jako shell či make na výsledném systému, jiná konvence volání skriptů, jiná syntaxe Makefile, jiný, nestandardní C kompilátor. Nikoli nejmenším mýže být, že C kompilátor na cílovém systému používá jiné knihovny a funkce k přístupu na síť. Dále některé funkce pro zpracování textových řetězců jsou sice standardní (POSIX.1), ale to neznamená, že zrovna váš neunixový C kompilátor standard nedodržuje nebo porušuje ;-)

Dohromady podtrženo a sečteno: je to jistý oříšek, ale při troše námahy a možnosti přístupu na Unixovou i cílovou platformu řešitelný.

  ZPET Zpět


Návod k použití

CSáček předpokládá, že bude spuštěn jako CGI skript a využívá příslušné proměnné prostředí. Nelze jej tedy spouštět samostatně (alespoň ne jednoduše).

Obsah

Základy - URL stránky

Stránku napište v kódu, který odpovídá zvolenému implicitnímu kódu serveru. (Ve skutečnosti zdrojový kód není omezen.) Vystavte ji, jak je obvyklé. Jediné, co se změní, bude URL, kterým je třeba se odkázat na stránku. Jestliže URL stránky bez překódování by bylo
http://www.kdesi.cz/cesta/stranka.html
bude URL téže stránky při požadavku jejího překódování do sedmibitového ASCII
http://www.kdesi.cz/cgi-bin/toXXXX/cesta/stranka.html
Předpokládám, že cesta ke kódujícím skriptům je /cgi-bin. Na místo XXXX můžete dosadit kterýkoli z podporovaných typů kódování (ASCII, ISO-8859-2, CP1250, ISO-8859-1, CP852, KEYBCS2, MAC nebo KOI8-CS).

Tento odkaz však předpokládá, že předem víte, jaký kód bude uživatel vyžadovat. To často nemusí být pravda. V takovém případě doporučuji použít skript whichcode a URL

http://www.kdesi.cz/cgi-bin/whichcode/cesta/stranka.html
Skript whichcode uživateli oznámí, že cílový dokument obsahuje diakritická znaménka a umožní mu zvolit kód, který považuje za optimální.

Zachování kódu při odkazech

Je přirozeným požadavkem, aby uživatel vybíral kód jen jednou a při odkazech na další dokumenty z téhož zdroje se uchovávala informace o zvoleném kódování. Nejjednodušší cestou je relativní odkaz. Když do dokumentu vložíte odkaz pomocí značky
<A HREF="kapitola1.html">První kapitola</A>
klient přepracuje relativní URL kapitola1.html na absolutní. Vyjde přitom z URL dokumentu, obsahujícího značku. Pokud bylo původní URL dokumentu například http://www.kdesi.cz/cgi-bin/toCP1250/cesta/obsah.html, povede zmíněný odkaz k dokumentu http://www.kdesi.cz/cgi-bin/toCP1250/cesta/kapitola1.html. Informace o kódu byla zachována.

  Trik - můžete použít v dokumentu značku <BASE> na rozskokové stránce (ta, na kterou čtenáři většinou dojdou bez prekódování). Všechna relativní URL vztažena k lokátoru, definovanému touto značkou, nikoli k URL, pod kterým klient získal stránku.

Příklad:
stránka http://kdesi/~ja/moje.html může obsahovat značku <BASE HREF=http://kdesi/cgi-bin/to__CHARSET__/~ja/moje.html>. Pokud čtenář použije některý relativní link, je přinucen vybrat si kódování a dál už se mu stránky zobrazují v tom "jeho".

Absolutní odkazy je třeba řešit jinak. Tady používá CSáček metodu podobnou programu WWWdia. Do textu můžete na kterékoli místo (včetně cest) vložit řetězec

__CHARSET__
Kódující skript nahradí každý výskyt tohoto řetězce identifikací kódu, do kterého právě převádí stránku. Proto můžete v textu použít značku
<A HREF="http://www.jinde.cz/cgi-bin/to__CHARSET__/jinacesta/str.html">odkaz</A>
Pokud stránka projde skriptem toKEYBCS2, který ji převede do kódu KEYBCS2 (Kameníci), bude v odeslaném dokumentu v této značce uvedeno URL
<A HREF="http://www.saczechserver.cz/cgi-bin/toKEYBCS2/jinacesta/str.html">odkaz</A>
Předpokládám, že server, určený tímto absolutním URL, má instalován C-SaCzech nebo SaCzech. Může, ale nemusí se jednat o tentýž server, který poskytl původní dokument.

Jelikož jsou názvy kódů shodné s programem WWWdia, mohou se na sebe navzájem korektně odkazovat stránky, jejichž servery používají různé implementace češtiny. Absolutní URL, uvedené výše, lze použít i na stránce, která je překódovávána programem WWWdia. Potřebujete-li naopak skočit ze stránky kódované pomocí C-SaCzechu nebo SaCzechu na stránku v pomocí WWWdia, použijte pro tento odkaz URL

<A HREF="http://www.diaserver.cz/cgi-bin/charset/jestecesta/str.html?charset=__CHARSET__">odkaz</A>

Nekódovat obrázky!

C-SaCzech je selektivní. Kóduje jen soubory s určitými příponami (implicitně .html, .htm, .txt a .cz ; jak je změnit se dočtete v kapitole Pod kapotou). Dostane-li k překódování soubor s jinou příponou, odmítne se akce účastnit a přesměruje klienta přímo na dotyčný soubor. Důsledkem je, že klient získá soubor v původním tvaru beze změny kódování.

Díky tomuto mechanismu můžete na své stránky vkládat relativní odkazy na obrázky, zvuky a další druhy dat, kterým by překódování rozhodně neprospělo.

Jestliže se na stránce vyskytne značka

<IMG SRC="obraz.gif">
a URL stránky je http://www.kdesi.cz/cgi-bin/toASCII/cesta/stranka.html, bude klient po serveru požadovat http://www.kdesi.cz/cgi-bin/toASCII/cesta/obraz.gif. Server spustí program toASCII. Ten však zjistí, že je po něm požadováno kódování souboru s příponou .gif. Místo aby se pustil do díla, odpoví klientovi "hele s tímhle já nechci nic mít, vezmi si rovnou ten soubor". Klient si ho vezme a vše funguje k plné spokojenosti všech zúčastněných.

Změna výchozího kódu

Implicitní výchozí kód, ve kterém budou psány dokumenty, určuje správce serveru při instalaci programů C-SaCzech. Mělo by se jednat o kód, ve kterém bude vytvářena většina stránek (nejlépe všechny). Pokud autor používá kód jiný, má dvě možnosti:
Převést stránku do implicitního kódu.
To je méně pohodlné a navíc to komplikuje pozdější úpravy na stránce (každá úprava bude vyžadovat nové překódování).
Ponechat stránku v kódu původním a vyznačit jej.
K vyznačení původního kódu dokumentu se používá HTML komentář v přesně definovaném tvaru
<!--MYCHARSET=kód-->
Například <!--MYCHARSET=CP1250-->. Počínaje řádkem, obsahujícím tento komentář (doporučuji jej uvést na samostatném řádku na začátku dokumentu), bude za výchozí kód dokumentu považován kód CP1250.

Dokonce můžete používat několik různých kódů v jednom dokumentu. Jestliže je první polovina textu psána v kódu Kamenických a druhá v MS-Windows, stačí před každou část vložit příslušný komentář a výsledek bude uživateli odeslán ve správné podobě - obě poloviny se korektně překódují například do ISO Latin 2. Takové dokumenty sice považuji za zvěrstvo, ale ta možnost tu je...

Pro milovníky patologických případů:

Lišta s nabídkou kódování

Pokud se tak správce rozhodne při instalaci, můžete na stránkách kódovaných C-SaCzech využívat automatického generování lišty s nabídkou kódování. Jak se to dělá a co vše lze nastavit se dočtete v části Instalace. Ve stránkách pak stačí v místě, kde chcete mít nabídkovou lištu, napsat příkaz
<--BAR-->
který způsobí, že C-SaCzech v daném místě vytvoří a vypíše lištu s nabídkou. Pokud je tak C-SaCzech nakonfigurován, vypisuje lištu automaticky na konci dokumentu, pokud už lišta nebyla alespoň jednou vypsána předtím.

Pokud chcete docílit speciálního tvaru lišty, máte dvě možnosti. Jedna je zadat parametry přímo v příkazu BAR a druhá použít příkazu BARDEF, který je identický s BAR až na to, že nezpůsobí vypsání lišty. V obou příkazech jsou zadané parametry platné i pro všechny následující příkazy BAR. S výhodou lze takto např. předefinovat tvar lišty a nechat C-SaCzech vypsat lištu na konci dokumentu (k použití příkazu BAR viz. příklad).

Vícejazyčné dokumenty

Pokud pořizujete dokumenty, které mají víc variant, ať už jsou například ve dvou různých jazycích nebo jsou například odlišně zpracovány pro zobrazení různými WWW browsery, vynoří se problém s aktualizací. Jestliže je takových dokumentů více, je třeba pamatovat na to, aby se případné změny provedly v každém souboru, a může se stát (protože jsme lidi omylní), že se změny neudělají všude. Bylo by vhodné mít v nějakém konzistentním formátu všechna spolusouvisející data v jediném souboru.

Jak se to používá ? Části označíme tak, že na začátek dáme speciální příkaz, podle kterého C-SaCzech pozná, že zde začíná nová část. Např.

<--PART ENG-->
vyznačí novou část se jménem ENG. Pokud je pak je daný dokument překládán skriptem se jménem toXXXX.eng (popř. toXXXX.ENG), vypíšou se části mezi <--PART ENG--> a jinými částmi (praktická ukázka použití viz příklad). Při pojmenování částí nezáleží nezáleží na malých a velkých písmenech (tzn. část MoJe se bere stejná jako moje).

Je rezervováno jedno jméno, a to ALL. Část pojmenovaná jako ALL bude vypsána vždy, stejně jako část dokumentu do prvního výskytu příkazu PART.

Je třeba zajitit, aby se k dokumentům, které jsou takto napsány, nedostal uživatel, aniž by přešel přes CSáček. Protože bez překódování může být onen text poněkud nečitelný ...

Syntax je dále rozebírána v seznamu příkazů

Podpora autorizaci přístupu

Možná jste se dostali do situace, kdy jste sice chtěli zpřístupnit informace přes Web, ale chtěli jste tyto informace vystavit jen pro nějakou uzavřenou skupinu lidí. Ať už třeba lokální zrcadlo Pethousu nebo informace, za jejichž poskytování se obyčejně berou peníze (inzeráty, statistiky, nabídky ...). WWW server obyčejně umožňuje omezit přístup k adresáčům obsahujícím takové informace pomocí speciálních konfiguračních souborů (nejčastěji .htaccess). Od verze 1.3_ALPHA CSáček tuto ideu podporuje a pokud je přinucen přenášet takto chráněný dokument, požádá o přenos přímo http démona místo aby si ho sám vyzvedl ze systému souborů.

Potenciální problémy s překódováváním chráněných souborů jsou diskutovány níže.

Překódovávání chráněných (veřejně nepřístupných) souborů

Bohužel to není tak jednoduché jak by se na první pohled zdálo. CSáček totiž samozřejmě potřebuje k přístupu příslušné heslo. Ale toto heslo se standardně žádným způsobem skriptu při spouštění nepředává, z bezpečnostních důvodů. Pokud totiž nemáte absolutní kontrolu nad tím jaké CGI skripty se Vám na serveru vyskytnou, mohl by spuštěný skript velice snadno tuto informaci zneužít, protože heslo se v protokolu HTTP přenáší nezakódované, jen upravené pro přenos (použitím base64).
Pokud tedy máte kontrolu nad všemi skripty na Vašem serveru, můžete vcelku jednoduchým způsobem upravit httpd tak, aby mezi proměnné prosředí spouštěného skriptu byl přidán i obsah hlavičky "Authorization".

Podpora SSI a shtml

Co je to SSI (neboli Server Side Includes) se můžete dočíst také jinde. Je to způsob, jak pomocí speciálních konstrukcí příkazů vkládat dynamicky do dokumentů jiné dokumenty, výstup z programů apod. Pokud Váš server SSI nepodporuje a Vám by se něco takového hodilo, CSáček Vám v tomhle pomůže. Jak ? Dokument, který takovéto příkazy používá, CSáček předá ke zpracování WWW serveru a pokud je server ignoruje, CSáček je vyhodnotí a provede. Podívejte se jaké proměnné musíte nastavit před kompilací CSáčku a jaké příkazy pak můžete používat.
Shtml je většinou přípona dokumentů, které používají tyto speciální příkazy. CSáček od verze 1.3_ALPHA je samozřejmě nyní rozpozná a překódovává (předchozí verze dokument .shtml házely do jednoho pytle s obrázky a jinými daty, kterým překódování nesvědčí).

Napojení CSáčku na jiné programy

CSáček také může na vytváření dokumentu spolupracovat s jinými programy. Realizace je pomocí Unixovských trubek. Jediná podmínka, kterou musí program splňovat je, aby četl ze standartního vstupu a psal na standartní výstup. A jak to celé funguje ? Pokud CSáček při čtení dokumentu narazí na speciální direktivu, může začít filtrovat požadovaný dokument skrz zadaný program. Udělá následující:
Mě osobně se zdá být užitečnější a), ale uvidí se časem, co se bude víc používat.
Může se tak velice jednoduše zpracovávat například výstup z různých vyhledávacích programů, aniž by tento musel sám o sobě být CGI skript, CSáček se postará o veškeré hlavičky. Pokud bude takový program produkovat texty v češtině s diakritikou, je lepší použít ho jako csáčekfiltr i v případě, že by udělání CGI skriptu se stejnými výsledky nebylo příliš obtížné. Překódovávat přes (pravděpodobně) CSáček se musí tak jako tak a ušetří se čas přenosu a nové kontaktování vzdáleného http démona, což šetří jednak strojový čas serveru a také (což je důležité) čas všech potenciálních uživatelů.
Jak používat csáčekfiltry se můžete dočíst v jiné části tohoto dokumentu.

Zjištění zakompilovaných defaultů a on-line help

Verze 1.3 přináší další dvě užitečné drobnosti - je možno zjistit, jak byl CSáček nakonfigurován při kompilaci a také nabízí on-line help. To první se vypíše, pokud dáte CSáčku parametr ?csacek_report nebo ?csacek_info, tedy celé URL bude vypadat nějak takto: http://server/cgi-bin/toASCII?csacek_report. CSáček automaticky vygeneruje HTML stránku s požadovanými informacemi. Aby vypsal help, musí URL vypadat nějak takto : http://server/cgi-bin/toASCII?csacek_help. CSáček vygeneruje stránku, popisující základní příkazy, které v této verzi CSáčku je možno používat, spolu s krátkým popisem, co která dělá. Na domovskou stránku se dostanete, pokud CSáčku podstrčíte parametr ?csacek_homepage.   ZPET Zpět

Seznam příkazů

Každý příkaz pro C-SaCzech je uzavřen do komentáře mezi <!-- a -->, tedy např.
<!--BAR E LONG-->
Pro milovníky patologických případů:

Seznam:

... a popis:

V následujícím popisu hranaté závorky označují části, které nemusí (ale mohou) být zadány. U každého příkazu je uvedena jeho syntax, jeden jednoduchý příklad použití, dále pak krátký popis, co daný příkaz dělá a poté případně přehled voleb či parametrů, které můžete příkazu zadat. U některých je uveden ještě odkaz na další, podrobnější příklady užití.

MYCHARSET
Syntax: <!--MYCHARSET=kód-->
Příklad použití: <!--MYCHARSET=ISO-8859-2-->

BAR, BARDEF
Syntax: <!--BAR[DEF] [parametry]-->
Příklad použití: <!--BAR SHORT NOWHICH SEP=" o "-->

Příkaz BAR slouží k automatickému vypsání lišty s nabídkou kódování. V lišté se objeví seznam kódů, které CSáček zvládá a každý z nich je odkaz na aktuální stránku, převedenou do příslušného kódu. Parametry nemusíte uvést, BAR bez parametrů vypíše lištu v takovém tvaru, jak je právě nastaveno.

BARDEF má stejné volby a parametry jako BAR, s tím rozdílem, že lištu nevypíše, pouze nastaví vnitřní proměnné CSáčku pro pozdější použití na stránce.

Význam jednotlivých parametrů:

Zde je několik dalších příkladů, pokud se už tento dokument filtruje přes CSáček, uvidíte také jak ona generovaná lišta vypadá.

PART
Syntax: <!--PART [jméno_části1 jméno_části2 ...]-->
Příklad použití: <!--PART ENG-->

Následující část textu do výskytu dalšího příkazu PART je předána pouze pokud některé jméno části odpovídá příponě CGI skriptu, kterým se dokument filtruje; například pokud je odkaz ve tvaru: http://server/cgi-bin/toXXX.eng/cosi, předá se vše v dokumentu /cosi mezi <!--PART ENG--> a dalším příkazem PART. Kromě částí uzavřené mezi příkazy PART s odpovídajícím parametrem se také předá vše do prvního výskytu příkazu PART. Pokud jméno části není uvedeno, text za <!--PART--> se předá na výstup pouze pokud u filtrujícího CGI skriptu nebyla uvedena přípona, tzn. odkaz vypadal nějak takto: http://server/cgi-bin/toXXX/cosi. Ve jméně části nezáleží na velkých/malých písmenech (MoJe se vyhodnotí jako ekvivalentní části moje).

Význam jednotlivých parametrů:

Zde je uveden malý příklad; příklad bude funkční pouze pokud již máte nainstalovaný CSáček v angločeské verzi nebo si prohlížíte domácí stránku.

DOMAIN
Syntax: <!--DOMAIN označení_domény_1 [označení_domény2 ...]-->
Příklad použití: <!--DOMAIN ics.muni.cz 147.251-->

Syntaxe je podobná jako u PART. Části mezi jednotlivými příkazy DOMAIN se vypíší pouze tehdy, když vzdálený uživatel přistupuje z některé ze zadaných domén. V uvedeném příkladě tehdy, pokud vzdálený uživatel přistupuje ze stroje v doméně ics.muni.cz nebo s IP adresou začínající na 147.251 (.muni.cz).

NOCODE
Syntax: <!--NOCODE-->
Příklad použití: <!--NOCODE-->

Od řádku na kterém byl tento příkaz se dokument nebude překódovávat; využití například v dokumentech v čistém ASCII (např. anglické) ke zrychlení překladu nebo v částech, které nechcete překódovávat z jakéhokoli jiného důvodu. Příkazy PART a DOMAIN se v takto nekódovaných částech stále rozeznávají.

CODE
Syntax: <!--CODE-->
Příklad použití: <!--CODE-->

Od výskytu tohoto příkazu se dokument bude opět kódovat; inverzní volba s NOCODE.

#exec
Syntax: <!--#exec cmd="prog [parametry]"-->
Příklad použití: <!--#exec cmd="moje.cgi -v -n 34"-->

standartní příkaz SSI; Csáček z čistě praktických důvodů nepodporuje parametr cgi= (vyvolalo by to další dotaz na WWW server -> zbytečná zátěž navíc).
Vloží do dokumentu výstup z programu "prog" spuštěného s parametry "parametry". "prog" nesmí být absolutní cesta a nesmí obsahovat část ../. Na tento příkaz je třeba dávat pozor, umožňuje uživatelům spouštět programy pod identifikací uživatele stejnou jako WWW server, to mimo jiné znamená, že takto spuštěný program má přístup všude, kam má přístup lokální WWW server.

#include
Syntax: <!--#include file="soubor"-->
Příklad použití: <!--#include file="vsuvka.txt"-->

standartní příkaz SSI; CSáček nepodporuje parametr virtual="XX" z podobných důvodů jako nepodporuje cgi= u #exec.
Vloží do dokumentu jiný dokument. soubor opět nesmí být absolutní cesta ani nesmí obsahovat ../. Musí se jednat o exitující soubor (pokud je to program, vloží se jeho text, nespustí se).

#csacekfilter
Syntax: <!--#csacekfilter cmd="prog [parametry]" [align=after|before]-->
Příklad použití:
  <!--#csacekfilter cmd="cgi/muj.cgi -f -o ghost" align=before-->

CSáčekfiltrem může být kterýkoli program, který čte ze standardního vstupu a píše na standardní výstup. Dělá to, že filtruje buď vstup nebo výstup do/z CSáčku, viz také podrobnější popis.

Tento příkaz podle hodnoty parametru align nainstaluje prog jako csáčekfiltr buď před (align=before) a nebo za (align=after) CSáček. Pokud volitelný parametr nepoužijete, je to jako byste dali align=before. prog opět nesmí být absolutní cesta ani nesmí obsahovat ../.
Nainstalování filtru před CSáček je dvakrát náročnější na systémové zdroje než nainstalování za, výhledově se bude měnit syntax volání a pravděpodobně bude omezen počet filtrů před CSáčkem na jeden.

ZPET Zpět

 


Historie

C-SaCzech vznikl během dubna a začátku května léta Páně tisícího devítistého devadesátého šestého.

Verze označené X.YZ a X.Y_*{ALPHA|BETA|BETAZ} jsou vývojové nestabilní verze. Doporučuji nepoužívat, leda v případě krajní nouze ;-)

Vývoj

verze 1.3 (srpen-listopad 1996)
  • podpora SSI a shtml
  • možnost více defaultních souborů (tzn. souborů, které se poskytnou pokud se zadá jako požadovaný dokument jméno adresáře)
  • u kódovaných dokumentů předáván parametr "charset" u Content-type
  • podpora autorizace přístupu
  • zavedení CSáček filtrů
  • optimalizovány nároky na paměť - na mnoha místech odstraněny statické buffery, nahrazeny pointry a dynamickou alokací
  • animované GIFy zůstávají animované i po dokončení první smyčky
  • zjednodušena struktura funkcí, opraveno mnoho drobných chyb, nejdůležitější asi správný přenos obrázků, předávání správného statutu, fungující podpora metody POST a PUT, zpracování hlavičky If-Modified-Since, uděláno více "blbuvzdorné", všude kde se může vyskytnout chyba je detekována a ohlášena, a mnoho dalšího
  • možnost zjištění zakompilované konfigurace CSáčku (?csacek_report)
  • on-line help (?csacek_help)
verze 1.23 (začátek června 1996) - dost chybový, doporučuji když tak jen vybrat opravenou verzi cstools.h
  • podpora skriptů volaných metodou POST
  • lépe zachovává HTTP hlavičky
  • opraveno chybné překódovávání některých znaků
  • opraven whichcode.sl
verze 1.22 (konec května 1996)
  • možnost nastavení (téměř) jakéhokoli tvaru automaticky generované lišty s nabídkou kódování přímo v dokumentu
  • podpora vícejazyčných dokumentů - možnost mít v jednom dokumentu víc různých částí a dynamicky vybírat, které zobrazit
verze 1.21 (konec května 1996)
  • součástí automaticky generované lišty s nabídkou kódování může být i možnost přepnout kódování pomocí původního whichcode.
  • opraveno špatné používání metody FILE (koliduje s definicí FILE ve stdio.h); názvy metod jsou nyní opět malými písmeny
verze 1.2 (konec května 1996)
  • automatické vložení lišty s nabídkou kódování (podrobnosti viz Instalace)
  • kódovací tabulky rozšířeny o většinu ostatních znaků s diakritikou (i např. a se stříškou apod.)
  • opraven whichcode.src, aby vytvořený whichcode byl zpracovatelný i bashem; podporované shelly viz Instalace.
verze 1.1 (květen 1996)
  • opraveno špatné nahrazování řetězce __CHARSET__ při metodě http
  • kódovací tabulky rozšířeny o slovenské znaky
  • chybové hlášky jsou "sytémovější" - v hlavičce vrací (po vzoru SaCzechu 2.1) i Status s platným kódem.
  • __CHARSET__ rozpoznáván i v HTML hlavičkách při metodě http (umožňuje zachování kódu i v obrázcích s klikou)
  • lze překódovat i parametry, zadané programu (obsah proměnné QUERY_STRING)
  • zdokonaleno rozhodování, která metoda se má použít při guess tak, že metoda http se použije i tehdy, když požadované URL obsahuje CGISUFFIX.
verze 1.0 (květen 1996)
  • možnost získávat kódované dokumenty prostřednictvím HTTP
  • podpora HTTP hlaviček Last-Modified, Content-Size a If-Modified-Since při zpracování souborů
  • možnost opatřit konverzní sadu příponou (např. .cgi) pokud to systém vyžaduje
  • při metodě HTTP nebo GUESS je volanému skriptu předáván i dotaz (QUERY_STRING)
  • korektní chování při chybně zadaném URL (neexistující soubor)
  • je možno používat více jmen kódů (aliasy);
  • součástí distribuce je which.src s příklady kódů

  ZPET Zpět


Zajímavosti a linky na stránky o různých konverzních programech a češtině na WWW

Jen stručně (seřazeno v chronologickém sledu, jak jsem se o nich dozvěděl): Články: Také jsou nově k dispozici FAQ týkající se češtiny: ale jeste se mi na tu adresu nepodarilo dostat (tento material vytvoril Lukas Petrlik, luki@pafos.zcu.cz), nejake problemy se serverem (odmita ftp, http a dokonce i finger :-(.

ZPET Zpět


This page is part of documentation of C-SaCzech and was created and has been maintained by Jaromír Doleček, dolecek@ics.muni.cz