home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Crawly Crypt Collection 2
/
crawlyvol2.bin
/
program
/
c
/
ios_src
/
langload.c
< prev
next >
Wrap
C/C++ Source or Header
|
1993-01-31
|
2KB
|
120 lines
/*
** Recompile this module after each change in the language file.
*/
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <ext.h>
#include <time.h>
#include "portab.h"
#include "defs.h"
#include "lang.h"
#include "vars.h"
#include "modules.h"
#include "strutil.h"
MLOCAL BYTE *RDlang_line(VOID);
MLOCAL BYTE *RDlang_line() {
MLOCAL BYTE buffer[1024];
BYTE *p;
WORD j;
p = buffer;
while(1) {
j = getc(FDUMMY);
if(feof(FDUMMY)) return (NULL);
if (j == '\n' || j == '\r')
break;
*p++ = (BYTE)j;
}
*p = EOS;
return (buffer);
}
BOOLEAN langload() {
BYTE *buffer,
*p,*q;
WORD i,
lang = 0;
if ((FDUMMY = fopen(LANG_FILE,"r")) == NULL) {
printf("Can't open language file, check for %s",LANG_FILE);
return (FALSE);
}
while (!feof(FDUMMY)) {
buffer = RDlang_line();
if (!buffer) break;
p = skip_blanks(buffer);
if (*p == ';') continue;
if ((i = (WORD)strlen(p)) < 3) continue;
if ((q = strrchr(p,';')) != NULL) *q = EOS;
q = &p[--i];
if (*q == '\r' || *q == '\n') *q = EOS;
p = skip_after_blanks(p);
Logmessage[ lang ] = (BYTE *)malloc(strlen(p) +2L);
if (!Logmessage[ lang ]) {
printf ("Memory error ....");
return (FALSE);
}
strcpy(Logmessage[lang++], p);
if (lang == LAST_MESSAGE) break;
}
fclose (FDUMMY);
if (lang < LAST_MESSAGE) {
printf("Languagefile must be at least %d lines.",LAST_MESSAGE + 1);
return (FALSE);
}
/*
** Read productcode file from disk.
*/
if ((FDUMMY = fopen(PRD_FILE, "r")) != NULL) {
while (fgets(buffer, 1024, FDUMMY)) {
p = skip_blanks (buffer);
if (*p == ';') continue;
if ((i = (WORD)strlen(p)) < 3) continue;
if ((q = strchr(p, ';')) != NULL) *q = EOS;
q = &p [--i];
if (*q == '\n' || *q == '\r') *q = EOS;
p = skip_after_blanks(p);
PRDcode[maxPRD] = (BYTE *)malloc (strlen (p) + 2L);
if (PRDcode[maxPRD]) {
strcpy(PRDcode[maxPRD++], p);
if (maxPRD > 255) break;
continue;
} else {
printf("Memory error ....");
return (FALSE);
}
}
fclose (FDUMMY);
}
return (TRUE);
}