Subversion Repositories SvarDOS

Rev

Rev 1374 | Rev 1376 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 1374 Rev 1375
Line 198... Line 198...
198
    }
198
    }
199
 
199
 
200
    /* is it the lang I am looking for? */
200
    /* is it the lang I am looking for? */
201
    if (buff16[0] == langid) break;
201
    if (buff16[0] == langid) break;
202
 
202
 
203
    /* skip to next lang */
203
    /* skip to next lang (in two steps to avoid a potential uint16 overflow) */
204
    FSEEK(fd, svarlang_string_count * 4);
204
    FSEEK(fd, svarlang_string_count * 4);
205
    FSEEK(fd, buff16[1]);
205
    FSEEK(fd, buff16[1]);
206
  }
206
  }
207
 
207
 
208
  /* found - but do I have enough memory space? */
208
  /* load dictionary & strings, but only if I have enough memory space */
209
  if (buff16[1] >= svarlang_memsz) {
209
  if ((buff16[1] >= svarlang_memsz)
-
 
210
   || (FREAD(fd, svarlang_dict, svarlang_string_count * 4) != svarlang_string_count * 4)
-
 
211
   || (FREAD(fd, svarlang_mem, buff16[1]) != buff16[1])) {
210
    FCLOSE(fd);
212
    FCLOSE(fd);
211
    return(-4);
213
    return(-4);
212
  }
214
  }
213
 
215
 
214
  /* load dictionary & strings */
-
 
215
  if ((FREAD(fd, svarlang_dict, svarlang_string_count * 4) != svarlang_string_count * 4) ||
-
 
216
     (FREAD(fd, svarlang_mem, buff16[1]) != buff16[1])) {
-
 
217
    FCLOSE(fd);
-
 
218
    return(-5);
-
 
219
  }
-
 
220
 
-
 
221
  FCLOSE(fd);
216
  FCLOSE(fd);
222
  return(0);
217
  return(0);
223
}
218
}