=================================================================== RCS file: /home/cvs/OpenXM_contrib2/asir2000/parse/eval.c,v retrieving revision 1.30 retrieving revision 1.34 diff -u -p -r1.30 -r1.34 --- OpenXM_contrib2/asir2000/parse/eval.c 2003/11/08 01:12:03 1.30 +++ OpenXM_contrib2/asir2000/parse/eval.c 2004/06/21 09:05:16 1.34 @@ -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/parse/eval.c,v 1.29 2003/05/30 00:47:24 noro Exp $ + * $OpenXM: OpenXM_contrib2/asir2000/parse/eval.c,v 1.33 2004/05/14 09:20:57 noro Exp $ */ #include #include "ca.h" @@ -84,6 +84,7 @@ pointer eval(FNODE f) GF2N gf2n; GFPN gfpn; GFSN gfsn; + RANGE range; #if defined(VISUAL) if ( recv_intr ) { @@ -453,7 +454,6 @@ extern NODE PVSS; pointer evalf(FUNC f,FNODE a,FNODE opt) { LIST args; - OPTLIST optlist; pointer val; int i,n,level; NODE tn,sn,opts,opt1,dmy; @@ -494,11 +494,7 @@ pointer evalf(FUNC f,FNODE a,FNODE opt) (*f->f.binf)(&val); } else { args = (LIST)eval(a); - if ( opts ) { - NEWOPTLIST(optlist); - BDY(optlist) = opts; - appendtonode(BDY(args),(pointer)optlist,&dmy); - } + current_option = opts; cur_binf = f; (*f->f.binf)(args?BDY(args):0,&val); } @@ -867,6 +863,27 @@ void gen_searchf(char *name,FUNC *r) searchuf(name,&val); if ( !val ) appenduf(name,&val); + *r = val; +} + +void gen_searchf_searchonly(char *name,FUNC *r) +{ + FUNC val = 0; + int global = 0; + if ( *name == ':' ) { + global = 1; + name += 2; + } + if ( CUR_MODULE && !global ) + searchf(CUR_MODULE->usrf_list,name,&val); + if ( !val ) + searchf(sysf,name,&val); + if ( !val ) + searchf(ubinf,name,&val); + if ( !val ) + searchpf(name,&val); + if ( !val ) + searchuf(name,&val); *r = val; }