aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMattias Andrée <maandree@kth.se>2020-09-04 21:28:33 +0200
committerMattias Andrée <maandree@kth.se>2020-09-04 21:28:33 +0200
commit624d45a10f4d2d84a32a4e9fbcd370aa653271f8 (patch)
tree509e1bdefbe36cd0e6a9f0bd9e9bb558a15bd442
parentUpdate license, change style, simplify makefile, and do not use gpp (diff)
downloadmongotimer-624d45a10f4d2d84a32a4e9fbcd370aa653271f8.tar.gz
mongotimer-624d45a10f4d2d84a32a4e9fbcd370aa653271f8.tar.bz2
mongotimer-624d45a10f4d2d84a32a4e9fbcd370aa653271f8.tar.xz
Do not accept arguments
Signed-off-by: Mattias Andrée <maandree@kth.se>
-rw-r--r--LICENSE2
-rw-r--r--Makefile2
-rw-r--r--arg.h35
-rw-r--r--mongoclock.c20
4 files changed, 57 insertions, 2 deletions
diff --git a/LICENSE b/LICENSE
index d4d1e8b..9466715 100644
--- a/LICENSE
+++ b/LICENSE
@@ -1,6 +1,6 @@
ISC License
-© 2013, 2015, 2017 Mattias Andrée <maandree@kth.se>
+© 2013, 2015, 2017, 2020 Mattias Andrée <maandree@kth.se>
Permission to use, copy, modify, and/or distribute this software for any
purpose with or without fee is hereby granted, provided that the above
diff --git a/Makefile b/Makefile
index b0a867a..f197990 100644
--- a/Makefile
+++ b/Makefile
@@ -13,7 +13,7 @@ all: mongoclock
mongoclock: mongoclock.o
$(CC) -o $@ $^ $(LDFLAGS)
-mongoclock.o: mongoclock.c $(DIGITS)
+mongoclock.o: mongoclock.c arg.h $(DIGITS)
$(CC) -c -o $@ mongoclock.c $(CPPFLAGS) $(CFLAGS)
mongo_0.h: digit.sh
diff --git a/arg.h b/arg.h
new file mode 100644
index 0000000..54e3874
--- /dev/null
+++ b/arg.h
@@ -0,0 +1,35 @@
+/*
+ * Copy me if you can.
+ * by 20h
+ */
+
+#ifndef ARG_H__
+#define ARG_H__
+
+extern char *argv0;
+
+/* use main(int argc, char *argv[]) */
+#define ARGBEGIN for (argv0 = *argv, argv++, argc--;\
+ argv[0] && argv[0][0] == '-'\
+ && argv[0][1];\
+ argc--, argv++) {\
+ char argc_;\
+ char **argv_;\
+ int brk_;\
+ if (argv[0][1] == '-' && argv[0][2] == '\0') {\
+ argv++;\
+ argc--;\
+ break;\
+ }\
+ for (brk_ = 0, argv[0]++, argv_ = argv;\
+ argv[0][0] && !brk_;\
+ argv[0]++) {\
+ if (argv_ != argv)\
+ break;\
+ argc_ = argv[0][0];\
+ switch (argc_)
+
+#define ARGEND }\
+ }
+
+#endif
diff --git a/mongoclock.c b/mongoclock.c
index e2d7e20..d94fd28 100644
--- a/mongoclock.c
+++ b/mongoclock.c
@@ -5,9 +5,12 @@
#include <signal.h>
#include <stdint.h>
#include <stdio.h>
+#include <stdlib.h>
#include <time.h>
#include <unistd.h>
+#include "arg.h"
+
#define DX 16
#define DY 12
#define DC 16
@@ -32,6 +35,15 @@ static const char **mongo_ds[] = {
static volatile sig_atomic_t caught_sigterm = 0;
static volatile sig_atomic_t caught_sigwinch = 1;
+char *argv0;
+
+static void
+usage(void)
+{
+ fprintf(stderr, "usage: %s\n", argv0);
+ exit(1);
+}
+
static void
sigterm(int signo)
{
@@ -77,6 +89,14 @@ main(int argc, char *argv[])
struct itimerspec itimerspec;
uint64_t _overrun;
+ ARGBEGIN {
+ default:
+ usage();
+ } ARGEND;
+
+ if (argc)
+ usage();
+
fprintf(stdout, "\033[?1049h\033[?25l");
if (clock_gettime(CLOCK_REALTIME, &itimerspec.it_value))