|
|
DataMuseum.dkPresents historical artifacts from the history of: DKUUG/EUUG Conference tapes |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about DKUUG/EUUG Conference tapes Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - metrics - downloadIndex: T m
Length: 1517 (0x5ed)
Types: TextFile
Names: »mtch.c«
└─⟦b20c6495f⟧ Bits:30007238 EUUGD18: Wien-båndet, efterår 1987
└─⟦this⟧ »EUUGD18/General/Empire.V/V1.1/EMPSUBS/mtch.c«
#define D_NATSTAT
#define D_NATSTR
#define D_COMSTR
#define D_FILES
#include "empdef.h"
stmtch(sp, strp, strlen)
char *sp, **strp;
int strlen;
{
register char *cp, **stp;
register retval;
int i, j;
retval = -1;
stp = strp;
cp = sp;
i = 0;
X34:
if( (j = mineq(cp, *stp)) != 0 ) {
if( j == 2 ) return(i);
if( retval != -1 ) return(-2);
retval = i;
}
i++;
stp = (char **)((char *)stp + strlen);
if( *stp != 0 ) goto X34;
return(retval);
}
comtch(comp)
char *comp;
{
register char *cp;
register struct comstr *sp;
int retval, i, j;
retval = -1;
cp = comp;
for( i=0; (sp= &coms[i]) != 0; i++ ) {
if( sp->c_form == '\0' ) break;
if( sp->c_permit > ncomstat ) continue;
if( (j = mineq(cp, sp->c_form)) == 0 ) continue;
if( j == 2 ) return(i);
if( retval != -1 ) return(-2);
retval = i;
}
return(retval);
}
mineq(s1, s2)
char *s1, *s2;
{
register char *cp1, *cp2;
cp1 = s1;
cp2 = s2;
X14:
if( *cp1++ != *cp2++ ) return(0);
if( *cp2 == ' ' ) goto X60;
if( *cp1 != '\0' ) goto X14;
X60:
if( *cp1 != '\0' ) return(1);
if( *cp2 == ' ' ) return(2);
if( *cp2 == '\0' ) return(2);
return(1);
}