/[suikacvs]/markup/html/html5/spec-ja/common.pl
Suika

Diff of /markup/html/html5/spec-ja/common.pl

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.12 by wakaba, Sun Oct 26 09:26:56 2008 UTC revision 1.14 by wakaba, Mon Oct 27 04:52:38 2008 UTC
# Line 5  my $data_dir_name = q[data/]; Line 5  my $data_dir_name = q[data/];
5  my $data2_dir_name = q[data2/];  my $data2_dir_name = q[data2/];
6  my $data2_suffix = q[.dat];  my $data2_suffix = q[.dat];
7  my $lock_suffix = q[.lock];  my $lock_suffix = q[.lock];
8    
9    ## SEE ALSO: |Makefile|.
10  my $fallback_file_name = $data2_dir_name . 'fallback' . $data2_suffix;  my $fallback_file_name = $data2_dir_name . 'fallback' . $data2_suffix;
11    
12  ## SEE ALSO: |Makefile|.  ## SEE ALSO: |Makefile|.
# Line 22  sub normalize ($) { Line 24  sub normalize ($) {
24    
25  sub get_hash ($) {  sub get_hash ($) {
26    require Digest::MD5;    require Digest::MD5;
27    return Digest::MD5::md5_hex (normalize ($_[0]));    require Encode;
28      return Digest::MD5::md5_hex (Encode::encode ('utf8', normalize ($_[0])));
29  } # get_hash  } # get_hash
30    
31  sub create_pattern1 ($) {  sub create_pattern1 ($) {
# Line 186  sub get_all_entries () { Line 189  sub get_all_entries () {
189    return $Entry;    return $Entry;
190  } # get_all_entries  } # get_all_entries
191    
192    sub for_each_entry_set ($;$) {
193      my $code = shift;
194      my $on_the_fly = shift;
195      
196      opendir my $dir, $data2_dir_name or die "$0: $data2_dir_name: $!";
197      for (readdir $dir) {
198        next unless /\Q$data2_suffix\E$/;
199        my $file_name = $data2_dir_name . $_;
200        next if $file_name eq $fallback_file_name;
201    
202        if ($Entry->{$file_name}) {
203          $code->($file_name, $Entry->{$file_name});
204        } elsif ($on_the_fly) {
205          $code->($file_name, read_data_file ($file_name));
206        } else {
207          $Entry->{$file_name} = read_data_file ($file_name);
208          $code->($file_name, $Entry->{$file_name});
209        }
210      }
211    } # for_each_entry_set
212    
213  my $FallbackEntry;  my $FallbackEntry;
214  sub get_fallback_entry ($) {  sub get_fallback_entry ($) {
215    my $hash = shift;    my $hash = shift;
# Line 202  sub get_entry_or_fallback_entry ($) { Line 226  sub get_entry_or_fallback_entry ($) {
226    unless (defined $entry->{en}) {    unless (defined $entry->{en}) {
227      $entry = get_fallback_entry ($hash);      $entry = get_fallback_entry ($hash);
228    }    }
229    $entry->{tags} ||= [] if defined $entry->{en};    $entry->{tags} ||= [];
230    $entry->{isPattern} = 1 if $is_pattern;    $entry->{isPattern} = 1 if $is_pattern;
231    
232    return $entry;    return $entry;
# Line 216  sub set_fallback_entry ($$) { Line 240  sub set_fallback_entry ($$) {
240    $FallbackEntry->{$hash} = $value;    $FallbackEntry->{$hash} = $value;
241  } # set_fallback_entry  } # set_fallback_entry
242    
243    sub get_fallback_entries () {
244      unless (defined $FallbackEntry) {
245        $FallbackEntry = read_data_file ($fallback_file_name);
246      }
247      
248      return $FallbackEntry;
249    } # get_fallback_entries
250    
251  sub clear_fallback_entries () {  sub clear_fallback_entries () {
252    $FallbackEntry = {};    $FallbackEntry = {};
253  } # clear_fallback_entries  } # clear_fallback_entries

Legend:
Removed from v.1.12  
changed lines
  Added in v.1.14

admin@suikawiki.org
ViewVC Help
Powered by ViewVC 1.1.24