/* See LICENSE file for copyright and license details. */ #define MAX(A, B) ((A) > (B) ? (A) : (B)) #define MIN(A, B) ((A) < (B) ? (A) : (B)) #define BETWEEN(X, A, B) ((A) <= (X) && (X) <= (B)) #define LENGTH(X) (sizeof (X) / sizeof (X)[0]) #ifdef _DEBUG #define DEBUG(...) fprintf(stderr, __VA_ARGS__) #else #define DEBUG(...) #endif void die(const char *fmt, ...); void *ecalloc(size_t nmemb, size_t size); int normalizepath(const char *path, char **normal); int mkdirp(const char *path); int parentdir(const char *path, char **parent); int nullterminate(char **str, size_t *len);