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