Sindbad~EG File Manager
/* M. Beeson, for MathXpert. Operators to apply user-defined functions */
/* 2.4.92 original date
1.22.98 last modified
*/
#define AUTOMODE_DLL
#include <string.h>
#include "globals.h"
#include "userfunc.h"
#include "dispfunc.h" /* functor_string */
static int applyfunction(term t, int k, term *next, char *reason);
/*____________________________________________________________________*/
int applyfunction0(term t, term arg, term *next, char *reason)
{ return applyfunction(t,0,next,reason);
}
/*____________________________________________________________________*/
MEXPORT_AUTOMODE int applyfunction1(term t, term arg, term *next, char *reason)
{ return applyfunction(t,1,next,reason);
}
/*____________________________________________________________________*/
MEXPORT_AUTOMODE int applyfunction2(term t, term arg, term *next, char *reason)
{ return applyfunction(t,2,next,reason);
}
/*____________________________________________________________________*/
MEXPORT_AUTOMODE int applyfunction3(term t, term arg, term *next, char *reason)
{ return applyfunction(t,3,next,reason);
}
/*____________________________________________________________________*/
MEXPORT_AUTOMODE int applyfunction4(term t, term arg, term *next, char *reason)
{ return applyfunction(t,4,next,reason);
}
/*____________________________________________________________________*/
MEXPORT_AUTOMODE int applyfunction5(term t, term arg, term *next, char *reason)
{ return applyfunction(t,5,next,reason);
}
/*____________________________________________________________________*/
MEXPORT_AUTOMODE int applyfunction6(term t, term arg, term *next, char *reason)
{ return applyfunction(t,6,next,reason);
}
/*____________________________________________________________________*/
MEXPORT_AUTOMODE int applyfunction7(term t, term arg, term *next, char *reason)
{ return applyfunction(t,7,next,reason);
}
/*____________________________________________________________________*/
MEXPORT_AUTOMODE int applyfunction8(term t, term arg, term *next, char *reason)
{ return applyfunction(t,8,next,reason);
}
/*____________________________________________________________________*/
MEXPORT_AUTOMODE int applyfunction9(term t, term arg, term *next, char *reason)
{ return applyfunction(t,9,next,reason);
}
/*____________________________________________________________________*/
MEXPORT_AUTOMODE int applyfunction10(term t, term arg, term *next, char *reason)
{ return applyfunction(t,10,next,reason);
}
/*____________________________________________________________________*/
MEXPORT_AUTOMODE int applyfunction11(term t, term arg, term *next, char *reason)
{ return applyfunction(t,11,next,reason);
}
/*____________________________________________________________________*/
MEXPORT_AUTOMODE int applyfunction12(term t, term arg, term *next, char *reason)
{ return applyfunction(t,12,next,reason);
}
/*____________________________________________________________________*/
MEXPORT_AUTOMODE int applyfunction13(term t, term arg, term *next, char *reason)
{ return applyfunction(t,12,next,reason);
}
/*____________________________________________________________________*/
MEXPORT_AUTOMODE int applyfunction14(term t, term arg, term *next, char *reason)
{ return applyfunction(t,12,next,reason);
}
/*____________________________________________________________________*/
MEXPORT_AUTOMODE int applyfunction15(term t, term arg, term *next, char *reason)
{ return applyfunction(t,12,next,reason);
}
/*____________________________________________________________________*/
static int applyfunction(term t, int k, term *next, char *reason)
/* not an operator-- apply userfunctions[k] to t */
{ term lhs, rhs;
char *p;
int err = get_definition(k,&lhs,&rhs);
if(err)
return 1; /* there is no k-th definition */
if(FUNCTOR(t) != FUNCTOR(lhs) || ARITY(t) != ARITY(lhs))
return 1;
apply_definition(t,next);
p = get_defnstring(k);
if(strlen(p) <= MAXREASONSTRING)
strcpy(reason,p);
else
{ strcpy(reason, english(1068)); /* definition of */
functor_string(FUNCTOR(lhs),SCREEN,strchr(reason,'\0'));
}
return 0;
}
Sindbad File Manager Version 1.0, Coded By Sindbad EG ~ The Terrorists