util.h (1280B)
1 /* See LICENSE for license details. */ 2 /* Requires: stdint.h, size_t, ssize_t */ 3 4 #define UTF_INVALID 0xFFFD 5 #define UTF_SIZ 4 6 7 #define MIN(a, b) ((a) < (b) ? (a) : (b)) 8 #define MAX(a, b) ((a) < (b) ? (b) : (a)) 9 #define LEN(a) (sizeof(a) / sizeof(a)[0]) 10 #define BETWEEN(x, a, b) ((a) <= (x) && (x) <= (b)) 11 #define DIVCEIL(n, d) (((n) + ((d) - 1)) / (d)) 12 #define DEFAULT(a, b) (a) = (a) ? (a) : (b) 13 #define LIMIT(x, a, b) (x) = (x) < (a) ? (a) : (x) > (b) ? (b) : (x) 14 #define TIMEDIFF(t1, t2) ((t1.tv_sec-t2.tv_sec)*1000 + \ 15 (t1.tv_nsec-t2.tv_nsec)/1E6) 16 #define MODBIT(x, set, bit) ((set) ? ((x) |= (bit)) : ((x) &= ~(bit))) 17 #define MATCH(state, set, clr) (((set & ~state) | (clr & state)) == 0) 18 19 typedef unsigned char uchar; 20 typedef unsigned short ushort; 21 typedef unsigned int uint; 22 typedef unsigned long ulong; 23 24 typedef uint_least32_t Rune; 25 26 void die(const char *, ...); 27 void *xmalloc(size_t); 28 void *xrealloc(void *, size_t); 29 char *xstrdup(const char *); 30 ssize_t xwrite(int, const char *, size_t); 31 size_t utf8dec(const char *, Rune *, size_t); 32 size_t utf8enc(Rune, char *); 33 char *base64dec(const char *); 34 size_t csienc(char *, size_t, uint, uint, uint, char);