Changeset 12886


Ignore:
Timestamp:
2006-09-28T10:59:20+12:00 (18 years ago)
Author:
kjdon
Message:

Accent folding patch thanks to Juan Grigera. Added in all the extra stem indexes to IndexData

Location:
trunk/gsdl/src/mgpp/text
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/gsdl/src/mgpp/text/IndexData.cpp

    r8691 r12886  
    3030  dictFile = NULL;
    3131
    32   stem1File = NULL;
    33   stem2File = NULL;
    34   stem3File = NULL;
     32  /* [JFG - Mar 06: Accent folding patch] */
     33  for(int i=STEM_MIN;i <= STEM_MAX;i++)
     34    stemFile[i-1] = NULL;
    3535
    3636  invfFile = NULL;
     
    7979  if (!ReadBlockIdx (dictFile, biTags)) { UnloadData (); return false; }
    8080
    81   // blocked stem index 1
    82   stem1File = open_file (filename, INVF_DICT_BLOCKED_1_SUFFIX,
    83              "rb", MAGIC_STEM_1, MG_ABORT);
    84   if (!sih1.Read (stem1File)) { UnloadData (); return false; }
     81  /* [JFG - Mar 06: Accent folding patch] */
     82  // read stem indexes
     83  for(int stem = STEM_MIN; stem <= STEM_MAX; stem++) {
     84      char *suffix = make_suffix (INVF_DICT_BLOCKED_SUFFIX_PAT, stem, NULL);
     85      stemFile[stem-1] = open_file (filename, suffix,
     86                 "rb", MAGIC_STEM_GEN(stem + '0'), MG_ABORT);
     87      if (!sih[stem-1].Read (stemFile[stem-1])) { UnloadData (); return false; }
     88   
     89      fseek (stemFile[stem-1], sih[stem-1].block_idx_start, SEEK_SET);
     90      if (!ReadBlockIdx (stemFile[stem-1], sii[stem-1])) { UnloadData (); return false; }
     91  }
    8592
    86   fseek (stem1File, sih1.block_idx_start, SEEK_SET);
    87   if (!ReadBlockIdx (stem1File, sii1)) { UnloadData (); return false; }
    88  
    89   // blocked stem index 2
    90   stem2File = open_file (filename, INVF_DICT_BLOCKED_2_SUFFIX,
    91              "rb", MAGIC_STEM_2, MG_ABORT);
    92   if (!sih2.Read (stem2File)) { UnloadData (); return false; }
    93 
    94   fseek (stem2File, sih2.block_idx_start, SEEK_SET);
    95   if (!ReadBlockIdx (stem2File, sii2)) { UnloadData (); return false; }
    96  
    97   // blocked stem index 3
    98   stem3File = open_file (filename, INVF_DICT_BLOCKED_3_SUFFIX,
    99              "rb", MAGIC_STEM_3, MG_ABORT);
    100   if (!sih3.Read (stem3File)) { UnloadData (); return false; }
    101 
    102   fseek (stem3File, sih3.block_idx_start, SEEK_SET);
    103   if (!ReadBlockIdx (stem3File, sii3)) { UnloadData (); return false; }
    10493
    10594  // inverted file
     
    125114  }
    126115
    127   if (stem1File != NULL) {
    128     fclose (stem1File); stem1File = NULL;
    129   }
    130   if (stem2File != NULL) {
    131     fclose (stem2File); stem2File = NULL;
    132   }
    133   if (stem3File != NULL) {
    134     fclose (stem3File); stem3File = NULL;
    135   }
     116  for(int i=STEM_MIN;i <= STEM_MAX;i++)
     117      if (stemFile[i-1] != NULL) {
     118        fclose (stemFile[i-1]); stemFile[i-1] = NULL;
     119      }
    136120
    137121  if (invfFile != NULL) {
  • trunk/gsdl/src/mgpp/text/IndexData.h

    r3525 r12886  
    2828#include "FragLevelConvert.h"
    2929#include "Weights.h"
    30 
     30#include "mg_files.h"
    3131
    3232class IndexData {
     
    4343  block_idx biTags;
    4444
     45  /* [JFG - Mar 06: Accent folding patch] */
    4546  // stem indexes
    46   FILE *stem1File;
    47   FILE *stem2File;
    48   FILE *stem3File;
    49   stem_idx_header sih1;
    50   stem_idx_header sih2;
    51   stem_idx_header sih3;
    52   block_idx sii1;
    53   block_idx sii2;
    54   block_idx sii3;
    55 
     47  FILE *stemFile[STEM_MAX];
     48  stem_idx_header sih[STEM_MAX];
     49  block_idx sii[STEM_MAX];
     50 
    5651  // inverted file
    5752  FILE *invfFile;
Note: See TracChangeset for help on using the changeset viewer.