--- /dev/null
+AUTHORS List of authors
+Byte/Byte.pm Encode extension
+Byte/Makefile.PL Encode extension
+CN/CN.pm Encode extension
+CN/Makefile.PL Encode extension
+Changes Change Log
+EBCDIC/EBCDIC.pm Encode extension
+EBCDIC/Makefile.PL Encode extension
+Encode.pm Mother of all Encode extensions
+Encode.xs Encode extension
+Encode/Changes.e2x Skeleton file for enc2xs
+Encode/ConfigLocal_PM.e2x Skeleton file for enc2xs
+Encode/Makefile_PL.e2x Skeleton file for enc2xs
+Encode/README.e2x Skeleton file for enc2xs
+Encode/_PM.e2x Skeleton file for enc2xs
+Encode/_T.e2x Skeleton file for enc2xs
+Encode/encode.h Encode extension header file
+JP/JP.pm Encode extension
+JP/Makefile.PL Encode extension
+KR/KR.pm Encode extension
+KR/Makefile.PL Encode extension
+MANIFEST Encode extension
+META.yml Module meta-data in YAML
+Makefile.PL Encode extension makefile writer
+README Encode extension
+Symbol/Makefile.PL Encode extension
+Symbol/Symbol.pm Encode extension
+TW/Makefile.PL Encode extension
+TW/TW.pm Encode extension
+Unicode/Makefile.PL Encode extension
+Unicode/Unicode.pm Encode extension
+Unicode/Unicode.xs Encode extension
+bin/enc2xs Encode module generator
+bin/piconv iconv by perl
+bin/ucm2table Table Generator for testing
+bin/ucmlint A UCM Lint utility
+bin/ucmsort Sorts UCM lines
+bin/unidump Unicode Dump like hexdump(1)
+encengine.c Encode extension
+encoding.pm Perl Pragmactic Module
+lib/Encode/Alias.pm Encode extension
+lib/Encode/CJKConstants.pm Encode extension
+lib/Encode/CN/HZ.pm Encode extension
+lib/Encode/Config.pm Encode configuration module
+lib/Encode/Encoder.pm OO Encoder
+lib/Encode/Encoding.pm Encode extension
+lib/Encode/GSM0338.pm Encode extension
+lib/Encode/Guess.pm Encode Extension
+lib/Encode/JP/H2Z.pm Encode extension
+lib/Encode/JP/JIS7.pm Encode extension
+lib/Encode/KR/2022_KR.pm Encode extension
+lib/Encode/MIME/Header.pm Encode extension
+lib/Encode/MIME/Header/ISO_2022_JP.pm Encode extension
+lib/Encode/MIME/Name.pm Encode extension
+lib/Encode/PerlIO.pod Documents for Encode & PerlIO
+lib/Encode/Supported.pod Documents for supported encodings
+lib/Encode/Unicode/UTF7.pm Encode Extension
+t/Aliases.t test script
+t/CJKT.t test script
+t/Encode.t test script
+t/Encoder.t test script
+t/Mod_EUCJP.pm module that t/enc_module.enc uses
+t/Unicode.t test script
+t/at-cn.t test script
+t/at-tw.t test script
+t/big5-eten.enc test data
+t/big5-eten.utf test data
+t/big5-hkscs.enc test data
+t/big5-hkscs.utf test data
+t/enc_data.t test script for encoding.pm vs. DATA fh
+t/enc_eucjp.t test script
+t/enc_module.enc test data for t/enc_module.t
+t/enc_module.t test script
+t/enc_utf8.t test script
+t/encoding.t test script
+t/fallback.t test script
+t/from_to.t test script
+t/gb2312.enc test data
+t/gb2312.utf test data
+t/grow.t test script
+t/gsm0338.t test script
+t/guess.t test script
+t/jis7-fallback.t test script
+t/jisx0201.enc test data
+t/jisx0201.utf test data
+t/jisx0208.enc test data
+t/jisx0208.utf test data
+t/jisx0212.enc test data
+t/jisx0212.utf test data
+t/jperl.t test script
+t/ksc5601.enc test data
+t/ksc5601.utf test data
+t/mime-header.t test script
+t/mime-name.t test script
+t/mime_header_iso2022jp.t test script
+t/perlio.t test script
+t/piconv.t test script
+t/rt.pl even more test script
+t/unibench.pl benchmark script
+t/utf8strict.t test script
+ucm/8859-1.ucm Unicode Character Map
+ucm/8859-10.ucm Unicode Character Map
+ucm/8859-11.ucm Unicode Character Map
+ucm/8859-13.ucm Unicode Character Map
+ucm/8859-14.ucm Unicode Character Map
+ucm/8859-15.ucm Unicode Character Map
+ucm/8859-16.ucm Unicode Character Map
+ucm/8859-2.ucm Unicode Character Map
+ucm/8859-3.ucm Unicode Character Map
+ucm/8859-4.ucm Unicode Character Map
+ucm/8859-5.ucm Unicode Character Map
+ucm/8859-6.ucm Unicode Character Map
+ucm/8859-7.ucm Unicode Character Map
+ucm/8859-8.ucm Unicode Character Map
+ucm/8859-9.ucm Unicode Character Map
+ucm/adobeStdenc.ucm Unicode Character Map
+ucm/adobeSymbol.ucm Unicode Character Map
+ucm/adobeZdingbat.ucm Unicode Character Map
+ucm/ascii.ucm Unicode Character Map
+ucm/big5-eten.ucm Unicode Character Map
+ucm/big5-hkscs.ucm Unicode Character Map
+ucm/cp037.ucm Unicode Character Map
+ucm/cp1006.ucm Unicode Character Map
+ucm/cp1026.ucm Unicode Character Map
+ucm/cp1047.ucm Unicode Character Map
+ucm/cp1250.ucm Unicode Character Map
+ucm/cp1251.ucm Unicode Character Map
+ucm/cp1252.ucm Unicode Character Map
+ucm/cp1253.ucm Unicode Character Map
+ucm/cp1254.ucm Unicode Character Map
+ucm/cp1255.ucm Unicode Character Map
+ucm/cp1256.ucm Unicode Character Map
+ucm/cp1257.ucm Unicode Character Map
+ucm/cp1258.ucm Unicode Character Map
+ucm/cp424.ucm Unicode Character Map
+ucm/cp437.ucm Unicode Character Map
+ucm/cp500.ucm Unicode Character Map
+ucm/cp737.ucm Unicode Character Map
+ucm/cp775.ucm Unicode Character Map
+ucm/cp850.ucm Unicode Character Map
+ucm/cp852.ucm Unicode Character Map
+ucm/cp855.ucm Unicode Character Map
+ucm/cp856.ucm Unicode Character Map
+ucm/cp857.ucm Unicode Character Map
+ucm/cp858.ucm Unicode Character Map
+ucm/cp860.ucm Unicode Character Map
+ucm/cp861.ucm Unicode Character Map
+ucm/cp862.ucm Unicode Character Map
+ucm/cp863.ucm Unicode Character Map
+ucm/cp864.ucm Unicode Character Map
+ucm/cp865.ucm Unicode Character Map
+ucm/cp866.ucm Unicode Character Map
+ucm/cp869.ucm Unicode Character Map
+ucm/cp874.ucm Unicode Character Map
+ucm/cp875.ucm Unicode Character Map
+ucm/cp932.ucm Unicode Character Map
+ucm/cp936.ucm Unicode Character Map
+ucm/cp949.ucm Unicode Character Map
+ucm/cp950.ucm Unicode Character Map
+ucm/ctrl.ucm Unicode Character Map
+ucm/dingbats.ucm Unicode Character Map
+ucm/euc-cn.ucm Unicode Character Map
+ucm/euc-jp.ucm Unicode Character Map
+ucm/euc-kr.ucm Unicode Character Map
+ucm/gb12345.ucm Unicode Character Map
+ucm/gb2312.ucm Unicode Character Map
+ucm/hp-roman8.ucm Unicode Character Map
+ucm/ir-165.ucm Unicode Character Map
+ucm/jis0201.ucm Unicode Character Map
+ucm/jis0208.ucm Unicode Character Map
+ucm/jis0212.ucm Unicode Character Map
+ucm/johab.ucm Unicode Character Map
+ucm/koi8-f.ucm Unicode Character Map
+ucm/koi8-r.ucm Unicode Character Map
+ucm/koi8-u.ucm Unicode Character Map
+ucm/ksc5601.ucm Unicode Character Map
+ucm/macArabic.ucm Unicode Character Map
+ucm/macCentEuro.ucm Unicode Character Map
+ucm/macChinsimp.ucm Unicode Character Map
+ucm/macChintrad.ucm Unicode Character Map
+ucm/macCroatian.ucm Unicode Character Map
+ucm/macCyrillic.ucm Unicode Character Map
+ucm/macDingbats.ucm Unicode Character Map
+ucm/macFarsi.ucm Unicode Character Map
+ucm/macGreek.ucm Unicode Character Map
+ucm/macHebrew.ucm Unicode Character Map
+ucm/macIceland.ucm Unicode Character Map
+ucm/macJapanese.ucm Unicode Character Map
+ucm/macKorean.ucm Unicode Character Map
+ucm/macROMnn.ucm Unicode Character Map
+ucm/macRUMnn.ucm Unicode Character Map
+ucm/macRoman.ucm Unicode Character Map
+ucm/macSami.ucm Unicode Character Map
+ucm/macSymbol.ucm Unicode Character Map
+ucm/macThai.ucm Unicode Character Map
+ucm/macTurkish.ucm Unicode Character Map
+ucm/macUkraine.ucm Unicode Character Map
+ucm/nextstep.ucm Unicode Character Map
+ucm/null.ucm Unicode Character Map
+ucm/posix-bc.ucm Unicode Character Map
+ucm/shiftjis.ucm Unicode Character Map
+ucm/symbol.ucm Unicode Character Map
+ucm/viscii.ucm Unicode Character Map
--- /dev/null
+#
+# $Id: piconv.t,v 0.2 2009/07/13 00:50:52 dankogai Exp $
+#
+
+BEGIN {
+ if ( $ENV{'PERL_CORE'} ) {
+ print "1..0 # Skip: Don't know how to test this within perl's core\n";
+ exit 0;
+ }
+}
+
+use strict;
+use FindBin;
+use File::Spec;
+use IPC::Open3 qw(open3);
+use IO::Select;
+use Test::More;
+
+my $WIN = $^O eq 'MSWin32';
+
+if ($WIN) {
+ eval { require IPC::Run; IPC::Run->VERSION(0.83); 1; } or
+ plan skip_all => 'Win32 environments require IPC::Run 0.83 to complete this test';
+}
+
+sub run_cmd (;$$);
+
+my $blib =
+ File::Spec->rel2abs(
+ File::Spec->catdir( $FindBin::RealBin, File::Spec->updir, 'blib' ) );
+my $script = File::Spec->catdir($blib, 'script', 'piconv');
+my @base_cmd = ( $^X, "-Mblib=$blib", $script );
+
+plan tests => 5;
+
+{
+ my ( $st, $out, $err ) = run_cmd;
+ is( $st, 0, 'status for usage call' );
+ is( $out, $WIN ? undef : '' );
+ like( $err, qr{^piconv}, 'usage' );
+}
+
+{
+ my($st, $out, $err) = run_cmd [qw(-S foobar -f utf-8 -t ascii), $script];
+ like($err, qr{unknown scheme.*fallback}i, 'warning for unknown scheme');
+}
+
+{
+ my ( $st, $out, $err ) = run_cmd [qw(-f utf-8 -t ascii ./non-existing/file)];
+ like( $err, qr{can't open}i );
+}
+
+sub run_cmd (;$$) {
+ my ( $args, $in ) = @_;
+
+ my $out = "x" x 10_000;
+ $out = "";
+ my $err = "x" x 10_000;
+ $err = "";
+
+ if ($WIN) {
+ IPC::Run->import(qw(run timeout));
+ my @cmd;
+ if (defined $args) {
+ @cmd = (@base_cmd, @$args);
+ } else {
+ @cmd = @base_cmd;
+ }
+ run(\@cmd, \$in, \$out, \$err, timeout(10));
+ my $st = $?;
+ $out = undef if ($out eq '');
+ ( $st, $out, $err );
+ } else {
+ $in ||= '';
+ my ( $in_fh, $out_fh, $err_fh );
+ use Symbol 'gensym';
+ $err_fh =
+ gensym; # sigh... otherwise stderr gets just to $out_fh, not to $err_fh
+ my $pid = open3( $in_fh, $out_fh, $err_fh, @base_cmd, @$args )
+ or die "Can't run @base_cmd @$args: $!";
+ print $in_fh $in;
+ my $sel = IO::Select->new( $out_fh, $err_fh );
+
+ while ( my @ready = $sel->can_read ) {
+ for my $fh (@ready) {
+ if ( eof($fh) ) {
+ $sel->remove($fh);
+ last if !$sel->handles;
+ }
+ elsif ( $out_fh == $fh ) {
+ my $line = <$fh>;
+ $out .= $line;
+ }
+ elsif ( $err_fh == $fh ) {
+ my $line = <$fh>;
+ $err .= $line;
+ }
+ }
+ }
+ my $st = $?;
+ ( $st, $out, $err );
+ }
+}