=================================================================== RCS file: /home/cvs/OpenXM_contrib2/asir2000/io/pexpr_body.c,v retrieving revision 1.1 retrieving revision 1.3 diff -u -p -r1.1 -r1.3 --- OpenXM_contrib2/asir2000/io/pexpr_body.c 2004/03/17 03:22:47 1.1 +++ OpenXM_contrib2/asir2000/io/pexpr_body.c 2004/05/14 06:02:54 1.3 @@ -1,4 +1,4 @@ -/* $OpenXM$ */ +/* $OpenXM: OpenXM_contrib2/asir2000/io/pexpr_body.c,v 1.2 2004/03/26 08:25:36 noro Exp $ */ #define PRINTHAT (fortran_output?PUTS("**"):PUTS("^")) @@ -34,6 +34,7 @@ void PRINTSF(); void PRINTSYMBOL(); void PRINTRANGE(); void PRINTTB(); +void PRINTDPV(); void PRINTFNODE(); void PRINTBF(); @@ -88,6 +89,8 @@ Obj p; PRINTRANGE(vl,(RANGE)p); break; case O_TB: PRINTTB(vl,(TB)p); break; + case O_DPV: + PRINTDPV(vl,(DPV)p); break; default: break; } @@ -239,6 +242,21 @@ VECT vect; } } +void PRINTDPV(vl,d) +VL vl; +DPV d; +{ + int i; + DP *ptr; + + PUTS("modvect("); + for ( i = 0, ptr = BDY(d); i < d->len; i++ ) { + if ( i != 0 ) PUTS(","); + PRINTEXPR(vl,(Obj)ptr[i]); + } + PUTS(")"); +} + void PRINTMAT(vl,mat) VL vl; MAT mat; @@ -983,10 +1001,17 @@ QUOTE quote; void PRINTTB(VL vl,TB p) { int i; +#if defined(SPRINT) + char *ptr,*e; + for ( i = 0, ptr = buf+strlen(OUT); i < p->next; i++ ) + for ( e = p->body[i]; *e; *ptr++ = *e++ ); + *ptr = 0; +#else for ( i = 0; i < p->next; i++ ) { PUTS(p->body[i]); } +#endif } void PRINTUP2(p)