CVS patchset: 6965
CVS date: 2003/12/08 21:36:50
use File::Spec;
use vars qw/$VERSION/;
-$VERSION = '0.63';
+$VERSION = '0.64';
use vars qw/@ISA/;
@ISA = qw/DynaLoader/;
return $self;
}
+sub open_hdlist {
+ my $class = shift;
+ my $file = shift;
+
+ open FH, "<$file"
+ or die "Can't open $file: $!";
+
+ my @ret;
+ while (1) {
+ my ($hdr) = RPM2::_read_from_file(*FH);
+ last unless $hdr;
+
+ push @ret, RPM2::Header->_new_raw($hdr);
+ }
+
+ close FH;
+ return @ret;
+}
+
sub open_package {
my $class = shift;
my $file = shift;
PUSHs(h_sv);
+void
+_read_from_file(fp)
+ FILE *fp
+PREINIT:
+ SV *h_sv;
+ FD_t fd;
+ Header h;
+PPCODE:
+ fd = fdDup(fileno(fp));
+ h = headerRead(fd, HEADER_MAGIC_YES);
+
+ if (h) {
+ EXTEND(SP, 1);
+
+ h_sv = sv_newmortal();
+ sv_setref_pv(h_sv, "RPM2::C::Header", (void *)h);
+
+ PUSHs(h_sv);
+ }
+ Fclose(fd);
+
+
rpmdb
_open_rpm_db(for_write)
int for_write
use Test;
use strict;
-BEGIN { plan tests => 35 };
+BEGIN { plan tests => 59 };
use RPM2;
ok(1); # If we made it this far, we're ok.
ok($t->run());
# Test closing the database
ok($t->close_db());
+
+my @headers = RPM2->open_hdlist("hdlist-test.hdr");
+ok(scalar @headers, 3, 'found three headers in hdlist-test.hdr');
+ok(grep { $_->tag('name') eq 'mod_perl' } @headers);