Introduction
Introduction Statistics Contact Development Disclaimer Help
adding arg.h, thank you __20h__ - ploot - simple plotting tools
git clone git://bitreich.org/ploot git://enlrupgkhuxnvlhsf6lc3fziv5h2hhfrinws65…
Log
Files
Refs
Tags
README
LICENSE
---
commit c529b0f871ecc44395506be3e5eb928caa4b63e0
parent 800a50b0368df65b45838095a362b579cc709d75
Author: Josuah Demangeon <[email protected]>
Date: Sat, 3 Feb 2018 01:48:52 +0100
adding arg.h, thank you __20h__
Diffstat:
M Makefile | 3 +++
A arg.h | 25 +++++++++++++++++++++++++
M ploot.c | 28 ++++++++++++++++++++++++----
3 files changed, 52 insertions(+), 4 deletions(-)
---
diff --git a/Makefile b/Makefile
@@ -2,3 +2,6 @@ CFLAGS = -Wall -Wextra -Werror -std=c89 -pedantic
all: ploot.o config.h
${CC} -static -o ploot ploot.o
+
+clean:
+ rm -f *.o ploot
diff --git a/arg.h b/arg.h
@@ -0,0 +1,25 @@
+#define USED(x) ((void)(x))
+
+extern char *argv0;
+
+#define ARGBEGIN(argc, argv) \
+ for (argv0 = *argv, argv++, argc--; \
+ argv[0] != NULL && argv[0][0] == '-' && argv[0][1] != '\0'; …
+ argc--, argv++) { \
+ char **arg_v, *arg_s; \
+ if (argv[0][1] == '-' && argv[0][2] == '\0') { \
+ argv++, argc--; …
+ break; \
+ } \
+ arg_v = argv; \
+ for (arg_s = *argv; *arg_s != '\0'; arg_s++) { \
+ if (arg_v != argv) \
+ break; \
+ switch (*arg_s)
+
+#define ARGEND \
+ } \
+ }
+
+#define EARGF(x) …
+ ((argv[1] == NULL) ? ((x), NULL) : (argc--, argv++, argv[0]))
diff --git a/ploot.c b/ploot.c
@@ -1,16 +1,21 @@
+#include <sys/time.h>
+
#include <stdio.h>
+#include <stdlib.h>
#include <string.h>
-#include <sys/time.h>
+#include "arg.h"
#include "config.h"
#define MAX_VAL 80
#define MARGIN 7
-#define HEIGHT 20
#define ABS(x) ((x) < 0 ? -(x) : (x))
#define LEN(x) (sizeof(x) / sizeof(*x))
+char *argv0;
+int flag_h = 20;
+
/*
* Set `str' to a human-readable form of `num' with always a width of 7 (+ 1
* the '\0' terminator). Buffer overflow is ensured not to happen due to the
@@ -162,8 +167,15 @@ read_time_series(double *valv, time_t *timev)
return valv;
}
+void
+usage(void)
+{
+ printf("usage: %s [-h height]\n", argv0);
+ exit(1);
+}
+
int
-main()
+main(int argc, char **argv)
{
double val[] = { 55, 55, 1, 72, 53, 73, 6, 45, 7, 71, 18, 100, …
53, 24, 99, 99, 37, 91, 67, 68, 9, 16, 83, 30, 68, 51, 38, 47, 91,
@@ -173,6 +185,14 @@ main()
71, 61, 12, 29, 63, 85, 72, 98, 59, 96, 91, 67, 24, 48, 4, 90, 1,
15, 57, 11, 93, 18, 18, 78, 85, 36, 35, 15, 7, 85, 31, 73, 57, 70 …
- plot(HEIGHT, val, val + LEN(val), "Sample data generated with jot");
+ ARGBEGIN(argc, argv) {
+ case 'h':
+ flag_h = atoi(EARGF(usage()));
+ if (flag_h <= 0)
+ usage();
+ break;
+ } ARGEND;
+
+ plot(flag_h, val, val + LEN(val), "Sample data generated with jot");
return 0;
}
You are viewing proxied material from bitreich.org. The copyright of proxied material belongs to its original authors. Any comments or complaints in relation to proxied material should be directed to the original authors of the content concerned. Please see the disclaimer for more details.