diff options
author | andmarti1424 <andmarti@gmail.com> | 2017-10-17 20:20:28 -0300 |
---|---|---|
committer | andmarti1424 <andmarti@gmail.com> | 2017-10-17 20:20:28 -0300 |
commit | 0fb201a92bd4038c7c02212761d49b17fc54744c (patch) | |
tree | 6b0fa966a144812df60fae04e16e3b2c18f030a4 /src/interp.c | |
parent | 9ea513318fa8c5e560ef4355f3f6150433fc97e2 (diff) |
work on issue # 201
Diffstat (limited to 'src/interp.c')
-rw-r--r-- | src/interp.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/src/interp.c b/src/interp.c index 71597c7..1351ebe 100644 --- a/src/interp.c +++ b/src/interp.c @@ -1057,6 +1057,7 @@ double eval(register struct ent * ent, register struct enode * e) { sc_error("Circular reference in eval (cell %s%d)", coltoa(vp->col), vp->row); //ERR propagates. comment to make it not to. cellerror = CELLERROR; + //ent->cellerror = CELLERROR; GraphAddEdge( getVertex(graph, lookat(ent->row, ent->col), 1), getVertex(graph, lookat(vp->row, vp->col), 1) ) ; return (double) 0; @@ -2510,6 +2511,10 @@ void let(struct ent * v, struct enode * e) { do_trigger(v,TRG_WRITE); + if (!loading && cellerror == CELLERROR) { /* issue #201 */ + if (v->expr) efree(v->expr); + v->expr = NULL; + } #ifdef UNDO if (!loading) { copy_to_undostruct(v->row, v->col, v->row, v->col, 'a'); |