Subversion Repositories wimsdev

Compare Revisions

Ignore whitespace Rev 12247 → Rev 12248

/trunk/wims/src/Misc/translator_.c
158,42 → 158,41
/* now make the translation. */
void translate(char *p)
{
char *p1, *p2, *pp;
int t;
char *p1, *p2, *pp;
int t;
 
if(entrycount<=0 && suffixcnt<=0) return;
snprintf(outbuf,sizeof(outbuf),"%s",p);
for(p1=find_word_start(outbuf);
p1!=NULL && p1-outbuf<MAX_LINELEN && *p1!=0;
p1=p2) {
p2=find_word_end(p1);
for(pp=p1;pp<p2 &&
((!has_digits && isalpha(*pp)) ||
(has_digits && isalnum(*pp)) || (*pp&128)!=0 ||
strchr("_",*pp)!=NULL);pp++);
p2=find_word_start(p2);
if(pp==p1 ||
(has_digits==0 && isdigit(*pp)) ||
(*pp!=0 && !isspace(*pp) && strchr(",.?!/;",*pp)==NULL)) continue;
t=search_list2(entry,entrycount,sizeof(entry[0]),p1);
if(t<0) {
switch(unknown_type) {
case unk_leave: break;
case unk_delete: {
ovlstrcpy(p1,find_word_start(pp)); p2=p1;
break;
}
case unk_replace: {
string_modify3(outbuf,p1,pp,unkbuf);
p2=find_word_start(p1+strlen(unkbuf));
}
}
continue;
if(entrycount<=0 && suffixcnt<=0) return;
snprintf(outbuf,sizeof(outbuf),"%s",p);
for(p1=find_word_start(outbuf);
p1!=NULL && p1-outbuf<MAX_LINELEN && *p1!=0;
p1=p2) {
p2=find_word_end(p1);
for(pp=p1;pp<p2 &&
((!has_digits && isalpha(*pp)) ||
(has_digits && isalnum(*pp)) || (*pp&128)!=0 ||
strchr("_",*pp)!=NULL);pp++);
p2=find_word_start(p2);
if(pp==p1 ||
(has_digits==0 && isdigit(*pp)) ||
(*pp!=0 && !isspace(*pp) && strchr(",.?!/;",*pp)==NULL)) continue;
t=search_list2(entry,entrycount,sizeof(entry[0]),p1);
if(t<0) {
switch(unknown_type) {
case unk_leave: break;
case unk_delete: {
ovlstrcpy(p1,find_word_start(pp)); p2=p1;
break;
}
case unk_replace: {
string_modify3(outbuf,p1,pp,unkbuf);
p2=find_word_start(p1+strlen(unkbuf));
}
}
string_modify3(outbuf,p1,p1+strlen((char*)entry[t].original),
continue;
}
string_modify3(outbuf,p1,p1+strlen((char*)entry[t].original),
(char*)entry[t].replace);
p2=find_word_start(p1+strlen((char*)entry[t].replace));
}
snprintf(p,MAX_LINELEN,"%s",outbuf);
p2=find_word_start(p1+strlen((char*)entry[t].replace));
}
snprintf(p,MAX_LINELEN,"%s",outbuf);
}