Bläddra i källkod

Dpkg::Changelog::get_range(): fix return value when range is empty

Also fix scripts/changelog/debian.pl to better deal with undef values
returned when the requested range matches an empty set of changelog
entries.
Raphaël Hertzog 16 år sedan
förälder
incheckning
c9e24e8e95
2 ändrade filer med 11 tillägg och 5 borttagningar
  1. 7 3
      scripts/Dpkg/Changelog.pm
  2. 4 2
      scripts/changelog/debian.pl

+ 7 - 3
scripts/Dpkg/Changelog.pm

@@ -333,9 +333,13 @@ sub get_range {
     my ($self, $range) = @_;
     my ($self, $range) = @_;
     $range = {} unless defined $range;
     $range = {} unless defined $range;
     my $res = $self->_data_range($range);
     my $res = $self->_data_range($range);
-    return undef unless defined $res;
-    return @$res if wantarray;
-    return $res;
+    if (defined $res) {
+	return @$res if wantarray;
+	return $res;
+    } else {
+	return () if wantarray;
+	return undef;
+    }
 }
 }
 
 
 sub _data_range {
 sub _data_range {

+ 4 - 2
scripts/changelog/debian.pl

@@ -124,8 +124,10 @@ if ($file eq '-') {
 	or error(_g('fatal error occured while parsing %s'), $file);
 	or error(_g('fatal error occured while parsing %s'), $file);
 }
 }
 
 
-
-eval("print \$changes->${format}(\$range)");
+eval qq{
+    my \$output = \$changes->$format(\$range);
+    print \$output if defined \$output;
+};
 if ($@) {
 if ($@) {
     error("%s", $@);
     error("%s", $@);
 }
 }