util.h - blind - suckless command-line video editing utility
(HTM) git clone git://git.suckless.org/blind
(DIR) Log
(DIR) Files
(DIR) Refs
(DIR) README
(DIR) LICENSE
---
util.h (1061B)
---
1 /* See LICENSE file for copyright and license details. */
2 #include "arg.h"
3
4 #if defined(__GNUC__) || defined(__clang__)
5 # define ATTRIBUTE_NORETURN __attribute__((noreturn))
6 #else
7 # define ATTRIBUTE_NORETURN
8 #endif
9
10 #define ELEMENTSOF(ARRAY) (sizeof(ARRAY) / sizeof(*(ARRAY)))
11 #define MIN(A, B) ((A) < (B) ? (A) : (B))
12 #define MAX(A, B) ((A) > (B) ? (A) : (B))
13 #define CLIP(A, B, C) ((B) < (A) ? (A) : (B) > (C) ? (C) : (B))
14 #define STRLEN(STR) (sizeof(STR) - 1)
15 #define INTSTRLEN(TYPE) ((sizeof(TYPE) == 1 ? 3 : (5 * sizeof(TYPE) / 2)) + ((TYPE)-1 < 1))
16
17 #define USAGE(SYNOPSIS)\
18 NUSAGE(1, SYNOPSIS)
19
20 #define NUSAGE(STATUS, SYNOPSIS)\
21 ATTRIBUTE_NORETURN\
22 static void usage(void)\
23 { enprintf((STATUS), "usage: %s%s%s\n", argv0, *SYNOPSIS ? " " : "", SYNOPSIS); }
24
25 #include "util/eprintf.h"
26 #include "util/efflush.h"
27 #include "util/fshut.h"
28 #include "util/eopen.h"
29 #include "util/emalloc.h"
30 #include "util/to.h"
31 #include "util/colour.h"
32 #include "util/io.h"
33 #include "util/jobs.h"
34 #include "util/endian.h"
35 #include "util/efunc.h"