summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPatryk Zawadzki2008-01-08 17:27:02 (GMT)
committercvs2git2012-11-29 22:58:16 (GMT)
commit336cfe9843cf4aeb2030e7fb7aa9128d6b9a03e7 (patch)
tree27e23d3b80c79d6c63086e95197c43e85f1779cb
parent7c527abebc1c9a75b1d87afd3f6af502c2ff5e42 (diff)
downloaddistfiles-336cfe9843cf4aeb2030e7fb7aa9128d6b9a03e7.zip
distfiles-336cfe9843cf4aeb2030e7fb7aa9128d6b9a03e7.tar.gz
- simplify parsing by storing mapping between numbers and URIs
Changed files: specparser.pl -> 1.17
-rw-r--r--specparser.pl34
1 files changed, 11 insertions, 23 deletions
diff --git a/specparser.pl b/specparser.pl
index 412005a..f4d7d05 100644
--- a/specparser.pl
+++ b/specparser.pl
@@ -241,47 +241,35 @@ sub print_source($$$) # {{{
sub add_md5_to_print($) # {{{
{
open(F, "< $_[0]") or die;
- my $sourceno = undef;
- my $source = undef;
+ my @sourcemap = ();
while (<F>) {
chomp;
if (/^Source(\d+)\s*:\s*(.*)/i) {
- $sourceno = $1;
- $source = $2;
+ my $sourceno = $1;
+ my $source = $2;
+ $sourcemap[$sourceno] = $source;
} elsif (/^\s*#\s*source(\d+)-md5\s*:\s*([a-f0-9]{32})/i) {
my $no = $1;
my $md5 = $2;
if (defined $no_source{$no}) {
error("both NoSource: $no and md5 given");
- } if (defined $sourceno) {
- if ($sourceno == $no) {
- push @sources, [$no, $md5, $source];
- } else {
- error("found md5 for source $no, but last defined source is $sourceno (# SourceN-md5: has to be placed just after SourceN:)");
- }
+ } if (defined $sourcemap[$no]) {
+ my $source = $sourcemap[$no];
+ push @sources, [$no, $md5, $source];
} else {
error("source $no not defined (# SourceN-md5: has to be placed just after SourceN:)");
}
-
- $sourceno = undef;
- $source = undef;
} elsif (/^\s*BuildRequires:\s*digest\(%SOURCE(\d+)\)\s*=\s*([a-f0-9]{32})/i) {
my $no = $1;
my $md5 = $2;
if (defined $no_source{$no}) {
error("both NoSource: $no and md5 given");
- } if (defined $sourceno) {
- if ($sourceno == $no) {
- push @sources, [$no, $md5, $source];
- } else {
- error("found md5 for source $no, but last defined source is $sourceno (# SourceN-md5: has to be placed just after SourceN:)");
- }
+ } if (defined $sourcemap[$no]) {
+ my $source = $sourcemap[$no];
+ push @sources, [$no, $md5, $source];
} else {
- error("source $no not defined (# SourceN-md5: has to be placed just after SourceN:)");
+ error("source $no not defined (# Source digest has to be placed after SourceN:)");
}
-
- $sourceno = undef;
- $source = undef;
}
}
close(F);