aboutsummaryrefslogtreecommitdiffstats
path: root/src/util.h
diff options
context:
space:
mode:
authorMattias Andrée <maandree@kth.se>2017-01-08 03:49:20 +0100
committerMattias Andrée <maandree@kth.se>2017-01-08 03:49:20 +0100
commited2cf4c1d66bcdfbf44c34eb94dd94a0535a9334 (patch)
treebcd5c310dcd43474e945dbcd44a3fd0cc6f8bb68 /src/util.h
parentAdd license (diff)
downloadblind-ed2cf4c1d66bcdfbf44c34eb94dd94a0535a9334.tar.gz
blind-ed2cf4c1d66bcdfbf44c34eb94dd94a0535a9334.tar.bz2
blind-ed2cf4c1d66bcdfbf44c34eb94dd94a0535a9334.tar.xz
Add vu-single-colour
Signed-off-by: Mattias Andrée <maandree@kth.se>
Diffstat (limited to 'src/util.h')
-rw-r--r--src/util.h35
1 files changed, 35 insertions, 0 deletions
diff --git a/src/util.h b/src/util.h
new file mode 100644
index 0000000..dc044f0
--- /dev/null
+++ b/src/util.h
@@ -0,0 +1,35 @@
+/* See LICENSE file for copyright and license details. */
+
+#include <stdio.h>
+
+#define ELEMENTSOF(ARRAY) (sizeof(ARRAY) / sizeof(*(ARRAY)))
+
+void eprintf(const char *fmt, ...);
+void enprintf(int status, const char *fmt, ...);
+void weprintf(const char *fmt, ...);
+
+int tollu(const char *s, unsigned long long int min, unsigned long long int max, unsigned long long int *out);
+int tolli(const char *s, long long int min, long long int max, long long int *out);
+#define DEF_STR_TO_INT(FNAME, INTTYPE, INTER_FNAME, INTER_INTTYPE)\
+ static inline int\
+ FNAME(const char *s, INTTYPE min, INTTYPE max, INTTYPE *out)\
+ {\
+ INTER_INTTYPE inter;\
+ if (INTER_FNAME(s, (INTER_INTTYPE)min, (INTER_INTTYPE)max, &inter))\
+ return -1;\
+ *out = (INTTYPE)inter;\
+ return 0;\
+ }
+DEF_STR_TO_INT(tolu, unsigned long int, tollu, unsigned long long int)
+DEF_STR_TO_INT(tou, unsigned int, tollu, unsigned long long int)
+DEF_STR_TO_INT(toli, long int, tolli, long long int)
+DEF_STR_TO_INT(toi, int, tolli, long long int)
+#undef DEF_STR_TO_INT
+#define tozu tolu
+#define tozi toli
+#define toju tollu
+#define toji tolli
+
+int fshut(FILE *fp, const char *fname);
+void enfshut(int status, FILE *fp, const char *fname);
+void efshut(FILE *fp, const char *fname);