=================================================================== RCS file: /home/cvs/OpenXM_contrib2/asir2000/builtin/strobj.c,v retrieving revision 1.77 retrieving revision 1.79 diff -u -p -r1.77 -r1.79 --- OpenXM_contrib2/asir2000/builtin/strobj.c 2005/10/15 07:40:59 1.77 +++ OpenXM_contrib2/asir2000/builtin/strobj.c 2005/10/19 10:31:18 1.79 @@ -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/builtin/strobj.c,v 1.76 2005/10/15 02:34:13 noro Exp $ + * $OpenXM: OpenXM_contrib2/asir2000/builtin/strobj.c,v 1.78 2005/10/17 00:38:11 noro Exp $ */ #include "ca.h" #include "parse.h" @@ -663,20 +663,20 @@ void Pquote_match_rewrite(NODE arg,Obj *rp) NEXTNODE(s0,s); pair = BDY((LIST)BDY(t)); ind = (int)FA0((FNODE)BDY((QUOTE)BDY(pair))); - value = mkfnode(1,I_FORMULA,BDY(NEXT(pair))); + value = BDY((QUOTE)(BDY(NEXT(pair)))); BDY(s) = mknode(2,ind,value); } if ( s0 ) NEXT(s) = 0; switch ( ac = argc(arg) ) { case 3: h = rewrite_fnode(BDY((QUOTE)ARG2(arg)),s0); - *rp = eval(h); + MKQUOTE(q,h); *rp = (Obj)q; break; case 4: c = rewrite_fnode(BDY((QUOTE)ARG2(arg)),s0); if ( eval(c) ) { h = rewrite_fnode(BDY((QUOTE)ARG3(arg)),s0); - *rp = eval(h); + MKQUOTE(q,h); *rp = (Obj)q; } else *rp = VOIDobj; break; @@ -2182,7 +2182,7 @@ FNODE fnode_apply(FNODE f,FNODE (*func)(),int expand) for ( i = 0; i < n; i++ ) { switch ( spec->type[i] ) { case A_fnode: - r->arg[i] = func(f->arg[i]); + r->arg[i] = func(f->arg[i],expand); break; case A_node: s = (NODE)f->arg[i];