Przeglądaj źródła

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 lat temu
rodzic
commit
c9e24e8e95
2 zmienionych plików z 11 dodań i 5 usunięć
  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) = @_;
     $range = {} unless defined $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 {

+ 4 - 2
scripts/changelog/debian.pl

@@ -124,8 +124,10 @@ if ($file eq '-') {
 	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 ($@) {
     error("%s", $@);
 }