diff options
author | mongo <andmarti@gmail.com> | 2017-07-28 14:52:51 -0300 |
---|---|---|
committer | mongo <andmarti@gmail.com> | 2017-07-28 14:52:51 -0300 |
commit | a7a5c82c2ead2a2d3e376fe88de48c8231b83284 (patch) | |
tree | e42408a5a029f0c558c169fc3173c69c4f43d853 /src | |
parent | 973e8997d058170d59615248130f7a97ac83e0b8 (diff) |
Work on issue # 193
Diffstat (limited to 'src')
-rw-r--r-- | src/interp.c | 12 | ||||
-rw-r--r-- | src/interp.h | 4 |
2 files changed, 8 insertions, 8 deletions
diff --git a/src/interp.c b/src/interp.c index 58c121f..82810b9 100644 --- a/src/interp.c +++ b/src/interp.c @@ -633,7 +633,7 @@ double donval(char * colstr, double rowdoub) { * The left pointer is a chain of ELIST nodes, the right pointer * is a value. */ -double dolmax(struct enode * ep) { +double dolmax(struct ent * e, struct enode * ep) { register int count = 0; register double maxval = 0; /* Assignment to shut up lint */ register struct enode * p; @@ -641,7 +641,7 @@ double dolmax(struct enode * ep) { cellerror = CELLOK; for (p = ep; p; p = p->e.o.left) { - v = eval(NULL, p->e.o.right); + v = eval(e, p->e.o.right); if ( !count || v > maxval) { maxval = v; count++; @@ -651,7 +651,7 @@ double dolmax(struct enode * ep) { else return (double)0; } -double dolmin(struct enode * ep) { +double dolmin(struct ent * e, struct enode * ep) { register int count = 0; register double minval = 0; /* Assignment to shut up lint */ register struct enode * p; @@ -659,7 +659,7 @@ double dolmin(struct enode * ep) { cellerror = CELLOK; for (p = ep; p; p = p->e.o.left) { - v = eval(NULL, p->e.o.right); + v = eval(e, p->e.o.right); if ( !count || v < minval) { minval = v; count++; @@ -960,8 +960,8 @@ double eval(register struct ent * ent, register struct enode * e) { case ASCII: return (doascii(seval(ent, e->e.o.left))); case SLEN: return (doslen(seval(ent, e->e.o.left))); case EQS: return (doeqs(seval(ent, e->e.o.right), seval(ent, e->e.o.left))); - case LMAX: return dolmax(e); - case LMIN: return dolmin(e); + case LMAX: return dolmax(ent, e); + case LMIN: return dolmin(ent, e); case NVAL: return (donval(seval(ent, e->e.o.left), eval(ent, e->e.o.right))); case MYROW: return ((double) (gmyrow + rowoffset)); case MYCOL: return ((double) (gmycol + coloffset)); diff --git a/src/interp.h b/src/interp.h index ced0171..58fb8bd 100644 --- a/src/interp.h +++ b/src/interp.h @@ -18,8 +18,8 @@ int doslen(char * s); double doeqs(char * s1, char * s2); struct ent * getent(char * colstr, double rowdoub); double donval(char * colstr, double rowdoub); -double dolmax(struct enode * ep); -double dolmin(struct enode * ep); +double dolmax(struct ent * e, struct enode * ep); +double dolmin(struct ent * e, struct enode * ep); //double eval(register struct enode *e); double eval(register struct ent * ent, register struct enode * e); double fn1_eval(double (* fn)(), double arg); |