SMOLNET PORTAL home about changes
iswitch back to arg.h - 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 dd70db86b2270b2a539f863664d2af0c5c7f1040	/scm/ploot/commit/dd70db86b2270b2a539f863664d2af0c5c7f1040.gph	bitreich.org	70
1parent 5bf25770fadc2327ef217388561e203217b1870e	/scm/ploot/commit/5bf25770fadc2327ef217388561e203217b1870e.gph	bitreich.org	70
hAuthor: Josuah Demangeon <mail@josuah.net>	URL:mailto:mail@josuah.net	bitreich.org	70
iDate:   Sat, 17 Mar 2018 16:33:30 +0100	Err	bitreich.org	70
i	Err	bitreich.org	70
iswitch back to arg.h	Err	bitreich.org	70
i	Err	bitreich.org	70
iDiffstat:	Err	bitreich.org	70
i  M Makefile                            |       8 +++++---	Err	bitreich.org	70
i  A arg.h                               |      27 +++++++++++++++++++++++++++	Err	bitreich.org	70
i  M ploot.c                             |      54 +++++++++++++++----------------	Err	bitreich.org	70
i	Err	bitreich.org	70
i3 files changed, 58 insertions(+), 31 deletions(-)	Err	bitreich.org	70
i---	Err	bitreich.org	70
1diff --git a/Makefile b/Makefile	/scm/ploot/file/Makefile.gph	bitreich.org	70
i@@ -1,15 +1,17 @@	Err	bitreich.org	70
i CFLAGS        = -Wall -Wextra -Werror -std=c89 -pedantic -D_POSIX_C_SOURCE=200809L	Err	bitreich.org	70
i 	Err	bitreich.org	70
i+.PHONY: all	Err	bitreich.org	70
i all:ploot	Err	bitreich.org	70
i 	Err	bitreich.org	70
i-ploot: ploot.o config.h	Err	bitreich.org	70
i+ploot.o: config.h arg.h	Err	bitreich.org	70
i+ploot: ploot.o	Err	bitreich.org	70
i         ${CC} -static -o ploot ploot.o	Err	bitreich.org	70
i 	Err	bitreich.org	70
i+.PHONY: install	Err	bitreich.org	70
i install: ploot	Err	bitreich.org	70
i         mkdir -p ${PREFIX}/bin	Err	bitreich.org	70
i         cp ploot ${PREFIX}/bin/ploot	Err	bitreich.org	70
i 	Err	bitreich.org	70
i+.PHONY: clean	Err	bitreich.org	70
i clean:	Err	bitreich.org	70
i         rm -f *.o ploot	Err	bitreich.org	70
i-	Err	bitreich.org	70
i-.PHONY: all clean	Err	bitreich.org	70
1diff --git a/arg.h b/arg.h	/scm/ploot/file/arg.h.gph	bitreich.org	70
i@@ -0,0 +1,27 @@	Err	bitreich.org	70
i+#ifndef ARG_H	Err	bitreich.org	70
i+#define ARG_H	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 **_argv, *_a;                                        \	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+                for (_argv = argv, _a = *argv + 1; *_a != '\0'; _a++) {        \	Err	bitreich.org	70
i+                        switch (*_a)	Err	bitreich.org	70
i+	Err	bitreich.org	70
i+#define ARGEND                                                                \	Err	bitreich.org	70
i+                        if (_argv != argv)                                \	Err	bitreich.org	70
i+                                break;                                        \	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), (char *)0) : (argc--, argv++, argv[0]))	Err	bitreich.org	70
i+	Err	bitreich.org	70
i+#endif	Err	bitreich.org	70
1diff --git a/ploot.c b/ploot.c	/scm/ploot/file/ploot.c.gph	bitreich.org	70
i@@ -6,6 +6,7 @@	Err	bitreich.org	70
i #include <unistd.h>	Err	bitreich.org	70
i #include <time.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 ABS(x)                ((x) < 0 ? -(x) : (x))	Err	bitreich.org	70
i@@ -13,6 +14,8 @@	Err	bitreich.org	70
i #define MAX(x, y)        ((x) > (y) ? (x) : (y))	Err	bitreich.org	70
i #define LEN(buf)        (sizeof(buf) / sizeof(*(buf)))	Err	bitreich.org	70
i 	Err	bitreich.org	70
i+char *argv0;	Err	bitreich.org	70
i+	Err	bitreich.org	70
i /*	Err	bitreich.org	70
i ** Add `val' at the current position `pos' of the `ring' buffer and set pos to	Err	bitreich.org	70
i ** the next postion.	Err	bitreich.org	70
i@@ -36,9 +39,9 @@ do {                                                                        \	Err	bitreich.org	70
i #define MAX_VAL        80	Err	bitreich.org	70
i #define MARGIN        7	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-time_t        flag_o = 0;	Err	bitreich.org	70
i+int        hflag = 20;	Err	bitreich.org	70
i+char        *tflag = NULL;	Err	bitreich.org	70
i+time_t        oflag = 0;	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@@ -121,13 +124,13 @@ haxis(double *beg, double *end, time_t time)	Err	bitreich.org	70
i         for (tp = beg; tp < end; tp++)	Err	bitreich.org	70
i                 putchar((*tp < 0) ? ('x') : ('-'));	Err	bitreich.org	70
i         putchar('\n');	Err	bitreich.org	70
i-        if (flag_o > 0) {	Err	bitreich.org	70
i+        if (oflag > 0) {	Err	bitreich.org	70
i                 printf("%*c", MARGIN - 1, ' ');	Err	bitreich.org	70
i                 strftime(dbeg, sizeof(dbeg), "%Y/%m/%d", localtime(&time));	Err	bitreich.org	70
i                 for (tp = beg; tp < end; tp += 7) {	Err	bitreich.org	70
i                         strftime(buf, sizeof(buf), "  %H:%M", localtime(&time));	Err	bitreich.org	70
i                         fputs(buf, stdout);	Err	bitreich.org	70
i-                        time += flag_o * 7;	Err	bitreich.org	70
i+                        time += oflag * 7;	Err	bitreich.org	70
i                 }	Err	bitreich.org	70
i                 strftime(dend, sizeof(dend), "%Y/%m/%d", localtime(&time));	Err	bitreich.org	70
i                 printf("\n     %-*s %s\n", (int)(beg - end) + 4, dbeg, dend);	Err	bitreich.org	70
i@@ -271,36 +274,31 @@ main(int argc, char **argv)	Err	bitreich.org	70
i {	Err	bitreich.org	70
i         time_t        tbuf[MAX_VAL], *tend, start;	Err	bitreich.org	70
i         double        vbuf[MAX_VAL], *vend;	Err	bitreich.org	70
i-        int        c;	Err	bitreich.org	70
i-	Err	bitreich.org	70
i-        while ((c = getopt(argc, argv, "h:t:o:")) != -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-                case 'o':	Err	bitreich.org	70
i-                        flag_o = atol(optarg);	Err	bitreich.org	70
i-                        break;	Err	bitreich.org	70
i-                default:	Err	bitreich.org	70
i-                        usage();	Err	bitreich.org	70
i-                }	Err	bitreich.org	70
i-        }	Err	bitreich.org	70
i 	Err	bitreich.org	70
i-        if (flag_o == 0) {	Err	bitreich.org	70
i+        ARGBEGIN(argc, argv) {	Err	bitreich.org	70
i+        case 'h':	Err	bitreich.org	70
i+                if ((hflag = atoi(EARGF(usage()))) <= 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+                tflag = EARGF(usage());	Err	bitreich.org	70
i+                break;	Err	bitreich.org	70
i+        case 'o':	Err	bitreich.org	70
i+                oflag = atol(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 (oflag == 0) {	Err	bitreich.org	70
i                 vend = read_simple(vbuf);	Err	bitreich.org	70
i                 start = 0;	Err	bitreich.org	70
i         } else {	Err	bitreich.org	70
i                 tend = read_time_series(vbuf, tbuf);	Err	bitreich.org	70
i-                vend = skip_gaps(tbuf, tend, vbuf, flag_o);	Err	bitreich.org	70
i+                vend = skip_gaps(tbuf, tend, vbuf, oflag);	Err	bitreich.org	70
i                 start = *tbuf;	Err	bitreich.org	70
i         }	Err	bitreich.org	70
i 	Err	bitreich.org	70
i-        plot(vbuf, vend, flag_h, flag_t, start);	Err	bitreich.org	70
i+        plot(vbuf, vend, hflag, tflag, start);	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/dd70db86b2270b2a...
Content-Typetext/plain; charset=utf-8