Nasz program pozwala automatycznie (w spos≤b niewidoczny dla u┐ytkownika) dokonywaµ konwersji znak≤w wy╢wietlanych na ekranie, oraz znak≤w wprowadzanych z klawiatury. Od wersji 1.2 program pozwala tak┐e wyr≤┐niaµ (podkre╢laµ) znaki w wypadku gdy terminal nie potrafi wy╢wietlaµ ``normalnych'' polskich liter (czyli wtedy zamiast ▒, µ, Ω mamy podkre╢le╢lone a, c, e, itp...). Nowa wersja potrafi tak┐e obs│ugiwaµ klawiaturΩ - naci╢niΩcie znaku ` (lewy apostrof) a nastΩpnie odpowiednie litery │aci±skiej, powoduje wprowadzenie odpowiedniej litery polskiej (np. `a to ▒, `c to µ, `x to ╝ a `z to ┐). Sam lewy apostrof uzyskuje siΩ naciskaj▒c go dwa razy.
Wszystkie opisane powy┐ej funkcje s▒ oczywi╢cie opcjonalne i to kt≤re z nich s▒ w│▒czone ustalamy przy uruchamianiu programu.
Po ╢ci▒gniΩciu program kompilujemy standardowym poleceniem
cc -o ogonki ogonki.cProgram jest napisany w spos≤b mo┐liwie standardowy, dlatego powinien skompilowaµ siΩ bez problem≤w na wiΩkszo╢ci system≤w UNIX. Je┐eli na kt≤rym╢ system≤w wyst▒pi▒ problemy, proszΩ o kontakt, postaram siΩ pom≤c w miarΩ mo┐liwo╢ci (proszΩ dok│adnie opisaµ co sprawia problemy w czasie kompilacji). To o czym ju┐ wiem - to problem z funkcj▒ usleep. Je┐eli w czasie kompilacji system zg│asza ┐e nie mo┐e znale╝µ funkcji bibliotecznej usleep, to z programu mo┐na usun▒µ linijkΩ
usleep(SLEEP);Spowoduje to jedynie tzw. `aktywne czekanie' programu, przez co bΩdzie on wykorzystywa│ ca│y wolny czas procesora, ale z regu│y nie sprawia to du┐ych problem≤w, tyle ┐e jest rozwi▒zaniem bardzo `nieeleganckim'.
ogonki -lProgram wypisze znane mu standardy. Ich lista mo┐e wygl▒daµ r≤┐nie, bowiem mo┐liwe jest zdefiniowanie tych standard≤w w oddzielnym pliku. Standardowo jednak dostΩpne s▒ ascii (czyli brak polskich liter), iso (ISO-8859-2, norma w Internecie), cp1250 (standard wewnΩtrzny Windows), cp852 (wewnΩtrzny standard dla DOS'u), oraz mac (standard stosowany w komputerach Macintosh).
Drugim - bardziej praktycznym - sposobem wywo│ania programu, jest podanie sposobu przekodowywania oraz (opcjonalnie) programu jaki ma byµ uruchomiony. Formalnie wygl▒da to tak:
ogonki [-i from:to] [-o from:to] [-u] [-s] [prog [args]]Poszczeg≤lne opcje oznaczaj▒:
ogonki -o iso:ascii -i kascii:iso -u tinPrzy takim uruchomieniu, wszystkie polskie znaki ze standardu ISO zostan▒ przekodowane do ich odpowiednik≤w ASCII oraz wyr≤┐nione przez podkre╢lenie. Dodatkowo bΩdziemy mogli wprowadzaµ polskie znaki przy u┐yciu klawisza ` i odpowiedniej litery │aci±skiej.
ogonki -i cp852:iso -o iso:cp852 pineI od tego momentu zar≤wno znaki wy╢wietlane na ekranie, jak i te wprowadzane z klawiatury, s▒ prawid│owo konwertowane.
#define PLSTDFILE "/usr/lib/plchars.dat"NastΩpnie w tak zdefiniowanym pliku nale┐y zapisaµ wszystkie standardy jakie maj▒ byµ rozpoznawane przez program (│▒cznie ze standardem ASCII, chyba ┐e nie bΩdzie on u┐ywany). Format pliku jest nastΩpuj▒cy:
nazwa opcje kod_▒ kod_µ kod_Ω ... kod_¼ kod_»Nazwa to po prostu nazwa - takiej bΩdzie potem trzeba u┐ywaµ w opcjach przy uruchamianiu programu. opcje nale┐y ustawiaµ zawsze jako 0 - w tej wersji pozycja ta nie jest wykorzystywana, ale standardy o opcji r≤┐nej od zera nie zostan▒ odczytane. NastΩpnie nale┐y podaµ kody kolejnych polskich liter, jako liczby dziesiΩtne.
Poza liniami opisuj▒cymi poszczeg≤lne standardy plik mo┐e zawieraµ komentarze - musz▒ siΩ one zaczynaµ od znaku # umieszczonego w pierwszej kolumnie.
A oto przyk│adowy plik opisuj▒cy kilka standard≤w:
# # Plik z definicjami polskich liter w roznych standardach... # # A C E L N O S Z' Z. a c e l n o s z' z. #--------------------------------------------------------------------------------------- Mazovia 0 143 149 144 156 165 163 152 160 161 134 141 145 146 164 162 158 166 167 ISO-Latin-2 0 161 198 202 163 209 211 166 172 175 177 230 234 179 241 243 182 188 191 Windows-EE 0 165 198 202 163 209 211 140 143 175 185 230 234 179 241 243 156 159 191 Cyfromat 0 128 129 130 131 132 133 134 136 135 137 138 139 140 141 142 143 145 144 DHN 0 128 129 130 131 132 133 134 136 135 137 138 139 140 141 142 143 145 144 Ventura 0 151 153 165 166 146 143 142 144 128 150 148 164 167 145 162 132 130 135 ELWRO-Junior 0 193 195 197 204 206 207 211 218 217 225 227 229 236 238 239 243 250 249 Mac 0 132 140 162 252 193 238 229 143 251 136 141 171 184 196 151 230 144 253 AmigaPL 0 194 202 203 206 207 211 212 218 219 226 234 235 238 239 243 244 250 251 TeXPL 0 129 130 134 138 139 211 145 153 155 161 162 166 170 171 243 177 185 187 ISO-6937-2 0 135 129 141 232 134 130 131 132 133 128 145 144 248 134 146 147 148 149 ASCII 0 65 67 69 76 78 79 83 90 90 97 99 101 108 110 111 115 122 122