01f4ea3dc1adc1c7fb703b91ea98dc5ba202aab9
[calc.git] / debug.h
1 #ifndef __DEBUG_H__
2 #define __DEBUG_H__
3
4 /* constants */
5
6 #define DEBUG 3
7 #define INFO 2
8 #define WARNING 1
9 #define ERROR 0
10
11 /* colors */
12
13 #define COLOR_BLACK 30
14 #define COLOR_RED 31
15 #define COLOR_GREEN 32
16 #define COLOR_YELLOW 33
17 #define COLOR_BLUE 34
18 #define COLOR_MAGENTA 35
19 #define COLOR_CYAN 36
20 #define COLOR_WHITE 37
21 #define COLOR_DEFAULT 39
22
23 /* macros */
24
25 #define VERBOSE(level, statement...) \
26 do { if (level <= verbose) { CHANGE_COLOR(level); statement; CHANGE_COLOR(-1); } } while(0)
27
28 #define CHANGE_COLOR(level) \
29 fprintf ((level == ERROR) ? stderr : stdout, \
30 "\1\033[%dm\1", (level == ERROR) ? COLOR_RED : \
31 (level == WARNING) ? COLOR_YELLOW : \
32 (level == INFO) ? COLOR_BLUE : \
33 (level == DEBUG) ? COLOR_GREEN : COLOR_DEFAULT)
34
35 /* vim: set ts=4 sw=4 et: */
36 /* gobal variables */
37
38 extern int verbose;
39
40 #endif /* __DEBUG_H__ */
41
42 /* vim: set ts=4 sw=4 et: */