C-SaCzech 2.1

Home
Další vývoj
Co je CSáček
Download
FAQ
Instalace
Dokumentace
Kredit
Kontakty
Podpora
Historie
Licence
Další info o češtině
| # 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. Tato stránka zachycuje změny v jednotlivých verzích a data release. verze 2.1.9 (10.3.2002) dokumentace z velké části přepsána a upravena pro zpřehlednění; je nyní také plně validní HTML 4.01 Transitional v parseru opraveny další dva případy, kdy se parametr `isspace()` a `toupper()` nepřevedl na (unsigned char) a mohlo se tedy použít záporné číslo na architekturách, kde char je defaultně signed parser chybně nezrušil jeden z vnitřních příznaků tehdy, když dorazil na konec bufferu při čtení příkazu nebo tagu, což vedlo k poškození předávaného dokumentu (několik znaků bylo přepsáno jinými) - jedná se o poměrně vzácnou chybu, bylo nutné splnit několik předpokladů, aby se chyba projevila Apache: mod_ssl háček upraven tak, že se spustí vždy a ne jen tehdy, když se uživatel autentizuje serveru; nyní tedy CSáček s mod_ssl funguje správně i na anonymních serverech nepožadující autentifikaci. Je ale nutno mít správně nastavenou konfiguraci serveru - viz konfigurace mod_ssl_ s CSáčkem. verze 2.1.8 (17.2.2002) META tag v xHTML tvaru (`<meta ... />`) je podporován - lomítko a původní názvy parametrů jsou zachovány přidáno csacekTestJS: pokud zapnuto (default vypnuto), CSáček použije heuristiku pro uhádnutí, zda předávaný `text/html` text není ve skutečnosti čistý JavaScript parser přegenerován novou verzí Bisonu - 2.18 výstup z `csacek_info` je nyní validní HTML 4.03 (oveřeno validátorem W3C) zrušeno přepisování DOCTYPE (potřeba jen pro MSIE 3.0 a ten už není používán při zpracování embedded JavaScriptu (kódu mezi `<SCRIPT>` a </SCRIPT>) se vypne přepisování všech tagů, včetně `FONT` mírná optimalizace memory managementu pro dočasnou paměť zajištěno, aby parametr při volání `isspace(3)` nebyl záporný - mohlo vést k pádu modulu pokud tag obsahoval české znaky tag `<?xml>` je nyní předáván bez poničení hlavička `Content-Length` se posílá i při metodě `HEAD` - nemusí být správně, ale jako informace je lepší než žádná hlavička verze 2.1.7 obsahovala chybu (zanechaný debug výpis), 2.1.8 ji opravuje verze 2.1.6 (12.4.2001) ISAPI: oprav pád při poslání POST formuláře bez dat, CSáček je nyní také opatrněji detekuje začátek nového požadavku; CSáček tak funguje na IIS 4.0 (pomoc: Jaromír Ocelka) configure: pro převod na velká písmena použij `tr abcd...z ABCD...Z` misto `tr [a-z] [A-Z]` - tu druhou formu některé implementace tr neznají (našel: Libor Bubík) cstools: přidán "stupeň" (`DEGREE SIGN`) a paragraf (`SECTION SIGN`) oprava kódu počítajícího priority v `Accept-Charset`, což mohlo vést k výběru špatného kódování (Martin "Marji" Čermák) hádání uživatelem podporovaného kódování se řídí hlavičkou `Accept-Charset` i tehdy, když klient v `Accept-Language` poslal `cs` (Martin "Marji" Čermák) URL se opravuje i u atributu `SRC` tagu `SCRIPT` (doporučil: Daniel Kafka) oprava: v tagu `<?xml ...?>` se omylem po přepsání názvu kodování vložila mezera mezi `<?` a `xml`, což onen tag znehodnotilo `configure`: přidán parametr `--with-apxs`, který umožňuje explicitně zadat celou cestu k apxs, pokud není v cestě; také byl mírně upraven algoritmus hledání `apxs`, nyní se dívá také do několika často používaných adresářů, které nemusí být v cestě (opravu poslal Ivo Panáček) součástí distribuce je nyní `mod_czech` kompatibilní soubor `cestina.html` (vyrobil a dal k dispozici Ivo Panáček) verze 2.1.5 (3.5.2000) Apache + mod_ssl: při sub-requestu se nyní dává zpět SSL kontext, aby mod_ssl mohl udělat příslušná ověření; to mimo jiné znamená, že direktiva `SSLRequireSSL` funguje tak jak má (našel Petr Šimek) opravena další chyba zpracování uvozovek/apostrofů v odkazech (našel Robert Janáček) Apache: na `csacek_info` stránce se vypisuje i to, jestli byl modul zkompilován s podporou EAPI (podpora EAPI je nutná pro korektní funkci CSáčku s `mod_ssl`) Apache: opravena chyba zanesená při úpravách ve verzi 2.1.4 - některé konfigurační parametry byly pro virtuální servery ignorovány a vždy se použily globální hodnoty (našel Pavel Kalián) verze 2.1.4 (31.3.2000) oprava přepisování hlaviček `Set-Cookie` - při určitém tvaru cookie CSáček alokoval méně paměti než potřeboval a mohl přepsat kus náhodné paměti, což vedlo nejčastěji k brzkému pádu serveru (našel: Tomáš Zeman) přidáno FAQ seznam nakonfigurovaných CSáček serverů se udržuje jako globální (předtím se pro Apache sdílel jen seznam virtuálních serverů); direktiva `csacekServers` může být použita jen v konfiguračních souborech serveru (tedy nesmí být v `.htaccess`) cstools: opraven překlad Ú (U s čárkou) a Ů (U s kroužkem) v kódování bratří kameníků (oprava: Tomáš Churavý) při úpravě hlavičky `Accept-Charset` se jméno aktivní části (viz `PART`) přidá jen tehdy, pokud se nerovná prvnímu tokenu implementována záplata na podivné chování PHP4v3 znak označující CSáček "tag" (defaultně `?`) lze změnit pomocí parametru `--with-cmdtag` skriptu `configure` `PART`: opraveno zpracování atributu `OTHER` zrušena vlastnost CSáčku, kdy se v URL typu `http://server/.XXX/neco/` část `XXX` vzala jako název části a předalo se URL `http://server/neco/` - není užitečná z způsobuje problémy (na chybu upozornil Petr Linke) CGI: server Zeus CGI skriptům tvrdí, že klient podporuje HTTP/1.1 i když to tak není (`SERVER_PROTOCOL` je vždy `HTTP/1.1`) - pokud CGI CSáček jede pod Zeusem, neveří mu v tomto ohledu ani slovo a vždy použije jen vlastnosti `HTTP/1.0` doc: přidán velmi stručný soubor `INSTALL` - slouží pro odpíchnutí a informaci, kde lze najít více opravena chyba, kdy pro určité stránky CSáček předal na výstup jen jejich část (s nalezením chyby pomohl Honza Dušák a Radek Vybíral) při parsování dokumentu na CSáček příkazy se ošetřují i případné chyby v HTML kódu - jako konec příkazu se vždy povačuje první nalezené `>`, i když je v uvozovkách při přepisování URL se názvy HTML tagů do výstupu píší ve stejné podobě, jako byly uvedeny v originále změna průběhu hádání podporovaného kódování při implicitním překódování - `Accept-Language` se dává větší váha, `Accept-Charset` se parsuje správně tak, aby se použilo kódování s nejvyšší prioritou (`iso-8859-2` je stále preferováno) - založeno na diskuzi s Petrem Součkem Poláci, Maďaři dostávají dokumenty také v `iso-8859-2`, jako Češi a Slováci Apache, ISAPI: pročištěn kód spravující konfiguraci CSáčku změna struktury `csa_params_t` - místo sady "flagovitých" atributů se používají bitové příznaky v jediném atributu `flags` debug pod MS Windows: místo čísla procesu se používá náhodné číslo - PID se pod Windows příliš rychle recykluje `CSA_USE_CHARSET` už není nastavitelné, `charset` se v hlaviččce `Content-Type` posílá vždy - i tehdy, pokud je výstupní kódování `US-ASCII` cstools: přidány aliasy `lat`, `iso` a `koi` - používá je `mod_czech` a usnadní se tak přechod na CSáček (oprava: Zdeněk Šindelář) verze 2.1.3 (25.2.2000) změna licence na BSD-like Apache: CSáček funční i se Strongholdem (testováno na Stronghold 2.4.2 pro NetBSD) URL se v sekcích `<SCRIPT>` nepřepisuje - CSáček má problémy s JavaScriptem a ostatními klient-side skripty; tohle je dočasné řešení, než bude implementována opravdová oprava pročištěn kód vyhledávající CSáček příkazy, je nyní optimalizován pro obvyklý případ, kdy nalezená sekvence `<--` nebo `<?` neoznačuje CSáček příkaz zoptimalizován a pročištěn kód starající se o překódování řetězců opravena chyba v `csa_decodequery()` - pokud vstup obsahoval sekvence `%XY`, posunul se špatně ukazatel pozice a kód se pokoušel číst za koncem předaného řetězce ISAPI: pročištěno zpracování vstupních dat (adaptace na změny `csa_decodequery()` v minulé verzi) opraveno vypisování seznamu CSáček serverů v `csacek_info` `configure`: jména parametrů a vypisované zprávy poangličtěny, mírné změny názvů (podrobněji viz `./configure --help`); jako název defaultního kódování serveru lze použít jakýkoli název podporovaný v příkazech `MYCHARSET` nebo `META` tagu mezi přípustné názvy kódování přidáno `iso8859-2` a `iso8859-1` - tato mutace správných MIME názvů se občas používá verze 2.1.2 (25.1.2000) CSáček má své logo! Apache: přidána podpora `mod_ssl` Apache, CGI: odstraněny problémy s uploadem souborů, nyní funční (našel: Michal Krause) ISAPI: opraveny problémy s autentifikací typu NTLM (našel: Ladislav Kubeš) přepsán a zoptimalizován kód udržujíjí seznam CSáček serverů, rychlost vyhledávání pro seznam o velikosti 1000 se zvýšila asi 50-80x, pro 50 serverů asi 6-10x Apache: opravena chyba s `apxs` - `apxs` se nevolalo ani v případě, že ho `configure` našel (našel: Radek Vybíral) hlavička `Vary` se teď už opravdu posílá tehdy, když má (našel: Hynek Med) přidána podpora XML tagu `XML` - pomocí tohoto tagu se indikuje mimo jiné použité kódování znaků; CSáček použije jednak pro určení, v čem je daný dokument napsán, druhak ji přepíše tak, aby odpovídala kódování, do kterého se dokument převádí CSáček části: pokud název části nebyl uveden v URL předávaného dokumentu, necpe se ani do přepisovaných URL opravena chyba zpracování `Range` v případě, že klient podporuje HTTP/1.1 a/nebo kompresi dokumentace: dopsán podrobný průvodce instalací CSáčku Apache: nyní je možné modul používat se zapnutým laděním (`--with-debug`) - `csa_debug_register_cleanup()` chybně nezadalo child_cleanup, což vedlo k dereferenci nulového ukazatele např. při spouštění CGI přidán CSáček příkaz `csacekServers`, syntaxi má podobnou jako stejnojmenná konfigurační direktiva pročištěna struktura `csa_params_t`, význam jednotlivých "flagovitých" atributů převzal atribut `flags` `csa_decodequery()` zoptimalizováno a vrací nyní vždy řetezec o stejné délce jako byl ten původní; umožňuje to rapidní zjednodušení volajícího kódu (zejména v ISAPI modulu) - z Apache modulu byl nyní zbytečný kód odstraněn, z ISAPI ještě ne úpravy kódu tak, aby byl zkompilovatelný pokud možno bez warningů i v případě zapnutí velmi přísných kontrol kompilátoru gcc; příslušné parametry se při kompilaci CGI použijí tehdy, pokud se skriptu `configure` dá parametr `--with-debug` verze 2.1.1 (15.11.1999) opravena fce `csa_strcasestr()` aby se hledalo opravdu hledalo nezávisle na velkých/malých písmenech ve všech případech; chyba se projevila například tak, že Apache nebo ISAPI CSáček URL typu `http://nekde/guess/cosi.html` přesměroval na `http://nekde/guessISO-8859-2/cosi.html` místo na `http://nekde/ISO-8859-2/cosi.html`. Našel Jakub Rosa. ISAPI: opravena potencialní chyba při předávání chunkovaných dat - pokud server posílal hlavičky na několikrát a `Transfer-Encoding` nebylo až v té poslední dávce, jádro CSáčku považovalo data za nechunkované Apache: direktiva `csacekChangeURL` nyní funguje. Opravu poslal: Pavel Krebs při přepisování META tagu se použijí stejné uvozovky jako byly ve zdroji; také opravena chyba ve vypisování atributu `HTTP-Equiv`, kde jeho hodnota se neukončovala uvozovkou ISAPI, Apache: pokud na začátku URL byl jakýkoli podřetězec `guess`, `whichcode` nebo `__CHARSET__`, bralo se to chybně jako označení cílového kódování/akce; CSáček při následném zpracování zahlásil "Bad output code name". Našel Jakub Rosa. ISAPI: expirující verze psala do Event Logu řetězec `991026:991126` nebo podobný; jednalo se o omylem zanechaný ladicí výpis CGI: při subrequestu se nyní používá HTTP/1.1 a v odpovědi serveru se nyní posílají všechny hlavičky i tehdy, zpracovává-li se HTTP/0.9 požadavek - nyní HTTP/0.9 funguje proti Apache serveru i v případě, že požadavek jde přes CGI CSáček CSáček nyní posílá hlavičku `Vary` - nutné proto, aby případná proxy keš věděla, podle čeho se odpověď mění a klientům nabídla pro ně vhodnou verzi dokumentu. Našel Hynek Med. překódovávají se i chybové odpovědi od serveru Apache: opravena chyba při použití chunked kódování (tj. proti HTTP/1.1 klientům), kdy se chunked odpověď nezakončovala sekvencí `0\r\n\r\n`. Našel Patrik Rak. Apache: použití direktivy `csacekRecodeInput` nyní nezpůsobí pád serveru při čtení konfigurace Apache: opraveno zacyklení v případě, že HTTP/1.1 klient požádal o dokument delší než `X_CSA_OUT_BUFLEN_CHUNK` (tj. 8150) bajtů úprava dokumentace (INSTALL): defaultní RedHat konfigurace Apache používá direktivy `ClearModuleList` a `AddModule`, pokud má CSáček jako modul fungovat, je třeba na příslušné místo přidat direktivu `AddModule mod_csacek.c`, jinak CSáček není aktivní (a tedy "nefunguje") při přepisování tagů se použijí uvozovky nebo apostrofy tak, jak bylo uvedeno ve zdroji místo toho, aby se vždy použily uvozovky - znamená to, že např. následující JavaScript kód: `val = "<A HREF='http://nekde/neco.html'>"` je platný i po překódování CSáčkem verze 2.1.0 (23.9.1999) CSáček nyní funguje i jako ISAPI modul Apache: pokud je na systému k dispozici `apxs`, modul se s jeho pomocí rovnou i zkompiluje plná podpora HTTP/1.1 uvnitř CSáčku, včetně podpory `Range` a chunked kódování; CSáček také HTTP/1.1 klientům posílá data dokumentu průběžně, což šetří paměť i čas Apache, ISAPI: nová direktiva `csacekImplicitWork` - pokud se vypne, CSáček pracuje jen v případě, že kódování bylo explicitně určeno (tj. požadované URI bylo typu `.../toXXX/...`) Apache, ISAPI: nová direktiva `csacekServers`, direktiva `csacekServer` zrušena překódovává se cokoli, co má `Content-Type` začínající na `text/` - kromě `text/html` se všechny takové dokumenty zpracovávají jako by byly typu `text/plain` zrušen "příkaz" typu `<?proměnná?>` - praktické využití bylo jen pro `whichcode` (tam se to nyní dělá jinak) a jeho podpora zmanenala poměrně o dost víc práce při zpracování CSáček příkazů přidána základní podpora azbuky - CSáček umí překódovávat mezi `KOI8-R`, `ISO-8859-5`, `windows-1251` a `CP866`; podpora převodů azbuka <-> latinka a azbuka <-> Unicode bude přidána v 2.1.1 verze 2.0.9 (13.9.1999) `META` s označením kódování se nyní neruší, pouze se parametr `charset` přepíše na správnou hodnotu - MSIE naštěstí při ukládání (Save) dokumentu při případném převodu do jiného kódování přepisuje i `META` tag překódovávání dat serveru: pokud vzorek vypadá na `iso-8859-1`, pokračuje se v hledání - může se jednat o text, který jen náhodou obsahuje platné `iso-8859-1` znaky, ale jedná se ve zkutečnosti o text v `iso-8859-2`; např. tehdy, když text obsahuje jen znak 'ť' - v `iso-8859-1` je na stejné pozici ve znakové sadě jeden druh apostrofu Apache: při překódování dat od klienta se neupdejtovala hodnota vstupní hlavičky `Content-Length`, což mohlo vést k zajímavým efektům v případě, že tuto hodnotu někaterý modul používal k určení celkové délky vstupních dat; např. u PHP to vedlo k tomu, že se ke vstupním datům přidávalo náhodné "smetí" díky moc zejména Michalovi Krause za neocenitelnou pomoc při zjišťování, v čem je vlastně chyba přidána podpora několika dalších windows znaků: left single quotation mark, right single quotation mark, right double quotation mark (Petr Snajdr) verze 2.0.8 (31.8.1999) starší verze `mod_html` padala, pokud odpověd od CGI skriptu neobsahovala `Content-Type` - CSáček proto posílal jako `Content-Type` posílal `text/plain` v případě, že v původní odpovědi nebyl specifikován; nyní upraveno tak, aby se to dělalo jen u (Fast)CGI mutace a když opravdu CGI běží pod serverem s `mod_html` aktivním hádaní kódování a jazyka při implicitním překódovóní: pokud klient má `sk` nebo `cs` mezi preferovanými jazyky a neposlal `Accept-Charset`, pošli mu dokument v `iso-8859-2` -> eliminuje se z velke casti potreba delat DNS lookup Apache-SSL: novejsi verze (minimalne od verze 1.29) uz neni treba patchovat, staci v `apache_ssl.c` nastavit `SSL_IS_OPTIONAL` na `TRUE` z hlaviček `If-Modified-Since` se musí odstraňovat nestandardní parametr `length`, který používá MSIE - CSáčkem předaný dokument může mít jinou délku, než je fyzická velikost dokumentu a zbytečně se dokument předává znovu i tehdy, když se nezměnil opraven problém s kompilací pod AIX 4.2 nativním IBM kompilátorem verze 2.0.7 (13.7.1999) opraven nefunkční příkaz `csacekServer`: jméno serveru při vkládání do seznamu CSáček serveru nezkopírovalo do "trvalé" paměti a nechalo se zkopírované z dočasného poolu; díky tomu se později při testování hodnoty mohl pointr odkazovat na nějaké znovu využité místo a to mohlo obsahovat prakticky jakákoli data, pravděpodobně už však ne to původní jméno serveru; za určitých okolností to mohlo způsobit i pád CSáčku tato chyba neměla žádný vliv na direktivu `csacekServers` v konfiguraci serveru opravena stará chyba v `csa_DocParts()` - při použití `PART` ve tvaru `<? PART xx=yy OTHER=neco ?>` se při platném `OTHER` jeho text vypíše jen poprvé nebo po `<? PART ALL ?>` přepisování URL: neni-li v URL za CSáčkem uvedeno URI, připiš tam URI aktuálního dokumentu vč. `QUERY_STRING` - lze využít při odkazu na dokument v jiné jazykové verzi nebo třeba pro `whichcode` (v efektu je tato změna obdoba lampovského `select` až na to, že nepotřebuje, aby klient posílal hlavičku `Referer`) cstools: opravena velmi stara chyba v `cstools_guess_charset()` - pokud v textu byly nějaké CSáčkovi neznámé znaky, při procházení cstools_map[] mohl číst za koncem pole, což v závislosti na OS nemuselo mít žádný následek nebo mohlo způsobit pád CSáčka (objeveno při ladění ISAPI filtru) cstools: do tabulek přidán znak apostrof - ne ten klasický ', ale ten, vyskytující se v iso-8859-[12] a windows-1250 na pozici 180 Apache: zoptimalizováno zpracování dat při `POST`, nyní méně náročné na paměť komprese: dává se přednost deflate před gzip překódovávání dat od klienta do kódování serveru lze přepínat konfigurační direktivou, nastavení při kompilaci se používá jako default zoptimalizováno překódovávání uživatelských dat `csacek_info` předěláno, mimo jiné vypisuje konfiguraci platnou pro dané URL, informace lépe setříděny zlepšena podpora přepínání jazykové varianty - pokud URL obsahuje `.../to.XX/...` nebo `.../toGUESS.XX/...` a uživatel si vybral nějaké určité kódování, ta CSáčkovská část se přepíše tak, aby zachoval uživatelův výběr kódování CSáček na MS Windows: defaultní kodování změněno na `windows-1250`, samozřejmě lze změnit v konfiguraci (pro CGI jen přímou editaci `NT/NTcsa_config.h` a rekompilací) `User-Agent` se nyní nijak nepřenastastavuje - zbytečně to zaneřádí logy překódovávání dat od uživatele: opravena chyba v `cstools_guess_charset()`, která způsobila, že data obsahující znak "nový řádek" nebo tabelátor, se považovala za binární a nepřekódovala se opravena chyba v `csa_setitem()`: za určitých okolností se mohlo zacyklit (nedělalo problémy v současném kódu, projevilo se až při vývoji ISAPI CSáčka) `whichcode_template.html`: v anglické verzi opraveno několik gramatických chyb `csa_init_params()`: pokud je cfg NULL, použij csa_cfg_def - také opravuje známou chybu CSáčku 2.0.6, při které CSáček hlásil "Bad default source code name" Apache: opraveno předávání Set-Cookie, nyní se předájí správně všechny bez duplikací zdrojový kód nyní testován lintem, který objevil několik potenciálních chyb a write-only proměnných opraveno `csa_is_csacek_server()`: nyní opravdu funguje přepisování URL na ostatní CSáček servery `csa_process_headers()` - mirná optimalizace: nezpracovávej hlavičky, ktere stejně nebudou předány klientovi verze 2.0.6 (24.2.1999) pokud není výstupní kódování určeno explicitně a hádá se, použije se iso-8859-2 pro klienty, kteří nespecifikovali podporované kódování a chtějí dokument v češtině Apache: POST data se předávají korektně i v případě, že je vypnuté automatické překódování uživatelského vstupu do kódování serveru opravena chyba v převodu do Unicode (UTF-8), kód mírně zoptimalizován při převodu z windows-1250 do jiného kódování se převádí znaky `copyright sign`, `trade mark sign` a `registered sign` do příslušné HTML/textové podoby; do překódovacích tabulek přidána podpora pro znak `multiplication sign` zoptimalizováno "hádání" uživatelem podporovaného kódování/jazyka (eliminován DNS lookup v případě, že se už z hlaviček uhodne podporovaný jazyk a znaková sada), kód pročištěn a zčitelněn zoptimalizován kód pro úpravu URL zrušen banner (byl to HTML komentář, který CSáček vpisoval do předávaných HTML dokumentů) opravena poměrně stará chyba ve zpracování hlaviček vrácených sub-requestem - na jednom místě se kopírovalo o jeden znak méně než mělo, takže například hodnota hlavička `Content-Type: text/html; charset=iso-8859-2` se pochopila jako `text/htm` a dokument se pak vůbec nekonvertil komprese: kosmetické změny inicializačního kódu, žádné funční změny ošetření chyb klientů: MSIE 3.0 nepoužije "české", tj. CE fonty pro fonty explicitně definované pomocí tagu `FONT`, pokud dokument není ve `windows-1250`; CSáček nyní při převodu do jiného kódování než `windows-1250` upravuje `<FONT FACE=...>` tak, aby obsahovalo nejdříve CE variantu ošetření chyb klientů: MSIE 3.0 nezobrazí dokument, pokud tento má vyznačené kódování v hlavičkách a obsahuje tag `<!DOCTYPE>` s uvedeným URL na použité DTD; CSáček nyní to URL odstraňuje, aby to fungovalo i přes proxy verze 2.0.5 (15.11.1998) patch release - stabilní verze, doufejme už poslední v řadě 2.0.X porty: použití `alloca(3)` nyní portabilnější, CSáček nyní funguje i na systémech bez (fungujícího) `alloca(3)` Apache: pod Apache 1.1 nyní modul funguje (v kódu se používal Apachem 1.1 nepodporovaný návratový kód 301 Moved Permanently) (Fast)CGI: opraveno dublování hodnoty `Content-Length` při přeposílání POST dat opraveno dublování znaku '=' v URL (chyba zavlečena při opravě chyby s rovnítkem při zpracování parametrů typu `jméno=hodnota`); při té příležistosti přepsán kód kolem do mnohem čitelnější podoby CSáček lze nyní zkompilovat také pod AIX 4.2; získal jsem nový přístup na RS6000 stroj s AIXem, takže je to nyní jedna z podporovaných platforem CSáček lze nyni zkompilovat i pod HP-UX (testováno na HP/UX 10.20 s K&R cc); bohužel nemám stálý přístup k systému s HP/UX verze 2.0.4 (30.10.1998) patch release jedna velmi (alespoň půl roku) stará chyba - při zpracování parametru CSáček příkazu ve tvaru `jméno=hodnota` se příkaz špatně rozeznal a neprovedl pokud `hodnota` nebylo v uvozovkách a obsahovalo rovnítko aby se upravoval obsah HTML tagu `META`, `A`, `BODY` a `FORM`, musí být v dokumentu opravdu uvedeny jako HTML tag; předchozí implementace umožňovala, aby byly uvedeny i v HTML komentáři (`<!--` a `-->`), což mohlo někdy vadit Apache: opraven kód tak, aby modul opět fungoval i pod Apache 1.1 (Fast)CGI: při předávání dokumentu přímo ze souboru se špatně nastavil příznak, zda se jedná o HTML dokument - byl vždy false (má význam jen pro vypisování CSáček banneru) přepisování URL nefungovalo korektně, pokud přepisované URL už obsahovalo CSáček a začínalo na `csacekIgnorePrefix` (defaultně `/cgi-bin`) plain UNICODE opravy: odstraněna chyba při překódování do plain unicode (tj. klasického 2B zapisu); banner a URL při automatickém přepisu URL se nyní před vložením do výstupu překódují úprava zacházení se seznamem CSáček serverů - pokud není u direktivy `csacekServer` zadán port, chápe se to jako kterýkoli port - má význam pro automatické přepisování URL Netscape a komprese: v NC 4.5b2 je chyba, která způsobí, že za určitých okolností se místo dokumentu zobrazí prázdná stránka; tento problém se dá obejít například tak, že hlavička `Via` má délku jakéhokoli tokenu maximálně rovnu 60 bajtům Apache: opraveno zacházení s hlavičkami `Connection` a `Keep-Alive`, téměř nikdy by nyní server neměl posílat klientovi požadavek o uzavření spojení při Keep-Alive (tj. `Connection: close`) ani při předávání dynamických dat komprese: chybně se kompresovalo vše a ne jen text/html a text/plain; pod Apache toto "vše" znamená text/html, text/plain a dynamicky generovaná data; za určitých okolností se na začátek dat připsala inicializační hlavička komprese, ale obsah se nekompresoval --> data se pokazila `__LAMPACHARSET__` se nenahrazovalo správnou hodnotou, pokud se používalo implicitní kódování (tj. když URL bylo bez `/toXXX`) Apache: modul nešlo použít pod Apache 1.3X (na jednom místě bylo použito `table_get()` místo `ap_table_get()`) verze 2.0.3 (13.10.1998) patch release opravena chyba 2.0.2, kdy CSáček překódovával vše (a ne jen text/html a text/plain) do seznamu nazvu kodovani přidáno "ISO Latin 1" a "ISO Latin 2" - to druhé je časté (defaultní ?) nastavení preferovaného jazyka v Lynxu cstools & Apache: chyba v kódu měla za následek, že i řetězec pouze částečně odpovídající nazvu kódování se bral jako platný match; CSáček tak mohl zbytečně "ořezávat" URL před předáním requestu dále Apache rutinám a perfektně platné URL najednou nefungovalo dokumentace: v části Historie u 2.0.2 přepsána do háčkované češtiny, dodán uzavírající `</TT>` tag díky použití neinicializované proměnné se na některých architekturách/OS místo stránky jako HTML zobrazil dokument jako text spolu s částí hlaviček; nyní se vše zobrazuje korektně kdekoli verze 2.0.2 (11.9.1998) patch release definitivně (doufejme) opraveno zacyklení kódu starajícího se o "nadějné" zbytky řetězce začínajícího na "_" v pracovním bufferu Netscape servery: "správné" jméno virtuálního serveru se získávalo z `SERVER_URL`; to může obsahovat i číslo portu, s čímž se nepočítalo; nyní se na analýzu `SERVER_URL` používá `csa_parse_url()` Apache: Linux (a možná další OSy): kód předpokladal, ze `rewind()` udělá implicitní `lseek()` na začátek souboru, i když představa stdio o streamu je, že nebyl měněn - což vadí, protože se na několika místech zapisuje do souboru přes deskriptor (Apache kód, ne přímo CSáček) - výsledek byl, že na Linuxu se místo dokumentu vrátily špatné hlavičky a žádné tělo; nyní se místo `rewind()` volá `lseek()`, takže to funguje korektně všude (a ne jen na BSD systémech) opraveno nefungující `PART` v případě, že jmeno CGI skriptu mělo příponu, nepatřící do `PART` - například `.cgi` nebo `.exe` (fatální na NT serverech jedoucích pod IIS) cstools: opravena mapa x-mac-ce (prohozené I acute a I circumflex, špatný kód pro division sign) a cp852 (prohozené I acute a I circumflex); opraveno překódování UTF-->8bit kodování (kód nezvládal ciste 8bit znaky) čistě implementována podpora HTTP/0.9, HTTP/0.9 klientům se nyní neposílají hlavičky přidána podpora URL typu `http:/path/`, používané Mrkvosoftem (a podporovane také Netscape) WNT: urychlení kompilace pod MSVC++ použitím speciálních konstant pro preprocesor W32: distribuční `Makefile` a `copy_csacek.bat` nyní funguje také pod W95 Apache: CSáček je nyní defaultně _zapnutý_, tj. pokud nemá být aktivní, je ho třeba explicitně vypnout verze 2.0.1 (21.6.1998) patch release opraveno zacyklení při určitém výskytu retězce `__` v dokumentu, problém s whichcode (vypisování provedených příkazů `PART` do výstupu), CGI CSáček lze nyní bez problémů zkompilovat při použití metody HTTP vyzvedávání dokumentu, `__CHARSET_` se nyní nahrazuje správnou hodnotou i při implicitním hádání vystupního kodování specialně je ošetřeno, jestli klient žádá o dokument pomocí `HEAD` a pokud ano, tělo se vůbec neposílá; Apache si to bohuzel neošetřuje (alespoň ne ve verzi 1.2.6) verze 2.0 (3.6.1998) Během téměř osmiměsíční práce byl kód takřka kompletně přepsán a byla přidána podpora FastCGI a Apache. CSáček je možno bez problémů přeložit na NetBSD, Linuxu, Solarisu, IRIXu i MS Windows NT - a díky nasazení GNU autoconf by měl být CSáček bez větších problémů zkompilovatelný i na kterémkoli jiném modernějším Un*xu. CSáček nyní vždy posílá hlavičku `Content-Length` a pokud to klient zvládne, textové dokumenty kompresuje. Byla přidána podpora Unicode ve formě UTF-8. Je podporováno vyznačení kódování dokumentu pomocí tagu `META`. Příkazy CSáčku jsou nyní implementovány čistě, s použitím lexikálního analyzátoru. Mohou nyní být na několik řádků a může jich být na jednom řádku i víc. Je také možné, aby na jednom řádku byl příkaz a zároveň HTML text. Při tom všem CSáček funguje rychleji -- CGI CSáček 2.0b1 je přibližně 1.2x - 2x rychlejší než CSáček 1.3.5. verze 1.3.4 (listopad 1997) patch release - jen opraveny chyby nalezené ve verzi 1.3.3 verze 1.3.3 (červen 1997) patch release - jen opraveny chyby nalezené ve verzi 1.3.2 označení verze přesunuto do samostatného souboru `version.h` verze 1.3.2 (únor-březen 1997) CSáček byl plně naportován na NT DECODEQUERY je nyní doporučená volba opravena chyba, kdy se pri určitém tvaru příkazu `BAR` CSáček zacyklil opravena chyba s připisováním znaku ^Q do QUERY_STRING při určité délce předaného QUERY_STRING opravena chyba dealokace pole ve `freecmdarr()` (mohla se projevit u příkazů jako je např. `PART`, tj. těch, které mohou mít víc parametrů) opravena chyba v `connect_server()` - špatné mapování adresy na IP adresu (projeví se pokud CSáček nebyl zkompilován s LOCALHOSTHACK) při kompilaci je možno zadat seznam přípon označujících soubory, které se mají vždy kódovat metodou `http` CSáček filtry byly odstraněny a nadále nejsou podporovány; pokud bude poptávka, snad se jednou zas objeví v jiné formě `RESTRICTDOMAINS` a `MULTIPART` bylo sloučeno dohromady pod hlavičkou `MULTIPART` je-li aktivní `NOCODE`, příkazy `PART, DOMAIN` se ignorují byly rozšíženy možnosti definování lišty s nabídkou kódování přímo v dokumentu; lze dynamicky měnit hlavičku české i anglické verze, závěr a pojmenování linky na volbu pomocí `whichcode` z CSáčku byl odstraněn kód, starající se o SSI; nechává se nyní zcela na straně serveru volba NPH spolu se souvisejícím kódem je také minulostí pokud požadované URL ukazuje na adresář a nekončí na /, CSáček klienta přesměruje na `URL/` verze 1.3.1 (únor 1996) - interní velmi chybová verze, nebyla dána veřejně k dispozici 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`) 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í 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 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 "systé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ů Zpět

This page is part of documentation of C-SaCzech. It has been created and is maintained by Jaromír Doleček, dolecek@sky.cz
$Id: historie.html,v 1.2 2002/03/10 20:03:31 dolecek Exp $