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