chiark / gitweb /
Unbreak --dry-run (`exiting subroutine via next', broken in ac221d67, bug released...
[dgit.git] / dgit
diff --git a/dgit b/dgit
index 60b39e4ae66d7be7f9f4a07eb736daf36ce2336a..8f0052bf87182d87c1db497c57e8dabcddd8e49b 100755 (executable)
--- a/dgit
+++ b/dgit
@@ -1386,7 +1386,8 @@ sub generate_commit_from_dsc () {
            or $!==&ENOENT
            or die "$f $!";
 
-       complete_file_from_dsc('.', $fi);
+       complete_file_from_dsc('.', $fi)
+           or next;
 
        if (is_orig_file($f)) {
            link $f, "../../../../$f"
@@ -1484,7 +1485,7 @@ sub complete_file_from_dsc ($$) {
        die "$f ?" unless $f =~ m/^\Q${package}\E_/;
        die "$f ?" if $f =~ m#/#;
        runcmd_ordryrun_local @curl,qw(-o),$tf,'--',"$furl";
-       next if !act_local();
+       return 0 if !act_local();
        $downloaded = 1;
     }
 
@@ -1498,13 +1499,16 @@ sub complete_file_from_dsc ($$) {
            " demands hash $fi->{Hash} ".
            ($downloaded ? "(got wrong file from archive!)"
             : "(perhaps you should delete this file?)");
+
+    return 1;
 }
 
 sub ensure_we_have_orig () {
     foreach my $fi (dsc_files_info()) {
        my $f = $fi->{Filename};
        next unless is_orig_file($f);
-       complete_file_from_dsc('..', $fi);
+       complete_file_from_dsc('..', $fi)
+           or next;
     }
 }