SMOLNET PORTAL home about changes
irefactor a bit - 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 a2f50e1cb8af6ef5571c142b93b8ade388e0bfa5	/scm/ploot/commit/a2f50e1cb8af6ef5571c142b93b8ade388e0bfa5.gph	bitreich.org	70
1parent 1f4e757723ea483ab2c60c8fec2937569441af9e	/scm/ploot/commit/1f4e757723ea483ab2c60c8fec2937569441af9e.gph	bitreich.org	70
hAuthor: Josuah Demangeon <me@josuah.net>	URL:mailto:me@josuah.net	bitreich.org	70
iDate:   Tue, 18 Feb 2020 08:33:24 +0100	Err	bitreich.org	70
i	Err	bitreich.org	70
irefactor a bit	Err	bitreich.org	70
i	Err	bitreich.org	70
iDiffstat:	Err	bitreich.org	70
i  M def.h                               |      48 +++++++------------------------	Err	bitreich.org	70
i  M drawille.c                          |      58 +++++++++++++++++++++++--------	Err	bitreich.org	70
i  M ploot-braille.c                     |     106 +++++++++----------------------	Err	bitreich.org	70
i  M ploot-farbfeld.c                    |       8 ++++----	Err	bitreich.org	70
i  M ploot-feed.c                        |       6 +++---	Err	bitreich.org	70
i  M test.csv                            |       1 +	Err	bitreich.org	70
i  M util.c                              |      46 -------------------------------	Err	bitreich.org	70
i	Err	bitreich.org	70
i7 files changed, 90 insertions(+), 183 deletions(-)	Err	bitreich.org	70
i---	Err	bitreich.org	70
1diff --git a/def.h b/def.h	/scm/ploot/file/def.h.gph	bitreich.org	70
i@@ -35,62 +35,34 @@ struct vlist {	Err	bitreich.org	70
i         char                *label;                /* for the legend */	Err	bitreich.org	70
i };	Err	bitreich.org	70
i 	Err	bitreich.org	70
i-/* csv.c */	Err	bitreich.org	70
i-	Err	bitreich.org	70
i+/**/	Err	bitreich.org	70
i void                csv_addrow                (struct vlist *, size_t, char *);	Err	bitreich.org	70
i void                csv_labels                (FILE *, char *, struct vlist **, size_t *);	Err	bitreich.org	70
i void                csv_values                (FILE *, struct vlist *, size_t);	Err	bitreich.org	70
i-	Err	bitreich.org	70
i-/* drawille.c */	Err	bitreich.org	70
i-	Err	bitreich.org	70
i-size_t                drawille_fmt_row        (struct drawille *, char *, size_t, int);	Err	bitreich.org	70
i+size_t                drawille_put_row        (struct drawille *, FILE *, int);	Err	bitreich.org	70
i void                drawille_dot                (struct drawille *, int, int);	Err	bitreich.org	70
i struct drawille *drawille_new                (int, int);	Err	bitreich.org	70
i void                drawille_line                (struct drawille *, int, int, int, int);	Err	bitreich.org	70
i-void                drawille_line_hist        (struct drawille *, int, int, int, int, int);	Err	bitreich.org	70
i-void                drawille_dot_hist        (struct drawille *, int, int, int);	Err	bitreich.org	70
i+void                drawille_histogram_dot        (struct drawille *, int, int, int);	Err	bitreich.org	70
i+void                drawille_histogram_line        (struct drawille *, int, int, int, int, int);	Err	bitreich.org	70
i+int                drawille_histogram        (struct vlist *, struct drawille *, time_t, time_t, double, double);	Err	bitreich.org	70
i char *                drawille_text                (struct drawille *, int, int, struct font *, char *);	Err	bitreich.org	70
i-	Err	bitreich.org	70
i-/* font.c */	Err	bitreich.org	70
i-	Err	bitreich.org	70
i size_t                font_width                (struct font *, int);	Err	bitreich.org	70
i size_t                font_strlen                (struct font *, char *);	Err	bitreich.org	70
i-	Err	bitreich.org	70
i-/* font*.c */	Err	bitreich.org	70
i-	Err	bitreich.org	70
i-struct font font13;	Err	bitreich.org	70
i-struct font font7;	Err	bitreich.org	70
i-struct font font8;	Err	bitreich.org	70
i-	Err	bitreich.org	70
i-/* ploot-braille.c */	Err	bitreich.org	70
i-	Err	bitreich.org	70
i+struct font        font13;	Err	bitreich.org	70
i+struct font        font7;	Err	bitreich.org	70
i+struct font        font8;	Err	bitreich.org	70
i char const        *arg0;	Err	bitreich.org	70
i-	Err	bitreich.org	70
i-/* ploot-farbfeld.c */	Err	bitreich.org	70
i-	Err	bitreich.org	70
i-char const                *arg0;	Err	bitreich.org	70
i-	Err	bitreich.org	70
i-/* ploot-feed.c */	Err	bitreich.org	70
i-	Err	bitreich.org	70
i-char const                *arg0;	Err	bitreich.org	70
i-	Err	bitreich.org	70
i-/* scale.c */	Err	bitreich.org	70
i-	Err	bitreich.org	70
i int                scale_ypos                (double, double, double, int);	Err	bitreich.org	70
i int                scale_xpos                (time_t, time_t, time_t, int);	Err	bitreich.org	70
i void                scale_vminmax                (double *, double *, int);	Err	bitreich.org	70
i void                scale                        (struct vlist *, int, time_t *, time_t *, time_t *, double *, double *, double *);	Err	bitreich.org	70
i-	Err	bitreich.org	70
i-/* util.c */	Err	bitreich.org	70
i-	Err	bitreich.org	70
i size_t                strlcpy                        (char *, const char *, size_t);	Err	bitreich.org	70
i void                put3utf                        (long);	Err	bitreich.org	70
i char *                strsep                        (char **, const char *);	Err	bitreich.org	70
i void                estriplf                (char *);	Err	bitreich.org	70
i double                eatof                        (char *);	Err	bitreich.org	70
i long                eatol                        (char *);	Err	bitreich.org	70
i-char *                esfgets                        (char *, size_t, FILE *);	Err	bitreich.org	70
i int                humanize                (char *, double);	Err	bitreich.org	70
i-void                vlog                        (char const *, char const *, va_list);	Err	bitreich.org	70
i-void                warn                        (char const *, ...);	Err	bitreich.org	70
i-void                err                        (int, char const *, ...);	Err	bitreich.org	70
i+	Err	bitreich.org	70
i+#endif	Err	bitreich.org	70
1diff --git a/drawille.c b/drawille.c	/scm/ploot/file/drawille.c.gph	bitreich.org	70
i@@ -6,6 +6,7 @@	Err	bitreich.org	70
i #include <stdio.h>	Err	bitreich.org	70
i #include <stdlib.h>	Err	bitreich.org	70
i #include <string.h>	Err	bitreich.org	70
i+#include <math.h>	Err	bitreich.org	70
i 	Err	bitreich.org	70
i #include "def.h"	Err	bitreich.org	70
i 	Err	bitreich.org	70
i@@ -52,7 +53,7 @@ drawille_get(struct drawille *drw, int row, int col)	Err	bitreich.org	70
i }	Err	bitreich.org	70
i 	Err	bitreich.org	70
i size_t	Err	bitreich.org	70
i-drawille_fmt_row(struct drawille *drw, char *buf, size_t sz, int row)	Err	bitreich.org	70
i+drawille_put_row(struct drawille *drw, FILE *fp, int row)	Err	bitreich.org	70
i {	Err	bitreich.org	70
i         char                txt[] = "xxx";	Err	bitreich.org	70
i         size_t                n;	Err	bitreich.org	70
i@@ -60,7 +61,7 @@ drawille_fmt_row(struct drawille *drw, char *buf, size_t sz, int row)	Err	bitreich.org	70
i         n = 0;	Err	bitreich.org	70
i         for (int col = 0; col < drw->col; col++) {	Err	bitreich.org	70
i                 drawille_cell_utf(drawille_get(drw, row, col), txt);	Err	bitreich.org	70
i-                n += snprintf(buf+n, sz-n, "%s", txt);	Err	bitreich.org	70
i+                n += fputs(txt, fp);	Err	bitreich.org	70
i         }	Err	bitreich.org	70
i         return n;	Err	bitreich.org	70
i }	Err	bitreich.org	70
i@@ -111,7 +112,7 @@ drawille_line_next(struct line *l)	Err	bitreich.org	70
i         int                e;	Err	bitreich.org	70
i 	Err	bitreich.org	70
i         if (l->x0 == l->x1 && l->y0 == l->y1)	Err	bitreich.org	70
i-                return -1;	Err	bitreich.org	70
i+                return 0;	Err	bitreich.org	70
i 	Err	bitreich.org	70
i         e = l->err;	Err	bitreich.org	70
i         if (e > -l->dx) {	Err	bitreich.org	70
i@@ -122,7 +123,7 @@ drawille_line_next(struct line *l)	Err	bitreich.org	70
i                 l->y0 += l->sy;	Err	bitreich.org	70
i                 l->err += l->dx;	Err	bitreich.org	70
i         }	Err	bitreich.org	70
i-        return 0;	Err	bitreich.org	70
i+        return 1;	Err	bitreich.org	70
i }	Err	bitreich.org	70
i 	Err	bitreich.org	70
i void	Err	bitreich.org	70
i@@ -137,27 +138,54 @@ drawille_line(struct drawille *drw, int x0, int y0, int x1, int y1)	Err	bitreich.org	70
i }	Err	bitreich.org	70
i 	Err	bitreich.org	70
i void	Err	bitreich.org	70
i-drawille_line_hist(struct drawille *drw, int x0, int y0, int x1, int y1, int zero)	Err	bitreich.org	70
i+drawille_histogram_dot(struct drawille *drw, int x, int y, int zero)	Err	bitreich.org	70
i {	Err	bitreich.org	70
i-        struct line        l;	Err	bitreich.org	70
i         int                sign;	Err	bitreich.org	70
i 	Err	bitreich.org	70
i+        sign = (y > zero) ? (+1) : (-1);	Err	bitreich.org	70
i+        for (; y != zero + sign; y -= sign)	Err	bitreich.org	70
i+                drawille_dot(drw, x, y);	Err	bitreich.org	70
i+}	Err	bitreich.org	70
i+	Err	bitreich.org	70
i+void	Err	bitreich.org	70
i+drawille_histogram_line(struct drawille *drw, int x0, int y0, int x1, int y1, int zero)	Err	bitreich.org	70
i+{	Err	bitreich.org	70
i+        struct line        l;	Err	bitreich.org	70
i+	Err	bitreich.org	70
i         drawille_line_init(&l, x0, y0, x1, y1);	Err	bitreich.org	70
i         do {	Err	bitreich.org	70
i-                sign = (l.y0 > zero) ? (-1) : (+1);	Err	bitreich.org	70
i-                for (int y = l.y0; y != zero + sign; y += sign)	Err	bitreich.org	70
i-                        drawille_dot(drw, l.x0, y);	Err	bitreich.org	70
i+                drawille_histogram_dot(drw, l.x0, l.y0, zero);	Err	bitreich.org	70
i         } while (drawille_line_next(&l));	Err	bitreich.org	70
i }	Err	bitreich.org	70
i 	Err	bitreich.org	70
i-void	Err	bitreich.org	70
i-drawille_dot_hist(struct drawille *drw, int x, int y, int zero)	Err	bitreich.org	70
i+/*	Err	bitreich.org	70
i+ * Plot the body as an histogram interpolating the gaps and include	Err	bitreich.org	70
i+ * a vertical and horizontal axis.	Err	bitreich.org	70
i+ */	Err	bitreich.org	70
i+int	Err	bitreich.org	70
i+drawille_histogram(struct vlist *vl, struct drawille *drw,	Err	bitreich.org	70
i+        time_t tmin, time_t tmax, double vmin, double vmax)	Err	bitreich.org	70
i {	Err	bitreich.org	70
i-        int                sign;	Err	bitreich.org	70
i+        int                x, xprev, y, yprev, zero;	Err	bitreich.org	70
i+        double                *v;	Err	bitreich.org	70
i+        time_t                *t;	Err	bitreich.org	70
i+        size_t                n;	Err	bitreich.org	70
i 	Err	bitreich.org	70
i-        sign = (y > zero) ? (-1) : (+1);	Err	bitreich.org	70
i-        for (; y != zero + sign; y += sign)	Err	bitreich.org	70
i-                drawille_dot(drw, x, y);	Err	bitreich.org	70
i+        zero = scale_ypos(0, vmin, vmax, drw->row*4);	Err	bitreich.org	70
i+        v = vl->v;	Err	bitreich.org	70
i+        t = vl->t;	Err	bitreich.org	70
i+        n = vl->n;	Err	bitreich.org	70
i+        for (; n > 0; n--, t++, v++) {	Err	bitreich.org	70
i+                if (isnan(*v))  /* XXX: better handling? */	Err	bitreich.org	70
i+                        continue;	Err	bitreich.org	70
i+                y = scale_ypos(*v, vmin, vmax, drw->row * 4);	Err	bitreich.org	70
i+                x = scale_xpos(*t, tmin, tmax, drw->col * 2);	Err	bitreich.org	70
i+                if (n < vl->n)	Err	bitreich.org	70
i+                        drawille_histogram_line(drw, xprev, yprev, x, y, zero);	Err	bitreich.org	70
i+                xprev = x;	Err	bitreich.org	70
i+                yprev = y;	Err	bitreich.org	70
i+        }	Err	bitreich.org	70
i+        return 0;	Err	bitreich.org	70
i }	Err	bitreich.org	70
i 	Err	bitreich.org	70
i static int	Err	bitreich.org	70
1diff --git a/ploot-braille.c b/ploot-braille.c	/scm/ploot/file/ploot-braille.c.gph	bitreich.org	70
i@@ -12,61 +12,43 @@	Err	bitreich.org	70
i 	Err	bitreich.org	70
i char const        *arg0 = NULL;	Err	bitreich.org	70
i 	Err	bitreich.org	70
i-/*	Err	bitreich.org	70
i- * Return the step between two values.	Err	bitreich.org	70
i- */	Err	bitreich.org	70
i static int	Err	bitreich.org	70
i-braille_time_interval(time_t step)	Err	bitreich.org	70
i+braille_axis_x(FILE *fp, time_t tmin, time_t tmax, time_t tstep, int col)	Err	bitreich.org	70
i {	Err	bitreich.org	70
i-        time_t                scale[] = {	Err	bitreich.org	70
i-                1, 5, 2, 10, 20, 30, 60, 60*2, 60*5, 60*10, 60*20, 60*30,	Err	bitreich.org	70
i-                3600, 3600*2, 3600*5, 3600*10, 3600*18, 3600*24, 3600*24*2,	Err	bitreich.org	70
i-                3600*24*5, 3600*24*10, 3600*24*20, 3600*24*30, 3600*24*50,	Err	bitreich.org	70
i-                3600*24*100, 3600*24*365, 0	Err	bitreich.org	70
i-        };	Err	bitreich.org	70
i-	Err	bitreich.org	70
i-        for (time_t *s = scale; *s != 0; s++)	Err	bitreich.org	70
i-                if (*s >= 20 * step)	Err	bitreich.org	70
i-                        return *s;	Err	bitreich.org	70
i-        return 1;	Err	bitreich.org	70
i-}	Err	bitreich.org	70
i-	Err	bitreich.org	70
i-static size_t	Err	bitreich.org	70
i-braille_axis_x(FILE *fp, time_t step, time_t tmax, int col)	Err	bitreich.org	70
i-{	Err	bitreich.org	70
i-        int                x, prec;	Err	bitreich.org	70
i+        int                x, o, prec;	Err	bitreich.org	70
i         char                tmp[sizeof("MM/DD HH:MM")], *fmt;	Err	bitreich.org	70
i         size_t                n;	Err	bitreich.org	70
i-        time_t                t, interval;	Err	bitreich.org	70
i+        time_t                t;	Err	bitreich.org	70
i 	Err	bitreich.org	70
i-        interval = braille_time_interval(step);	Err	bitreich.org	70
i-        fmt = (step < 3600 * 12) ? "^%H:%M:%S" :	Err	bitreich.org	70
i-            (step < 3600 * 24) ? "^%m/%d %H:%M" :	Err	bitreich.org	70
i+        fmt = (tstep < 3600 * 12) ? "^%H:%M:%S" :	Err	bitreich.org	70
i+            (tstep < 3600 * 24) ? "^%m/%d %H:%M" :	Err	bitreich.org	70
i             "^%Y/%m/%d";	Err	bitreich.org	70
i         n = x = 0;	Err	bitreich.org	70
i 	Err	bitreich.org	70
i-        t = tmax - col * 2 * step;	Err	bitreich.org	70
i-        t += interval - t % interval;	Err	bitreich.org	70
i-        for (; t < tmax; t += interval) {	Err	bitreich.org	70
i+        t = tmin;	Err	bitreich.org	70
i+        t += tstep - t % tstep;	Err	bitreich.org	70
i+        for (; t < tmax; t += tstep) {	Err	bitreich.org	70
i+                x = (t - tmin) * col / (tmax - tmin);	Err	bitreich.org	70
i                 strftime(tmp, sizeof tmp, fmt, localtime(&t));	Err	bitreich.org	70
i-                x = ((t - tmax) / 2 + col * step) / step;	Err	bitreich.org	70
i                 prec = x - n + strlen(tmp);	Err	bitreich.org	70
i-                fprintf(fp, "%*s", prec, tmp);	Err	bitreich.org	70
i+                if ((o = fprintf(fp, "%*s", prec, tmp)) < 0)	Err	bitreich.org	70
i+                        return -1;	Err	bitreich.org	70
i+                n += o;	Err	bitreich.org	70
i         }	Err	bitreich.org	70
i         fputc('\n', fp);	Err	bitreich.org	70
i-        return 1;	Err	bitreich.org	70
i+        return 0;	Err	bitreich.org	70
i }	Err	bitreich.org	70
i 	Err	bitreich.org	70
i /*	Err	bitreich.org	70
i  * Plot a single line out of the y axis, at row <r> out of <rows>.	Err	bitreich.org	70
i  */	Err	bitreich.org	70
i static void	Err	bitreich.org	70
i-braille_axis_y(FILE *fp, double min, double max, int r, int rows)	Err	bitreich.org	70
i+braille_axis_y(FILE *fp, double vmin, double vmax, int r, int rows)	Err	bitreich.org	70
i {	Err	bitreich.org	70
i         char                tmp[10] = "", *s;	Err	bitreich.org	70
i         double                val;	Err	bitreich.org	70
i 	Err	bitreich.org	70
i-        val = (max - min) * (rows - r) / rows + min;	Err	bitreich.org	70
i+        val = (rows - r) * (vmax - vmin) / rows;	Err	bitreich.org	70
i         humanize(tmp, val);	Err	bitreich.org	70
i         s = (r == 0) ? "┌" :	Err	bitreich.org	70
i             (r == rows - 1) ? "└" :	Err	bitreich.org	70
i@@ -75,70 +57,40 @@ braille_axis_y(FILE *fp, double min, double max, int r, int rows)	Err	bitreich.org	70
i }	Err	bitreich.org	70
i 	Err	bitreich.org	70
i static int	Err	bitreich.org	70
i-braille_render(struct drawille *drw, FILE *fp, time_t tmin, time_t tmax)	Err	bitreich.org	70
i+braille_render(struct drawille *drw, FILE *fp, double vmin, double vmax)	Err	bitreich.org	70
i {	Err	bitreich.org	70
i-        char                buf[LINE_MAX];	Err	bitreich.org	70
i-	Err	bitreich.org	70
i         /* Render the plot line by line. */	Err	bitreich.org	70
i         for (int row = 0; row < drw->row; row++) {	Err	bitreich.org	70
i-                drawille_fmt_row(drw, buf, sizeof buf, row);	Err	bitreich.org	70
i-                braille_axis_y(fp, tmin, tmax, row, drw->row);	Err	bitreich.org	70
i+                drawille_put_row(drw, fp, row);	Err	bitreich.org	70
i+                braille_axis_y(fp, vmin, vmax, row, drw->row);	Err	bitreich.org	70
i                 fputc('\n', fp);	Err	bitreich.org	70
i         }	Err	bitreich.org	70
i         return 0;	Err	bitreich.org	70
i }	Err	bitreich.org	70
i 	Err	bitreich.org	70
i-/*	Err	bitreich.org	70
i- * Plot the body as an histogram interpolating the gaps and include	Err	bitreich.org	70
i- * a vertical and horizontal axis.	Err	bitreich.org	70
i- */	Err	bitreich.org	70
i-static int	Err	bitreich.org	70
i-braille_hist(struct vlist *vl, FILE *fp, time_t tmin, time_t tmax, int row, int col)	Err	bitreich.org	70
i-{	Err	bitreich.org	70
i-        int                x, y, zero, shift;	Err	bitreich.org	70
i-        double                *v, vmin, vmax;	Err	bitreich.org	70
i-        time_t                *t;	Err	bitreich.org	70
i-        size_t                n;	Err	bitreich.org	70
i-        struct drawille        *drw;	Err	bitreich.org	70
i-	Err	bitreich.org	70
i-        if ((drw = drawille_new(row, col)) == NULL)	Err	bitreich.org	70
i-                err(1, "allocating drawille canvas");	Err	bitreich.org	70
i-	Err	bitreich.org	70
i-        shift = (drw->row > 1) ? (2) : (0);  /* center values on "|-" marks */	Err	bitreich.org	70
i-        vmin = vmax = 0;	Err	bitreich.org	70
i-        zero = scale_ypos(0, vmin, vmax, drw->row*4) - shift;	Err	bitreich.org	70
i-        v = vl->v;	Err	bitreich.org	70
i-        t = vl->t;	Err	bitreich.org	70
i-        n = vl->n;	Err	bitreich.org	70
i-        for (; n > 0; n--, t++, v++) {	Err	bitreich.org	70
i-                if (isnan(*v))  /* XXX: better handling? */	Err	bitreich.org	70
i-                        continue;	Err	bitreich.org	70
i-                y = scale_ypos(*v, vmin, vmax, drw->row * 4) - shift;	Err	bitreich.org	70
i-                x = scale_xpos(*t, tmin, tmax, drw->col * 2);	Err	bitreich.org	70
i-                drawille_dot_hist(drw, x, y, zero);	Err	bitreich.org	70
i-        }	Err	bitreich.org	70
i-        if (braille_render(drw, fp, tmin, tmax) == -1)	Err	bitreich.org	70
i-                err(1, "rendering braille canvas");	Err	bitreich.org	70
i-        free(drw);	Err	bitreich.org	70
i-        return 0;	Err	bitreich.org	70
i-}	Err	bitreich.org	70
i-	Err	bitreich.org	70
i-static int	Err	bitreich.org	70
i+static void	Err	bitreich.org	70
i plot(struct vlist *vl, FILE *fp, size_t ncol, int row, int col)	Err	bitreich.org	70
i {	Err	bitreich.org	70
i         size_t                len;	Err	bitreich.org	70
i         double                vmin, vmax, vstep;	Err	bitreich.org	70
i         time_t                tmin, tmax, tstep;	Err	bitreich.org	70
i+        struct drawille        *drw;	Err	bitreich.org	70
i 	Err	bitreich.org	70
i         len = 500;	Err	bitreich.org	70
i         col -= 8;	Err	bitreich.org	70
i 	Err	bitreich.org	70
i         scale(vl, ncol, &tmin, &tmax, &tstep, &vmin, &vmax, &vstep);	Err	bitreich.org	70
i+        warn("vstep=%lf vstep=%ld", vstep, tstep);	Err	bitreich.org	70
i 	Err	bitreich.org	70
i-        if (braille_hist(vl, fp, tmin, tmax, row, col) == -1)	Err	bitreich.org	70
i+        if ((drw = drawille_new(row, col)) == NULL)	Err	bitreich.org	70
i                 err(1, "allocating drawille canvas");	Err	bitreich.org	70
i-        braille_axis_x(fp, tstep, tmax, col);	Err	bitreich.org	70
i-        return 0;	Err	bitreich.org	70
i+        if (drawille_histogram(vl, drw, tmin, tmax, vmin, vmax) == -1)	Err	bitreich.org	70
i+                err(1, "allocating drawille canvas");	Err	bitreich.org	70
i+        if (braille_render(drw, fp, vmin, vmax) == -1)	Err	bitreich.org	70
i+                err(1, "rendering braille canvas");	Err	bitreich.org	70
i+        if (braille_axis_x(fp, tmin, tmax, tstep, col) == -1)	Err	bitreich.org	70
i+                err(1, "printing x axis");;	Err	bitreich.org	70
i+        free(drw);	Err	bitreich.org	70
i }	Err	bitreich.org	70
i 	Err	bitreich.org	70
i static void	Err	bitreich.org	70
1diff --git a/ploot-farbfeld.c b/ploot-farbfeld.c	/scm/ploot/file/ploot-farbfeld.c.gph	bitreich.org	70
i@@ -65,10 +65,10 @@ struct canvas {	Err	bitreich.org	70
i         struct color        *buf;	Err	bitreich.org	70
i };	Err	bitreich.org	70
i 	Err	bitreich.org	70
i-char const                *arg0 = NULL;	Err	bitreich.org	70
i-static char                *tflag = "";	Err	bitreich.org	70
i-static char                *uflag = "";	Err	bitreich.org	70
i-static struct font        *font = &font13;	Err	bitreich.org	70
i+char const        *arg0 = NULL;	Err	bitreich.org	70
i+static char        *tflag = "";	Err	bitreich.org	70
i+static char        *uflag = "";	Err	bitreich.org	70
i+static struct font *font = &font13;	Err	bitreich.org	70
i 	Err	bitreich.org	70
i static struct cname cname[] = {	Err	bitreich.org	70
i         /* name       red     green   blue    alpha */	Err	bitreich.org	70
1diff --git a/ploot-feed.c b/ploot-feed.c	/scm/ploot/file/ploot-feed.c.gph	bitreich.org	70
i@@ -13,9 +13,9 @@	Err	bitreich.org	70
i #define WIDTH_MAX 1024	Err	bitreich.org	70
i #define BRAILLE_START        10240	Err	bitreich.org	70
i 	Err	bitreich.org	70
i-char const                *arg0 = NULL;	Err	bitreich.org	70
i-static int                wflag = 80;	Err	bitreich.org	70
i-static int                width = 0;	Err	bitreich.org	70
i+char const        *arg0 = NULL;	Err	bitreich.org	70
i+static int        wflag = 80;	Err	bitreich.org	70
i+static int        width = 0;	Err	bitreich.org	70
i 	Err	bitreich.org	70
i /*	Err	bitreich.org	70
i  * Turn the bit at position (row, col) on in the .	Err	bitreich.org	70
1diff --git a/test.csv b/test.csv	/scm/ploot/file/test.csv.gph	bitreich.org	70
i@@ -109,5 +109,6 @@ epoch,shortterm,midterm,longterm	Err	bitreich.org	70
i 1525294298,0.278198,0.260864,0.242920	Err	bitreich.org	70
i 1525295198,0.192505,0.183716,0.200806	Err	bitreich.org	70
i 1525296098,0.109375,0.185669,0.207153	Err	bitreich.org	70
i+1525296098,-0.109375,0.185669,0.207153	Err	bitreich.org	70
i 1525296998,0.137085,0.126221,0.138184	Err	bitreich.org	70
i 1525297898,0.077881,0.092529,0.109619	Err	bitreich.org	70
1diff --git a/util.c b/util.c	/scm/ploot/file/util.c.gph	bitreich.org	70
i@@ -77,19 +77,6 @@ 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-char *	Err	bitreich.org	70
i-esfgets(char *buf, size_t n, FILE *file)	Err	bitreich.org	70
i-{	Err	bitreich.org	70
i-        if (fgets(buf, n, file) == NULL) {	Err	bitreich.org	70
i-                if (ferror(stdin))	Err	bitreich.org	70
i-                        perror("fread from stdin"), exit(1);	Err	bitreich.org	70
i-                else	Err	bitreich.org	70
i-                        return NULL;	Err	bitreich.org	70
i-        }	Err	bitreich.org	70
i-        estriplf(buf);	Err	bitreich.org	70
i-        return buf;	Err	bitreich.org	70
i-}	Err	bitreich.org	70
i-	Err	bitreich.org	70
i /*	Err	bitreich.org	70
i  * Set 'str' to a human-readable form of 'num' with always a width of 8 (+1 for	Err	bitreich.org	70
i  * the '\0' terminator).  Buffer overflow is ensured not to happen due to the	Err	bitreich.org	70
i@@ -114,36 +101,3 @@ humanize(char *str, double val)	Err	bitreich.org	70
i 	Err	bitreich.org	70
i         return exp * 3;	Err	bitreich.org	70
i }	Err	bitreich.org	70
i-	Err	bitreich.org	70
i-void	Err	bitreich.org	70
i-vlog(char const *base, char const *fmt, va_list va)	Err	bitreich.org	70
i-{	Err	bitreich.org	70
i-        fprintf(stderr, "%s: ", base);	Err	bitreich.org	70
i-        vfprintf(stderr, fmt, va);	Err	bitreich.org	70
i-        if (errno)	Err	bitreich.org	70
i-                fprintf(stderr, ": %s", strerror(errno));	Err	bitreich.org	70
i-        fputc('\n', stderr);	Err	bitreich.org	70
i-        fflush(stderr);	Err	bitreich.org	70
i-        errno = 0;  /* avoid repeating the error in loop */	Err	bitreich.org	70
i-}	Err	bitreich.org	70
i-	Err	bitreich.org	70
i-void	Err	bitreich.org	70
i-warn(char const *fmt, ...)	Err	bitreich.org	70
i-{	Err	bitreich.org	70
i-        va_list va;	Err	bitreich.org	70
i-	Err	bitreich.org	70
i-        va_start(va, fmt);	Err	bitreich.org	70
i-        vlog(arg0, fmt, va);	Err	bitreich.org	70
i-        va_end(va);	Err	bitreich.org	70
i-}	Err	bitreich.org	70
i-	Err	bitreich.org	70
i-void	Err	bitreich.org	70
i-err(int e, char const *fmt, ...)	Err	bitreich.org	70
i-{	Err	bitreich.org	70
i-        va_list va;	Err	bitreich.org	70
i-	Err	bitreich.org	70
i-        va_start(va, fmt);	Err	bitreich.org	70
i-        vlog(arg0, fmt, va);	Err	bitreich.org	70
i-        va_end(va);	Err	bitreich.org	70
i-        exit(e);	Err	bitreich.org	70
i-}	Err	bitreich.org	70
.
Response: text/plain
Original URLgopher://bitreich.org/0/scm/ploot/commit/a2f50e1cb8af6ef5...
Content-Typetext/plain; charset=utf-8