Changeset 240
- Timestamp:
- 04/24/06 17:49:17 (18 years ago)
- Location:
- trunk/soft/ObsData
- Files:
-
- 1 added
- 1 edited
- 2 copied
Legend:
- Unmodified
- Added
- Removed
-
trunk/soft/ObsData/ObsData/Archive.pm
r191 r240 10 10 require ObsData::Archive::Zip; 11 11 require ObsData::Archive::Rar; 12 require ObsData::Archive::Lha; 12 13 13 14 our $CVSID = q$Id$; -
trunk/soft/ObsData/ObsData/Archive/Lha.pm
r235 r240 1 1 # $Id$ 2 2 3 package ObsData::Archive:: Rar;3 package ObsData::Archive::Lha; 4 4 5 5 use strict; … … 22 22 sub ls { 23 23 my ($self) = @_; 24 open(my $h rar, '-|', "unrar lb'$self->{archive}'") or do {25 $self->seterror("Can't read zipfile: $!");24 open(my $hlha, '-|', "lha '$self->{archive}'") or do { 25 $self->seterror("Can't read lha/lzh file: $!"); 26 26 return undef; 27 27 }; 28 28 my @list; 29 while(<$hrar>) { 29 <$hlha>; 30 <$hlha> =~ /^-{9}/ or return; 31 while(<$hlha>) { 30 32 chomp; 31 push(@list, $_); 33 /^.{51}(.*)$/; 34 push(@list, $1); 32 35 } 33 close($h rar);36 close($hlha); 34 37 return @list; 35 38 } … … 74 77 } 75 78 76 ObsData::Archive::register(sub { $_[0] =~ /\. rar$/i }, 'Rar', 0);79 ObsData::Archive::register(sub { $_[0] =~ /\.(lzh|lha)$/i }, 'Lha', 0); -
trunk/soft/ObsData/t/OA-07.t
r235 r240 11 11 print $tempdir . "\n"; 12 12 13 my $oa = ObsData::Archive->new('testdata/coin. rar');13 my $oa = ObsData::Archive->new('testdata/coin.lzh'); 14 14 15 isa_ok($oa, 'ObsData::Archive:: Rar');15 isa_ok($oa, 'ObsData::Archive::Lha'); 16 16 my ($list) = $oa->ls(); 17 17 ok($list eq 'coin', "Can list its contents");
Note: See TracChangeset
for help on using the changeset viewer.