[ConvPL] by kravietZ                                                10.01.96
                                                                    (Mazovia)


                         Uniwersalny konwerter
                       standardw polskich znakw
                                 v2.00


ConvPL v2.00 jest programem freeware, rozprowadzanym wraz z kodem
rdowym. To co go wyrnia od innych tego typu programw, to liczba
obsugiwanych standardw, dowolno kierunkw konwersji i maksymalnie
uproszczona - cho dajca wiele moliwoci - linia polece.


:SKADNIA:
~~~~~~~~~~

        cpl <nn>[<konwersja>] [<wejscie.txt>] [<wyjscie.txt>]

Parametr <nn> to dwie cyfry/litery, okrelajce standard rdowy (pierwsza)
i docelowy (druga) przeprowadzanej konwersji.

Parametr <konwersja> okrela rodzaj opcjonalnie stosowanej konwersji
zakoczenia linii pomidzy DOSem a Unixem i Amig.

Parametry "wejscie.txt" i "wyjscie.txt" to nazwy plikw odpowiednio
rdowego i docelowego.

********************************************************************
Podanie tylko jednej nazwy - pliku wejciowego - spowoduje zapisanie
tekstu po konwersji pod t sam nazw.
********************************************************************


:OBSUGIWANE STANDARDY:
~~~~~~~~~~~~~~~~~~~~~~~

Dostpne standardy (podajemy dwie cyfry/litery):

         0: bez polskich liter (ASCII)       a: Microvex
         1: Mazovia                          b: <Amiga> Amiga PL
         2: FidoMazovia                      c: CP/J (Elwro 800 Junior)
         3: IBM-Latin/2 (CP852)              d: <Amiga> FAT
         4: ISO-Latin/2 (ISO-8859/2)         e: Windows 3.0 (CP1250)
         5: DHN                              f: <Amiga> XJP
         6: CSK                              g: Ventura
         7: Cyfromat                         h: Macintosh
         8: IEA                              i: TeX PL
         9: LOGIC                            j: Corel 2.0

Podanie "?" spowoduje prb rozpoznania zastosowanego w tekcie standardu.
Wicej na ten temat znajdziesz w pliku qpl.txt.

:skrty:

Zamiast najczciej stosowanych konwersji mona stosowa skrty. Podajemy
wwczas tylko jedn liter:

             l: Mazovia na IBM-Latin/2
             m: IBM-Latin/2 na Mazovi

             x: Mazovia na ASCII
             y: IBM-Latin/2 na ASCII

             z: Fido-Mazovia na Mazovi

Dowolno konwersji jest cakowita, z jednym wyjtkiem. Standard ASCII nie
moe by standardem rdowym konwersji (przyczyna jest chyba do oczywista).

:konwersja zakocze linii:

ConvPL umoliwia rwnoleg konwersj pomidzy tekstem spod DOSa, a tekstem
spod Unixa czy Amigi. Rodzaj docelowej konwersji okrelaj parametry:

          -: konwersja do tekstu Unixa (Amigi)  -> NL
          =: konwersja do tekstu DOSa           -> CR+LF

Zmieniem wystpujce w poprzednich wersjach oznaczenia tych parametrw
(/,\), poniewa backslash jest znakiem specjalnym pod U*xem. Nowe ustawienia
mona rwnie atwo zapamita: pod U*xem koniec linii to jeden znak (NL),
wic jedna kreska: "-"; pod DOSem s to dwa znaki (CR+LF), std dwie
kreski: "=".

:PRACA W TRYBIE FILTRU:
~~~~~~~~~~~~~~~~~~~~~~~

ConvPL moe pracowa rwnie w trybie filtru. Brak nazw plikw we/wy
spowoduje pobranie tekstu z standardowego urzdzenia wejcia - stdin
(klawiatura) i zapisanie go do standardowego wyjcia - stdout (monitor,
terminal, drukarka). Przykady:

        cpl l                      - kada linia wpisywana z klawiatury bdzie
                                     pojawiaa si poniej po wciniciu
                                     <Enter>, znaki z kodu Mazovia bd
                                     zamieniane na IBM Latin 2

        cpl l <joke.txt >prn       - konwersja pliku joke.txt i wysanie
                                     wynikw bezporednio na drukark (DOS);

        cpl l <joke.txt >joke.txt - rwnoznaczne poleceniu "cpl l joke.txt"

Jeli nie chcemy zamieca sobie dysku, wydajemy nastpujce polecenia:

        cpl l <joke.txt >nul            (MSDOS)

Tryb filtru umoliwia rwnie przetwarzanie tekstu w potoku (pipe).

Przykad:

      type joke.txt joke2.txt | cpl 14/ >joke3.txt

Przyjmujc, e pliki joke.txt i joke2.txt s napisane oryginalnie
w Mazovii i pod MSDOSem, takie polecenie spowoduje poczenie obu plikw,
konwersj z Mazovii na ISO-Latin-2, i przy okazji z CR+LF -> NL, a nastpnie
zapis do pliku joke3.txt.

Uruchamiajc ConvPL w tym trybie naley uwaa na pomyki takie jak ta:

        cpl l joke.txt >prn

-tekst zostanie przekonwertowany zgodnie z regu 13 (skrt "l"), ale na
drukark nie zostanie wysany, gdy ConvPL bdzie go zapisywa do pliku
joke.txt a nie na standardowe wyjcie. W rzeczywistoci powysze (bdne)
polecenie oznacza: konwertuj plik joke.txt, zapisujc wynik pod t sam nazw,
za na drukark wysyaj wyjcie przez program normalnie wywietlane na ekranie,
czyli komunikaty.

Pamitajmy: aby uruchomi ConvPL w trybie filtru, potok danych musi
przychodzi ze stdin i wychodzi na stdout. Jeli nie wiesz o co chodzi,
to poczytaj o potokach, filtrach oraz roli symboli <, |, > itp.
w poleceniach DOSa i Unixa.


:UWAGI:
~~~~~~~
:komentarz do standardw:

Za definicj Amiga PL dzikuj Marcinowi Kdzioce <2:484/15.16@fidonet>.

Definicje dodane w wersji 1.75 udostpni mi Edwin Wierszelis
<2:482/16@fidonet>, autor konwertera KPN.

Fido-Mazovia jest pformalnym standardem, przyjtym w rodowisku sieci
Fido. Jedyna rnica w stosunku do klasycznej Mazovii to zamiana znaku
c' (141) na c-cedilla (135), wynikajca ze wzgldow technicznych.

Standard IBM/Latin-2 (CP852), rozpowszechniony gwnie w rodowisku DOSa,
jest lansowany m.in. przez Micro$oft.

ISO-8859/2, znany te jako ISO-Latin/2 jest standardem rozpowszechnionym
zwaszcza w systemach unixowych, pracujacych pod X-windowsami. Jest rwnie
standardem zalecanym przez Polskie Normy.

Standard FAT jest jednym z amigowskich dialektw, znalezionym w diskmagu
pt. FAT przez Edwina Wierszelisa.

Standard Windows 3.0 jest uproszczon, 8-bitow wersj UniCode, zdefiniowan
jako strona kodowa 1250 (CP1250). Znany te jako Windows-EE, czyli strona
kodowa dla Europy Wschodniej.

Standard DHN jest rozpowszechniony wraz z polskim ChiWriterem.

:konwersja tekstu Unix<->DOS:

Pod Unixem kada linijka tekstu koczy si znakiem NL (new line) o kodzie 0xa,
rwnoznaczny DOSowemu LF (line feed). Pod DOSem zakoczenie linii stanowi
para znakw CR+LF, czyli 0x0d,0x0a. Parametr "-" wymusza zakoczenie linii
znakiem NL, za "=" - par CR+LF. Brak okrelonego kierunku konwersji
nie spowoduje adnej zmiany kocw linii w pliku wynikowym.

:kod rdowy:

Program by z powodzeniem kompilowany Borlandem 3.1, gcc 2.7.0 pod Linuxem
(a.out) oraz DJGPP pod DOSem (gcc 2.6.3). Prosz o kontakt w razie wystpienia
niekompatybilnoci kodu rdowego w innych systemach.

:licznik linii:

Typowy "wodotrysk". Zwalnia prac o ok. 30%. Standardowo wyczony, w celu
wczenia trzeba przekompilowa rda bez opcji NO_LINE_COUNT. Licznik jest
zawsze wyczony podczas pracy w trybie stdin/stdout (czyli zazwyczaj jako
filtr, CGI itp.).

:inne opcje:

Opcja "L" w linii polece wywietli licencj uytkowania programu.
Opcja "S" wywietli tabelk wszystkich znanych mi standardw polskich
znakw.

:HISTORIA:
~~~~~~~~~~

1.0     pierwsza wersja (dla pakietu PGP-pl);
1.2     definicje standardw przeniesione do polish.c; par nowych definicji;
1.3     Amiga PL; nowy ukad polish.c;
1.5     nieco przyspieszona praca; nowy kod rdowy, makefile;
1.6     skrty dla najczciej uywanych konwersji; tryb stdin/stdout (filtr)
1.7     konwersja midzy tekstem unixowym (amigowym) i DOSowym
1.72    licznik linii
1.75    nowe definicje (Win 3.0, FAT, XJP, CP/J);
1.76    nowe definicje (Ventura, Macintosh, TeX PL i Corel);
1.90    dodana konwersja wielu plikow, pare innych zmian;
2.00    napisany w 90% od nowa, usunite stare pluskwy, wprowadzone nowe ;)
        dodane rozpoznawanie standardow

W planach:
        * 'spolszczanie' cyrylicy
        * kody wieloznakowe
        * znaki globalne, exclude

..............................................................................
Autor            : Pawel Krawczyk <kravietz@pipeta.chemia.pk.edu.pl>
                                  <2:486/18.4@fidonet>
Najnowsza wersja : ftp://pipeta.chemia.pk.edu.pl/pub/convpl/cpl200.zip

