#ifndef KK_SHARED_H_ #define KK_SHARED_H_ #define _GNU_SOURCE #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include "config.h" #include "draw.h" #include "env.h" #include "keys.h" #include "opts.h" #include "queue.h" #include "thread.h" #define ERROR(...) do { fprintf(stderr, "kk: "); fprintf(stderr, __VA_ARGS__); fputc('\n', stderr); exit(1); } while(0); #define FATAL(...) do { fprintf(stderr, "[at %s:%d @ %s] fatal: ", __FILE__, __LINE__, __func__); fprintf(stderr, __VA_ARGS__); fputc('\n', stderr); exit(1); } while(0); #define UNREACHABLE(...) do { fprintf(stderr, "[at %s:%d @ %s] unreachable: ", __FILE__, __LINE__, __func__); fprintf(stderr, __VA_ARGS__); fputc('\n', stderr); exit(1); } while(0); #define TODO(...) do { fprintf(stderr, "[at %s:%d @ %s] TODO: ", __FILE__, __LINE__, __func__); fprintf(stderr, __VA_ARGS__); fputc('\n', stderr); exit(1); } while(0); #define ENV_OPTS "KKOPTS" #define ENV_SHELL_LINES "KK_SHELL_LINES" #define ENV_COLUMNS "COLUMNS" #define ENV_LINES "LINES" #define ENV_KK_COLUMNS "KK_COLUMNS" #define ENV_KK_LINES "KK_LINES" #define ENV_KK_EXT_BINARY "KK_EXT_BINARY" #define ENV_TMP_DIR "KK_TMP_DIR" #define ENV_HELP_FILE "KK_HELP_FILE" #define BINARY_CHECK_SIZE 256 #endif