Changeset bcf95dc in rtems


Ignore:
Timestamp:
Apr 6, 2010, 11:31:11 AM (9 years ago)
Author:
Ralf Corsepius <ralf.corsepius@…>
Branches:
4.10, 4.11, master
Children:
fa66448
Parents:
b2e0ac6
Message:

Rework again.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • contrib/crossrpms/specstrip

    rb2e0ac6 rbcf95dc  
    167167foreach my $i ( @buffer2 )
    168168{
    169   print STDERR $i->{state}, $i->{line}, "\n" if $verbose > 1;
     169  print STDERR "STATE:", $i->{state}, " LINE:", $i->{line}, "\n" if $verbose > 1;
    170170  if ( $i->{state} =~ m/($ppat)/ ) {
    171   } elsif ( $i->{state} =~ m/.*<"([a-zA-Z_0-9\.\-]+)" (!=|==) "([a-zA-Z_0-9\.\-]+)">.*/ ) {
    172   # Filter out constant conditionals
    173     if ( "$2" eq "==" ) {
    174       if ( "$1" eq "$3" ) {
    175         if ( $i->{line} =~ m/^%(if|else|endif).*$/ ) {
    176         } else {
    177           push @buffer3, $i->{line}, "\n";
    178         }
    179       }
    180     } elsif ( "$2" eq "!=" ){
    181       if ( "$1" ne "$3" ) {
    182         if ( $i->{line} =~ m/^%(if|else|endif).*$/ ) {
    183         } else {
    184           push @buffer3, $i->{line}, "\n";
    185         }
    186       }
    187     } else {
    188       die "invalid condition: $i->{state}";
    189     }
    190171  } else {
    191     push @buffer3, $i->{line}, "\n"
     172          push @buffer3, $i->{line};
    192173  }
    193174}
    194175
    195 print STDOUT @buffer3;
     176#foreach my $line ( @buffer3 )
     177#{
     178#  print STDERR "L:<$line>\n";
     179#}
     180
     181my @buffer4;
     182@condstack = ();
     183push @condstack, "<>";
     184foreach my $line ( @buffer3 )
     185{
     186#  print STDERR "READ:{", $line, "}\n";
     187  if ( $line =~/^%if\s+"([a-zA-Z_0-9\.\-]+)"\s+==\s+"([a-zA-Z_0-9\.\-]+)"\s*$/ )
     188  {
     189    if ( "$1" eq "$2" ) {
     190      push @condstack,"<TRUE:$1 == $2>";
     191    } else {
     192      push @condstack,"<FALSE:$1 == $2>";
     193    }
     194  } elsif ( $line =~/^%if\s+"([a-zA-Z_0-9\.\-]+)"\s+!=\s+"([a-zA-Z_0-9\.\-]+)"\s*$/ )
     195  {
     196    if ( "$1" ne "$2" ) {
     197      push @condstack,"<TRUE:$1 != $2>";
     198    } else {
     199      push @condstack,"<FALSE:$1 != $2>";
     200    }
     201  } elsif ( $line =~/^%if\s+(.*)\s*$/ )
     202  {
     203    my $exp = $1;
     204    if ( $condstack[$#condstack] =~ m/<FALSE:.*\s*>$/ ) {
     205      push @condstack,"<FALSE:$exp>";
     206    } else {
     207      push @condstack,"<IFOT:$exp>";
     208      push @buffer4, "$line\n";
     209    }
     210  } elsif ( $line =~/^%if((os|narch)\s+.*)\s*$/ )
     211  {
     212    my $exp = $1;
     213    if ( $condstack[$#condstack] =~ m/<FALSE:(.*)\s*>$/ ) {
     214      push @condstack,"<FALSE:$exp>";
     215    } else {
     216      push @condstack,"<IFOT:$exp>";
     217      push @buffer4, "$line\n";
     218    }
     219  } elsif ( $line =~ /^%else\s*$/ ) {
     220    if ( $condstack[$#condstack] =~ m/<TRUE:(.*)\s*>$/ ) {
     221      $condstack[$#condstack] = "<FALSE:$1>";
     222    } elsif ( $condstack[$#condstack] =~ m/<FALSE:(.*)\s*>$/ ) {
     223      $condstack[$#condstack] = "<TRUE:$1>";
     224    } else {
     225      push @buffer4, "$line\n";
     226    }
     227  } elsif ( $line =~ /^%endif\s*$/ ) {
     228
     229    if ( $condstack[$#condstack] =~ m/<TRUE:.*>$/ ) {
     230#    print STDERR "ENDIF: TRUE\n";
     231    } elsif ( $condstack[$#condstack] =~ m/<FALSE:.*>$/ ) {
     232#    print STDERR "ENDIF: FALSE\n";
     233    } else {
     234      push @buffer4, "%endif\n";
     235    }
     236#    print STDERR "POP: $line\n";
     237    pop @condstack;
     238  } else {
     239#  print STDERR "CATCH $condstack[$#condstack]:$line\n";
     240    if ( $condstack[$#condstack] =~ m/<TRUE:.*>$/ ) {
     241      push @buffer4, "$line\n";
     242    } elsif ( $condstack[$#condstack] =~ m/<FALSE:.*>$/ ) {
     243    } else {
     244      push @buffer4, "$line\n";
     245    }
     246  }
     247
     248#  print STDERR @condstack, "LINE: $line\n";
     249}
     250
     251print STDOUT @buffer4;
Note: See TracChangeset for help on using the changeset viewer.