aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--URPM.xs168
-rw-r--r--URPM/Build.pm44
2 files changed, 101 insertions, 111 deletions
diff --git a/URPM.xs b/URPM.xs
index de32a27..60f5549 100644
--- a/URPM.xs
+++ b/URPM.xs
@@ -667,107 +667,105 @@ return_list_tag_modifier(Header header, int_32 tag_name) {
char *s= buff;
switch (tag_name) {
case RPMTAG_FILEFLAGS:
- if (list[i] & RPMFILE_CONFIG) *s++ = 'c';
- if (list[i] & RPMFILE_DOC) *s++ = 'd';
- if (list[i] & RPMFILE_GHOST) *s++ = 'g';
- if (list[i] & RPMFILE_LICENSE) *s++ = 'l';
- if (list[i] & RPMFILE_ICON) *s++ = 'i';
- if (list[i] & RPMFILE_MISSINGOK) *s++ = 'm';
- if (list[i] & RPMFILE_NOREPLACE) *s++ = 'n';
- if (list[i] & RPMFILE_SPECFILE) *s++ = 'S';
- if (list[i] & RPMFILE_README) *s++ = 'R';
- if (list[i] & RPMFILE_EXCLUDE) *s++ = 'e';
- if (list[i] & RPMFILE_UNPATCHED) *s++ = 'u';
- if (list[i] & RPMFILE_PUBKEY) *s++ = 'p';
-
+ if (list[i] & RPMFILE_CONFIG) *s++ = 'c';
+ if (list[i] & RPMFILE_DOC) *s++ = 'd';
+ if (list[i] & RPMFILE_GHOST) *s++ = 'g';
+ if (list[i] & RPMFILE_LICENSE) *s++ = 'l';
+ if (list[i] & RPMFILE_ICON) *s++ = 'i';
+ if (list[i] & RPMFILE_MISSINGOK) *s++ = 'm';
+ if (list[i] & RPMFILE_NOREPLACE) *s++ = 'n';
+ if (list[i] & RPMFILE_SPECFILE) *s++ = 'S';
+ if (list[i] & RPMFILE_README) *s++ = 'R';
+ if (list[i] & RPMFILE_EXCLUDE) *s++ = 'e';
+ if (list[i] & RPMFILE_UNPATCHED) *s++ = 'u';
+ if (list[i] & RPMFILE_PUBKEY) *s++ = 'p';
break;
default:
return;
}
*s = '\0';
XPUSHs(sv_2mortal(newSVpv(buff, strlen(buff))));
- }
+ }
PUTBACK;
}
void
return_list_tag(Header header, int_32 tag_name) {
- dSP;
- if (header) {
- int_32 *list = NULL;
- uint_16 *list16;
- int_32 count, type;
- headerGetEntry(header, tag_name, &type, (void **) &list, &count);
- if (list) {
- if (count == 1 ) {
- switch (type) {
- case RPM_NULL_TYPE:
- break;
- case RPM_CHAR_TYPE:
- XPUSHs(sv_2mortal(newSVpv((char *) list,strlen((char *) list))));
- break;
- case RPM_INT8_TYPE:
- break;
- case RPM_INT16_TYPE:
- list16 = list;
- XPUSHs(sv_2mortal(newSViv(list16)));
- break;
- case RPM_INT32_TYPE:
- XPUSHs(sv_2mortal(newSViv((int_32 *) list)));
- break;
+ dSP;
+ if (header) {
+ int_32 *list = NULL;
+ uint_16 *list16;
+ int_32 count, type;
+ headerGetEntry(header, tag_name, &type, (void **) &list, &count);
+ if (list) {
+ if (count == 1 ) {
+ switch (type) {
+ case RPM_NULL_TYPE:
+ break;
+ case RPM_CHAR_TYPE:
+ XPUSHs(sv_2mortal(newSVpv((char *) list,strlen((char *) list))));
+ break;
+ case RPM_INT8_TYPE:
+ break;
+ case RPM_INT16_TYPE:
+ list16 = list;
+ XPUSHs(sv_2mortal(newSViv(list16)));
+ break;
+ case RPM_INT32_TYPE:
+ XPUSHs(sv_2mortal(newSViv((int_32 *) list)));
+ break;
/*
- case RPM_INT64_TYPE:
- break;
+ case RPM_INT64_TYPE:
+ break;
*/
- case RPM_STRING_TYPE:
- XPUSHs(sv_2mortal(newSVpv((char *) list, strlen((char *) list))));
-
- break;
- case RPM_BIN_TYPE:
- break;
- case RPM_STRING_ARRAY_TYPE:
- break;
- case RPM_I18NSTRING_TYPE:
- break;
- }
- } else {
- int i;
- for (i=0; i< count; i++) {
- switch (type) {
- case RPM_NULL_TYPE:
- break;
- case RPM_CHAR_TYPE:
- XPUSHs(sv_2mortal(newSVpv((char *) list,strlen((char *) list))));
- break;
- case RPM_INT8_TYPE:
- break;
- case RPM_INT16_TYPE:
- list16 = list;
- XPUSHs(sv_2mortal(newSViv(list16[i])));
- break;
- case RPM_INT32_TYPE:
- XPUSHs(sv_2mortal(newSViv((int_32 *) list[i])));
- break;
+ case RPM_STRING_TYPE:
+ XPUSHs(sv_2mortal(newSVpv((char *) list, strlen((char *) list))));
+ break;
+ case RPM_BIN_TYPE:
+ break;
+ case RPM_STRING_ARRAY_TYPE:
+ break;
+ case RPM_I18NSTRING_TYPE:
+ break;
+ }
+ } else {
+ int i;
+ for (i=0; i< count; i++) {
+ switch (type) {
+ case RPM_NULL_TYPE:
+ break;
+ case RPM_CHAR_TYPE:
+ XPUSHs(sv_2mortal(newSVpv((char *) list,strlen((char *) list))));
+ break;
+ case RPM_INT8_TYPE:
+ break;
+ case RPM_INT16_TYPE:
+ list16 = list;
+ XPUSHs(sv_2mortal(newSViv(list16[i])));
+ break;
+ case RPM_INT32_TYPE:
+ XPUSHs(sv_2mortal(newSViv((int_32 *) list[i])));
+ break;
/*
- case RPM_INT64_TYPE:
- break;
+ case RPM_INT64_TYPE:
+ break;
*/
- case RPM_STRING_TYPE:
- XPUSHs(sv_2mortal(newSVpv((char *) list[i], strlen((char *) list[i]))));
- break;
- case RPM_BIN_TYPE:
- break;
- case RPM_STRING_ARRAY_TYPE:
- XPUSHs(sv_2mortal(newSVpv((char *) list[i],strlen((char *) list[i]))));
- break;
- case RPM_I18NSTRING_TYPE:
- break;
- }
- }
- }
+ case RPM_STRING_TYPE:
+ XPUSHs(sv_2mortal(newSVpv((char *) list[i], strlen((char *) list[i]))));
+ break;
+ case RPM_BIN_TYPE:
+ break;
+ case RPM_STRING_ARRAY_TYPE:
+ XPUSHs(sv_2mortal(newSVpv((char *) list[i],strlen((char *) list[i]))));
+ break;
+ case RPM_I18NSTRING_TYPE:
+ break;
+ }
+ }
}
- }
- PUTBACK;
+ }
+ }
+ PUTBACK;
}
diff --git a/URPM/Build.pm b/URPM/Build.pm
index 797d5f0..02e5866 100644
--- a/URPM/Build.pm
+++ b/URPM/Build.pm
@@ -48,14 +48,14 @@ sub parse_rpms_build_headers {
$filename = $cache{$key}{file};
} else {
($id, undef) = $urpm->parse_rpm($_);
- defined $id or do {
- if ($options{dontdie}) {
- print STDERR "bad rpm $_\n";
- next;
- } else {
- die "bad rpm $_\n";
- }
- };
+ unless (defined $id) {
+ if ($options{dontdie}) {
+ print STDERR "bad rpm $_\n";
+ next;
+ } else {
+ die "bad rpm $_\n";
+ }
+ }
my $pkg = $urpm->{depslist}[$id];
@@ -339,18 +339,14 @@ sub compute_deps {
#- split : split ratio (default 400000).
sub build_hdlist {
my ($urpm, %options) = @_;
- my ($dir, $start, $end, $ratio, $split, @idlist);
+ my ($dir, $ratio, $split, @idlist);
$dir = $options{dir} || ($ENV{TMPDIR} || "/tmp") . "/.build_hdlist";
-d $dir or die "no directory $dir\n";
- if (@{$options{idlist}}) {
- @idlist = @{$options{idlist}};
- } else {
- $start = $options{start} || 0;
- $end = $options{end} || $#{$urpm->{depslist}};
- @idlist = ($start .. $end);
- }
+ @idlist = @{$options{idlist}} > 0 ? @{$options{idlist}} :
+ ($options{start} || 0 .. $options{end} || $#{$urpm->{depslist}});
+ @idlist or return;
#- compression ratio are not very high, sample for cooker
#- gives the following (main only and cache fed up):
@@ -385,16 +381,12 @@ sub build_hdlist {
#- ratio : compression ratio (default 9).
sub build_synthesis {
my ($urpm, %options) = @_;
- my ($start, $end, $ratio, @idlist);
-
- if (@{$options{idlist}} > 0) {
- @idlist = @{$options{idlist}};
- } else {
- $start = $options{start} || 0;
- $end = $options{end} || $#{$urpm->{depslist}};
- $start > $end and return;
- @idlist = ($start .. $end);
- }
+ my ($ratio, @idlist);
+
+ @idlist = @{$options{idlist}} > 0 ? @{$options{idlist}} :
+ ($options{start} || 0 .. $options{end} || $#{$urpm->{depslist}});
+ @idlist or return;
+
$ratio = $options{ratio} || 9;
$options{synthesis} || defined $options{fd} or die "invalid parameters given";