SMOLNET PORTAL home about changes
iusing getopt all the same - 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 453cb7f82c06a904e3b5aae5ee57d9a1fd91f460	/scm/ploot/commit/453cb7f82c06a904e3b5aae5ee57d9a1fd91f460.gph	bitreich.org	70
1parent ebff9e927a35af076a55e62732001c860c883244	/scm/ploot/commit/ebff9e927a35af076a55e62732001c860c883244.gph	bitreich.org	70
hAuthor: Josuah Demangeon <mail@josuah.net>	URL:mailto:mail@josuah.net	bitreich.org	70
iDate:   Sun,  4 Feb 2018 23:31:58 +0100	Err	bitreich.org	70
i	Err	bitreich.org	70
iusing getopt all the same	Err	bitreich.org	70
i	Err	bitreich.org	70
iDiffstat:	Err	bitreich.org	70
i  D arg.h                               |      25 -------------------------	Err	bitreich.org	70
i  M ploot.c                             |      58 ++++++++++++++++++++-----------	Err	bitreich.org	70
i	Err	bitreich.org	70
i2 files changed, 37 insertions(+), 46 deletions(-)	Err	bitreich.org	70
i---	Err	bitreich.org	70
1diff --git a/arg.h b/arg.h	/scm/ploot/file/arg.h.gph	bitreich.org	70
i@@ -1,25 +0,0 @@	Err	bitreich.org	70
i-#define USED(x) ((void)(x))	Err	bitreich.org	70
i-	Err	bitreich.org	70
i-extern char *argv0;	Err	bitreich.org	70
i-	Err	bitreich.org	70
i-#define ARGBEGIN(argc, argv)                                                \	Err	bitreich.org	70
i-        for (argv0 = *argv, argv++, argc--;                                \	Err	bitreich.org	70
i-            argv[0] != NULL && argv[0][0] == '-' && argv[0][1] != '\0';        \	Err	bitreich.org	70
i-            argc--, argv++) {                                                \	Err	bitreich.org	70
i-                char **arg_v, *arg_s;                                        \	Err	bitreich.org	70
i-                if (argv[0][1] == '-' && argv[0][2] == '\0') {                \	Err	bitreich.org	70
i-                        argv++, argc--;                                        \	Err	bitreich.org	70
i-                        break;                                                \	Err	bitreich.org	70
i-                }                                                        \	Err	bitreich.org	70
i-                arg_v = argv;                                                \	Err	bitreich.org	70
i-                for (arg_s = *argv; *arg_s != '\0'; arg_s++) {                \	Err	bitreich.org	70
i-                        if (arg_v != argv)                                \	Err	bitreich.org	70
i-                                break;                                        \	Err	bitreich.org	70
i-                        switch (*arg_s)	Err	bitreich.org	70
i-	Err	bitreich.org	70
i-#define ARGEND                                                                \	Err	bitreich.org	70
i-                }                                                        \	Err	bitreich.org	70
i-        }	Err	bitreich.org	70
i-	Err	bitreich.org	70
i-#define        EARGF(x)                                                        \	Err	bitreich.org	70
i-        ((argv[1] == NULL) ? ((x), NULL) : (argc--, argv++, argv[0]))	Err	bitreich.org	70
1diff --git a/ploot.c b/ploot.c	/scm/ploot/file/ploot.c.gph	bitreich.org	70
i@@ -3,8 +3,8 @@	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 <unistd.h>	Err	bitreich.org	70
i 	Err	bitreich.org	70
i-#include "arg.h"	Err	bitreich.org	70
i #include "config.h"	Err	bitreich.org	70
i 	Err	bitreich.org	70
i #define MAX_VAL        80	Err	bitreich.org	70
i@@ -14,9 +14,6 @@	Err	bitreich.org	70
i #define MIN(x, y)        ((x) < (y) ? (x) : (y))	Err	bitreich.org	70
i #define LEN(x)                (sizeof(x) / sizeof(*x))	Err	bitreich.org	70
i 	Err	bitreich.org	70
i-char        *argv0;	Err	bitreich.org	70
i-int        flag_h = 20;	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 7 (+ 1	Err	bitreich.org	70
i  * the '\0' terminator).  Buffer overflow is ensured not to happen due to the	Err	bitreich.org	70
i@@ -63,7 +60,7 @@ title(char *str, int width)	Err	bitreich.org	70
i {	Err	bitreich.org	70
i         if (str == NULL)	Err	bitreich.org	70
i                 return;	Err	bitreich.org	70
i-        printf("%*s\n\n", (int)(width + strlen(str) + MARGIN) / 2, str);	Err	bitreich.org	70
i+        printf("%*s\n", (int)(width + strlen(str) + MARGIN) / 2, str);	Err	bitreich.org	70
i }	Err	bitreich.org	70
i 	Err	bitreich.org	70
i /*	Err	bitreich.org	70
i@@ -119,7 +116,8 @@ plot(int height, double *beg, double *end, char *str)	Err	bitreich.org	70
i         double        top, bot, max;	Err	bitreich.org	70
i         int        h;	Err	bitreich.org	70
i 	Err	bitreich.org	70
i-        title(str, end - beg);	Err	bitreich.org	70
i+        if (str != NULL)	Err	bitreich.org	70
i+                title(str, end - beg);	Err	bitreich.org	70
i 	Err	bitreich.org	70
i         max = maxdv(beg, end);	Err	bitreich.org	70
i         for (h = height + height % 2; h > 0; h -= 2) {	Err	bitreich.org	70
i@@ -137,9 +135,9 @@ plot(int height, double *beg, double *end, char *str)	Err	bitreich.org	70
i  * next postion.	Err	bitreich.org	70
i  */	Err	bitreich.org	70
i size_t	Err	bitreich.org	70
i-ring_add(double *ring, size_t len, size_t pos, double val)	Err	bitreich.org	70
i+ring_add(double *rbuf, size_t len, size_t pos, double val)	Err	bitreich.org	70
i {	Err	bitreich.org	70
i-        *ring = val;	Err	bitreich.org	70
i+        *rbuf = val;	Err	bitreich.org	70
i 	Err	bitreich.org	70
i         return (pos < len) ? pos + 1 : 0;	Err	bitreich.org	70
i }	Err	bitreich.org	70
i@@ -151,8 +149,13 @@ ring_add(double *ring, size_t len, size_t pos, double val)	Err	bitreich.org	70
i void	Err	bitreich.org	70
i ring_copy(double *buf, double *rbuf, size_t len, size_t pos)	Err	bitreich.org	70
i {	Err	bitreich.org	70
i+        size_t        i = 0;	Err	bitreich.org	70
i+	Err	bitreich.org	70
i         memcpy(buf, rbuf + pos, (len - pos) * sizeof(*rbuf));	Err	bitreich.org	70
i         memcpy(buf + (len - pos), rbuf, pos * sizeof(*rbuf));	Err	bitreich.org	70
i+        printf("len: %zd, pos: %zd\n", len, pos);	Err	bitreich.org	70
i+        for (i = 0; i < len; i++)	Err	bitreich.org	70
i+                printf("%03zd: %lf\n", i, buf[i]);	Err	bitreich.org	70
i }	Err	bitreich.org	70
i 	Err	bitreich.org	70
i /*	Err	bitreich.org	70
i@@ -163,16 +166,18 @@ ring_copy(double *buf, double *rbuf, size_t len, size_t pos)	Err	bitreich.org	70
i double *	Err	bitreich.org	70
i read_simple(double buf[MAX_VAL])	Err	bitreich.org	70
i {	Err	bitreich.org	70
i-        /* ring buffer to keep the last `MAX_VAL' values */	Err	bitreich.org	70
i         double        rbuf[MAX_VAL], val;	Err	bitreich.org	70
i         size_t        p, pos, len;	Err	bitreich.org	70
i 	Err	bitreich.org	70
i         len = LEN(rbuf);	Err	bitreich.org	70
i         for (p = pos = 0; scanf("%lf\n", &val) > 0; p++)	Err	bitreich.org	70
i-                pos = ring_add(rbuf, val, len, pos);	Err	bitreich.org	70
i+                pos = ring_add(rbuf, len, pos, val);	Err	bitreich.org	70
i+        len = MIN(len, p);	Err	bitreich.org	70
i+        pos = MIN(pos, p);	Err	bitreich.org	70
i+	Err	bitreich.org	70
i         ring_copy(buf, rbuf, len, pos);	Err	bitreich.org	70
i 	Err	bitreich.org	70
i-        return buf + MIN(p, len);	Err	bitreich.org	70
i+        return buf + len;	Err	bitreich.org	70
i }	Err	bitreich.org	70
i 	Err	bitreich.org	70
i /*	Err	bitreich.org	70
i@@ -184,7 +189,6 @@ read_simple(double buf[MAX_VAL])	Err	bitreich.org	70
i double *	Err	bitreich.org	70
i read_time_series(double *valv, time_t *timev)	Err	bitreich.org	70
i {	Err	bitreich.org	70
i-        /* ring buffer to keep the last `MAX_VAL' values */	Err	bitreich.org	70
i         time_t        time_rbuf[MAX_VAL];	Err	bitreich.org	70
i         double        val_rbuf[MAX_VAL];	Err	bitreich.org	70
i 	Err	bitreich.org	70
i@@ -198,7 +202,7 @@ read_time_series(double *valv, time_t *timev)	Err	bitreich.org	70
i void	Err	bitreich.org	70
i usage(void)	Err	bitreich.org	70
i {	Err	bitreich.org	70
i-        printf("usage: %s [-h height]\n", argv0);	Err	bitreich.org	70
i+        printf("usage: ploot [-h height]\n");	Err	bitreich.org	70
i         exit(1);	Err	bitreich.org	70
i }	Err	bitreich.org	70
i 	Err	bitreich.org	70
i@@ -206,16 +210,28 @@ int	Err	bitreich.org	70
i main(int argc, char **argv)	Err	bitreich.org	70
i {	Err	bitreich.org	70
i         double        val[MAX_VAL], *end;	Err	bitreich.org	70
i-	Err	bitreich.org	70
i-        ARGBEGIN(argc, argv) {	Err	bitreich.org	70
i-        case 'h':	Err	bitreich.org	70
i-                flag_h = atoi(EARGF(usage()));	Err	bitreich.org	70
i-                if (flag_h <= 0)	Err	bitreich.org	70
i+        char        c;	Err	bitreich.org	70
i+	Err	bitreich.org	70
i+        int        flag_h = 20;	Err	bitreich.org	70
i+        char        *flag_t = NULL;	Err	bitreich.org	70
i+	Err	bitreich.org	70
i+        while ((c = getopt(argc, argv, "h:t:")) != -1) {	Err	bitreich.org	70
i+                switch (c) {	Err	bitreich.org	70
i+                case -1:	Err	bitreich.org	70
i+                        break;	Err	bitreich.org	70
i+                case 'h':	Err	bitreich.org	70
i+                        if ((flag_h = atoi(optarg)) <= 0)	Err	bitreich.org	70
i+                                usage();	Err	bitreich.org	70
i+                        break;	Err	bitreich.org	70
i+                case 't':	Err	bitreich.org	70
i+                        flag_t = optarg;	Err	bitreich.org	70
i+                        break;	Err	bitreich.org	70
i+                default:	Err	bitreich.org	70
i                         usage();	Err	bitreich.org	70
i-                break;	Err	bitreich.org	70
i-        } ARGEND;	Err	bitreich.org	70
i+                }	Err	bitreich.org	70
i+        }	Err	bitreich.org	70
i 	Err	bitreich.org	70
i         end = read_simple(val);	Err	bitreich.org	70
i-        plot(flag_h, val, end, "Sample data generated with jot");	Err	bitreich.org	70
i+        plot(flag_h, val, end, flag_t);	Err	bitreich.org	70
i         return 0;	Err	bitreich.org	70
i }	Err	bitreich.org	70
.
Response: text/plain
Original URLgopher://bitreich.org/0/scm/ploot/commit/453cb7f82c06a904...
Content-Typetext/plain; charset=utf-8