From 6820631175868c277effa7cc05f9cb3197b72654 Mon Sep 17 00:00:00 2001 From: Aaron Marcher Date: Sun, 17 Sep 2017 16:18:17 +0200 Subject: Split into multiple files For multiple reasons the program is now split: - Make future porting to OpenBSD easier - Assign header includes to individiual functions - Make future program extensions easier - Recompile only changed parts --- util.c | 42 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) create mode 100644 util.c (limited to 'util.c') diff --git a/util.c b/util.c new file mode 100644 index 0000000..98c5fc5 --- /dev/null +++ b/util.c @@ -0,0 +1,42 @@ +#include +#include +#include +#include +#include + +#include "util.h" + +const char * +bprintf(const char *fmt, ...) +{ + va_list ap; + size_t len; + + va_start(ap, fmt); + len = vsnprintf(buf, sizeof(buf) - 1, fmt, ap); + va_end(ap); + + if (len >= sizeof(buf)) + buf[sizeof(buf)-1] = '\0'; + + return buf; +} + +int +pscanf(const char *path, const char *fmt, ...) +{ + FILE *fp; + va_list ap; + int n; + + if (!(fp = fopen(path, "r"))) { + warn("fopen %s: %s\n", path, strerror(errno)); + return -1; + } + va_start(ap, fmt); + n = vfscanf(fp, fmt, ap); + va_end(ap); + fclose(fp); + + return (n == EOF) ? -1 : n; +} -- cgit v1.2.3