Diff for /rat/lonuserstate.pm between versions 1.108 and 1.109

version 1.108, 2006/04/27 23:36:10 version 1.109, 2006/05/05 15:50:20
Line 413  sub accinit { Line 413  sub accinit {
     foreach my $key (keys(%hash)) {      foreach my $key (keys(%hash)) {
  if ($key=~/^conditions/) {   if ($key=~/^conditions/) {
     my $expr=$hash{$key};      my $expr=$hash{$key};
       # try to find and factor out common sub-expressions
     foreach my $sub ($expr=~m/(\(\([_\.\d]+(?:\&[_\.\d]+)+\)(?:\|\([_\.\d]+(?:\&[_\.\d]+)+\))+\))/g) {      foreach my $sub ($expr=~m/(\(\([_\.\d]+(?:\&[_\.\d]+)+\)(?:\|\([_\.\d]+(?:\&[_\.\d]+)+\))+\))/g) {
  my $orig=$sub;   my $orig=$sub;
  $sub=~/\(\(([_\.\d]+\&(:?[_\.\d]+\&)*)(?:[_\.\d]+\&*)+\)(?:\|\(\1(?:[_\.\d]+\&*)+\))+\)/;  
  my $factor=$1;   my ($factor) = ($sub=~/\(\(([_\.\d]+\&(:?[_\.\d]+\&)*)(?:[_\.\d]+\&*)+\)(?:\|\(\1(?:[_\.\d]+\&*)+\))+\)/);
  $sub=~s/$factor//g;   next if (!defined($factor));
   
    $sub=~s/\Q$factor\E//g;
  $sub=~s/^\(/\($factor\(/;   $sub=~s/^\(/\($factor\(/;
  $sub.=')';   $sub.=')';
  $sub=simplify($sub);   $sub=simplify($sub);
  $orig=~s/(\W)/\\$1/g;   $expr=~s/\Q$orig\E/$sub/;
  $expr=~s/$orig/$sub/;  
     }      }
     $hash{$key}=$expr;      $hash{$key}=$expr;
     unless (defined($captured{$expr})) {      unless (defined($captured{$expr})) {

Removed from v.1.108  
changed lines
  Added in v.1.109


FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>