Diff for /db/prgsrc/updateRS1.pl between versions 1.3 and 1.10

version 1.3, 2001/11/01 01:45:00 version 1.10, 2003/02/13 16:27:32
Line 40  use POSIX qw (locale_h); Line 40  use POSIX qw (locale_h);
 use lib "../lib";  use lib "../lib";
 use chgkfiles;  use chgkfiles;
 use dbchgk;  use dbchgk;
 open (STDERR,">errors");  my $DUMPDIR = $ENV{DUMPDIR} || "../dump";
   
   open (STDERR,">$DUMPDIR/errors");
 my $initime=time;  my $initime=time;
 open TIME, ">time";   open TIME, ">$DUMPDIR/time"; 
 do "common.pl";  do "common.pl";
 do "chgk.cnf";  do "chgk.cnf";
   
Line 64  my $nf; Line 66  my $nf;
   
 #open WARN, ">$warnings";  #open WARN, ">$warnings";
   
 %forbidden=checktable('equalto')? getequalto : ();  #%forbidden=checktable('equalto')? getequalto : ();
   
   
 if ((uc 'а') ne 'А') {die "!Koi8-r locale not installed!\n"};  if ((uc 'а') ne 'А') {die "!Koi8-r locale not installed!\n"};
Line 86  foreach $d(@dictionaries) Line 88  foreach $d(@dictionaries)
         chomp;          chomp;
         s/\s*$//;          s/\s*$//;
         ($aa,$b)=split(/\//);          ($aa,$b)=split(/\//);
           $aa=~tr/ёЁ/еЕ/;
         $a= uc $aa;          $a= uc $aa;
         $words{$a}.=$b || "!";          $words{$a}.=$b || "!";
      }       }
Line 98  die "No dictionaries found! Check your c Line 101  die "No dictionaries found! Check your c
 print "Getting words...\n";  print "Getting words...\n";
   
 print TIME "\t\t".(time-$initime)."\n";  print TIME "\t\t".(time-$initime)."\n";
   my $broken=0;
   
 for my $commonI(1..$times)  for my $commonI(1..$times)
 {  {
   last if $broken;
   
 print "loading nests\n";  print "loading nests\n";
   
Line 118  while ((++$sch<=$qlimit) && (($id, @ss) Line 122  while ((++$sch<=$qlimit) && (($id, @ss)
                              # и вешаем в массив, индексы которого -- словоформы,                               # и вешаем в массив, индексы которого -- словоформы,
                              # а значения -- списки вопросов.                                # а значения -- списки вопросов. 
 {  {
      if (-e "RS_stop")  {unlink("RS_stop"); $broken=1;last}
    print "$sch $id\n" ;#unless (++$sch % 1);     print "$sch $id\n" unless ($sch % 10);#unless (++$sch % 1);
    searchmark($id);     searchmark($id);
    if ($forbidden{$id}) {next};     if ($forbidden{$id}) {next};
    foreach $fieldnumber (0..$#ss) #перебираем поля     foreach $fieldnumber (0..$#ss) #перебираем поля
Line 141  foreach $wordnumber(0..$#list) Line 145  foreach $wordnumber(0..$#list)
            {             {
                 @n= split ' ',$n;                  @n= split ' ',$n;
                 $nfkvo{$_}++ foreach @n;                  $nfkvo{$_}++ foreach @n;
                 $neww2k{$_}.=packword($fieldnumber, $id,$wordnumber%256)                  my $r=packword($fieldnumber, $id,$wordnumber%256);
                      foreach (@n);                  $neww2k{$_}.=$r foreach (@n);
            }             }
            else {             else {
              if ($word=~/^${RLrl}+$/o){ # Русское слово               if ($word=~/^${RLrl}+$/o){ # Русское слово
Line 170  foreach $wordnumber(0..$#list) Line 174  foreach $wordnumber(0..$#list)
                        $newnf{$word}.=" $nfnumber";                         $newnf{$word}.=" $nfnumber";
                        $nfkvo{$nfnumber}++;                         $nfkvo{$nfnumber}++;
                        $a=\$neww2k{$nfnumber};                         $a=\$neww2k{$nfnumber};
                        $$a.=packword($fieldnumber, $id,$wordnumber);                         my $r=packword($fieldnumber, $id,$wordnumber);
                          $$a.=$r;
                        if (length $$a>100) {flushw2k($nfnumber)}                         if (length $$a>100) {flushw2k($nfnumber)}
                    }                     }
                    else                      else 
                    {                     {
                       $nfnumber=addnf(0, $f, $flag,1);                        $nfnumber=addnf(0, $f, $flag,1);
                       $newnf{uc $word}.=" $nfnumber";                        $newnf{uc $word}.=" $nfnumber";
                       $neww2k{$nfnumber}.=packword($fieldnumber, $id,$wordnumber);                         my $r=packword($fieldnumber, $id,$wordnumber);
                         $neww2k{$nfnumber}.=$r;
                    }                     }
                }                 }
            }             }

Removed from v.1.3  
changed lines
  Added in v.1.10


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