ifix buffer size calculation - ploot - simple plotting tools Err bitreich.org 70 hgit clone git://bitreich.org/ploot git://enlrupgkhuxnvlhsf6lc3fziv5h2hhfrinws65d7roiv6bfj7d652fid.onion/ploot URL:git://bitreich.org/ploot git://enlrupgkhuxnvlhsf6lc3fziv5h2hhfrinws65d7roiv6bfj7d652fid.onion/ploot bitreich.org 70 1Log /scm/ploot/log.gph bitreich.org 70 1Files /scm/ploot/files.gph bitreich.org 70 1Refs /scm/ploot/refs.gph bitreich.org 70 1Tags /scm/ploot/tag bitreich.org 70 1README /scm/ploot/file/README.md.gph bitreich.org 70 1LICENSE /scm/ploot/file/LICENSE.gph bitreich.org 70 i--- Err bitreich.org 70 1commit c9c242228362e465b83fc106675981fd45419228 /scm/ploot/commit/c9c242228362e465b83fc106675981fd45419228.gph bitreich.org 70 1parent b22b1b174646f828a28144c010961a9c57f54dbd /scm/ploot/commit/b22b1b174646f828a28144c010961a9c57f54dbd.gph bitreich.org 70 hAuthor: Josuah Demangeon URL:mailto:mail@josuah.net bitreich.org 70 iDate: Wed, 2 May 2018 05:09:18 +0200 Err bitreich.org 70 i Err bitreich.org 70 ifix buffer size calculation Err bitreich.org 70 i Err bitreich.org 70 iDiffstat: Err bitreich.org 70 i M main.c | 17 +++++++++-------- Err bitreich.org 70 i Err bitreich.org 70 i1 file changed, 9 insertions(+), 8 deletions(-) Err bitreich.org 70 i--- Err bitreich.org 70 1diff --git a/main.c b/main.c /scm/ploot/file/main.c.gph bitreich.org 70 i@@ -78,14 +78,15 @@ eatol(char *str) Err bitreich.org 70 i } Err bitreich.org 70 i Err bitreich.org 70 i void Err bitreich.org 70 i-add_value(double **v, int *bufsiz, int nval, char *field) Err bitreich.org 70 i+add_value(Vlist *v, int *bufsiz, int nval, char *field) Err bitreich.org 70 i { Err bitreich.org 70 i if (nval >= *bufsiz) { Err bitreich.org 70 i- *bufsiz *= 2; Err bitreich.org 70 i- if ((*v = realloc(*v, *bufsiz)) == NULL) Err bitreich.org 70 i+ *bufsiz = *bufsiz * 2 + 1; Err bitreich.org 70 i+ if ((v->v = realloc(v->v, *bufsiz)) == NULL) Err bitreich.org 70 i perror("reallocating values buffer"), exit(1); Err bitreich.org 70 i } Err bitreich.org 70 i- (*v)[nval] = eatol(field); Err bitreich.org 70 i+ v->v[nval] = eatol(field); Err bitreich.org 70 i+ v->n = nval; Err bitreich.org 70 i } Err bitreich.org 70 i Err bitreich.org 70 i /* Err bitreich.org 70 i@@ -106,7 +107,7 @@ add_each_value(Vlist *v, int *bufsiz, int ncol, int nval, char *line) Err bitreich.org 70 i for (n = 0; (field = strsep(&line, ",")) != NULL; n++, v++) { Err bitreich.org 70 i if (n > ncol) Err bitreich.org 70 i fprintf(stderr, "%d: too many fields\n", nval), exit(0); Err bitreich.org 70 i- add_value(&v->v, bufsiz, nval, field); Err bitreich.org 70 i+ add_value(v, bufsiz, nval, field); Err bitreich.org 70 i } Err bitreich.org 70 i if (n < ncol) Err bitreich.org 70 i fprintf(stderr, "%d: too few fields\n", nval), exit(0); Err bitreich.org 70 i@@ -121,15 +122,15 @@ add_each_value(Vlist *v, int *bufsiz, int ncol, int nval, char *line) Err bitreich.org 70 i void Err bitreich.org 70 i read_values(Vlist *v, int ncol) Err bitreich.org 70 i { Err bitreich.org 70 i- int n, nval, bufsiz; Err bitreich.org 70 i+ int nval, bufsiz; Err bitreich.org 70 i char line[LINE_MAX]; Err bitreich.org 70 i Err bitreich.org 70 i+ bufsiz = 0; Err bitreich.org 70 i for (nval = 0; fgets(line, sizeof(line), stdin); nval++) { Err bitreich.org 70 i estriplf(line); Err bitreich.org 70 i add_each_value(v, &bufsiz, ncol, nval, line); Err bitreich.org 70 i } Err bitreich.org 70 i- for (n = 0; n < ncol; n++, v++) Err bitreich.org 70 i- v->n = nval; Err bitreich.org 70 i+ fprintf(stderr, "nval: %d, bufsiz: %d\n", nval, bufsiz), fflush(stderr); Err bitreich.org 70 i } Err bitreich.org 70 i Err bitreich.org 70 i static void Err bitreich.org 70 .