| | #pragma once |
| |
|
| |
|
| |
|
| |
|
| | #define STRUCTURE(NAME, ...) \ |
| | typedef struct NAME NAME; struct NAME { __VA_ARGS__ } |
| |
|
| |
|
| |
|
| |
|
| | #define HOLD() (void)fgetc(stdin); |
| |
|
| |
|
| |
|
| |
|
| | #define LOG(FD, COLOR, ...) fprintf(FD, COLOR), fprintf(FD, "%s:%d: ", __FILE__, __LINE__), fprintf(FD, __VA_ARGS__), fprintf(FD, "\033[0m"), fflush(FD) |
| | #define COMMENT(...) LOG(stdout, "\033[38;5;78m", __VA_ARGS__) |
| | #define WARNING(...) LOG(stdout, "\033[38;5;208m", __VA_ARGS__), HOLD() |
| | #define INFO(...) LOG(stdout, "\033[38;5;228m", __VA_ARGS__) |
| | #define ERROR(...) { LOG(stderr, "\033[38;5;196m", __VA_ARGS__); exit(EXIT_FAILURE); } |
| |
|
| |
|
| |
|
| |
|
| | #define CALLBACK_ON_FILE(FNAME, ...) \ |
| | if (FNAME != NULL) { __VA_ARGS__; } \ |
| | else WARNING("\"%s\" not set, skipping", #FNAME); |
| |
|