Cstools-3.44/0000755000000000000000000000000013454301506011571 5ustar rootrootCstools-3.44/Cstools.spec.dist0000644002656300235640000000512613453131633013304 0ustar Summary: Czech laguage tools Summary(cs): Nástroje pro práci s českým jazykem (koverze kódování, třídění) Name: cstools Version: __VERSION__ Release: 1 Group: Applications/Text Group(cs): Aplikace/Text Source: Cstools-%{version}.tar.gz Copyright: 1997--2002 Jan Pazdziora Buildroot: /tmp/cstools-root Packager: Milan Kerslager %description This package includes modules that are usefull when dealing with Czech (and Slovak) texts in Perl. Program cstocs: This version of popular charset reencoding utility uses the above mentioned module to convert text between various charsets. Module Cz::Cstocs: Implements object for various charset encodings, used for the Czech language -- either as objects, or as direct conversion functions. One of the charsets is tex for things like \v{c}. Module Cz::Sort: Sorts according to Czech sorting conventions, regardless on (usually broken) locales. Exports functions czcmp and czsort which can be used in similar way as as Perl's internals cmp and sort. %description -l cs V tomto balíku jsou moduly, které mohou být užitečné při práci s českými (a slovenskými) texty v Perlu. Program cstocs: Tato verze konverzího programu cstocs je založena na výše uvedeném modulu. Provádí převody kódování nad danými soubory nebo nad standardním vstupem. Modul Cz::Cstocs: Objekt, pomocí něhož je možno konvertovat mezi znakovými sadami bez nutnosti vnějšího programu -- buď formou objektovou, nebo přímými konverzními funkcemi. Jednou ze znakových sad je i sada tex, tedy např. \v{c}. Modul Cz::Sort: Implementuje čtyřprůchodové české třídění, nezávislé na použitých locales, protože kdo má správné locales, že? Exportuje funkce czcmp a czsort, které pracují podobně jako perlovské vestavěné cmp a sort. %prep %setup -n Cstools-%{version} %build perl Makefile.PL make make test %install rm -rf $RPM_BUILD_ROOT mkdir -p $RPM_BUILD_ROOT/usr # make install wants to append to perllocal.pod which is politically # incorrect behaviour; let's disable it: it's RPM that is supposed to # keep track of installed software make PREFIX=$RPM_BUILD_ROOT/usr \ DOC_INSTALL="-#" \ install # .packlist is incorrect and useless (see above) rm `find $RPM_BUILD_ROOT -name .packlist` %clean rm -rf $RPM_BUILD_ROOT %files %defattr(-,root,root,-) /usr/bin/* /usr/lib/perl5/site_perl/*/Cz/* %{_mandir}/man[0-9]/* %doc Changes README %changelog * Fri Dec 1 2000, included Fri Jun 28 2002 Milan Kerslager - fixes for 7.0 * Thu Jul 15 1999 Milan Kerslager - added descriptions (en, cs) Cstools-3.44/README0000644002656300235640000000502613453131670010720 0ustar ----------------------- Cstools ----------------------- Tools for dealing with Czech texts in Perl. I will be glad if anybody suggests to make these methods more general, including more languages and/or charsets. Maybe we should put these into the Convert:: namespace? Readme pro distribuci Cstools: V tomto balíku jsou moduly, které mohou být užitečné při práci s českými (a slovenskými) texty v Perlu. Modul Cz::Cstocs: Objekt, pomocí něhož je možno konvertovat mezi znakovými sadami bez nutnosti vnějšího programu -- buď formou objektovou, nebo přímými konverzními funkcemi. Jednou ze znakových sad je i sada tex, tedy např. \v{c}. Program cstocs: Tato verze konverzího programu cstocs je založena na výše uvedeném modulu. Provádí převody kódování nad danými soubory nebo nad standardním vstupem. Modul Cz::Sort: Implementuje čtyřprůchodové české třídění, nezávislé na použitých locales. Exportuje funkce czcmp a czsort, které pracují podobně jako perlovské vestavěné cmp a sort. Readme file for Cstools distribution: This package includes modules that are usefull when dealing with Czech (and Slovak) texts in Perl. Module Cz::Cstocs: Implements object for various charset encodings, used for the Czech language -- either as objects, or as direct conversion functions. One of the charsets is tex for things like \v{c}. Program cstocs: This version of popular charset reencoding utility uses the above mentioned module to convert text between various charsets. Module Cz::Sort: Sorts according to Czech sorting conventions, regardless on locale setting. Exports functions czcmp and czsort which can be used in similar way as as Perl's internals cmp and sort. Installation: Download the tar.gz, unpack it, change to the Cstools-* directory. Then do perl Makefile.PL make make test make install or you can use CPAN module and just type "install Cz::Cstocs". Ideas, bug reports: Any comments or bug reports concerning this module can be send to my e-mail address. Sending message to clpm is OK but send a copy to me since I might miss your post. Please provide as much information as possible, including version of Perl and this module, and mention "Cstocs" in the Subject -- it will help me solve the problem faster. Available: From your favorite CPAN site in the authors/id/JANPAZ/ directory. Copyright: (c) 1997--2002 Jan Pazdziora. All rights reserved. This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself. Cstools-3.44/Changes0000644002656300235640000001357713454301347011346 0ustar Revision history for Perl extension Cstools. 3.44 Sat Apr 13 06:32:54 UTC 2019 Accept different MIME output with new MIME modules. 3.43 Tue Apr 09 14:57:51 UTC 2019 Removed no-longer-working fi.muni.cz email address and URL. Fix curly bracket escaping, addressing Unescaped left brace in regex is deprecated here (and will be fatal in Perl 5.32). 3.42 Fri Oct 18 11:29:40 MET DST 2002 t/cstocs.t: now skips MIME tests if MIME::Words is not installed. 3.4 Thu Oct 17 13:37:18 MET DST 2002 Added support for MIME encoding. It requires MIME::Words from MIME-Tools, and fixes a few bugs in that code. 3.3 Thu Jul 4 16:23:05 MET DST 2002 Cz::Cstocs (3.3): removed extra empty line from 1250.enc, spotted by Dan Ohnesorg. The accent file updated with character names on the right side, instead of the character themselves. Cstools.spec: updated to match RH 7.0, contributed by Milan Kerslager and Ivo Panacek. cstocs: removed uninitialized value warning, spotted by Ivo Kocvara. Changes: cleanup. 3.2 Fri Jun 21 16:57:08 MET DST 2002 Cz::Cstocs (3.2): Added the utf8 encoding. cstocs: Added the -i option for in-place conversions. Version of the distribution bumped to match the version of Cz::Cstocs. 0.173 Tue Sep 5 14:38:28 MET DST 2000 Cz::Cstocs: Added the pc2a encoding that maps semigraphics to ASCII art. Provided by Jaroslav Kozisek, SuSE CR. 0.1772 Thu Aug 3 17:28:38 MET DST 2000 dbfcstocs.t: test failed if XBase module was not installed, found out by Mr. Schinder. 0.1771 Fri Jul 28 17:05:10 MET DST 2000 dbfcstocs: added the nomemo option. 0.177 Fri Jul 28 16:20:40 MET DST 2000 dbfcstocs: utility for charset conversion of dbf files added, suggested by Radim Gelner. 0.176 Tue May 16 13:12:38 MET DST 2000 Cz::Sort (0.68): Petr Debef brought the text of CSN 97 6030 and Cz::Sort (0.68) has been changed to be as compliant as possible to it. The changes affected rare diacritised letters and some extra marks from the ISO-8859-2 code page. 0.175 Tue May 9 15:10:35 MET DST 2000 cstocs: Use of uninitialized value fixed, reported by Jan Yenya Kasprzak. 0.174 Mon Apr 3 17:58:47 MET DST 2000 Cz::Sort: workaround for 5.6.0 bug with sort, pointed by Pavel Rychetsky. Test: workaround for systems that do not understand pipes and open2. 0.172 Sun Feb 13 18:17:22 MET 2000 Cz::Cstocs: Fixed alias expansion, reported by Tomas Ebenlendr. 0.171 Mon Jul 19 10:36:24 MET DST 1999 Cstools.spec.dist: the rpm spec file extended, thanks to Milan Kerslager. 0.170 Sun Jun 13 17:17:38 MET DST 1999 Cz::Cstocs: fixed incompatibility introduced by the Exporter coming with the 5.004_05* version of Perl, distributed (at least) with RH. 0.161 Wed May 19 10:36:54 MET DST 1999 Cz::Time: fixed error by one in month handling, spotted by Lukas Hejtmanek. 0.158 Sun Feb 21 14:06:42 MET 1999 Cz::Cstocs (3.17): changed error handling: new Cz::Cstocs now doesn't die, only returns undef and sets $@, reported by Jan Kasprzak. Added note about the typeglob syntax, thanks to Jan Krynicky. Added aliases, thanks to Jan Krynicky for making me to finaly do this. 0.157 Mon Dec 7 23:05:54 MET 1998 Cz::Cstocs (3.168): fixed bug that prevented importing functions not starting with underline. 0.156 Wed Oct 7 15:01:43 MET DST 1998 Cz::Cstocs (3.167): Added Chroatian \dj for eth, suggested by Dobrica Pavlinusic. Conversion function is now undef clean. 0.155 Mon Aug 17 17:23:03 MET DST 1998 Cz::Cstocs (3.166): Added mu to accent file. Added possibility use Cz::Cstocs '_1250_il2'; 0.154 Thu Jul 9 16:05:14 MET DST 1998 Cz::Cstocs (3.165): Fixed bug that caused ignoring the --onebyone flag. Help page of cstocs now lists available encodings. 0.153 Tue Mar 3 18:08:12 MET 1998 Makefile.PL: added bin/cssort to clean, spotted by Milan Zamazal. Cz::Cstocs (3.164): fixed to put the first occurence of character label to output, spotted by Mirka Misakova. 0.152 Cz::Cstocs: added diacritic_char. 0.151 Thu Dec 11 17:17:02 MET 1997 cssort: typo fixed typo; tests extended to include calling external cssort. 0.15 Tue Nov 25 13:08:20 MET 1997 Cz::Cstocs (3.162): Added encodings 1525, mac and macce by Marek Veber, bugs fixed in 1250, added items to accent file. Cz::Time: added utility package Cz::Time by Michael Mraka. 0.149 Thu Nov 20 15:56:37 MET 1997 Cz::Cstocs (3.161): Bug fix in 1250.enc, 224 changed to racute, spotted by Marek Veber. 0.148 Mon Nov 17 17:43:45 MET 1997 Cz::Sort (0.64): Added script cssort that does Czech sorting on input files, has similar options like cut. 0.132 Sun Nov 16 13:38:01 MET 1997 Cz::Cstocs (3.16): Docs fixed. Cz::Cstocs can now be used with conversion function specified, eg. use Cz::Cstocs 'il2_ascii'; will define il2_ascii for immediate use. 0.13 Sat Nov 15 18:12:33 MET 1997 Cz::Cstocs (3.155): The conversion functions now work on the whole list, return depends on context. Encoding tex added. 0.10 Fri Sep 26 23:04:27 MET DST 1997 Cz::Cstocs (3.13): kam encoding file fixed -- Uacute to Uring at 166, spotted by Petr Macháček. cstocs: generation of script cstocs improved, minor bug fixes. 0.08 Thu Jul 31 20:10:31 MET DST 1997 Cz::Cstocs (3.09): error by one fixed -- spotted by Petr Macháček. The il2 encoding file fixed (rcaron changed to racute). Readme in Czech added. 0.05 Fri Jul 11 13:41:43 MET DST 1997 Namespace Cz:: at CPAN officially registered and the modules named Cz::Cstocs and Cz::Sort. Cz::Sort: the functions exported are now czsort and czcmp. cstocs (3.07): now does the #! substitution when installed using make. 0.03 Sun Jul 6 20:41:47 MET DST 1997 Cstocs (3.06): fixed the problem with handling long options. Cssort (0.62): now implemented through cscmp function that compares two scalars. 0.02 Wed Jun 18 16:13:20 MET DST 1997 First version released. Contains modules Cstocs (3.03) and Cssort (0.6). 0.01 Sun Jun 15 13:33:44 MET DST 1997 First Perl version. Cstools-3.44/META.json0000644000000000000000000000142413454301506013213 0ustar rootroot{ "abstract" : "unknown", "author" : [ "unknown" ], "dynamic_config" : 1, "generated_by" : "ExtUtils::MakeMaker version 7.34, CPAN::Meta::Converter version 2.150010", "license" : [ "unknown" ], "meta-spec" : { "url" : "http://search.cpan.org/perldoc?CPAN::Meta::Spec", "version" : 2 }, "name" : "Cstools", "no_index" : { "directory" : [ "t", "inc" ] }, "prereqs" : { "build" : { "requires" : { "ExtUtils::MakeMaker" : "0" } }, "configure" : { "requires" : { "ExtUtils::MakeMaker" : "0" } } }, "release_status" : "stable", "version" : "3.44", "x_serialization_backend" : "JSON::PP version 2.97001" } Cstools-3.44/Cz/0000755000000000000000000000000013454301506012145 5ustar rootrootCstools-3.44/Cz/Cstocs/0000755000000000000000000000000013454301506013403 5ustar rootrootCstools-3.44/Cz/Cstocs/Getopt.pm0000755002656300235640000000601007507075636013463 0ustar package Cz::Cstocs::Getopt; use strict; use Cz::Cstocs; use Getopt::Long; sub usage { print_version(); print STDERR <{$key}; ### print "Key $key -> $value\n"; $getopt_config_hashref->{$key} = \$options{$value} unless ref $value; } my %getopt_config = ( 'null' => sub { $options{'fillstring'} = ''; }, 'fillstring=s' => \$options{'fillstring'}, 'nofillstring' => sub { $options{'nofillstring'} = 1 }, 'usefillstring' => sub { $options{'nofillstring'} = 0 }, 'onebyone' => sub { $options{'one_by_one'} = 1; }, 'onebymore' => sub { $options{'one_by_one'} = 0; }, 'noaccent', sub { $options{'use_accent'} = 0; }, 'nochange', sub { $options{'use_accent'} = 0; }, 'dir=s' => \$options{'cstocsdir'}, 'inputencoding=s' => \$options{'inputenc'}, 'outputencoding=s' => \$options{'outputenc'}, 'help' => \&usage, 'version' => sub { print_version(); exit 0; }, 'debug' => sub { $Cz::Cstocs::DEBUG = 1; }, %$getopt_config_hashref ); if (grep { /--/ } @ARGV) { Getopt::Long::GetOptions(%getopt_config); } elsif (@ARGV < 2) { usage(); } my ($inputenc, $outputenc); if (defined $options{'inputenc'}) { $inputenc = $options{'inputenc'}; delete $options{'inputenc'}; } else { $inputenc = shift @ARGV; } if (defined $options{'outputenc'}) { $outputenc = $options{'outputenc'}; delete $options{'outputenc'}; } else { $outputenc = shift @ARGV; } my $tag; for $tag (keys %options) { delete $options{$tag} unless defined $options{$tag}; } print STDERR "Calling new Cz::Cstocs $inputenc, $outputenc\n" if Cz::Cstocs::DEBUG; my $convert = new Cz::Cstocs $inputenc, $outputenc, %options; $options{'inputenc'} = $inputenc; $options{'outputenc'} = $outputenc; if (wantarray) { return ($convert, $options); } return $convert; } 1; Cstools-3.44/Cz/Cstocs/enc/0000755000000000000000000000000013454301506014150 5ustar rootrootCstools-3.44/Cz/Cstocs/enc/koi8.enc0000644002656300235640000000277106436534373013776 0ustar 32 space 33 exclam 34 quotedbl 35 numbersign 36 dollar 37 percent 38 ampersand 39 quoteright 40 parenleft 41 parenright 42 asterisk 43 plus 44 comma 45 minus 46 period 47 slash 48 0 49 1 50 2 51 3 52 4 53 5 54 6 55 7 56 8 57 9 58 colon 59 semicolon 60 less 61 equal 62 greater 63 question 64 at 65 A 66 B 67 C 68 D 69 E 70 F 71 G 72 H 73 I 74 J 75 K 76 L 77 M 78 N 79 O 80 P 81 Q 82 R 83 S 84 T 85 U 86 V 87 W 88 X 89 Y 90 Z 91 bracketleft 92 backslash 93 bracketright 94 asciicircum 95 underscore 96 quoteleft 97 a 98 b 99 c 100 d 101 e 102 f 103 g 104 h 105 i 106 j 107 k 108 l 109 m 110 n 111 o 112 p 113 q 114 r 115 s 116 t 117 u 118 v 119 w 120 x 121 y 122 z 123 braceleft 124 bar 125 braceright 126 asciitilde 193 aacute 195 ccaron 196 dcaron 197 ecaron 198 racute 199 ch 200 udiaeresis 201 iacute 202 uring 203 lacute 204 lcaron 205 odiaeresis 206 ncaron 207 oacute 208 ocircumflex 209 adiaeresis 210 rcaron 211 scaron 212 tcaron 213 uacute 215 eacute 216 agrave 217 yacute 218 zcaron 220 caron 222 circumflex 224 acute 225 Aacute 227 Ccaron 228 Dcaron 229 Ecaron 230 Racute 231 CH 232 Udiaeresis 233 Iacute 234 Uring 235 Lacute 236 Lcaron 237 Odiaeresis 238 Ncaron 239 Oacute 240 Ocircumflex 241 Adiaeresis 242 Rcaron 243 Scaron 244 Tcaron 245 Uacute 247 Eacute 248 Abreve 249 Yacute 250 Zcaron 254 degree Cstools-3.44/Cz/Cstocs/enc/accent0000644002656300235640000000540407507066346013611 0ustar AE A E Aabovedot A Aacute A Abreve A Acircumflex A Adiaeresis A Agrave A Amacron A Aogonek A Aring A Atilde A CH C H Cacute C Ccaron C Ccedilla C Dcaron D Eabovedot E Eacute E Ecaron E Ecircumflex E Ediaeresis E Egrave E Emacron E Eogonek E Eth D Gbreve G Gcedilla G IJ I J Iabovedot I Iacute I Icircumflex I Idiaeresis I Igrave I Imacron I Iogonek I Kcedilla K Lacute L Lcaron L Lcedilla L Lstroke L Nacute N Ncaron N Ncedilla N Ntilde N OE O E Oacute O Ocircumflex O Odiaeresis O Odoubleacute O Ograve O Omacron O Ooblique O Ostroke O Otilde O Pt P t Racute R Rcaron R Rcedilla R Sacute S Scaron S Scedilla S Ssharp S S Tcaron T Tcedilla T Uacute U Ucircumflex U Udiaeresis U Udoubleacute U Ugrave U Umacron U Uogonek U Uring U Yacute Y Ydiaeresis Y Zabovedot Z Zacute Z Zcaron Z aabovedot a aacute a abreve a acircumflex a acute quoteright adiaeresis a ae a e agrave a amacron a anglequoteleftsingle less anglequoterightsingle greater aogonek a aring a atilde a aunderscore a brokenbar bar bullet asterisk cacute c ccaron c ccedilla c cent c ch c copyright parenleft c parenright dagger bar dcaron d diaeresis quotedbl division slash doubleacute quotedbl doubledagger bar eabovedot e eacute e ecaron e ecircumflex e ediaeresis e egrave e emacron e emdash minus minus minus endash minus minus eogonek e eth d exclamdown exclam fi f i fl f l forte f fraction slash gacute g gbreve g greaterequal greater equal guillemotleft greater greater guillemotright less less hyphen minus iacute i icircumflex i idiaeresis i idotless i igrave i ij i j imacron i iogonek i kcedilla k lacute l lcaron l lcedilla l lowerequal less equal lstroke l mu u multiply period nacute n ncaron n ncedilla n notequal exclam equal notsign n o t ntilde n oacute o ocircumflex o odiaeresis o odoubleacute o oe o e ograve o omacron o onehalf 1 slash 2 onequarter 1 slash 4 oslash o otilde o ounderscore o partaildifferential d period3 period period period periodcentered period permille o slash o o plusminus plus slash minus questiondown question quoteleftdouble quotedbl quotelowdouble quotedbl quotelowsingle quoteright racute r rcaron r rcedilla r registered parenleft r parenright sacute s scaron s scedilla s ssharp s s sterling L tcaron t tcedilla t threequarters 3 slash 4 trademark parenleft T M parenright uacute u ucircumflex u udiaeresis u udoubleacute u ugrave u umacron u uogonek u uring u yacute y ydiaeresis y yen y zabovedot z zacute z zcaron z apostrophe quoteright tilde asciitilde grave quoteleft Cstools-3.44/Cz/Cstocs/enc/1252.enc0000644002656300235640000000477306436534372013520 0ustar 32 space 33 exclam 34 quotedbl 35 numbersign 36 dollar 37 percent 38 ampersand 39 quoteright 40 parenleft 41 parenright 42 asterisk 43 plus 44 comma 45 minus 46 period 47 slash 48 0 49 1 50 2 51 3 52 4 53 5 54 6 55 7 56 8 57 9 58 colon 59 semicolon 60 less 61 equal 62 greater 63 question 64 at 65 A 66 B 67 C 68 D 69 E 70 F 71 G 72 H 73 I 74 J 75 K 76 L 77 M 78 N 79 O 80 P 81 Q 82 R 83 S 84 T 85 U 86 V 87 W 88 X 89 Y 90 Z 91 bracketleft 92 backslash 93 bracketright 94 asciicircum 95 underscore 96 quoteleft 97 a 98 b 99 c 100 d 101 e 102 f 103 g 104 h 105 i 106 j 107 k 108 l 109 m 110 n 111 o 112 p 113 q 114 r 115 s 116 t 117 u 118 v 119 w 120 x 121 y 122 z 123 braceleft 124 bar 125 braceright 126 asciitilde 130 quotelowsingle 131 guilder 132 quotelowdouble 133 period3 134 dagger 135 doubledagger 137 permille 138 Scaron 139 anglequoteleftsingle 140 OE 145 quoteleft 146 quoteright 147 quoteleftdouble 148 quotedbl 149 bullet 150 endash 151 emdash 152 doubleacute 153 trademark 154 scaron 155 anglequoterightsingle 156 oe 159 Ydiaeresis 160 nobreakspace 161 exclamdown 162 cent 163 sterling 164 currency 165 yen 166 brokenbar 167 section 168 diaeresis 169 copyright 170 ordfeminine 171 guillemotleft 172 notsign 173 hyphen 174 registered 175 macron 176 degree 177 plusminus 178 twosuperior 179 threesuperior 180 acute 181 mu 182 paragraph 183 abovedot 184 cedilla 185 onesuperior 186 masculine 187 guillemotright 188 onequarter 189 onehalf 190 threequarters 191 questiondown 192 Agrave 193 Aacute 194 Acircumflex 195 Atilde 196 Adiaeresis 197 Aring 198 AE 199 Ccedilla 200 Egrave 201 Eacute 202 Ecircumflex 203 Ediaeresis 204 Igrave 205 Iacute 206 Icircumflex 207 Idiaeresis 208 Eth 209 Ntilde 210 Ograve 211 Oacute 212 Ocircumflex 213 Otilde 214 Odiaeresis 215 multiply 216 Ostroke 217 Ugrave 218 Uacute 219 Ucircumflex 220 Udiaeresis 221 Yacute 222 Thorn 223 ssharp 224 agrave 225 aacute 226 acircumflex 227 atilde 228 adiaeresis 229 aring 230 ae 231 ccedilla 232 egrave 233 eacute 234 ecircumflex 235 ediaeresis 236 igrave 237 iacute 238 icircumflex 239 idiaeresis 240 eth 241 ntilde 242 ograve 243 oacute 244 ocircumflex 245 otilde 246 odiaeresis 247 division 248 oslash 249 ugrave 250 uacute 251 ucircumflex 252 udiaeresis 253 yacute 254 thorn 255 ydiaeresis Cstools-3.44/Cz/Cstocs/enc/kam.enc0000644002656300235640000000340506436534472013667 0ustar 32 space 33 exclam 34 quotedbl 35 numbersign 36 dollar 37 percent 38 ampersand 39 quoteright 40 parenleft 41 parenright 42 asterisk 43 plus 44 comma 45 minus 46 period 47 slash 48 0 49 1 50 2 51 3 52 4 53 5 54 6 55 7 56 8 57 9 58 colon 59 semicolon 60 less 61 equal 62 greater 63 question 64 at 65 A 66 B 67 C 68 D 69 E 70 F 71 G 72 H 73 I 74 J 75 K 76 L 77 M 78 N 79 O 80 P 81 Q 82 R 83 S 84 T 85 U 86 V 87 W 88 X 89 Y 90 Z 91 bracketleft 92 backslash 93 bracketright 94 asciicircum 95 underscore 96 quoteleft 97 a 98 b 99 c 100 d 101 e 102 f 103 g 104 h 105 i 106 j 107 k 108 l 109 m 110 n 111 o 112 p 113 q 114 r 115 s 116 t 117 u 118 v 119 w 120 x 121 y 122 z 123 braceleft 124 bar 125 braceright 126 asciitilde 128 Ccaron 129 udiaeresis 130 eacute 131 dcaron 132 adiaeresis 133 Dcaron 134 Tcaron 135 ccaron 136 ecaron 137 Ecaron 138 Lacute 139 Iacute 140 lcaron 141 lacute 142 Adiaeresis 143 Aacute 144 Eacute 145 zcaron 146 Zcaron 147 ocircumflex 148 odiaeresis 149 Oacute 150 uring 151 Uacute 152 yacute 153 Odiaeresis 154 Udiaeresis 155 Scaron 156 Lcaron 157 Yacute 158 Rcaron 159 tcaron 160 aacute 161 iacute 162 oacute 163 uacute 164 ncaron 165 Ncaron 166 Uring 167 Ocircumflex 168 scaron 169 rcaron 170 racute 171 Racute 172 onequarter 173 section 174 guillemotright 175 guillemotleft 224 alpha 225 beta 226 Gamma 227 pi 228 Sigma 229 sigma 230 mu 231 tau 232 Phi 233 Theta 234 Omega 235 delta 236 omega 237 phi 238 in 239 intersection 240 equiv 241 plusminus 242 greaterequal 243 lowerequal 246 division 248 degree 250 periodcentered 253 twosuperior Cstools-3.44/Cz/Cstocs/enc/vga.enc0000644002656300235640000000347106436534373013677 0ustar 32 space 33 exclam 34 quotedbl 35 numbersign 36 dollar 37 percent 38 ampersand 39 quoteright 40 parenleft 41 parenright 42 asterisk 43 plus 44 comma 45 minus 46 period 47 slash 48 0 49 1 50 2 51 3 52 4 53 5 54 6 55 7 56 8 57 9 58 colon 59 semicolon 60 less 61 equal 62 greater 63 question 64 at 65 A 66 B 67 C 68 D 69 E 70 F 71 G 72 H 73 I 74 J 75 K 76 L 77 M 78 N 79 O 80 P 81 Q 82 R 83 S 84 T 85 U 86 V 87 W 88 X 89 Y 90 Z 91 bracketleft 92 backslash 93 bracketright 94 asciicircum 95 underscore 96 quoteleft 97 a 98 b 99 c 100 d 101 e 102 f 103 g 104 h 105 i 106 j 107 k 108 l 109 m 110 n 111 o 112 p 113 q 114 r 115 s 116 t 117 u 118 v 119 w 120 x 121 y 122 z 123 braceleft 124 bar 125 braceright 126 asciitilde 128 Ccedilla 129 udiaeresis 130 eacute 131 acircumflex 132 adiaeresis 133 agrave 134 aabovedot 135 ccedilla 136 ecircumflex 137 ediaeresis 138 egrave 139 idiaeresis 140 icircumflex 141 igrave 142 Adiaeresis 143 Aabovedot 144 Eacute 145 ae 146 AE 147 ocircumflex 148 odiaeresis 149 ograve 150 ucircumflex 151 ugrave 152 ydiaeresis 153 Odiaeresis 154 Udiaeresis 155 cent 156 sterling 157 yen 158 Pt 159 forte 160 aacute 161 iacute 162 oacute 163 uacute 164 ntilde 165 Ntilde 166 aunderscore 167 ounderscore 168 questiondown 169 reversenotsign 170 notsign 171 onehalf 172 onequarter 173 exclamdown 174 guillemotright 175 guillemotleft 224 alpha 225 beta 226 Gamma 227 pi 228 Sigma 229 sigma 230 mu 231 tau 232 Phi 233 Theta 234 Omega 235 delta 236 omega 237 phi 238 in 239 intersection 240 equiv 241 plusminus 242 greaterequal 243 lowerequal 246 division 248 degree 250 periodcentered 253 twosuperior Cstools-3.44/Cz/Cstocs/enc/pc2.enc0000644002656300235640000000415006436534373013601 0ustar 32 space 33 exclam 34 quotedbl 35 numbersign 36 dollar 37 percent 38 ampersand 39 quoteright 40 parenleft 41 parenright 42 asterisk 43 plus 44 comma 45 minus 46 period 47 slash 48 0 49 1 50 2 51 3 52 4 53 5 54 6 55 7 56 8 57 9 58 colon 59 semicolon 60 less 61 equal 62 greater 63 question 64 at 65 A 66 B 67 C 68 D 69 E 70 F 71 G 72 H 73 I 74 J 75 K 76 L 77 M 78 N 79 O 80 P 81 Q 82 R 83 S 84 T 85 U 86 V 87 W 88 X 89 Y 90 Z 91 bracketleft 92 backslash 93 bracketright 94 asciicircum 95 underscore 96 quoteleft 97 a 98 b 99 c 100 d 101 e 102 f 103 g 104 h 105 i 106 j 107 k 108 l 109 m 110 n 111 o 112 p 113 q 114 r 115 s 116 t 117 u 118 v 119 w 120 x 121 y 122 z 123 braceleft 124 bar 125 braceright 126 asciitilde 128 Ccedilla 129 udiaeresis 130 eacute 131 acircumflex 132 adiaeresis 133 uring 134 cacute 135 ccedilla 136 lstroke 137 ediaeresis 138 Odoubleacute 139 odoubleacute 140 icircumflex 141 Zacute 142 Adiaeresis 143 Cacute 144 Eacute 145 Lacute 146 lacute 147 ocircumflex 148 odiaeresis 149 Lcaron 150 lcaron 151 Sacute 152 sacute 153 Odiaeresis 154 Udiaeresis 155 Tcaron 156 tcaron 157 Lstroke 158 multiply 159 ccaron 160 aacute 161 iacute 162 oacute 163 uacute 164 Aogonek 165 aogonek 166 Zcaron 167 zcaron 168 Eogonek 169 eogonek 171 zacute 172 Ccaron 173 scedilla 174 guillemotright 175 guillemotleft 181 Aacute 182 Acircumflex 183 Ecaron 184 Scedilla 189 Zabovedot 190 zabovedot 198 Abreve 199 abreve 207 currency 208 eth 209 Eth 210 Dcaron 211 Ediaeresis 212 dcaron 213 Ncaron 214 Iacute 215 Icircumflex 216 ecaron 221 Tcedilla 222 Uring 224 Oacute 225 ssharp 226 Ocircumflex 227 Nacute 228 nacute 229 ncaron 230 Scaron 231 scaron 232 Racute 233 Uacute 234 racute 235 Udoubleacute 236 yacute 237 Yacute 238 tcedilla 239 acute 241 doubleacute 242 ogonek 243 caron 244 breve 245 section 246 division 247 cedilla 249 diaeresis 250 abovedot 251 udoubleacute 252 Rcaron 253 rcaron Cstools-3.44/Cz/Cstocs/enc/utf8.enc0000644002656300235640000001022407504637247014003 0ustar 0x20 space 0x21 exclam 0x22 quotedbl 0x23 numbersign 0x24 dollar 0x25 percent 0x26 ampersand 0x27 quoteright 0x28 parenleft 0x29 parenright 0x2a asterisk 0x2b plus 0x2c comma 0x2d minus 0x2e period 0x2f slash 0x30 0 0x31 1 0x32 2 0x33 3 0x34 4 0x35 5 0x36 6 0x37 7 0x38 8 0x39 9 0x3a colon 0x3b semicolon 0x3c less 0x3d equal 0x3e greater 0x3f question 0x40 at 0x41 A 0x42 B 0x43 C 0x44 D 0x45 E 0x46 F 0x47 G 0x48 H 0x49 I 0x4a J 0x4b K 0x4c L 0x4d M 0x4e N 0x4f O 0x50 P 0x51 Q 0x52 R 0x53 S 0x54 T 0x55 U 0x56 V 0x57 W 0x58 X 0x59 Y 0x5a Z 0x5b bracketleft 0x5c backslash 0x5d bracketright 0x5e asciicircum 0x5f underscore 0x60 quoteleft 0x61 a 0x62 b 0x63 c 0x64 d 0x65 e 0x66 f 0x67 g 0x68 h 0x69 i 0x6a j 0x6b k 0x6c l 0x6d m 0x6e n 0x6f o 0x70 p 0x71 q 0x72 r 0x73 s 0x74 t 0x75 u 0x76 v 0x77 w 0x78 x 0x79 y 0x7a z 0x7b braceleft 0x7c bar 0x7d braceright 0x7e asciitilde 0xc2,0xa0 nobreakspace 0xc2,0xa1 exclamdown 0xc2,0xa2 cent 0xc2,0xa3 sterling 0xc2,0xa4 currency 0xc2,0xa5 yen 0xc2,0xa6 brokenbar 0xc2,0xa7 section 0xc2,0xa8 diaeresis 0xc2,0xa9 copyright 0xc2,0xaa ordfeminine 0xc2,0xab guillemotleft 0xc2,0xac notsign 0xc2,0xad hyphen 0xc2,0xae registered 0xc2,0xaf macron 0xc2,0xb0 degree 0xc2,0xb1 plusminus 0xc2,0xb2 twosuperior 0xc2,0xb3 threesuperior 0xc2,0xb4 acute 0xc2,0xb5 mu 0xc2,0xb6 paragraph 0xc2,0xb7 periodcentered 0xc2,0xb8 cedilla 0xc2,0xba masculine 0xc2,0xbb guillemotright 0xc2,0xbc onequarter 0xc2,0xbd onehalf 0xc2,0xbe threequarters 0xc2,0xbf questiondown 0xc3,0x80 Agrave 0xc3,0x81 Aacute 0xc3,0x82 Acircumflex 0xc3,0x83 Atilde 0xc3,0x84 Adiaeresis 0xc3,0x85 Aring 0xc3,0x86 AE 0xc3,0x87 Ccedilla 0xc3,0x88 Egrave 0xc3,0x89 Eacute 0xc3,0x8a Ecircumflex 0xc3,0x8b Ediaeresis 0xc3,0x8c Igrave 0xc3,0x8d Iacute 0xc3,0x8e Icircumflex 0xc3,0x8f Idiaeresis 0xc3,0x90 Eth 0xc3,0x91 Ntilde 0xc3,0x92 Ograve 0xc3,0x93 Oacute 0xc3,0x94 Ocircumflex 0xc3,0x95 Otilde 0xc3,0x96 Odiaeresis 0xc3,0x97 multiply 0xc3,0x98 Ooblique 0xc3,0x99 Ugrave 0xc3,0x9a Uacute 0xc3,0x9b Ucircumflex 0xc3,0x9c Udiaeresis 0xc3,0x9d Yacute 0xc3,0x9e Thorn 0xc3,0x9f ssharp 0xc3,0xa0 agrave 0xc3,0xa1 aacute 0xc3,0xa2 acircumflex 0xc3,0xa3 atilde 0xc3,0xa4 adiaeresis 0xc3,0xa5 aring 0xc3,0xa6 ae 0xc3,0xa7 ccedilla 0xc3,0xa8 egrave 0xc3,0xa9 eacute 0xc3,0xaa ecircumflex 0xc3,0xab ediaeresis 0xc3,0xac igrave 0xc3,0xad iacute 0xc3,0xae icircumflex 0xc3,0xaf idiaeresis 0xc3,0xb0 eth 0xc3,0xb1 ntilde 0xc3,0xb2 ograve 0xc3,0xb3 oacute 0xc3,0xb4 ocircumflex 0xc3,0xb5 otilde 0xc3,0xb6 odiaeresis 0xc3,0xb7 division 0xc3,0xb8 oslash 0xc3,0xb9 ugrave 0xc3,0xba uacute 0xc3,0xbb ucircumflex 0xc3,0xbc udiaeresis 0xc3,0xbd yacute 0xc3,0xbe thorn 0xc3,0xbf ydiaeresis 0xc4,0x82 Abreve 0xc4,0x83 abreve 0xc4,0x84 Aogonek 0xc4,0x85 aogonek 0xc4,0x86 Cacute 0xc4,0x87 cacute 0xc4,0x8c Ccaron 0xc4,0x8d ccaron 0xc4,0x8e Dcaron 0xc4,0x8f dcaron 0xc4,0x90 Eth 0xc4,0x91 eth 0xc4,0x98 Eogonek 0xc4,0x99 eogonek 0xc4,0x9a Ecaron 0xc4,0x9b ecaron 0xc4,0xb9 Lacute 0xc4,0xba lacute 0xc4,0xbd Lcaron 0xc4,0xbe lcaron 0xc5,0x81 Lstroke 0xc5,0x82 lstroke 0xc5,0x83 Nacute 0xc5,0x84 nacute 0xc5,0x87 Ncaron 0xc5,0x88 ncaron 0xc5,0x90 Odoubleacute 0xc5,0x91 odoubleacute 0xc5,0x94 Racute 0xc5,0x95 racute 0xc5,0x98 Rcaron 0xc5,0x99 rcaron 0xc5,0x9a Sacute 0xc5,0x9b sacute 0xc5,0x9e Scedilla 0xc5,0x9f scedilla 0xc5,0xa0 Scaron 0xc5,0xa1 scaron 0xc5,0xa2 Tcedilla 0xc5,0xa3 tcedilla 0xc5,0xa4 Tcaron 0xc5,0xa5 tcaron 0xc5,0xae Uring 0xc5,0xaf uring 0xc5,0xb0 Udoubleacute 0xc5,0xb1 udoubleacute 0xc5,0xb9 Zacute 0xc5,0xba zacute 0xc5,0xbb Zabovedot 0xc5,0xbc zabovedot 0xc5,0xbd Zcaron 0xc5,0xbe zcaron 0xcb,0x87 caron 0xcb,0x98 breve 0xcb,0x99 abovedot 0xcb,0x9b ogonek 0xcb,0x9d doubleacute 0xce,0xb1 alpha 0xc3,0xb8 ostroke 0xe2,0x88,0x9e infinity 0xc1,0x9e circumflex 0xc5,0x8a Eng 0xce,0xb2 beta 0xce,0xa6 Phi 0xce,0xa3 Sigma 0xc5,0x8b eng 0xcf,0x86 phi 0xcf,0x83 sigma 0xe2,0x99,0xa6 diamond 0xce,0xa9 Omega 0xcf,0x84 tau 0xcb,0x9a ring 0xe2,0x89,0x88 almostequal 0xcf,0x89 omega 0xce,0x93 Gamma 0xce,0x98 Theta 0xe2,0x88,0xa9 intersection 0xc2,0xa3 pound 0xcf,0x80 pi 0xe2,0x8c,0x90 reversenotsign 0xce,0x94 Delta 0xce,0xb4 delta 0xe2,0x88,0x91 nsummation 0xe2,0x88,0x8f nproduct 0xe2,0x88,0x9a squareroot 0xe2,0x88,0xab integral 0xc2,0xb9 onesuperior Cstools-3.44/Cz/Cstocs/enc/alias0000644002656300235640000000033106664000271013423 0ustar windows1250 1250 cp1250 1250 windows1252 1252 cp1252 1252 usascii ascii t1 cork iso88591 il1 isolatin1 il1 iso88592 il2 isolatin2 il2 kamenicky kam kamenicti kam koi8cs koi8 koi8cz koi8 pclatin2 pc2 cp852 pc2 852 pc2 Cstools-3.44/Cz/Cstocs/enc/tex.enc0000644002656300235640000000043606572031676013717 0ustar ~ nobreakspace \. abovedot \' acute \u breve \v caron \c cedilla \^ circumflex \" diaeresis \H doubleacute \k ogonek \accent23 ring \r ring \L Lstroke \S section \r degree \l lstroke \eth eth \ss ssharp \Eth Eth \ae ae \AE AE \dj eth \Dj Eth \div division \times multiply Cstools-3.44/Cz/Cstocs/enc/pc2a.enc0000644002656300235640000000450407155164434013741 0ustar 32 space 33 exclam 34 quotedbl 35 numbersign 36 dollar 37 percent 38 ampersand 39 quoteright 40 parenleft 41 parenright 42 asterisk 43 plus 44 comma 45 minus 46 period 47 slash 48 0 49 1 50 2 51 3 52 4 53 5 54 6 55 7 56 8 57 9 58 colon 59 semicolon 60 less 61 equal 62 greater 63 question 64 at 65 A 66 B 67 C 68 D 69 E 70 F 71 G 72 H 73 I 74 J 75 K 76 L 77 M 78 N 79 O 80 P 81 Q 82 R 83 S 84 T 85 U 86 V 87 W 88 X 89 Y 90 Z 91 bracketleft 92 backslash 93 bracketright 94 asciicircum 95 underscore 96 quoteleft 97 a 98 b 99 c 100 d 101 e 102 f 103 g 104 h 105 i 106 j 107 k 108 l 109 m 110 n 111 o 112 p 113 q 114 r 115 s 116 t 117 u 118 v 119 w 120 x 121 y 122 z 123 braceleft 124 bar 125 braceright 126 asciitilde 128 Ccedilla 129 udiaeresis 130 eacute 131 acircumflex 132 adiaeresis 133 uring 134 cacute 135 ccedilla 136 lstroke 137 ediaeresis 138 Odoubleacute 139 odoubleacute 140 icircumflex 141 Zacute 142 Adiaeresis 143 Cacute 144 Eacute 145 Lacute 146 lacute 147 ocircumflex 148 odiaeresis 149 Lcaron 150 lcaron 151 Sacute 152 sacute 153 Odiaeresis 154 Udiaeresis 155 Tcaron 156 tcaron 157 Lstroke 158 multiply 159 ccaron 160 aacute 161 iacute 162 oacute 163 uacute 164 Aogonek 165 aogonek 166 Zcaron 167 zcaron 168 Eogonek 169 eogonek 171 zacute 172 Ccaron 173 scedilla 174 guillemotright 175 guillemotleft 179 bar 180 plus 181 Aacute 182 Acircumflex 183 Ecaron 184 Scedilla 185 plus 186 bar 187 plus 188 plus 189 Zabovedot 190 zabovedot 191 plus 192 plus 193 plus 194 plus 195 plus 196 minus 197 plus 198 Abreve 199 abreve 200 plus 201 plus 202 plus 203 plus 204 plus 205 minus 206 plus 207 currency 208 eth 209 Eth 210 Dcaron 211 Ediaeresis 212 dcaron 213 Ncaron 214 Iacute 215 Icircumflex 216 ecaron 217 plus 218 plus 221 Tcedilla 222 Uring 224 Oacute 225 ssharp 226 Ocircumflex 227 Nacute 228 nacute 229 ncaron 230 Scaron 231 scaron 232 Racute 233 Uacute 234 racute 235 Udoubleacute 236 yacute 237 Yacute 238 tcedilla 239 acute 241 doubleacute 242 ogonek 243 caron 244 breve 245 section 246 division 247 cedilla 249 diaeresis 250 abovedot 251 udoubleacute 252 Rcaron 253 rcaron Cstools-3.44/Cz/Cstocs/enc/cork.enc0000644002656300235640000000527506436534372014063 0ustar 0 grave 1 acute 2 circumflex 3 tilde 4 diaeresis 5 doubleacute 6 ring 7 caron 8 breve 9 macron 10 abovedot 11 cedilla 12 ogonek 19 guillemotleft 20 guillemotright 32 space 33 exclam 34 quotedbl 35 numbersign 36 dollar 37 percent 38 ampersand 39 quoteright 40 parenleft 41 parenright 42 asterisk 43 plus 44 comma 45 minus 46 period 47 slash 48 0 49 1 50 2 51 3 52 4 53 5 54 6 55 7 56 8 57 9 58 colon 59 semicolon 60 less 61 equal 62 greater 63 question 64 at 65 A 66 B 67 C 68 D 69 E 70 F 71 G 72 H 73 I 74 J 75 K 76 L 77 M 78 N 79 O 80 P 81 Q 82 R 83 S 84 T 85 U 86 V 87 W 88 X 89 Y 90 Z 91 bracketleft 92 backslash 93 bracketright 94 asciicircum 95 underscore 96 quoteleft 97 a 98 b 99 c 100 d 101 e 102 f 103 g 104 h 105 i 106 j 107 k 108 l 109 m 110 n 111 o 112 p 113 q 114 r 115 s 116 t 117 u 118 v 119 w 120 x 121 y 122 z 123 braceleft 124 bar 125 braceright 126 asciitilde 127 hyphen 128 Abreve 129 Aogonek 130 Cacute 131 Ccaron 132 Dcaron 133 Ecaron 134 Eogonek 135 Gbreve 136 Lacute 137 Lcaron 138 Lstroke 139 Nacute 140 Ncaron 141 Eng 142 Odoubleacute 143 Racute 144 Rcaron 145 Sacute 146 Scaron 147 Scedilla 148 Tcaron 149 Tcedilla 150 Udoubleacute 151 Uring 152 Ydiaeresis 153 Zacute 154 Zcaron 155 Zabovedot 156 IJ 157 Iabovedot 158 eth 159 section 160 abreve 161 aogonek 162 cacute 163 ccaron 164 dcaron 165 ecaron 166 eogonek 167 gbreve 168 lacute 169 lcaron 170 lstroke 171 nacute 172 ncaron 173 eng 174 odoubleacute 175 racute 176 rcaron 177 sacute 178 scaron 179 scedilla 180 tcaron 181 tcedilla 182 udoubleacute 183 uring 184 ydiaeresis 185 zacute 186 zcaron 187 zabovedot 188 ij 189 exclamdown 190 questiondown 191 sterling 192 Agrave 193 Aacute 194 Acircumflex 195 Atilde 196 Adiaeresis 197 Aring 198 AE 199 Ccedilla 200 Egrave 201 Eacute 202 Ecircumflex 203 Ediaeresis 204 Igrave 205 Iacute 206 Icircumflex 207 Idiaeresis 208 Eth 209 Ntilde 210 Ograve 211 Oacute 212 Ocircumflex 213 Otilde 214 Odiaeresis 215 OE 216 Ooblique 217 Ugrave 218 Uacute 219 Ucircumflex 220 Udiaeresis 221 Yacute 222 Thorn 223 Ssharp 224 agrave 225 aacute 226 acircumflex 227 atilde 228 adiaeresis 229 aring 230 ae 231 ccedilla 232 egrave 233 eacute 234 ecircumflex 235 ediaeresis 236 igrave 237 iacute 238 icircumflex 239 idiaeresis 240 eth 241 ntilde 242 ograve 243 oacute 244 ocircumflex 245 otilde 246 odiaeresis 247 oe 248 oslash 249 ugrave 250 uacute 251 ucircumflex 252 udiaeresis 253 yacute 254 thorn 255 ssharp Cstools-3.44/Cz/Cstocs/enc/ascii.enc0000644002656300235640000000155706436534372014214 0ustar 32 space 33 exclam 34 quotedbl 35 numbersign 36 dollar 37 percent 38 ampersand 39 quoteright 40 parenleft 41 parenright 42 asterisk 43 plus 44 comma 45 minus 46 period 47 slash 48 0 49 1 50 2 51 3 52 4 53 5 54 6 55 7 56 8 57 9 58 colon 59 semicolon 60 less 61 equal 62 greater 63 question 64 at 65 A 66 B 67 C 68 D 69 E 70 F 71 G 72 H 73 I 74 J 75 K 76 L 77 M 78 N 79 O 80 P 81 Q 82 R 83 S 84 T 85 U 86 V 87 W 88 X 89 Y 90 Z 91 bracketleft 92 backslash 93 bracketright 94 asciicircum 95 underscore 96 quoteleft 97 a 98 b 99 c 100 d 101 e 102 f 103 g 104 h 105 i 106 j 107 k 108 l 109 m 110 n 111 o 112 p 113 q 114 r 115 s 116 t 117 u 118 v 119 w 120 x 121 y 122 z 123 braceleft 124 bar 125 braceright 126 asciitilde Cstools-3.44/Cz/Cstocs/enc/il1.enc0000644002656300235640000000422006436534372013577 0ustar 32 space 33 exclam 34 quotedbl 35 numbersign 36 dollar 37 percent 38 ampersand 39 quoteright 40 parenleft 41 parenright 42 asterisk 43 plus 44 comma 45 minus 46 period 47 slash 48 0 49 1 50 2 51 3 52 4 53 5 54 6 55 7 56 8 57 9 58 colon 59 semicolon 60 less 61 equal 62 greater 63 question 64 at 65 A 66 B 67 C 68 D 69 E 70 F 71 G 72 H 73 I 74 J 75 K 76 L 77 M 78 N 79 O 80 P 81 Q 82 R 83 S 84 T 85 U 86 V 87 W 88 X 89 Y 90 Z 91 bracketleft 92 backslash 93 bracketright 94 asciicircum 95 underscore 96 quoteleft 97 a 98 b 99 c 100 d 101 e 102 f 103 g 104 h 105 i 106 j 107 k 108 l 109 m 110 n 111 o 112 p 113 q 114 r 115 s 116 t 117 u 118 v 119 w 120 x 121 y 122 z 123 braceleft 124 bar 125 braceright 126 asciitilde 160 nobreakspace 161 exclamdown 162 cent 163 sterling 164 currency 165 yen 166 brokenbar 167 section 168 diaeresis 169 copyright 170 ordfeminine 171 guillemotleft 172 notsign 173 hyphen 174 registered 175 macron 176 degree 177 plusminus 178 twosuperior 179 threesuperior 180 acute 181 mu 182 paragraph 183 periodcentered 184 cedilla 186 masculine 187 guillemotright 188 onequarter 189 onehalf 190 threequarters 191 questiondown 192 Agrave 193 Aacute 194 Acircumflex 195 Atilde 196 Adiaeresis 197 Aring 198 AE 199 Ccedilla 200 Egrave 201 Eacute 202 Ecircumflex 203 Ediaeresis 204 Igrave 205 Iacute 206 Icircumflex 207 Idiaeresis 208 Eth 209 Ntilde 210 Ograve 211 Oacute 212 Ocircumflex 213 Otilde 214 Odiaeresis 215 multiply 216 Ooblique 217 Ugrave 218 Uacute 219 Ucircumflex 220 Udiaeresis 221 Yacute 222 Thorn 223 ssharp 224 agrave 225 aacute 226 acircumflex 227 atilde 228 adiaeresis 229 aring 230 ae 231 ccedilla 232 egrave 233 eacute 234 ecircumflex 235 ediaeresis 236 igrave 237 iacute 238 icircumflex 239 idiaeresis 240 eth 241 ntilde 242 ograve 243 oacute 244 ocircumflex 245 otilde 246 odiaeresis 247 division 248 oslash 249 ugrave 250 uacute 251 ucircumflex 252 udiaeresis 253 yacute 254 thorn 255 ydiaeresis Cstools-3.44/Cz/Cstocs/enc/1250.enc0000644002656300235640000000477407506635513013515 0ustar 32 space 33 exclam 34 quotedbl 35 numbersign 36 dollar 37 percent 38 ampersand 39 quoteright 40 parenleft 41 parenright 42 asterisk 43 plus 44 comma 45 minus 46 period 47 slash 48 0 49 1 50 2 51 3 52 4 53 5 54 6 55 7 56 8 57 9 58 colon 59 semicolon 60 less 61 equal 62 greater 63 question 64 at 65 A 66 B 67 C 68 D 69 E 70 F 71 G 72 H 73 I 74 J 75 K 76 L 77 M 78 N 79 O 80 P 81 Q 82 R 83 S 84 T 85 U 86 V 87 W 88 X 89 Y 90 Z 91 bracketleft 92 backslash 93 bracketright 94 asciicircum 95 underscore 96 quoteleft 97 a 98 b 99 c 100 d 101 e 102 f 103 g 104 h 105 i 106 j 107 k 108 l 109 m 110 n 111 o 112 p 113 q 114 r 115 s 116 t 117 u 118 v 119 w 120 x 121 y 122 z 123 braceleft 124 bar 125 braceright 126 asciitilde 130 quotelowsingle 132 quotelowdouble 133 period3 134 dagger 135 doubledagger 137 permille 138 Scaron 139 anglequoteleftsingle 140 Sacute 141 Tcaron 142 Zcaron 143 Zacute 145 quoteleft 146 quoteright 147 quoteleftdouble 148 quotedbl 149 bullet 150 endash 151 emdash 153 trademark 154 scaron 155 anglequoterightsingle 156 sacute 157 tcaron 158 zcaron 159 zacute 160 nobreakspace 161 caron 162 breve 163 Lstroke 164 currency 165 Aogonek 166 brokenbar 167 section 168 diaeresis 169 copyright 170 Scedilla 171 guillemotleft 172 notsign 173 hyphen 175 Zabovedot 174 registered 176 degree 177 plusminus 178 ogonek 179 lstroke 180 acute 181 mu 183 abovedot 184 cedilla 185 aogonek 186 scedilla 187 guillemotright 188 Lcaron 189 doubleacute 190 lcaron 191 zabovedot 192 Racute 193 Aacute 194 Acircumflex 195 Abreve 196 Adiaeresis 197 Lacute 198 Cacute 199 Ccedilla 200 Ccaron 201 Eacute 202 Eogonek 203 Ediaeresis 204 Ecaron 205 Iacute 206 Icircumflex 207 Dcaron 208 Eth 209 Nacute 210 Ncaron 211 Oacute 212 Ocircumflex 213 Odoubleacute 214 Odiaeresis 215 multiply 216 Rcaron 217 Uring 218 Uacute 219 Udoubleacute 220 Udiaeresis 221 Yacute 222 Tcedilla 223 ssharp 224 racute 225 aacute 226 acircumflex 227 abreve 228 adiaeresis 229 lacute 230 cacute 231 ccedilla 232 ccaron 233 eacute 234 eogonek 235 ediaeresis 236 ecaron 237 iacute 238 icircumflex 239 dcaron 240 eth 241 nacute 242 ncaron 243 oacute 244 ocircumflex 245 odoubleacute 246 odiaeresis 247 division 248 rcaron 249 uring 250 uacute 251 udoubleacute 252 udiaeresis 253 yacute 254 tcedilla 255 abovedot Cstools-3.44/Cz/Cstocs/enc/macce.enc0000644002656300235640000000513706436535024014165 0ustar 32 space 33 exclam 34 quotedbl 35 numbersign 36 dollar 37 percent 38 ampersand 39 apostrophe 40 parenleft 41 parenright 42 asterisk 43 plus 44 comma 45 minus 46 period 47 slash 48 0 49 1 50 2 51 3 52 4 53 5 54 6 55 7 56 8 57 9 58 colon 59 semicolon 60 less 61 equal 62 greater 63 question 64 at 65 A 66 B 67 C 68 D 69 E 70 F 71 G 72 H 73 I 74 J 75 K 76 L 77 M 78 N 79 O 80 P 81 Q 82 R 83 S 84 T 85 U 86 V 87 W 88 X 89 Y 90 Z 91 bracketleft 92 backslash 93 bracketright 94 asciicircum 95 underscore 96 grave 97 a 98 b 99 c 100 d 101 e 102 f 103 g 104 h 105 i 106 j 107 k 108 l 109 m 110 n 111 o 112 p 113 q 114 r 115 s 116 t 117 u 118 v 119 w 120 x 121 y 122 z 123 braceleft 124 bar 125 braceright 126 asciitilde 128 Adiaeresis 129 Amacron 130 amacron 131 Eacute 132 Aogonek 133 Odiaeresis 134 Udiaeresis 135 aacute 136 aogonek 137 Ccaron 138 adiaeresis 139 ccaron 140 Cacute 141 cacute 142 eacute 143 Zacute 144 zacute 145 Dcaron 146 iacute 147 dcaron 148 Emacron 149 emacron 150 Eabovedot 151 oacute 152 eabovedot 153 ocircumflex 154 odiaeresis 155 otilde 156 uacute 157 Ecaron 158 ecaron 159 udiaeresis 160 dagger 161 degree 162 Eogonek 163 pound 164 section 165 bullet 166 paragraph 167 ssharp 168 registered 169 copyright 170 trademark 171 eogonek 172 diaeresis 173 notequal 174 gacute 175 Iogonek 176 iogonek 177 Imacron 178 lowerequal 179 greaterequal 180 imacron 181 Kcedilla 182 partaildifferential 183 nsummation 184 lstroke 185 Lcedilla 186 lcedilla 187 Lcaron 188 lcaron 189 Lacute 190 lacute 191 Ncedilla 192 ncedilla 193 Nacute 194 notsign 195 squareroot 196 nacute 197 Ncaron 198 Delta 199 guilletmotleft 200 guilletmotright 201 period3 202 nobreakspace 203 ncaron 204 Odoubleacute 205 Otilde 206 odoubleacute 207 Omacron 208 emdash 209 endash 210 quoteleftdouble 211 quotedbl 212 quoteleft 213 quoteright 214 division 215 diamond 216 omacron 217 Racute 218 racute 219 Rcaron 220 anglequoteleftsingle 221 anglequoterightsingle 222 rcaron 223 Rcedilla 224 rcedilla 225 Scaron 226 quotelowsingle 227 quotelowdouble 228 scaron 229 Sacute 230 sacute 231 Aacute 232 Tcaron 233 tcaron 234 Iacute 235 Zcaron 236 zcaron 237 Umacron 238 Oacute 239 Ocircumflex 240 umacron 241 Uring 242 Uacute 243 uring 244 Udoubleacute 245 udoubleacute 246 Uogonek 247 uogonek 248 Yacute 249 yacute 250 kcedilla 251 Zabovedot 252 Lstroke 253 zabovedot 254 Gcedilla 255 caron Cstools-3.44/Cz/Cstocs/enc/il2.enc0000644002656300235640000000415206436534373013605 0ustar 32 space 33 exclam 34 quotedbl 35 numbersign 36 dollar 37 percent 38 ampersand 39 quoteright 40 parenleft 41 parenright 42 asterisk 43 plus 44 comma 45 minus 46 period 47 slash 48 0 49 1 50 2 51 3 52 4 53 5 54 6 55 7 56 8 57 9 58 colon 59 semicolon 60 less 61 equal 62 greater 63 question 64 at 65 A 66 B 67 C 68 D 69 E 70 F 71 G 72 H 73 I 74 J 75 K 76 L 77 M 78 N 79 O 80 P 81 Q 82 R 83 S 84 T 85 U 86 V 87 W 88 X 89 Y 90 Z 91 bracketleft 92 backslash 93 bracketright 94 asciicircum 95 underscore 96 quoteleft 97 a 98 b 99 c 100 d 101 e 102 f 103 g 104 h 105 i 106 j 107 k 108 l 109 m 110 n 111 o 112 p 113 q 114 r 115 s 116 t 117 u 118 v 119 w 120 x 121 y 122 z 123 braceleft 124 bar 125 braceright 126 asciitilde 160 nobreakspace 161 Aogonek 162 breve 163 Lstroke 164 currency 165 Lcaron 166 Sacute 167 section 168 diaeresis 169 Scaron 170 Scedilla 171 Tcaron 172 Zacute 173 hyphen 174 Zcaron 175 Zabovedot 176 degree 177 aogonek 178 ogonek 179 lstroke 180 acute 181 lcaron 182 sacute 183 caron 184 cedilla 185 scaron 186 scedilla 187 tcaron 188 zacute 189 doubleacute 190 zcaron 191 zabovedot 192 Racute 193 Aacute 194 Acircumflex 195 Abreve 196 Adiaeresis 197 Lacute 198 Cacute 199 Ccedilla 200 Ccaron 201 Eacute 202 Eogonek 203 Ediaeresis 204 Ecaron 205 Iacute 206 Icircumflex 207 Dcaron 208 Eth 209 Nacute 210 Ncaron 211 Oacute 212 Ocircumflex 213 Odoubleacute 214 Odiaeresis 215 multiply 216 Rcaron 217 Uring 218 Uacute 219 Udoubleacute 220 Udiaeresis 221 Yacute 222 Tcedilla 223 ssharp 224 racute 225 aacute 226 acircumflex 227 abreve 228 adiaeresis 229 lacute 230 cacute 231 ccedilla 232 ccaron 233 eacute 234 eogonek 235 ediaeresis 236 ecaron 237 iacute 238 icircumflex 239 dcaron 240 eth 241 nacute 242 ncaron 243 oacute 244 ocircumflex 245 odoubleacute 246 odiaeresis 247 division 248 rcaron 249 uring 250 uacute 251 udoubleacute 252 udiaeresis 253 yacute 254 tcedilla 255 abovedot Cstools-3.44/Cz/Cstocs/enc/mac.enc0000644002656300235640000000514706436534755013670 0ustar 32 space 33 exclam 34 quotedbl 35 numbersign 36 dollar 37 percent 38 ampersand 39 apostrophe 40 parenleft 41 parenright 42 asterisk 43 plus 44 comma 45 minus 46 period 47 slash 48 0 49 1 50 2 51 3 52 4 53 5 54 6 55 7 56 8 57 9 58 colon 59 semicolon 60 less 61 equal 62 greater 63 question 64 at 65 A 66 B 67 C 68 D 69 E 70 F 71 G 72 H 73 I 74 J 75 K 76 L 77 M 78 N 79 O 80 P 81 Q 82 R 83 S 84 T 85 U 86 V 87 W 88 X 89 Y 90 Z 91 bracketleft 92 backslash 93 bracketright 94 asciicircum 95 underscore 96 grave 97 a 98 b 99 c 100 d 101 e 102 f 103 g 104 h 105 i 106 j 107 k 108 l 109 m 110 n 111 o 112 p 113 q 114 r 115 s 116 t 117 u 118 v 119 w 120 x 121 y 122 z 123 braceleft 124 bar 125 braceright 126 asciitilde 128 Adiaeresis 129 Aring 130 Ccedilla 131 Eacute 132 Ntilde 133 Odiaeresis 134 Udiaeresis 135 aacute 136 agrave 137 acircumflex 138 adiaeresis 139 atilde 140 aring 141 ccedilla 142 eacute 143 egrave 144 ecircumflex 145 ediaeresis 146 iacute 147 igrave 148 icircumflex 149 idiaeresis 150 ntilde 151 oacute 152 ograve 153 ocircumflex 154 odiaeresis 155 otilde 156 uacute 157 ugrave 158 ucircumflex 159 udiaeresis 160 dagger 161 degree 162 cent 163 pound 164 section 165 bullet 166 paragraph 167 ssharp 168 registered 169 copyright 170 trademark 171 acute 172 diaeresis 173 notequal 174 AE 175 Ostroke 176 infinity 177 plusminus 178 lowerequal 179 greaterequal 180 yen 181 mu 182 partaildifferential 183 nsummation 184 nproduct 185 pi 186 integral 187 ordfeminine 188 masculine 189 Omega 190 ae 191 ostroke 192 questiondown 193 exclamdown 194 notsign 195 squareroot 196 guilder 197 almostequal 198 Delta 199 guilletmotleft 200 guilletmotright 201 period3 202 nobreakspace 203 Agrave 204 Atilde 205 Otilde 206 OE 207 oe 208 emdash 209 endash 210 quoteleftdouble 211 quotedbl 212 quoteleft 213 quoteright 214 division 215 diamond 216 ydiaeresis 217 Ydiaeresis 218 fraction 219 currency 220 anglequoteleftsingle 221 anglequoterightsingle 222 fi 223 fl 224 doubledagger 225 periodcentered 226 quotelowsingle 227 quotelowdouble 228 permille 229 Acircumflex 230 Ecircumflex 231 Aacute 232 Ediaeresis 233 Egrave 234 Iacute 235 Icircumflex 236 Idiaeresis 237 Igrave 238 Oacute 239 Ocircumflex 241 Ograve 242 Uacute 243 Ucircumflex 244 Ugrave 245 idotless 246 circumflex 247 tilde 248 macron 249 breve 250 abovedot 251 ring 252 cedilla 253 doubleacute 254 ogonek 255 caron Cstools-3.44/Cz/Sort.pm0000755002656300235640000001442713453131707011712 0ustar =head1 NAME Cz::Sort - Czech sort =cut # # Here starts the Cz::Sort namespace # package Cz::Sort; no locale; use integer; use strict; use Exporter; use vars qw( @ISA @EXPORT $VERSION $DEBUG ); @ISA = qw( Exporter ); # # We implicitly export czcmp, czsort, cscmp and cssort functions. # Since these are the only ones that can be used by ordinary users, # it should not cause big harm. # @EXPORT = qw( czsort czcmp cssort cscmp ); $VERSION = '0.68'; $DEBUG = 0; sub DEBUG { $DEBUG; } # # The table with sorting definitions. # my @def_table = ( 'aA áÁ â ăĂ äÄ ąĄ', 'bB', 'cC ćĆ çÇ', 'čČ', 'dD ďĎ đĐ', 'eE éÉ ěĚ ëË ęĘ', 'fF', 'gG', 'hH', '', 'iI íÍ îÎ', 'jJ', 'kK', 'lL ĺĹ ľĽ łŁ', 'mM', 'nN ńŃ ňŇ', 'oO óÓ ôÔ öÖ őŐ', 'pP', 'qQ', 'rR ŕŔ', 'řŘ', 'sS śŚ şŞ', 'šŠ', 'ß', 'tT ťŤ ţŢ', 'uU úÚ ůŮ üÜ űŰ', 'vV', 'wW', 'xX', 'yY ýÝ', 'zZ żŻ źŹ', 'žŽ', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', ' .,;?!:"`\'', ' -­|/\\()[]<>{}', ' @&§%$', ' _^=+×*÷#˘~', ' ˙ˇ°¨˝¸˛', ' ¤', ); # # Conversion table will hold four arrays, one for each pass. They will # be created on the fly if they are needed. We also need to hold # information (regexp) about groups of letters that need to be considered # as one character (ch). # my @table = ( ); my @regexp = ( '.', '.', '.', '.' ); my @multiple = ( {}, {}, {}, {} ); # # Make_table will build sorting table for given level. # sub make_table { my $level = shift; @{$table[$level]} = ( undef ) x 256; @{$table[$level]}[ord ' ', ord "\t"] = (0, 0); my $i = 1; my $irow = 0; while (defined $def_table[$irow]) { my $def_row = $def_table[$irow]; next if $level <= 2 and $def_row =~ /^ /; while ($def_row =~ /<([cC].*?)>|(.)/sg) { my $match = $+; if ($match eq ' ') { if ($level == 1) { $i++; } } else { if (length $match == 1) { $table[$level][ord $match] = $i; } else { $multiple[$level]{$match} = $i; $regexp[$level] = $match . "|" . $regexp[$level]; } if ($level >= 2) { $i++; } } } $i++ if $level < 2; } continue { $irow++; } } # # Create the tables now. # for (0 .. 3) { make_table($_); } # # Compare two scalar, according to the tables. # sub czcmp { my ($a, $b) = (shift, shift); print STDERR "czcmp: $a/$b\n" if DEBUG; my ($a1, $b1) = ($a, $b); my $level = 0; while (1) { my ($ac, $bc, $a_no, $b_no, $ax, $bx) = ('', '', 0, 0, undef, undef); if ($level == 0) { while (not defined $ax and not $a_no) { $a =~ /$regexp[$level]/sg or $a_no = 1; $ac = $&; $ax = ( length $ac == 1 ? $table[$level][ord $ac] : ${$multiple[$level]}{$ac} ) if defined $ac; } while (not defined $bx and not $b_no) { $b =~ /$regexp[$level]/sg or $b_no = 1; $bc = $&; $bx = ( length $bc == 1 ? $table[$level][ord $bc] : ${$multiple[$level]}{$bc} ) if defined $bc; } } else { while (not defined $ax and not $a_no) { $a1 =~ /$regexp[$level]/sg or $a_no = 1; $ac = $&; $ax = ( length $ac == 1 ? $table[$level][ord $ac] : ${$multiple[$level]}{$ac} ) if defined $ac; } while (not defined $bx and not $b_no) { $b1 =~ /$regexp[$level]/sg or $b_no = 1; $bc = $&; $bx = ( length $bc == 1 ? $table[$level][ord $bc] : ${$multiple[$level]}{$bc} ) if defined $bc; } } print STDERR "level $level: ac: $ac -> $ax; bc: $bc -> $bx ($a_no, $b_no)\n" if DEBUG; return -1 if $a_no and not $b_no; return 1 if not $a_no and $b_no; if ($a_no and $b_no) { if ($level == 0) { $level = 1; next; } last; } return -1 if ($ax < $bx); return 1 if ($ax > $bx); if ($ax == 0 and $bx == 0) { if ($level == 0) { $level = 1; next; } $level = 0; next; } } for $level (2 .. 3) { while (1) { my ($ac, $bc, $a_no, $b_no, $ax, $bx) = ('', '', 0, 0, undef, undef); while (not defined $ax and not $a_no) { $a =~ /$regexp[$level]/sg or $a_no = 1; $ac = $&; $ax = ( length $ac == 1 ? $table[$level][ord $ac] : ${$multiple[$level]}{$ac} ) if defined $ac; } while (not defined $bx and not $b_no) { $b =~ /$regexp[$level]/sg or $b_no = 1; $bc = $&; $bx = ( length $bc == 1 ? $table[$level][ord $bc] : ${$multiple[$level]}{$bc} ) if defined $bc; } print STDERR "level $level: ac: $ac -> $ax; bc: $bc -> $bx ($a_no, $b_no)\n" if DEBUG; return -1 if $a_no and not $b_no; return 1 if not $a_no and $b_no; if ($a_no and $b_no) { last; } return -1 if ($ax < $bx); return 1 if ($ax > $bx); } } return 0; } 1; # # Cssort does the real thing. # sub czsort { sort { my $result = czcmp($a, $b); } @_; } *cscmp = *czcmp; *cssort = *czsort; 1; __END__ =head1 SYNOPSIS use Cz::Sort; my $result = czcmp("_x j&á", "_&p"); my @sorted = czsort qw(plachta plaňka Plánička plánička pláně); print "@sorted\n"; =head1 DESCRIPTION Implements czech sorting conventions, indepentent on current locales in effect, which are often bad. Does the four-pass sort. The idea and the base of the conversion table comes from Petr Olsak's program B and the code is as compliant with CSN 97 6030 as possible. The basic function provided by this module, is I. If compares two scalars and returns the (-1, 0, 1) result. The function can be called directly, like my $result = czcmp("_x j&á", "_&p"); But for convenience and also because of compatibility with older versions, there is a function I. It works on list of strings and returns that list, hmm, sorted. The function is defined simply like sub czsort { sort { czcmp($a, $b); } @_; } standard use of user's function in I. Hashes would be simply sorted @sorted = sort { czcmp($hash{$a}, $hash{$b}) } keys %hash; Both I and I are exported into caller's namespace by default, as well as I and I that are just aliases. This module comes with encoding table prepared for ISO-8859-2 (Latin-2) encoding. If your data come in different one, you might want to check the module B which can be used for reencoding of the list's data prior to calling I, or reencode this module to fit your needs. =head1 VERSION 0.68 =head1 SEE ALSO perl(1), Cz::Cstocs(3). =head1 AUTHOR (c) 1997--2000 Jan Pazdziora =cut Cstools-3.44/Cz/Time.pm0000644002656300235640000000375613453131732011657 0ustar =head1 NAME Cz::Time - Routines for printing dates in Czech =head1 SYNOPSIS use Cz::Time; my $today = cz_wday() . " " . cz_date(); my $new_year = " 1. " . cz_month_base(1); =head1 DESCRIPTION Implements czech names of months and weekdays. The following functions are exported: =over 4 =item cz_date Converts time (localtime if not specified) into Czech string, eg. 15. ledna 1997. =item cz_month_base, cz_month Czech names of months (1..12) =item cz_wday, cz_ab_wday Czech names of weekdays and weekdays' abreviation. =back By default they are returned in ISO-8859-2. =head1 AUTHORS (c) 1997 Jan Pazdziora 1997 Michael Mráka at Faculty of Informatics, Masaryk University, Brno =head1 VERSION 0.02 =head1 SEE ALSO perl(1), Cz::Cstocs(3). =cut package Cz::Time; use strict; use vars qw( $VERSION @ISA @EXPORT @EXPORT_OK ); use Exporter; @ISA = qw(Exporter); @EXPORT = qw( cz_date cz_month cz_wday cz_month_base cz_ab_wday ); @EXPORT_OK = qw( cz_date cz_month cz_wday cz_month_base cz_ab_wday ); $VERSION = '0.02'; my @CZ_MONTH_BASE = qw( leden únor březen duben květen červen červenec srpen září říjen listopad prosinec ); my @CZ_WEEK_DAYS = qw( neděle pondělí úterý středa čtvrtek pátek sobota ); my @CZ_AB_WEEK_DAYS = qw( Ne Po Út St Čt Pá So ); sub cz_month_base { my $month = shift; return $CZ_MONTH_BASE[$month-1]; } sub cz_month { my $month = shift; local $_ = $CZ_MONTH_BASE[$month-1]; s!en$!na! or s!ec$!ce! or s!ad$!adu! or s!or$!ora!; $_; } sub cz_date { my @t; if (@_) { @t = @_; } else { @t = localtime; } return $t[3] . '. ' . cz_month($t[4] + 1) . ' ' . ($t[5] + 1900); } sub cz_wday { my @t; if (@_) { @t = @_; } else { @t = localtime; } $CZ_WEEK_DAYS[$t[6]]; } sub cz_ab_wday { my @t; if (@_) { @t = @_; } else { @t = localtime; } $CZ_AB_WEEK_DAYS[$t[6]]; } 1; __END__ Cstools-3.44/Cz/Cstocs.pm0000755002656300235640000003702313454301457012220 0ustar =head1 NAME Cz::Cstocs - conversions of charset encodings for the Czech language =cut package Cz::Cstocs; use strict; use Exporter; use vars qw( $VERSION $DEBUG $cstocsdir @ISA @EXPORT_OK %EXPORT $errstr); @ISA = qw(Exporter); @EXPORT_OK = ( '_stupidity_workaround' ); %EXPORT = ( '_stupidity_workaround' => 1 ); sub _stupidity_workaround { } sub import { my $class = shift; my @data = @_; if (@data) { my @avail = Cz::Cstocs->available_enc(); my $fn; for $fn (@data) { local $^W = 0; next if grep { $_ eq $fn } @EXPORT_OK; my ($in, $out) = $fn =~ /^_?(.*?)_(?:to_)?(.*)$/; next unless defined $out; my $fnref = new Cz::Cstocs $in, $out; die "Definition of $fn failed: $errstr" unless defined $fnref;; eval "sub $fn { \$fnref->conv(\@_); }; "; if ($@) { die "Creating conversion function $fn failed: $@"; } push @EXPORT_OK, $fn; $EXPORT{$fn} = 1; } } Cz::Cstocs->export_to_level(1, '_stupidity_workaround', @data); } $VERSION = '3.43'; # Debugging option $DEBUG = 0 unless defined $DEBUG; sub DEBUG () { $DEBUG; } # Where to get the encoding files from # Start with some default my $defaultcstocsdir = '/packages/share/cstocs/lib'; # Look at the environment variable if (defined $ENV{'CSTOCSDIR'}) { $defaultcstocsdir = $ENV{'CSTOCSDIR'}; print STDERR "Using enc-dir $defaultcstocsdir from the CSTOCSDIR env-var\n" if DEBUG; } # Or take the encoding files from the Perl tree elsif (defined $INC{'Cz/Cstocs.pm'}) { $defaultcstocsdir = $INC{'Cz/Cstocs.pm'}; $defaultcstocsdir =~ s!\.pm$!/enc!; print STDERR "Using enc-dir $defaultcstocsdir from \@INC\n" if DEBUG; } # We have unless hare because you could have overriden $cstocsdir $cstocsdir = $defaultcstocsdir unless defined $cstocsdir; # Hash that holds the accent file and a tag saying if the accent # file has already been read my %accent = (); my $accent_read = 0; # Hash of alias covnersions my %alias = (); my $alias_read = 0; # Input and output hashes my %input_hashes = (); my %output_hashes = (); # Array of regexp parts my %regexp_matches = (); # Table of conversion functions, so that we do not need to create them twice my %functions = (); # List of diacritics my @diacritics = qw( abovedot acute breve caron cedilla circumflex diaeresis doubleacute ogonek ring ); # ###################################################### # Now, the function -- loading encoding and accent files # Filling input and output_hashes tables for given encoding sub load_encoding { my $enc = lc shift; return if defined $input_hashes{$enc}; # has already been loaded if ($enc eq 'mime') { eval 'use MIME::Words ()'; if ($@) { die "Error loading encofing $enc: $@\n"; } return; } my $file = "$cstocsdir/$enc.enc"; open FILE, $file or die "Error reading $file: $!\n"; print STDERR "Parsing encoding file $file\n" if DEBUG; my ($input, $output) = ({}, {}); # just speedup thing local $_; while () { next if /^(#|\s*$)/; my ($tag, $desc) = /^\s*(\S+)\s+(\S+)\s*$/; unless (defined $tag and defined $desc) { chomp; warn "Syntax error in $file at line $: `$_'.\n"; next; } if ($tag =~ /^\d+|0x\d+$/) { $tag = pack 'C*', map { /^0/ ? oct($_) : $_ } split /,/, $tag; } $input->{$tag} = $desc; $output->{$desc} = $tag unless defined $output->{$desc}; } close FILE; $input_hashes{$enc} = $input; $output_hashes{$enc} = $output; if ($enc eq "tex") { fixup_tex_encoding(); } } sub fixup_tex_encoding { my $tag; print STDERR "Doing tex fixup\n" if DEBUG; my $input = $input_hashes{"tex"}; my $output = $output_hashes{"tex"}; # we need this to fill the defaults load_encoding('ascii'); my $asciiref = $output_hashes{'ascii'}; for $tag (keys %$asciiref) { $output->{$tag} = $asciiref->{$tag} unless defined $output->{$tag}; } my %processed = (); my (@dialetters, @dianonletters, @nondialetters, @nondianonletters); my (@inputs) = keys %$input; for $tag (@inputs) { my $value = $input->{$tag}; my $az = 0; $az = 1 if $tag =~ /[a-zA-Z]$/; if ($az and $output->{$value} eq $tag) { $output->{$value} = $tag . '{}'; } $input->{$tag . ' '} = $value; if (grep { $_ eq $value } @diacritics) { my $e; if ($az) { push @dialetters, $tag; for $e ('a'..'h', 'k'..'z', 'A'..'Z') { $output->{$e.$value} = $tag.' '.$e } } else { push @dianonletters, $tag; for $e ('a'..'h', 'k'..'z', 'A'..'Z') { $output->{$e.$value} = $tag.$e } for $e ('a'..'z', 'A'..'Z') { $input->{$tag.$e} = $e.$value; } } for $e ('i', 'j') { $output->{$e.$value} = $tag.'\\'.$e.'{}' } for $e ('a'..'z', 'A'..'Z') { $input->{$tag.' '.$e} = $e.$value; } for $e ('i', 'j') { $input->{$tag.'\\'.$e} = $e.$value; $input->{$tag.' \\'.$e} = $e.$value; } } elsif ($az) { push @nondialetters, $tag; } else { push @nondianonletters, $tag; } } my $regexp = ''; if (@dialetters) { $regexp .= join '', '(', join('|', map { "\Q$_"; } @dialetters), ")([ \\t]+[a-zA-Z]|[ \\t]*(\\\\[ij]([ \\t]+(\\{\\})?|[ \\t]*(\$|\\{\\}))|\\{([a-zA-Z]|\\\\[ij][ \\t]*(\\{\\})?)\\}))"; } if (@dianonletters) { $regexp .= '|' if $regexp ne ''; $regexp .= '(' . join '', join('|', map { "\Q$_"; } @dianonletters), ")[ \\t]*([a-zA-Z]|\\\\[ij]([ \\t]+(\\{\\})?|[ \\t]*(\$|\\{\\}))|\\{([a-zA-Z]|\\\\[ij][ \\t]*(\\{\\})?)\\})"; } if (@nondialetters) { $regexp .= '|' if $regexp ne ''; $regexp .= '(' . join '', join('|', map { "\Q$_"; } @nondialetters), ")([ \\t]+(\\{\\})?|[ \\t]*\$)" } if (@nondianonletters) { $regexp .= '|' if $regexp ne ''; $regexp .= '(' . join '', join('|', map { "\Q$_"; } @nondianonletters), ")[ \\t]*(\\{\\})?" } $regexp_matches{'tex'} = $regexp; 1; } # Loading accent file sub load_accent { return if $accent_read; $accent_read = 1; my $file = "$cstocsdir/accent"; open FILE, $file or die "Error reading accent file $file: $!\n"; print STDERR "Parsing accent file $file\n" if DEBUG; local $_; while () { next if /^\s*(#|$)/; my ($key, $val) = /^\s*(\S+)\s+(.+?)\s*$/; unless (defined $key and defined $val) { chomp; warn "Syntax error in $file at line $: `$_'.\n"; next; } $accent{$key} = $val; } close FILE; } # Load the alias file, fill the global %alias hash; sub load_alias { return if $alias_read; $alias_read = 1; my $file = "$cstocsdir/alias"; open FILE, $file or die "Error reading alias file $file: $!\n"; local $_; while () { chomp; my ($alias, $enc) = split; $alias{$alias} = $enc; } close FILE; } # Normalizes the encoding name -- expands aliases sub normalize_enc_name { load_alias(); my $enc = lc shift; $enc =~ s/[^a-z0-9]//g; ( defined $alias{$enc} ? $alias{$enc} : $enc ); } # Recursively lookup the target sub lookup_accent { my ($outenc, $accent, $in) = @_; my @target = split /\s+/, $in; my $out = ''; for my $desc (@target) { if (defined $outenc->{$desc}) { $out .= $outenc->{$desc}; } elsif (defined $accent->{$desc}) { $out .= lookup_accent($outenc, $accent, $accent->{$desc}); } else { die; } } return $out; } # Constructor -- takes two arguments, input and output encodings, # a optionally hash of options. Returns reference to code that will # do the conversion, or undef sub new { my $class = shift; my ($inputenc, $outputenc) = (shift, shift); local $/ = "\n"; # check input values unless (defined $inputenc and defined $outputenc) { print STDERR "Both input and output encodings must be specified in call to ", __PACKAGE__, "::new\n"; return; } # Default options my $fillstring = ' '; my $use_fillstring = 1; my $use_accent = 1; my $one_by_one = 0; # this is exception for TeX $use_fillstring = 0 if $inputenc eq "tex"; my %opts = @_; my ($tag, $value); while (($tag, $value) = each %opts) { print STDERR "Option: $tag = '$value'\n" if DEBUG; $tag eq 'fillstring' and $fillstring = $value; $tag eq 'use_accent' and $use_accent = (defined $value ? $value : 0); $tag eq 'nofillstring' and $use_fillstring = (defined $value ? ( $value ? 0 : 1) : 0); $tag eq 'cstocsdir' and $cstocsdir = $value; $tag eq 'one_by_one' and $one_by_one = $value; } $inputenc = normalize_enc_name($inputenc); $outputenc = normalize_enc_name($outputenc); # encode settings into the function name if (defined $functions{"${inputenc}_${outputenc}_${fillstring}_${use_fillstring}_${use_accent}_${one_by_one}"}) { return $functions{"${inputenc}_${outputenc}_${fillstring}_${use_fillstring}_${use_accent}_${one_by_one}"}; } eval { load_encoding($inputenc); load_encoding($outputenc); load_accent() if $use_accent; }; if ($@) { $errstr = $@; return; } my $conv = {}; my ($is_one_by_one, $has_space) = (1, 0); if ($outputenc ne 'mime') { my $key; for $key (keys %{$input_hashes{$inputenc}}) { my $desc = $input_hashes{$inputenc}{$key}; my $output = $output_hashes{$outputenc}{$desc}; if (not defined $output and $use_accent) { # Doesn't have friend in output encoding $output = eval { lookup_accent($output_hashes{$outputenc}, \%accent, $accent{$desc}) if defined $accent{$desc}; }; if ($@) { $errstr = "Error processing translitaration for $inputenc -> $outputenc for character $desc.\n"; return; } $output = undef if $one_by_one and defined $output and length $key < length $output; } if (not defined $output and $use_fillstring) { $output = $fillstring; } next if (not defined $output or ($inputenc ne 'utf8' and $key eq $output)); if (length $key != 1 or length $output != 1) { $is_one_by_one = 0; } $conv->{$key} = $output; } } my $fntext = ' sub { my @converted = map { my $e = $_; if (defined $e) {'; if ($inputenc eq 'mime') { $fntext .= qq! \$e =~ s/=\\s*=/==/g; \$e = join '', map { my \$conv; if (defined \$_->[1]) { (defined(\$conv = new Cz::Cstocs \$_->[1], '$outputenc', %{ \\%opts })) ? \$conv->conv(\$_->[0]) : () } else { \$_->[0] } } MIME::Words::decode_mimewords(\$e); !; } elsif ($outputenc eq 'mime') { my %MIME_NAMES = ( il1 => 'ISO-8859-1', il2 => 'ISO-8859-2', utf8 => 'UTF-8', 1250 => 'Windows-1250', 1252 => 'Windows-1252', ); my $charset = $MIME_NAMES{$inputenc}; if (not defined $charset) { die "Couldn't find MIME name for encoding $inputenc\n"; } $fntext .= qq! \$e = MIME::Words::encode_mimewords(\$e, Charset => '$charset'); \$e =~ s/\\?=( +)=\\?.*?\\?Q\\?/'_' x length \$1/egi; !; } elsif (not keys %$conv) { # do nothing; } elsif ($is_one_by_one) { my $src = join "", keys %$conv; $src = "\Q$src"; my $dst = join "", values %$conv; $dst = "\Q$dst"; $fntext .= qq! \$e =~ tr/$src/$dst/; !; } elsif ($inputenc eq 'tex') { my $src = $regexp_matches{'tex'}; $fntext .= qq! \$e =~ s/$src/ my \$e = \$&; my \$orig = \$e; \$e =~ s#[{}]# #sog; \$e =~ s#[ \\t]+# #sog; \$e =~ s# \$##o; (defined \$conv->{\$e} ? \$conv->{\$e} : \$orig); /esog; !; } elsif ($inputenc eq 'utf8') { $fntext .= qq! \$e =~ s/[\\x21-\\x7f]|[\\xc0-\\xdf].|[\\xe0-\\xef]..|[\\xf0-\\xf7]...|[\\xf8-\\xfb]....|[\\xfc\\xfd]...../defined \$conv->{\$&} ? \$conv->{\$&} : ( $use_fillstring ? \$fillstring : '') /esog; !; } else { my $singles = join "", grep { length $_ == 1 } keys %$conv; $singles = "[". "\Q$singles" . "]"; my $src = join "|", ( map { my $e = "\Q$_"; $e; } sort { length $b <=> length $a } grep { length $_ != 1 } keys %$conv); if ($singles ne "[]") { $src .= "|" unless $src eq ''; $src .= $singles; } $fntext .= qq! \$e =~ s/$src/\$conv->{\$&}/sog; !; } $fntext .= ' $e; } else { undef; }} @_; if (wantarray) { return @converted; } else { return join "", map { defined $_ ? $_ : "" } @converted; } }'; print STDERR "Conversion function for $inputenc to $outputenc:\n$fntext\n" if DEBUG; my $fn = eval $fntext; do { chomp $@; die "Fatal error in Cz::Cstocs: $@, line ", __LINE__, "\n"; } if $@; bless $fn, $class; $functions{"${inputenc}_${outputenc}_${fillstring}_${use_fillstring}_${use_accent}_${one_by_one}"} = $fn; $fn; } sub conv { my $self = shift; return &$self($_[0]); } sub available_enc { opendir DIR, $cstocsdir or warn "Error reading $cstocsdir\n"; my @list = sort map { s/\.enc$//; $_ } grep { /\.enc$/ } readdir DIR; closedir DIR; return @list; } sub diacritic_char { my ($encoding, $char) = @_; load_encoding($encoding); my @result = (); my $dia; for $dia (@diacritics) { my $name = $char . $dia; push @result, $output_hashes{$encoding}{$name} if defined $output_hashes{$encoding}{$name}; } @result; } 1; =head1 SYNOPSIS use Cz::Cstocs; my $il2_to_ascii = new Cz::Cstocs 'il2', 'ascii'; while (<>) { print &$il2_to_ascii($_); } use Cz::Cstocs 'il2_ascii'; while (<>) { print il2_ascii($_); } use Cz::Cstocs; sub il2toascii; # inform the parser that there is a function il2toascii *il2toascii = new Cz::Cstocs 'il2', 'ascii'; # now define the function print il2toascii $data; # thanks to Jan Krynicky for poining this out =head1 DESCRIPTION This module helps in converting texts between various charset encodings, used for Czech and Slovak languages. The instance of the object B is created using method B. It takes at least two parameters for input and output encoding and can be afterwards used as a function reference to convert strings/lists. Cz::Cstocs supports fairly free form of aliases, so iso8859-2, ISO-8859-2, iso88592 and il2 are all aliases of the same encoding. For backward compatibility, method I is supported as well, so the example above could also read while (<>) { print $il2_to_ascii->conv($_); } You can also use typeglob syntax. The conversion function takes a list and returns list of converted strings (in the list context) or one string consisting of concatenated results (in the scalar context). You can modify the behaviour of the conversion function by specifying hash of other options after the encoding names in call to B. =over 4 =item fillstring Gives alternate string that will replace characters from input encoding that are not present in the output encoding. Default is space. =item use_accent Defines whether the accent file should be used. Default is 1 (true). =item nofillstring When 1 (true), will keep characters that do not have friends in accent nor output encoding, will no replace them with fillstring. Default is 0 except for tex, because you probably rather want to keep backslashed symbols than loose them. =item cstocsdir Alternate location for encoding and accent files. The default is the F directory in Perl library tree. This location can also be changed with the I environment variable. =back There is an alternate way to define the conversion function: any arguments after use Cz::Cstocs that have form encoding_encoding or encoding_to_encoding are processed and the appropriate functions are imported. So, use Cz::Cstocs qw(pc2_to_il2 il2_ascii); define two functions, that are loaded into caller's namespace and can be used directly. In this case, you cannot specify additional options, you only have default behaviour. =head1 ERROR HANDLING If you request an unknown encoding in the call to new Cz::Cstocs, the conversion object is not defined and the variable $Cz::Cstocs::errstr is set to the error message. When you specify unknown encoding in the use call style (like C), the die is called. =head1 AUTHOR Jan Pazdziora created the module version. Jan "Yenya" Kasprzak has done the original Un*x implementation. =head1 VERSION 3.43 =head1 SEE ALSO cstocs(1), perl(1), or Xcstocs at http://www.lut.fi/~kurz/programs/xcstocs.tar.gz. =cut Cstools-3.44/bin/0000755000000000000000000000000013454301506012341 5ustar rootrootCstools-3.44/bin/dbfcstocs.PL0000755002656300235640000000775013453132041013021 0ustar # # This extraction code was taken from the libwww modules. # use Config; my $filename = $0; $filename =~ s/\.PL$//; open OUT,">$filename" or die "Can't create $filename: $!"; chmod(0755, $filename); print "Extracting $filename (with #! substitution)\n"; print OUT <<"EOHEADER"; $Config{'startperl'} -w eval 'exec perl -S \$0 "\$@"' if 0; EOHEADER print OUT <<'EOBODY'; use vars qw( $running_under_some_shell ); =head1 NAME dbfcstocs -- charset conversion of dbf files =head1 FORMAT dbfcstocs [options] src_encoding dst_encoding [file.dbf outfile.dbf...] =head1 SYNOPSIS dbfcstocs il2 1250 table.dbf table1.dbf Please see the dbfcstocs --help for short usage info. =head1 DESCRIPTION This script is a wrapper aound the cstocs utility, please see its man page first. This program converts charsets in dbf database files. You can also use the --field-names-charset option which will specify to which charset to convert the field names. So you can convert file in Windows-1250 to IOS-8859-2, but have its field names converted to US-ASCII: dbfcstocs --field-names-charset-ascii 1250 il2 table.dbf table1.dbf After the encoding specifications, pass couples of input dbf file, output destination file names. =head1 SEE ALSO cstocs(1). =head1 AUTHOR Jan Pazdziora =cut use strict; use Cz::Cstocs; use Cz::Cstocs::Getopt; use XBase; my ($convert, $options) = Cz::Cstocs::Getopt::process_argv( { 'field-names-charset=s' => 'field-names-charset', 'memofile=s' => 'memofile', 'memosep=s' => 'memosep', 'nomemo' => 'ignorememo', 'help' => sub { print "This is dbfcstocs version $Cz::Cstocs::VERSION.\n"; print STDERR <{'field-names-charset'}) { $names_convert = new Cz::Cstocs $options->{'inputenc'}, $options->{'field-names-charset'}, 'one-by-one' => 1 or die "Error initializing field names conversion: $Cz::Cstocs::errstr.\n"; } ### use Data::Dumper; print "Options: ", Dumper $options; if (not defined $convert) { print STDERR $@; exit(1); } my $length_of_argv = @ARGV; if ($length_of_argv == 0) { die "Need file names to convert.\n"; } elsif ($length_of_argv > 2 and (($length_of_argv % 2) == 1)) { die "Need output file name for the last dbf.\n"; } while (@ARGV) { my $filename = shift @ARGV; my $outfilename = shift @ARGV; $outfilename = 'out_' . $filename unless defined $outfilename; my %other_options = (); for (qw!memofile memosep ignorememo!) { $other_options{$_} = $options->{$_} if defined $options->{$_}; } my $table = new XBase $filename, %other_options; unless (defined $table) { print "Error reading $filename: $XBase::errstr"; next; } %other_options = (); if (defined $names_convert) { $other_options{'field_names'} = [ map { &$names_convert($_) } $table->field_names ]; } my $out = $table->create("name" => $outfilename, %other_options) or die "Error creating output file: $outfilename: $XBase::errstr"; my @types = $table->field_types; my @convert_fields = (); for (my $i = 0; $i < @types; $i++) { push @convert_fields, $i if $types[$i] eq 'C' or $types[$i] eq 'M'; } for my $i (0 .. $table->last_record) { my @data = $table->get_record($i); my $deleted = shift @data; for (@data[@convert_fields]) { ### print STDERR "Converting $_ "; $_ = &$convert($_); ### print STDERR "to $_\n"; } $out->set_record($i, @data); $out->delete_record($i) if $deleted; } $out->close; $table->close; } EOBODY Cstools-3.44/bin/cssort.PL0000755002656300235640000000770213453132065012367 0ustar use Config; my $filename = $0; $filename =~ s/\.PL$//; open OUT,">$filename" or die "Can't create $filename: $!"; chmod(0755, $filename); print "Extracting $filename (with #! substitution)\n"; print OUT <<"EOHEADER"; $Config{'startperl'} -w eval 'exec perl -S \$0 "\$@"' if 0; EOHEADER print OUT <<'EOBODY'; use vars qw( $running_under_some_shell ); =head1 NAME cssort -- Czech sort =head1 FORMAT cssort [ C<-c>B | C<-f>B [C<-d>B]] [files ...] =head1 SYNOPSIS cssort -c10-15,50-,25-45 < file cssort -f3,5-6 < file cssort -f3,5-6 -s: < file =head1 DESCRIPTION Cssort is a utility that sorts input lines according to rules used in the Czech language. You can run it without any options, then it just uses whole lines for sorting. With the options, it's possible to specify parts of the lines to be used for comparison. =over 4 =item B A comma-separated list of integer field numbers or field ranges. The are indexed from 1 and if a range is open (eg. C<5->), it means all remaining fields from the starting number. =item B<-c> Stands for columns and the list that follows specifies byte ranges on the line. You will probably use this option to sort data with fixed width fields. =item B<-f> Fields that will be used for sort. =item B<-d> Delimiter that separates fields in the B<-f> option. It is a Perl regular expression, the default is C<[ \t]+>, which means any number of spaces or tabs in a row. =back The program assumes ISO-8859-2 encoding. Some way to specify another input encoding will come in the next versions. If you need to sort files with different encodings, you might want to check the B conversion utility. =head1 SEE ALSO Cz::Sort(3), cstocs(1). =head1 AUTHOR Jan Pazdziora =cut use strict; use Getopt::Std; use Cz::Sort; my %opts = ( 'd' => '[ \t]+', ); getopt('dfce', \%opts); if (defined $opts{'h'}) { print STDERR <<"EOF"; This is cssort version $Cz::Sort::VERSION. Usage info: cssort [ -clist | -flist [-dregexp]] [files ...] -c Columns -f Field numbers -d Delimiter, field separator Lists are comma separated lists of field (column) numbers or ranges. Example: cssort -c10-15,50-,25-45 cssort -f3,5-6 -s: EOF exit(1); } my $switch = 'c'; my $option = $opts{$switch}; if (not defined $option) { $switch = 'f'; $option = $opts{$switch}; } if (not defined $option) { $switch = undef; } my $conversion; if (defined $opts{'e'}) { require Cz::Cstocs; $conversion = new Cz::Cstocs $opts{'e'}, 'il2'; } if (defined $switch) { my (@starts, @lengths, @array); for (split /,/, $option) { if (/^\d+$/) { push @starts, $_ - 1; push @lengths, 1; } elsif (/^(\d+)-(\d+)$/) { push @starts, $1 - 1; push @lengths, ($2 - $1 + 1); } elsif (/^(\d+)-$/) { push @starts, $1 - 1; push @lengths, undef; } else { die "Cssort: wrong option '$_' for switch -$switch\n"; } } if ($switch eq 'c') { while (<>) { chomp; my $line = [ $_ ]; my $i; for ($i = 0; $i < @starts; $i++) { if ($starts[$i] >= length $_) { push @$line, undef; } elsif (defined $lengths[$i]) { push @$line, substr $_, $starts[$i], $lengths[$i]; } else { push @$line, substr $_, $starts[$i]; } } push @array, $line; } } else { my $regexp = $opts{'d'}; while (<>) { chomp; my @items = split /$regexp/so; my $line = [ $_ ]; my $i; for ($i = 0; $i < @starts; $i++) { push @$line, @items[$starts[$i] .. (defined $lengths[$i] ? $starts[$i] + $lengths[$i] - 1 : $#items )]; } push @array, $line; } } print map { $_->[0] . "\n" } sort { my $len = ( @$a >= @$b ? @$a : @$b); my $i; for ($i = 1; $i < $len; $i++) { if (not defined $a->[$i]) { return 0 if not defined $b->[$i]; return -1; } if (not defined $b->[$i]) { return 1; } my $result = czcmp($a->[$i], $b->[$i]); return $result if $result != 0; } return 0; } @array; } else { print czsort <>; } EOBODY Cstools-3.44/bin/cstocs.PL0000755002656300235640000001021413453132075012341 0ustar # # This extraction code was taken from the libwww modules. # use Config; my $filename = $0; $filename =~ s/\.PL$//; open OUT,">$filename" or die "Can't create $filename: $!"; chmod(0755, $filename); print "Extracting $filename (with #! substitution)\n"; print OUT <<"EOHEADER"; $Config{'startperl'} -w eval 'exec perl -S \$0 "\$@"' if 0; EOHEADER print OUT <<'EOBODY'; use vars qw( $running_under_some_shell ); =head1 NAME cstocs -- charset encoding convertor for the Czech and Slovak languages. =head1 FORMAT cstocs [options] src_encoding dst_encoding [files ...] =head1 SYNOPSIS cstocs il2 ascii < file | less cstocs -i utf8 il2 file1 file2 file3 cstocs --help =head1 DESCRIPTION Cstocs is a simple conversion utility to change charset encoding of a text. It reads either specified files or (if none specified) the standard input, assumes that the input is encoded in C and ties to reencode it into C. The result is written to the standard output. Run C without parameters to get short help and list of available encodings. Characters that are not defined in C are passed to the output unchanged. If source text contains character, that is defined in C but not in C, it can be handled several ways. For example, character "e with caron" (symbol ecaron), and "d with caron" (symbol dcaron) are included in the iso-8859-2 encoding, but not in the iso-8859-1. If you will do reencoding of 8859-2 text to 8859-1, you may want to do one of the following actions: =over 3 =item 1. Keep it the same, option C<--nofillstring>. =item 2. Do not produce any output instead of "ecaron" symbol, option C<--null>. =item 3. Substitute some string (possibly a space) instead of both ecaron and dcaron, options C<--fillstring>. =item 4. Substitute a letter "d" instead of dcaron, and "e" instead of ecaron. It is even possible to substitute string instead of symbol, so you can replace the "AE" Latin character with string "AE" (letter "A", and letter "E"). Or you can replace a "plusminus sign" with a string "+/-". These substitutions are described in the F file. =back =head1 OPTIONS =over 4 =item -i, -i.ext, --inplace.ext Files specified will be converted in-place, using Perl C<-i> facility. Optionaly, an extension for backup copies may be specified after dot. This parameter B to be the first one, if specified. =item --dir directory Encoding files are taken from F instead of the default, which is F in the Perl lib tree. The location of encoding files can also be changed using the I environment variable, but the --dir option has the highest priority. =item --fillstring string If source text contains character, that is defined in the C but not in the C nor in the F file (or F file is not used), it is replaced by C. The default is single space. =item --nofillstring Disable changes of characters that would otherwise have fillstring applied. This is different from C<--null> because that cancels that character out. =item --null Completely equivalent to --fillstring "". =item --nochange or --noaccent Do not use the F file at all. =item --onebyone Use only those rules from the F file, which rewrite one character to one character. If this option is specified, character "ecaron" will be rewritten to "e", but "AE" character will not be rewritten to "AE" string. =item --onebymore Use all rules from accent file. This is the default option. =back =head1 SEE ALSO Cz::Cstocs(3). =head1 AUTHOR Jan "Yenya" Kasprzak has done the original Un*x implementation. Jan Pazdziora created the Perl module version. =cut BEGIN { if ($ARGV[0] =~ /^--?i(npl)?.*?(\..+?$)?$/) { my $ext = ''; $ext = $2 if defined $2; shift @ARGV; ### print STDERR "Running: $^X -i$ext -- $0 @ARGV\n"; exec $^X, "-i$ext", '--', $0, @ARGV; die "Exec of perl $^X for inplace substitution failed.\n"; } } use Cz::Cstocs; use Cz::Cstocs::Getopt; my $convert = Cz::Cstocs::Getopt::process_argv; if (not defined $convert) { print STDERR $@; exit(1); } while (<>) { print &$convert($_); } EOBODY Cstools-3.44/t/0000755000000000000000000000000013454301506012034 5ustar rootrootCstools-3.44/t/sort.tab0000644002656300235640000000123406436535624011771 0ustar ---INPUT--- _x j&á _& ---OUTPUT--- _& _x j&á ---DONE--- ---INPUT--- plácka g_& placka x ---OUTPUT--- placka x plácka g_& ---DONE--- ---INPUT--- \b b \ a ---OUTPUT--- \ a b \b ---DONE--- ---INPUT--- japonský Japonsko chrt hrnec Japonec ---OUTPUT--- hrnec chrt Japonec Japonsko japonský ---DONE--- ---INPUT--- plachta platno plášť platnost Plánička pláně plagiát plánička plankton plátno plát plat plaňka ---OUTPUT--- plagiát plachta pláně plánička Plánička plaňka plankton plášť plat plát platno plátno platnost ---DONE--- ---INPUT--- abc frézaře ABC nástrojáře ABC a abc abc nástrojáře ---OUTPUT--- a abc ABC abc frézaře abc nástrojáře ABC nástrojáře ---DONE--- Cstools-3.44/t/dbfcstocs.t0000644002656300235640000000230307504571366012447 0ustar ### # Cz::Cstocs.pm BEGIN { $^W = 0; $| = 1; eval 'use XBase;'; if ($@) { print "1..0\n"; exit; } print "1..4\n"; } ### print "Calling the external dbfcstocs program\n"; use ExtUtils::testlib; my $libs = join " -I", '', @INC; my $TSTDBF = 'test.dbf'; $TSTDBF = 't/' . $TSTDBF if -d 't'; my $OUTDBF = 'out-test.dbf'; $OUTDBF = 't/' . $OUTDBF if -d 't'; print "$TSTDBF and $OUTDBF.\n"; unlink $OUTDBF; system("$^X $libs blib/script/dbfcstocs --field-names-charset=ascii il2 ascii $TSTDBF $OUTDBF"); if (not -f $OUTDBF) { print "not ok 1\n"; exit; } print "ok 1\n"; print "Loading the output dbf.\n"; my $table = new XBase $OUTDBF; unless (defined $table) { print "Error loading the output file: $XBase::errstr\nnot ok 2\n"; exit; } print "ok 2\n"; print "Checking field names.\n"; my @fields = $table->field_names; if ("@fields" ne "ID JMENO BYDLISTE D_NAROZENI ODMENA VYSKA") { print "Field names (@fields) were not converted correctly.\nnot "; } print "ok 3\n"; print "Checking data.\n"; my @data = $table->get_record(0); if ("@data" ne "0 1 Malicky Jezecek Pareziste 123 19980416 1700 0.17") { print "Data (@data) was not converted correctly.\nnot "; } print "ok 4\n"; unlink $OUTDBF; Cstools-3.44/t/test.dbf0000644002656300235640000000050107140312150011716 0ustar dá_IDN JMÉNOCBYDLIŠTĚCJ-D_NAROZENÍDRODMĚNANZVÝŠKAF_ 1Maličký Ježeček Pařeziště 123 19980416 1700 0.17Cstools-3.44/t/cstocs.t0000644002656300235640000001547113454301110011760 0ustar ### # Cz::Cstocs.pm ### no utf8; BEGIN { $| = 1; print "1..31\n"; } END {print "not ok 1\n" unless $loaded_cstocs;} ### BEGIN { print "Loading module Cz::Cstocs\n"; } use Cz::Cstocs; $loaded_cstocs = 1; print "ok 1\n"; ### print "Creating new Cz::Cstocs object\n"; my $il2_to_ascii = new Cz::Cstocs 'il2', 'ascii'; print "not " unless defined $il2_to_ascii; print "ok 2\n"; ### print "Converting a string 'ježeček nelétá' to plain ascii\n"; my $result1 = &$il2_to_ascii('ježeček nelétá'); print "Got '$result1'\n"; print "not " if $result1 ne "jezecek neleta"; print "ok 3\n"; ### print "Now using a method call\n"; my $result2 = $il2_to_ascii->conv('ježeček nelétá'); print "Got '$result2'\n"; print "not " if $result2 ne "jezecek neleta"; print "ok 4\n"; ### print "Calling the external cstocs program\n"; use ExtUtils::testlib; my @libs = map "-I$_", @INC; my $TSTFILE = 'out.tst'; $TSTFILE = 't/' . $TSTFILE if -d 't'; open PROCESS, "| $^X @libs blib/script/cstocs il2 ascii > $TSTFILE"; print PROCESS "ježeček\n"; close PROCESS; open READ, $TSTFILE; my $result3 = ; close READ; print "Got '$result3'\n"; print "not " if $result3 ne "jezecek\n"; print "ok 5\n"; ### print "And once more, for the bug that was fixed in 3.07\n"; open PROCESS, "| $^X @libs blib/script/cstocs pc2 il2 > $TSTFILE"; print PROCESS "\375\n"; close PROCESS; open READ, $TSTFILE; my $result4 = ; close READ; print "Got '$result4'\n"; print "not " if $result4 ne "ř\n"; print "ok 6\n"; unlink $TSTFILE; ### print "Converting a list 'ježeček', 'nelétá' to plain ascii\n"; my $result5 = join ';', &$il2_to_ascii('ježeček', 'nelétá'); print "Got '$result5'\n"; print "not " if $result5 ne "jezecek;neleta"; print "ok 7\n"; ### print "Converting ascii to ascii\n"; my $ascii_to_ascii = new Cz::Cstocs 'ascii', 'ascii'; print "not " if not defined $ascii_to_ascii; print "ok 8\n"; my $result6 = $ascii_to_ascii->conv("jezecek neleta"); print "Got '$result6'\n"; print "not " if $result6 ne "jezecek neleta"; print "ok 9\n"; ### print "Converting tex to il2\n"; my $tex_to_il2 = new Cz::Cstocs 'tex', 'il2'; print "not " if not defined $tex_to_il2; print "ok 10\n"; print "Expecting částka; ježeček; píseň; ae\n"; my $result7 = $tex_to_il2->conv("\\v c\\'astka; je\\v{z}e\\v cek; p\\'{\\i}se\\v n; \\ae"); print "Got '$result7'\n"; print "not " if $result7 ne "částka; ježeček; píseň; ae"; print "ok 11\n"; ### print "Converting tex to il2 (use_accent = 0; nochange)\n"; $tex_to_il2 = new Cz::Cstocs 'tex', 'il2', 'use_accent' => 0; print "not " if not defined $tex_to_il2; print "ok 12\n"; print "Expecting \\ae -> \\ae\n"; my $result8 = $tex_to_il2->conv("\\ae"); print "Got '$result8'\n"; print "not " if $result8 ne "\\ae"; print "ok 13\n"; ### print "Converting il2 to tex\n"; $il2_to_tex = new Cz::Cstocs 'il2', 'tex'; print "not " if not defined $il2_to_tex; print "ok 14\n"; print "Expecting \\v z\\'\\i{}\\v zala\n"; my $result9 = $il2_to_tex->conv("žížala"); print "Got '$result9'\n"; print "not " if $result9 ne "\\v z\\'\\i{}\\v zala"; print "ok 15\n"; ### print "Testing correct behaviour of one_by_one\nFirst without it\n"; my $_1250_to_il2 = new Cz::Cstocs '1250', 'il2' or print 'not '; print "ok 16\n"; print "Expecting -- --- (TM)\n"; my $result17 = $_1250_to_il2->conv("\226 \227 \231"); print "Got '$result17'\n"; print 'not ' if $result17 ne '-- --- (TM)'; print "ok 17\n"; ### print "And now one_by_one and also fillstring set\n"; $_1250_to_il2 = new Cz::Cstocs '1250', 'il2', 'one_by_one' => 1, 'fillstring' => '?' or print 'not '; print "ok 18\n"; print "Expecting ' '\n"; my $result19 = $_1250_to_il2->conv("\226\227\231"); print "Got '$result19'\n"; print 'not ' if $result19 ne '???'; print "ok 19\n"; ### print "Test use Cz::Cstocs _1250_il2; _1250_il2(\212)\n"; use Cz::Cstocs '_1250_il2'; my $result20 = _1250_il2("\212"); printf "Got %o\nnot ", ord($result20) if $result20 ne "Š"; print "ok 20\n"; ### print "Test the aliases\n"; my $conv = new Cz::Cstocs 'iso-8859-2', 'US-ASCII'; if (not defined $conv) { print "$Cz::Cstocs::errstr\nnot "; } print "ok 21\n"; my $result22 = $conv->conv('maličký ježeček'); printf "Got $result22\n"; print 'not ' if $result22 ne 'malicky jezecek'; print "ok 22\n"; ### print "Test il2 to UTF-8 and back\n"; my $il2_to_utf8 = new Cz::Cstocs 'il2', 'utf8'; if (not defined $il2_to_utf8) { print "$Cz::Cstocs::errstr\nnot "; } print "ok 23\n"; my $result24 = $il2_to_utf8->conv('maličký ježeček'); printf "Got $result24\n"; print 'not ' if $result24 ne "maliÄ\x8dkĂ˝ jeĹžeÄ\x8dek"; print "ok 24\n"; my $utf8_to_il2 = new Cz::Cstocs 'utf8', 'il2'; if (not defined $utf8_to_il2) { print "$Cz::Cstocs::errstr\nnot "; } print "ok 25\n"; my $result26 = $utf8_to_il2->conv($result24); printf "Got $result26\n"; print 'not ' if $result26 ne 'maličký ježeček'; print "ok 26\n"; ### print "And now test the inplace conversion\n"; open OUT, "> $TSTFILE"; print OUT $il2_to_utf8->conv('maličký ježeček'), "\n"; close OUT; print "Running: $^X @libs blib/script/cstocs -i.bak utf8 ascii $TSTFILE\n"; system "$^X @libs blib/script/cstocs -i.bak utf8 ascii $TSTFILE"; open IN, $TSTFILE; my $result27 = ; close IN; print 'not ' if $result27 ne "malicky jezecek\n"; print "ok 27\n"; unlink $TSTFILE; unlink "$TSTFILE.bak"; ### eval 'use MIME::Words'; if ($@) { print "ok 28 #skip\n"; print "ok 29 #skip\n"; print "ok 30 #skip\n"; print "ok 31 #skip\n"; } else { print "Will test conversion from MIME to il2:\n"; my $mimedata = <<'EOF'; X-Hlavicka: UTF-8 =?utf-8?Q?=C4=8Desk=C3=BD?= text =?iso-8859-2?Q?+=EC=B9=E8=F8=BE=FD=E1=ED=E9?= =?iso-8859-2?Q?+=EC=B9=E8=F8=BE=FD=E1=ED=E9?= =?utf-8?Q?_=C4=8Desk=C3=BD?= =?iso-8859-2?Q?+=EC=B9=E8=F8=BE=FD=E1=ED=E9?= EOF my $mime_il2 = new Cz::Cstocs 'mime', 'il2'; if (not defined $mime_il2) { print "$Cz::Cstocs::errstr\nnot "; } print "ok 28\n"; my $out = $mime_il2->conv($mimedata); if ($out ne "X-Hlavicka: UTF-8 český text +ěščřžýáíé+ěščřžýáíé český+ěščřžýáíé\n") { print "not "; } print "ok 29\n"; my $il2_mime = new Cz::Cstocs 'il2', 'MIME'; if (not defined $il2_mime) { print "$Cz::Cstocs::errstr\nnot "; } print "ok 30\n"; my $outmime = &$il2_mime($out); print "X-Hlavicka: UTF-8 =?ISO-8859-2?Q?=E8esk=FD?= text +=?ISO-8859-2?Q?=EC=B9=E8=F8=BE=FD=E1=ED=E9?=+=?ISO-8859-2?Q?=EC=B9=E8=F8=BE=FD=E1=ED=E9_=E8esk=FD?=+=?ISO-8859-2?Q?=EC=B9=E8=F8=BE=FD=E1=ED=E9?=\n"; print "$outmime\n"; if ($outmime ne "X-Hlavicka: UTF-8 =?ISO-8859-2?Q?=E8esk=FD?= text +=?ISO-8859-2?Q?=EC=B9=E8=F8=BE=FD=E1=ED=E9?=+=?ISO-8859-2?Q?=EC=B9=E8=F8=BE=FD=E1=ED=E9_=E8esk=FD?=+=?ISO-8859-2?Q?=EC=B9=E8=F8=BE=FD=E1=ED=E9?=\n" and $outmime ne "X-Hlavicka: UTF-8 =?ISO-8859-2?Q?=E8esk=FD=20?=text +=?ISO-8859-2?Q?=EC=B9=E8=F8=BE=FD=E1=ED=E9?=+=?ISO-8859-2?Q?=EC=B9=E8=F8=BE=FD=E1=ED=E9=20_=E8esk=FD?=+=?ISO-8859-2?Q?=EC=B9=E8=F8=BE=FD=E1=ED=E9=0A?=") { print "not "; } print "ok 31\n"; } Cstools-3.44/t/cssort.t0000644002656300235640000000354607072137266012021 0ustar # Cz::Sort.pm BEGIN { $| = 1; print "1..13\n"; } END {print "not ok 1\n" unless $loaded_czsort;} my $testnum = 1; sub test { my $result = shift; print "not " if not defined $result or not $result; print "ok $testnum\n"; $testnum++; } BEGIN { print "Loading module Cz::Sort\n"; } use Cz::Sort; $loaded_czsort = 1; test(1); print "Testing czcmp\n"; my $sorttab = 'sort.tab'; $sorttab = 't/' . $sorttab if -d 't'; open FILE, $sorttab or die "Error reading $sorttab: $!\n"; my (@in, @goodout); my $in = 0; while () { chomp; if (/^---INPUT---$/) { @in = (); $in = 1; } elsif (/^---OUTPUT---$/) { @goodout = (); $in = 0; } elsif (/^---DONE---$/) { my $sorted = join "; ", czsort @in; my $expect = join "; ", @goodout; print "Expecting $expect\nGot $sorted\n"; test($sorted eq $expect); $in = 1; } elsif ($in) { push @in, $_; } else { push @goodout, $_; } } close FILE; use ExtUtils::testlib; my $libs = join ' ', map { '-I' . $_ } @INC; my $TSTFILE = 'out.tst'; $TSTFILE = 't/' . $TSTFILE if -d 't'; print "Calling the external cssort program\n"; print "Will be starting $^X $libs blib/script/cssort > $TSTFILE\n"; open FILE, $sorttab or die "Error reading $sorttab: $!\n"; $in = 0; while () { ### chomp; if (/^---INPUT---$/) { @in = (); $in = 1; } elsif (/^---OUTPUT---$/) { @goodout = (); $in = 0; } elsif (/^---DONE---$/) { open PROCESS, "| $^X $libs blib/script/cssort > $TSTFILE" or do { print "Running cssort failed.\n"; last; }; print PROCESS @in; close PROCESS; open READ, $TSTFILE or do { print "Output file was not created\n"; last; }; my $sorted = join "; ", ; my $expect = join "; ", @goodout; close READ; unlink $TSTFILE; print "Expecting $expect\nGot $sorted\n"; test($sorted eq $expect); $in = 1; } elsif ($in) { push @in, $_; } else { push @goodout, $_; } } close FILE; Cstools-3.44/Cstools.spec0000644002656300235640000000511713454301506012341 0ustar Summary: Czech laguage tools Summary(cs): Nástroje pro práci s českým jazykem (koverze kódování, třídění) Name: cstools Version: 3.44 Release: 1 Group: Applications/Text Group(cs): Aplikace/Text Source: Cstools-%{version}.tar.gz Copyright: 1997--2002 Jan Pazdziora Buildroot: /tmp/cstools-root Packager: Milan Kerslager %description This package includes modules that are usefull when dealing with Czech (and Slovak) texts in Perl. Program cstocs: This version of popular charset reencoding utility uses the above mentioned module to convert text between various charsets. Module Cz::Cstocs: Implements object for various charset encodings, used for the Czech language -- either as objects, or as direct conversion functions. One of the charsets is tex for things like \v{c}. Module Cz::Sort: Sorts according to Czech sorting conventions, regardless on (usually broken) locales. Exports functions czcmp and czsort which can be used in similar way as as Perl's internals cmp and sort. %description -l cs V tomto balíku jsou moduly, které mohou být užitečné při práci s českými (a slovenskými) texty v Perlu. Program cstocs: Tato verze konverzího programu cstocs je založena na výše uvedeném modulu. Provádí převody kódování nad danými soubory nebo nad standardním vstupem. Modul Cz::Cstocs: Objekt, pomocí něhož je možno konvertovat mezi znakovými sadami bez nutnosti vnějšího programu -- buď formou objektovou, nebo přímými konverzními funkcemi. Jednou ze znakových sad je i sada tex, tedy např. \v{c}. Modul Cz::Sort: Implementuje čtyřprůchodové české třídění, nezávislé na použitých locales, protože kdo má správné locales, že? Exportuje funkce czcmp a czsort, které pracují podobně jako perlovské vestavěné cmp a sort. %prep %setup -n Cstools-%{version} %build perl Makefile.PL make make test %install rm -rf $RPM_BUILD_ROOT mkdir -p $RPM_BUILD_ROOT/usr # make install wants to append to perllocal.pod which is politically # incorrect behaviour; let's disable it: it's RPM that is supposed to # keep track of installed software make PREFIX=$RPM_BUILD_ROOT/usr \ DOC_INSTALL="-#" \ install # .packlist is incorrect and useless (see above) rm `find $RPM_BUILD_ROOT -name .packlist` %clean rm -rf $RPM_BUILD_ROOT %files %defattr(-,root,root,-) /usr/bin/* /usr/lib/perl5/site_perl/*/Cz/* %{_mandir}/man[0-9]/* %doc Changes README %changelog * Fri Dec 1 2000, included Fri Jun 28 2002 Milan Kerslager - fixes for 7.0 * Thu Jul 15 1999 Milan Kerslager - added descriptions (en, cs) Cstools-3.44/META.yml0000644000000000000000000000073413454301506013046 0ustar rootroot--- abstract: unknown author: - unknown build_requires: ExtUtils::MakeMaker: '0' configure_requires: ExtUtils::MakeMaker: '0' dynamic_config: 1 generated_by: 'ExtUtils::MakeMaker version 7.34, CPAN::Meta::Converter version 2.150010' license: unknown meta-spec: url: http://module-build.sourceforge.net/META-spec-v1.4.html version: '1.4' name: Cstools no_index: directory: - t - inc version: '3.44' x_serialization_backend: 'CPAN::Meta::YAML version 0.018' Cstools-3.44/MANIFEST0000644000000000000000000000140613453132262012723 0ustar rootrootChanges Cstools.spec Cstools.spec.dist Cz/Cstocs.pm Cz/Cstocs/enc/1250.enc Cz/Cstocs/enc/1252.enc Cz/Cstocs/enc/accent Cz/Cstocs/enc/alias Cz/Cstocs/enc/ascii.enc Cz/Cstocs/enc/cork.enc Cz/Cstocs/enc/il1.enc Cz/Cstocs/enc/il2.enc Cz/Cstocs/enc/kam.enc Cz/Cstocs/enc/koi8.enc Cz/Cstocs/enc/mac.enc Cz/Cstocs/enc/macce.enc Cz/Cstocs/enc/pc2.enc Cz/Cstocs/enc/pc2a.enc Cz/Cstocs/enc/tex.enc Cz/Cstocs/enc/utf8.enc Cz/Cstocs/enc/vga.enc Cz/Cstocs/Getopt.pm Cz/Sort.pm Cz/Time.pm MANIFEST Makefile.PL README bin/cssort.PL bin/cstocs.PL bin/dbfcstocs.PL t/cssort.t t/cstocs.t t/dbfcstocs.t t/sort.tab t/test.dbf META.yml Module YAML meta-data (added by MakeMaker) META.json Module JSON meta-data (added by MakeMaker) Cstools-3.44/Makefile.PL0000644002656300235640000000176713454301467012026 0ustar use Config; use ExtUtils::MakeMaker; my $VERSION = '3.44'; =comment sub MY::dist { package MY; # so that "SUPER" works right my $inherited = shift->SUPER::dist(@_); $inherited =~ s/old text/new text/; $inherited; } =cut sub MY::postamble { " specversion: Makefile.PL Cstools.spec.dist echo Updating Cstools.spec \@\$(PERL) -pe 's/__VERSION__/$VERSION/' Cstools.spec.dist > Cstools.spec rpm: dist rpm -tb -vv ../\$(DISTNAME)-\$(VERSION).tar.gz "; } WriteMakefile( NAME => 'Cz', DISTNAME => 'Cstools', VERSION => $VERSION, PL_FILES => { 'bin/cstocs.PL' => 'bin/cstocs', 'bin/cssort.PL' => 'bin/cssort', 'bin/dbfcstocs.PL' => 'bin/dbfcstocs', }, EXE_FILES => [ 'bin/cstocs', 'bin/cssort', 'bin/dbfcstocs'], dist => { COMPRESS => 'gzip -9f', SUFFIX => 'gz', POSTOP => 'mv $(DISTNAME)-$(VERSION).tar.gz ../', DIST_DEFAULT => 'specversion tardist' }, clean => { FILES => 'bin/cstocs bin/cssort bin/dbfcstocs' }, macro => { DIST_DEFAULT => 'specversion tardist', }, );