ichoose whether we scale up or scale down - 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 9bd929c04277a0f9d0056e5b50f1233054a4b17f /scm/ploot/commit/9bd929c04277a0f9d0056e5b50f1233054a4b17f.gph bitreich.org 70
1parent ab839e91e0a3687937992cb48558a15e1547d8ea /scm/ploot/commit/ab839e91e0a3687937992cb48558a15e1547d8ea.gph bitreich.org 70
hAuthor: Josuah Demangeon <mail@josuah.net> URL:mailto:mail@josuah.net bitreich.org 70
iDate: Wed, 2 May 2018 12:17:32 +0200 Err bitreich.org 70
i Err bitreich.org 70
ichoose whether we scale up or scale down Err bitreich.org 70
i Err bitreich.org 70
iDiffstat: Err bitreich.org 70
i M ffplot.c | 22 ++++++++++------------ Err bitreich.org 70
i M ploot.c | 47 ++++++++++++++++++------------- Err bitreich.org 70
i Err bitreich.org 70
i2 files changed, 37 insertions(+), 32 deletions(-) Err bitreich.org 70
i--- Err bitreich.org 70
1diff --git a/ffplot.c b/ffplot.c /scm/ploot/file/ffplot.c.gph bitreich.org 70
i@@ -196,7 +196,7 @@ legend(Canvas *can, Color *label_fg, Vlist *v, int n) Err bitreich.org 70
i int i, x, y; Err bitreich.org 70
i Err bitreich.org 70
i for (i = 0; i < n; i++, v++) { Err bitreich.org 70
i- x = LEGEND_H - n * (FONT_H + MARGIN) - FONT_H / 2; Err bitreich.org 70
i+ x = LEGEND_H - i * (FONT_H + MARGIN) - FONT_H / 2; Err bitreich.org 70
i Err bitreich.org 70
i y = MARGIN + FONT_W; Err bitreich.org 70
i ffdraw_str_left(can, &v->col, "\1", font, x, y); Err bitreich.org 70
i@@ -246,22 +246,20 @@ find_scales(Vlist *v, int n, Err bitreich.org 70
i } Err bitreich.org 70
i } Err bitreich.org 70
i Err bitreich.org 70
i- for (i = 1; i != 0; i *= 10) { Err bitreich.org 70
i- for (vs = vscale + LEN(vscale) - 1; vs >= vscale; vs--) { Err bitreich.org 70
i- if (dv > *vs / i * XDENSITY / 2) { Err bitreich.org 70
i- *vstep = *vs / i; Err bitreich.org 70
i- i = 0; Err bitreich.org 70
i- break; Err bitreich.org 70
i+ if (dv > 1) for (i = 1; i != 0; i *= 10) { Err bitreich.org 70
i+ for (vs = vscale; vs < vscale + LEN(vscale); vs++) { Err bitreich.org 70
i+ if (dv < *vs * i * XDENSITY) { Err bitreich.org 70
i+ *vstep = *vs * i; Err bitreich.org 70
i+ return; Err bitreich.org 70
i } Err bitreich.org 70
i } Err bitreich.org 70
i } Err bitreich.org 70
i Err bitreich.org 70
i for (i = 1; i != 0; i *= 10) { Err bitreich.org 70
i- for (vs = vscale; vs < vscale + LEN(vscale); vs++) { Err bitreich.org 70
i- if (dv < *vs * i * XDENSITY) { Err bitreich.org 70
i- *vstep = *vs * i; Err bitreich.org 70
i- i = 0; Err bitreich.org 70
i- break; Err bitreich.org 70
i+ for (vs = vscale + LEN(vscale) - 1; vs >= vscale; vs--) { Err bitreich.org 70
i+ if (dv > *vs / i * XDENSITY / 2) { Err bitreich.org 70
i+ *vstep = *vs / i; Err bitreich.org 70
i+ return; Err bitreich.org 70
i } Err bitreich.org 70
i } Err bitreich.org 70
i } Err bitreich.org 70
1diff --git a/ploot.c b/ploot.c /scm/ploot/file/ploot.c.gph bitreich.org 70
i@@ -88,29 +88,31 @@ eatol(char *str) Err bitreich.org 70
i return atol(str); Err bitreich.org 70
i } Err bitreich.org 70
i Err bitreich.org 70
i-static void Err bitreich.org 70
i-add_val(Vlist *v, int *bufsiz, int nval, double field, time_t epoch) Err bitreich.org 70
i+static int Err bitreich.org 70
i+add_val(Vlist *v, int bufsize, int nval, double field, time_t epoch) Err bitreich.org 70
i { Err bitreich.org 70
i- if (nval >= *bufsiz) { Err bitreich.org 70
i- *bufsiz = *bufsiz * 2 + 1; Err bitreich.org 70
i- if ((v->v = realloc(v->v, *bufsiz * sizeof(*v->v))) == NULL) Err bitreich.org 70
i+ if (nval >= bufsize) { Err bitreich.org 70
i+ bufsize = bufsize * 2 + 1; Err bitreich.org 70
i+ if ((v->v = realloc(v->v, bufsize * sizeof(*v->v))) == NULL) Err bitreich.org 70
i perror("reallocating values buffer"), exit(1); Err bitreich.org 70
i- if ((v->t = realloc(v->t, *bufsiz * sizeof(*v->t))) == NULL) Err bitreich.org 70
i+ if ((v->t = realloc(v->t, bufsize * sizeof(*v->t))) == NULL) Err bitreich.org 70
i perror("reallocating values buffer"), exit(1); Err bitreich.org 70
i } Err bitreich.org 70
i v->v[nval] = field; Err bitreich.org 70
i v->t[nval] = epoch; Err bitreich.org 70
i v->n = nval + 1; Err bitreich.org 70
i+ Err bitreich.org 70
i+ return bufsize; Err bitreich.org 70
i } Err bitreich.org 70
i Err bitreich.org 70
i /* Err bitreich.org 70
i * Add to each column the value on the current row. Err bitreich.org 70
i */ Err bitreich.org 70
i-static void Err bitreich.org 70
i-add_row(Vlist *v, int *bufsiz, int ncol, int nval, char *line) Err bitreich.org 70
i+static int Err bitreich.org 70
i+add_row(Vlist *v, int bufsize, int ncol, int nval, char *line) Err bitreich.org 70
i { Err bitreich.org 70
i time_t epoch; Err bitreich.org 70
i- int n; Err bitreich.org 70
i+ int bs; Err bitreich.org 70
i char *field, *dot; Err bitreich.org 70
i Err bitreich.org 70
i if ((field = strsep(&line, ",")) == NULL) Err bitreich.org 70
i@@ -119,13 +121,15 @@ add_row(Vlist *v, int *bufsiz, int ncol, int nval, char *line) Err bitreich.org 70
i if ((dot = strchr(field, '.')) != NULL) Err bitreich.org 70
i *dot = '\0'; Err bitreich.org 70
i epoch = eatol(field); 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+ for (; (field = strsep(&line, ",")) != NULL; ncol--, v++) { Err bitreich.org 70
i+ if (ncol <= 0) Err bitreich.org 70
i fprintf(stderr, "%d: too many fields\n", nval), exit(0); Err bitreich.org 70
i- add_val(v, bufsiz, nval, eatof(field), epoch); Err bitreich.org 70
i+ bs = add_val(v, bufsize, nval, eatof(field), epoch); Err bitreich.org 70
i } Err bitreich.org 70
i- if (n < ncol) Err bitreich.org 70
i+ if (ncol > 0) Err bitreich.org 70
i fprintf(stderr, "%d: too few fields\n", nval), exit(0); Err bitreich.org 70
i+ Err bitreich.org 70
i+ return bs; Err bitreich.org 70
i } Err bitreich.org 70
i Err bitreich.org 70
i /* Err bitreich.org 70
i@@ -137,13 +141,13 @@ add_row(Vlist *v, int *bufsiz, int ncol, int nval, char *line) Err bitreich.org 70
i static void Err bitreich.org 70
i read_values(Vlist *v, int ncol) Err bitreich.org 70
i { Err bitreich.org 70
i- int nval, bufsiz; Err bitreich.org 70
i+ int nval, bufsize; 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+ bufsize = 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_row(v, &bufsiz, ncol, nval, line); Err bitreich.org 70
i+ bufsize = add_row(v, bufsize, ncol, nval, line); Err bitreich.org 70
i } Err bitreich.org 70
i } Err bitreich.org 70
i Err bitreich.org 70
i@@ -152,10 +156,11 @@ usage(void) Err bitreich.org 70
i { Err bitreich.org 70
i ColorList *c; Err bitreich.org 70
i Err bitreich.org 70
i- fprintf(stderr, "usage: %s [-t title] [-u unit] color...\n" Err bitreich.org 70
i- "available colors as defined by \"config.h\":\n", argv0); Err bitreich.org 70
i- for (c = colorlist; c->name != NULL; c++) Err bitreich.org 70
i- fprintf(stderr, "- %s\n", c->name); Err bitreich.org 70
i+ fprintf(stderr, "usage: %s [-t title] [-u unit] {", argv0); Err bitreich.org 70
i+ fputs(colorlist->name, stderr); Err bitreich.org 70
i+ for (c = colorlist + 1; c->name != NULL; c++) Err bitreich.org 70
i+ fprintf(stderr, ",%s", c->name); Err bitreich.org 70
i+ fputs("}...\n", stderr); Err bitreich.org 70
i exit(1); Err bitreich.org 70
i } Err bitreich.org 70
i Err bitreich.org 70
i@@ -172,6 +177,8 @@ main(int argc, char **argv) Err bitreich.org 70
i case 'u': Err bitreich.org 70
i uflag = EARGF(usage()); Err bitreich.org 70
i break; Err bitreich.org 70
i+ default: Err bitreich.org 70
i+ usage(); Err bitreich.org 70
i } ARGEND; Err bitreich.org 70
i Err bitreich.org 70
i if ((v = calloc(argc, sizeof(*v))) == NULL) Err bitreich.org 70
.
Response:
text/plain