Changeset ac7d970 for app/src/tok


Ignore:
Timestamp:
04/08/08 13:53:51 (16 years ago)
Author:
pawelk <pawelk@…>
Branches:
master, help
Children:
0214596
Parents:
317d53b
git-author:
pawelk <pawelk@…> (04/08/08 13:53:51)
git-committer:
pawelk <pawelk@…> (04/08/08 13:53:51)
Message:

Uaktualnilismy kora.

git-svn-id: svn://atos.wmid.amu.edu.pl/utt@23 e293616e-ec6a-49c2-aa92-f4a8b91c5d16

File:
1 edited

Legend:

Unmodified
Added
Removed
  • app/src/tok/tok

    r20b4e44 rac7d970  
    1111use File::HomeDir; 
    1212 
     13my $max_form_length = 50; 
     14 
    1315my $interactive=0; 
    1416my $help; 
     
    2123my $file; 
    2224foreach $file ($systemconfigfile, $userconfigfile){ 
    23         if(open(CONFIG, $configfile1)){ 
     25        if(open(CONFIG, $file)){ 
    2426                while (<CONFIG>) { 
    2527                        chomp; 
     
    7577#       | [^[:print:]]   (?{seg("B",$&)}) 
    7678 
     79sub min { 
     80  my ($val1, $val2) = @_; 
     81  if($val1 < $val2) { 
     82        return $val1; 
     83  } 
     84  else { 
     85        return $val2; 
     86  } 
     87} 
     88 
    7789 
    7890sub seg 
    7991{ 
    8092    my ($tag,$match) = @_; 
    81     my $len=length $match; 
    82     printf "%04d %02d %s ", $offset, $len, $tag; 
     93    my $length = length $match; 
     94    my $idx = 0; 
     95    while($idx < $length) { 
     96        my $l = min $max_form_length, $length - $idx; 
     97        my $m = substr $match, $idx, $l; 
     98     
     99        printf "%04d %02d %s ", $offset + $idx, $l, $tag; 
    83100    if($tag eq 'S') 
    84101    { 
    85         for(my $i=0; $i<$len; ++$i) 
     102        for(my $i=0; $i<$l; ++$i) 
    86103        { 
    87             my $c = substr $match, $i, 1; 
     104            my $c = substr $m, $i, 1; 
    88105            print '_' if $c eq ' '; 
    89106            print '\n' if $c eq "\n"; 
     
    95112    elsif($tag eq 'B') 
    96113    { 
    97         printf "\\x%02X", ord($match); 
     114        printf "\\x%02X", ord($m); 
    98115    } 
    99116    else 
    100117    { 
    101         print $match; 
     118        print $m; 
    102119    } 
    103120    print "\n"; 
    104     $offset += $len; 
    105 } 
     121    $idx += $l; 
     122    } # while($idx < $length) 
     123    $offset += $length; 
     124} #sub seg 
     125 
Note: See TracChangeset for help on using the changeset viewer.