summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAndrés <andmarti@gmail.com>2022-02-02 12:04:26 -0300
committerAndrés <andmarti@gmail.com>2022-02-02 12:04:26 -0300
commit77fe856adada4b29d9b8cc1135a64eefaf540a3a (patch)
treee8bde3e24cb8e814db662c0e66586812f62a6ae7
parentab0eae962847c49e4f17ab724e2e41f3d6cfa700 (diff)
adding string functions to dep graph
-rw-r--r--src/interp.c12
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)));