30 lines
995 B
C
30 lines
995 B
C
#ifndef CRYWL_UTIL_H
|
|
#define CRYWL_UTIL_H
|
|
|
|
#include <stddef.h>
|
|
#include <stdint.h>
|
|
|
|
/* MACROS */
|
|
#define MAX(A, B) ((A) > (B) ? (A) : (B))
|
|
#define MIN(A, B) ((A) < (B) ? (A) : (B))
|
|
#define CLEANMASK(mask) (mask & ~WLR_MODIFIER_CAPS)
|
|
#define VISIBLEON(C, M) ((M) && (C)->mon == (M) && ((C)->tags & (M)->tagset[(M)->seltags]))
|
|
#define LENGTH(X) (sizeof X / sizeof X[0])
|
|
#define END(A) ((A) + LENGTH(A))
|
|
#define TAGMASK ((1u << TAGCOUNT) - 1)
|
|
#define LISTEN(E, L, H) wl_signal_add((E), ((L)->notify = (H), (L)))
|
|
#define LISTEN_STATIC(E, H) do { struct wl_listener *_l = ecalloc(1, sizeof(*_l)); _l->notify = (H); wl_signal_add((E), _l); } while (0)
|
|
|
|
typedef union {
|
|
int i;
|
|
uint32_t ui;
|
|
float f;
|
|
const void *v;
|
|
} Arg;
|
|
|
|
/* ===== Function Declaration ===== */
|
|
void die(const char *fmt, ...);
|
|
void *ecalloc(size_t nmemb, size_t size);
|
|
int fd_set_nonblock(int fd);
|
|
|
|
#endif /* CRYWL_UTIL_H */
|