Author: patrys                       Date: Tue Jan  8 17:27:07 2008 GMT
Module: admin                         Tag: HEAD
---- Log message:
- simplify parsing by storing mapping between numbers and URIs

---- Files affected:
admin/distfiles:
   specparser.pl (1.16 -> 1.17) 

---- Diffs:

================================================================
Index: admin/distfiles/specparser.pl
diff -u admin/distfiles/specparser.pl:1.16 admin/distfiles/specparser.pl:1.17
--- admin/distfiles/specparser.pl:1.16  Tue Jan  8 17:44:55 2008
+++ admin/distfiles/specparser.pl       Tue Jan  8 18:27:02 2008
@@ -241,47 +241,35 @@
 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);
================================================================

---- CVS-web:
    
http://cvs.pld-linux.org/cgi-bin/cvsweb.cgi/admin/distfiles/specparser.pl?r1=1.16&r2=1.17&f=u

_______________________________________________
pld-cvs-commit mailing list
[email protected]
http://lists.pld-linux.org/mailman/listinfo/pld-cvs-commit

Reply via email to