ref: ee5b49bb3307e70054299a00d6c3308996049ce2
parent: cc19af1308fadaad9ff1611155c666cd48cfe32b
author: Tim van der Molen <58601421+tbvdm@users.noreply.github.com>
date: Thu Jul 2 16:22:15 EDT 2020
Fix regression with changed SUBSEP in subscript (#86) Commit 0d8778bbbb415810bfd126694a38b6bf4b71e79c reintroduced a regression that was fixed in commit 97a4b7ed215ae6446d13fe0eab15b5b3ae4da7da. The length of SUBSEP needs to be rechecked after calling execute(), in case SUBSEP itself has been changed. Co-authored-by: Tim van der Molen <tim@kariliq.nl>
--- a/run.c
+++ b/run.c
@@ -472,7 +472,7 @@
{char *buf;
int bufsz = recsize;
- size_t blen, seplen;
+ size_t blen;
if ((buf = malloc(bufsz)) == NULL) { FATAL("%s: out of memory", func);@@ -480,11 +480,11 @@
blen = 0;
buf[blen] = '\0';
- seplen = strlen(getsval(subseploc));
for (; p; p = p->nnext) {Cell *x = execute(p); /* expr */
char *s = getsval(x);
+ size_t seplen = strlen(getsval(subseploc));
size_t nsub = p->nnext ? seplen : 0;
size_t slen = strlen(s);
size_t tlen = blen + slen + nsub;
--
⑨