From: Junio C Hamano Date: Mon, 01 Jul 2013 18:57:46 GMT Subject: Re: [PATCH/RFC 2/4] contrib: contacts: add support for multiple patches Message-ID: <7v38ryglat.fsf@alter.siamese.dyndns.org> In-Reply-To: <7v7ghaglmx.fsf@alter.siamese.dyndns.org> Junio C Hamano writes: > while (<$f>) { > if (/^From ([0-9a-f]{40}) Mon Sep 17 00:00:00 2001$/) { > # beginning of a patch > $id = $1; > } > next if (!defined $id); > # inline the body of scan_hunks here... Or alternatively, teach scan_hunks to stop reading when it sees the beginning of the next patch (and probably you would need to return the $id you read, as it would be more cumbersome to "rewind" the input stream). > if (m{^--- (a/.*|/dev/null)$}) { > $source = ... > } elsif (/^@@ -(\d+)...) { > get_blame(); > } > } > >> @@ -100,10 +104,8 @@ sub commits_from_patch { >> close $f; >> } >> >> -exit 1 unless @ARGV == 1; >> - >> my %commits; >> -commits_from_patch(\%commits, $ARGV[0]); >> +commits_from_patch(\%commits, $_) for (@ARGV); > > This change does not seem to account for an invocation without any > argument. Perhaps write it like so to make it more readable? > > if (!@ARGV) { > die "No input file?\n"; > } > > for (@ARGV) { > commits_from_patch(\%commits, $_); > } > >> import_commits(\%commits); >> >> my %count_per_person;