double (**func2)(void *, double a, double b); // NULL terminated
char **func2_name; // NULL terminated
void *opaque;
- char **error;
+ const char **error;
#define VARS 10
double var[VARS];
} Parser;
AVEvalExpr * ff_parse(char *s, const char **const_name,
double (**func1)(void *, double), const char **func1_name,
double (**func2)(void *, double, double), char **func2_name,
- char **error){
+ const char **error){
Parser p;
AVEvalExpr * e;
char w[strlen(s) + 1], * wp = w;
double ff_eval2(char *s, double *const_value, const char **const_name,
double (**func1)(void *, double), const char **func1_name,
double (**func2)(void *, double, double), char **func2_name,
- void *opaque, char **error){
+ void *opaque, const char **error){
AVEvalExpr * e = ff_parse(s, const_name, func1, func1_name, func2, func2_name, error);
double d;
if (!e) return NAN;
double (**func1)(void *, double), const char **func1_name,
double (**func2)(void *, double, double), char **func2_name,
void *opaque){
- char *error=NULL;
+ const char *error=NULL;
double ret;
ret = ff_eval2(s, const_value, const_name, func1, func1_name, func2, func2_name, opaque, &error);
if (error)
double ff_eval2(char *s, double *const_value, const char **const_name,
double (**func1)(void *, double), const char **func1_name,
double (**func2)(void *, double, double), char **func2_name,
- void *opaque, char **error);
+ void *opaque, const char **error);
typedef struct ff_expr_s AVEvalExpr;
AVEvalExpr * ff_parse(char *s, const char **const_name,
double (**func1)(void *, double), const char **func1_name,
double (**func2)(void *, double, double), char **func2_name,
- char **error);
+ const char **error);
/**
* Evaluates a previously parsed expression.
* @param const_value a zero terminated array of values for the identifers from ff_parse const_name