File size: 755 Bytes
120dee6
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
#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);