diff options
author | Andrés <andmarti@gmail.com> | 2022-02-02 12:04:26 -0300 |
---|---|---|
committer | Andrés <andmarti@gmail.com> | 2022-02-02 12:04:26 -0300 |
commit | 77fe856adada4b29d9b8cc1135a64eefaf540a3a (patch) | |
tree | e8bde3e24cb8e814db662c0e66586812f62a6ae7 | |
parent | ab0eae962847c49e4f17ab724e2e41f3d6cfa700 (diff) |
adding string functions to dep graph
-rw-r--r-- | src/interp.c | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/src/interp.c b/src/interp.c index 2fa012b..0b5cebf 100644 --- a/src/interp.c +++ b/src/interp.c @@ -634,7 +634,9 @@ char * seval(struct sheet * sh, struct ent * ent, struct enode * se) { case SET8BIT: return (docase(SET8BIT, seval(sh, ent, se->e.o.left))); - case CAPITAL:return (docapital(seval(sh, ent, se->e.o.left))); + case CAPITAL: + if (ent && getVertex(graph, sh, ent, 0) == NULL) GraphAddVertex(graph, sh, ent); + return (docapital(seval(sh, ent, se->e.o.left))); case STINDEX: { int r, c; @@ -648,7 +650,9 @@ char * seval(struct sheet * sh, struct ent * ent, struct enode * se) { if (minc>maxc) c = maxc, maxc = minc, minc = c; return dostindex(sh, minr, minc, maxr, maxc, se->e.o.right); } - case EXT: return (doext(sh, se)); + case EXT: + if (ent && getVertex(graph, sh, ent, 0) == NULL) GraphAddVertex(graph, sh, ent); + return (doext(sh, se)); #ifdef XLUA case LUA: @@ -670,7 +674,9 @@ char * seval(struct sheet * sh, struct ent * ent, struct enode * se) { case SVAL: return (dosval(sh, seval(sh, ent, se->e.o.left), eval(sh, NULL, se->e.o.right))); - case REPLACE: return (doreplace(seval(sh, ent, se->e.o.left), + case REPLACE: + if (ent && getVertex(graph, sh, ent, 0) == NULL) GraphAddVertex(graph, sh, ent); + return (doreplace(seval(sh, ent, se->e.o.left), seval(sh, NULL, se->e.o.right->e.o.left), seval(sh, NULL, se->e.o.right->e.o.right))); |