#include <stdio.h> #include <string.h> #include <stdlib.h> #include "struct.h" extern char **Messages; tag msg_Next=0; tag msg_Limit=0; extern char *GetName(),*ReadLongString(); extern char LineBuf[]; tag Next_Msg() { if(msg_Next>=msg_Limit-1) { if(msg_Limit!=0) { msg_Limit+=100; Messages=(char **) realloc(Messages,(msg_Limit+1)*sizeof(char *)); if(Messages==NULL) { fprintf(stderr,"Panic! No memory!\n"); exit(1); } } else { msg_Limit=100; Messages=(char **)emalloc(100*sizeof(char *)); } } return(msg_Next++); } LoadMessage(f,d) FILE *f; int d; { char *p; char *q; int n; char nmbf[32]; while(1) { if(GetLine(f)==NULL) { ELine(); log_error("[ERROR]: Unexpected EOF.\n"); return(1); } if(*LineBuf=='@') return(0); p=GetName(LineBuf,nmbf); if(p==NULL) { ELine(); log_error("[ERROR]: Bad Message '%s'.\n",LineBuf); return(1); } q=ReadLongString(f); if(q==NULL) { ELine(); log_error("[ERROR]: Message '%s' malformed.\n",nmbf); return(1); } n=Next_Msg(); Messages[n]=q; if(FindName(nmbf,2)) { ELine(); log_error("[ERROR]: Duplicate Message '%s'.\n",nmbf); return(1); } AddName(nmbf,n,2); } }