=================================================================== RCS file: /home/cvs/OpenXM_contrib2/asir2000/engine/C.c,v retrieving revision 1.11 retrieving revision 1.13 diff -u -p -r1.11 -r1.13 --- OpenXM_contrib2/asir2000/engine/C.c 2001/10/09 01:36:09 1.11 +++ OpenXM_contrib2/asir2000/engine/C.c 2003/01/04 09:06:17 1.13 @@ -45,7 +45,7 @@ * DEVELOPER SHALL HAVE NO LIABILITY IN CONNECTION WITH THE USE, * PERFORMANCE OR NON-PERFORMANCE OF THE SOFTWARE. * - * $OpenXM: OpenXM_contrib2/asir2000/engine/C.c,v 1.10 2001/06/29 09:08:53 noro Exp $ + * $OpenXM: OpenXM_contrib2/asir2000/engine/C.c,v 1.12 2002/11/01 06:47:41 noro Exp $ */ #include "ca.h" #include "inline.h" @@ -225,7 +225,11 @@ void ptosfp(P p,P *pr) if ( !p ) *pr = 0; else if ( NUM(p) ) { - qtogfs((Q)p,&a); *pr = (P)a; + if ( NID((Num)p) == N_GFS ) + *pr = (P)p; + else { + qtogfs((Q)p,&a); *pr = (P)a; + } } else { for ( dc = DC(p), dcr0 = 0; dc; dc = NEXT(dc) ) { ptosfp(COEF(dc),&t); @@ -404,7 +408,8 @@ void ptosfum(P f,UM wf) if ( OID(f) == O_N ) { DEG(wf) = 0; - COEF(wf)[0] = FTOIF(CONT((GFS)f)); + ntogfs((Obj)f,&c); + COEF(wf)[0] = FTOIF(CONT(c)); return; } @@ -412,7 +417,7 @@ void ptosfum(P f,UM wf) COEF(wf)[i] = 0; for ( dc = DC(f); dc; dc = NEXT(dc) ) { - c = (GFS)COEF(dc); + ntogfs((Obj)COEF(dc),&c); if ( c ) COEF(wf)[QTOS(DEG(dc))] = FTOIF(CONT(c)); }