=================================================================== RCS file: /home/cvs/OpenXM_contrib2/asir2000/engine/Fgfs.c,v retrieving revision 1.13 retrieving revision 1.16 diff -u -p -r1.13 -r1.16 --- OpenXM_contrib2/asir2000/engine/Fgfs.c 2002/11/26 08:21:49 1.13 +++ OpenXM_contrib2/asir2000/engine/Fgfs.c 2003/01/06 09:23:27 1.16 @@ -1,4 +1,4 @@ -/* $OpenXM: OpenXM_contrib2/asir2000/engine/Fgfs.c,v 1.12 2002/11/26 07:09:45 noro Exp $ */ +/* $OpenXM: OpenXM_contrib2/asir2000/engine/Fgfs.c,v 1.15 2003/01/04 09:06:17 noro Exp $ */ #include "ca.h" @@ -50,7 +50,7 @@ void sqfrsf(VL vl, P f, DCP *dcp) { DCP dc,dct; Obj obj; - P t,s,c; + P t,s,c,cont; VL tvl,onevl; simp_ff((Obj)f,&obj); f = (P)obj; @@ -67,8 +67,8 @@ void sqfrsf(VL vl, P f, DCP *dcp) t = f; for ( tvl = vl; tvl; tvl = NEXT(tvl) ) { onevl->v = tvl->v; - cont_pp_mv_sf(vl,onevl,t,&c,&s); t = s; - sqfrsf(vl,c,&dct); + cont_pp_mv_sf(vl,onevl,t,&cont,&s); t = s; + sqfrsf(vl,cont,&dct); dc = append_dc(dc,NEXT(dct)); } sqfrsfmain(vl,t,&dct); @@ -474,7 +474,12 @@ void cont_pp_mv_sf(VL vl,VL rvl,P p,P *c,P *pp) MP t; int i,m; P *ps; + struct order_spec spec, currentspec; + extern struct order_spec dp_current_spec; + currentspec = dp_current_spec; + create_order_spec(0,&spec); + initd(&spec); ptod(vl,rvl,p,&dp); for ( t = BDY(dp), m = 0; t; t = NEXT(t), m++ ); ps = (P *)ALLOCA(m*sizeof(P)); @@ -482,6 +487,7 @@ void cont_pp_mv_sf(VL vl,VL rvl,P p,P *c,P *pp) ps[i] = C(t); gcdsf(vl,ps,m,c); divsp(vl,p,*c,pp); + initd(¤tspec); } void mfctrsf(VL vl, P f, DCP *dcp)