=================================================================== RCS file: /home/cvs/OpenXM_contrib2/asir2000/parse/eval.c,v retrieving revision 1.25 retrieving revision 1.27 diff -u -p -r1.25 -r1.27 --- OpenXM_contrib2/asir2000/parse/eval.c 2003/05/16 09:34:49 1.25 +++ OpenXM_contrib2/asir2000/parse/eval.c 2003/05/20 06:15:01 1.27 @@ -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.24 2003/05/16 07:56:16 noro Exp $ + * $OpenXM: OpenXM_contrib2/asir2000/parse/eval.c,v 1.26 2003/05/17 11:47:51 takayama Exp $ */ #include #include "ca.h" @@ -908,6 +908,12 @@ void appenduf_local(char *name,FUNC *r) FUNC f; MODULE mod; + for ( tn = CUR_MODULE->usrf_list; tn; tn = NEXT(tn) ) + if ( !strcmp(((FUNC)BDY(tn))->name,name) ) + break; + if ( tn ) + return; + f=(FUNC)MALLOC(sizeof(struct oFUNC)); f->id = A_UNDEF; f->argc = 0; f->f.binf = 0; f->name = name; @@ -933,6 +939,7 @@ void mkparif(char *name,FUNC *r) *r = f =(FUNC)MALLOC(sizeof(struct oFUNC)); f->name = name; f->id = A_PARI; f->argc = 0; f->f.binf = 0; + f->fullname = name; } void mkuf(char *name,char *fname,NODE args,SNODE body,int startl,int endl,char *desc,MODULE module) @@ -1051,7 +1058,12 @@ MODULE mkmodule(char *name) void print_crossref(FUNC f) { - if ( show_crossref && CUR_FUNC ) - fprintf(asir_out,"%s() at line %d in %s()\n", - f->fullname, asir_infile->ln, CUR_FUNC); + FUNC r; + if ( show_crossref && CUR_FUNC ) { + searchuf(f->fullname,&r); + if (r != NULL) { + fprintf(asir_out,"%s() at line %d in %s()\n", + f->fullname, asir_infile->ln, CUR_FUNC); + } + } }