diff options
author | Anastasios Grammenos <anastasios.grammenos@noris.gr> | 2020-11-28 14:14:18 +0200 |
---|---|---|
committer | Anastasios Grammenos <anastasios.grammenos@noris.gr> | 2020-11-28 14:14:18 +0200 |
commit | 05a2bb6dbbfc4a01e43f911b8479300246be890d (patch) | |
tree | 5ae8d0fc9cb8daef9d23f4cdd32887ccadfc20f0 /util.h | |
parent | 15d5be9e16b4a6b4265a35d31a46647207c475e2 (diff) | |
download | xlnch-05a2bb6dbbfc4a01e43f911b8479300246be890d.tar.gz xlnch-05a2bb6dbbfc4a01e43f911b8479300246be890d.tar.bz2 xlnch-05a2bb6dbbfc4a01e43f911b8479300246be890d.zip |
Progress in v2
Diffstat (limited to 'util.h')
-rw-r--r-- | util.h | 44 |
1 files changed, 44 insertions, 0 deletions
@@ -0,0 +1,44 @@ +#ifndef XLNCH_UTIL_H +#define XLNCH_UTIL_H + +#include <stdarg.h> + +#define MAX(A, B) ((A) > (B) ? (A) : (B)) + +void die(const char *fmt, ...) { + va_list ap; + + va_start(ap, fmt); + vfprintf(stderr, fmt, ap); + va_end(ap); + + if (fmt[0] && fmt[strlen(fmt)-1] == ':') { + fputc(' ', stderr); + perror(NULL); + } else { + fputc('\n', stderr); + } + + exit(1); +} + +void trim(char * str) +{ + int i; + int begin = 0; + int end = strlen(str) - 1; + + while (isspace((unsigned char) str[begin])) + begin++; + + while (isspace((unsigned char) str[end]) && (end >= begin)) + end--; + + /* Shift all characters back to the start of the string array. */ + for (i = begin; i <= end; i++) + str[i - begin] = str[i]; + + str[i - begin] = '\0'; +} + +#endif /* XLNCH_UTIL_H */ |