=================================================================== RCS file: /home/cvs/OpenXM_contrib2/asir2000/parse/util.c,v retrieving revision 1.12 retrieving revision 1.17 diff -u -p -r1.12 -r1.17 --- OpenXM_contrib2/asir2000/parse/util.c 2004/12/18 16:50:10 1.12 +++ OpenXM_contrib2/asir2000/parse/util.c 2015/08/06 10:01:53 1.17 @@ -45,20 +45,19 @@ * DEVELOPER SHALL HAVE NO LIABILITY IN CONNECTION WITH THE USE, * PERFORMANCE OR NON-PERFORMANCE OF THE SOFTWARE. * - * $OpenXM: OpenXM_contrib2/asir2000/parse/util.c,v 1.11 2004/06/21 00:58:32 noro Exp $ + * $OpenXM: OpenXM_contrib2/asir2000/parse/util.c,v 1.16 2005/10/24 08:26:42 noro Exp $ */ #include "ca.h" #include "base.h" #include "parse.h" -#if defined(__GNUC__) || defined(VISUAL) || (defined(__MACH__) && defined(__ppc__)) || defined(__FreeBSD__) +#if defined(__GNUC__) || defined(VISUAL) || defined(__MINGW32__) || defined(__MINGW64__) || (defined(__MACH__) && defined(__ppc__)) || defined(__FreeBSD__) #include #else #include #endif #include -int length(n) -NODE n; +int length(NODE n) { int i; @@ -66,8 +65,7 @@ NODE n; return i; } -int argc(a) -NODE a; +int argc(NODE a) { int i; @@ -75,17 +73,15 @@ NODE a; return ( i ); } -void stoarg(s,acp,av) -char *s; -int *acp; -char **av; +void stoarg(char *s,int *acp,char **av) { int i; for ( i = 0; ; i++ ) { - for ( ; *s && isspace(*s); s++ ); + for ( ; *s && isspace((unsigned char)*s); s++ ); if ( *s ) { - for ( av[i] = s; *s && !isspace(*s); s++ ); + for ( av[i] = s; *s && + !isspace((unsigned char)*s); s++ ); if ( *s ) *s++ = 0; } else { @@ -96,9 +92,7 @@ char **av; } #if 0 -unsigned int ator(addr,r) -unsigned int addr; -Obj *r; +unsigned int ator(unsigned int addr,Obj *r) { N n; Q q; @@ -115,10 +109,7 @@ Obj *r; } #endif -void getarray(a,ind,vp) -pointer a; -NODE ind; -pointer *vp; +void getarray(pointer a,NODE ind,pointer *vp) { Obj len,row,col,trg; int i; @@ -175,7 +166,7 @@ pointer *vp; ((IMAT)a)->col < QTOS((Q)col) || (QTOS((Q)row) < 0) || (QTOS((Q)col) < 0)) error("putarray : Out of range"); - GetIbody((IMAT)a, QTOS((Q)row), QTOS((Q)col), (Obj)&trg); + GetIbody((IMAT)a, QTOS((Q)row), QTOS((Q)col), (Obj*)&trg); a = (pointer)trg; break; case O_LIST: @@ -196,10 +187,7 @@ pointer *vp; *vp = a; } -void putarray(a,ind,b) -pointer a; -NODE ind; -pointer b; +void putarray(pointer a,NODE ind,pointer b) { Obj len,row,col; int i; @@ -274,9 +262,7 @@ pointer b; } } -int rangecheck(a,n) -Obj a; -int n; +int rangecheck(Obj a,int n) { N m; @@ -290,8 +276,7 @@ int n; return 1; } -int zp(p) -P p; +int zp(P p) { int r; DCP dc; @@ -306,7 +291,7 @@ P p; return ( r ); } -#if defined(__GNUC__) || defined(VISUAL) || (defined(__MACH__) && defined(__ppc__)) || defined(__FreeBSD__) +#if defined(__GNUC__) || defined(VISUAL) || defined(__MINGW32__) || defined(__MINGW64__) || (defined(__MACH__) && defined(__ppc__)) || defined(__FreeBSD__) NODE mknode(int ac,...) { va_list ap; @@ -404,11 +389,19 @@ va_dcl } #endif -void makevar(str,p) -char *str; -P *p; +V searchvar(char *str) { VL vl; + + for ( vl = CO; vl ;vl = NEXT(vl) ) + if ( NAME(VR(vl)) && !strcmp(NAME(VR(vl)),str) ) + return VR(vl); + return 0; +} + +void makevar(char *str,P *p) +{ + VL vl; V v; P t; @@ -427,9 +420,7 @@ P *p; vl = NEXT(vl); } -void makesrvar(f,p) -FUNC f; -P *p; +void makesrvar(FUNC f,P *p) { VL vl; V v; @@ -452,10 +443,7 @@ P *p; vl = NEXT(vl); } -void appendtonode(n,a,nrp) -NODE n; -pointer a; -NODE *nrp; +void appendtonode(NODE n,pointer a,NODE *nrp) { NODE tn; @@ -467,10 +455,7 @@ NODE *nrp; } } -void appendtonode2(n,a,b,nrp) -NODE2 n; -pointer a,b; -NODE2 *nrp; +void appendtonode2(NODE2 n,pointer a,pointer b,NODE2 *nrp) { NODE2 tn; @@ -482,9 +467,7 @@ NODE2 *nrp; } } -void appendvar(vl,v) -VL vl; -V v; +void appendvar(VL vl,V v) { while (1) if ( vl->v == v ) @@ -496,10 +479,7 @@ V v; vl = NEXT(vl); } -void reallocarray(arrayp,sizep,indexp,esize) -char **arrayp; -int *sizep,*indexp; -int esize; +void reallocarray(char **arrayp,int *sizep,int *indexp,int esize) { char *new;