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
30
31
32
33
34
35
36
37
38
39
40
41
42 #ifndef _SIR_ANSI_MACROS_H_INCLUDED
43 # define _SIR_ANSI_MACROS_H_INCLUDED
44
45 # if !defined(SIR_NO_TEXT_STYLING)
46 # define SIR_ESC "\x1b["
47 # define SIR_ESC_M "m"
48 # else
49 # define SIR_ESC ""
50 # define SIR_ESC_M ""
51 # endif
52
53 # if !defined(SIR_NO_TEXT_STYLING)
54 # define SIR_ESC_SEQ(codes, s) SIR_ESC codes SIR_ESC_M s
55 # else
56 # define SIR_ESC_SEQ(codes, s) s
57 # endif
58
59 # define SIR_ESC_SEQE(codes) SIR_ESC_SEQ(codes, "")
60
61
62 # if !defined(SIR_NO_TEXT_STYLING)
63 # define SIR_ESC_RST SIR_ESC_SEQE("0")
64 # else
65 # define SIR_ESC_RST ""
66 # endif
67
68
69 # if !defined(__WIN__)
70 # define SIR_R_ARROW "\xe2\x86\x92"
71 # define SIR_L_ARROW "\xe2\x86\x90"
72 # define SIR_BULLET "\xe2\x80\xa2"
73 # else
74 # define SIR_R_ARROW "->"
75 # define SIR_L_ARROW "<-"
76 # define SIR_BULLET "-"
77 # endif
78
79
80
81
82
83
84
85 # if !defined(SIR_NO_TEXT_STYLING)
86 # define SIR_COLOR(attr, fg, bg, s) \
87 SIR_ESC_SEQ(#attr ";" #fg ";" #bg, s) SIR_ESC_SEQE("0;39;49")
88
89 # define SIR_STRIKE(s) SIR_ESC_SEQ("9", s) SIR_ESC_SEQE("29")
90 # define SIR_INVERT(s) SIR_ESC_SEQ("7", s) SIR_ESC_SEQE("27")
91 # define SIR_ULINE(s) SIR_ESC_SEQ("4", s) SIR_ESC_SEQE("24")
92 # define SIR_EMPH(s) SIR_ESC_SEQ("3", s) SIR_ESC_SEQE("23")
93 # define SIR_BOLD(s) SIR_ESC_SEQ("1", s) SIR_ESC_SEQE("22")
94 # define SIR_BLINK(s) SIR_ESC_SEQ("5", s) SIR_ESC_SEQE("25")
95
96 # define SIR_BLACK(s) SIR_COLOR(0, 30, 49, s)
97 # define SIR_BLACKB(s) SIR_COLOR(1, 30, 49, s)
98
99 # define SIR_RED(s) SIR_COLOR(0, 31, 49, s)
100 # define SIR_REDB(s) SIR_COLOR(1, 31, 49, s)
101 # define SIR_BRED(s) SIR_COLOR(0, 91, 49, s)
102 # define SIR_BREDB(s) SIR_COLOR(1, 91, 49, s)
103
104 # define SIR_GREEN(s) SIR_COLOR(0, 32, 49, s)
105 # define SIR_GREENB(s) SIR_COLOR(1, 32, 49, s)
106 # define SIR_BGREEN(s) SIR_COLOR(0, 92, 49, s)
107 # define SIR_BGREENB(s) SIR_COLOR(1, 92, 49, s)
108
109 # define SIR_YELLOW(s) SIR_COLOR(0, 33, 49, s)
110 # define SIR_YELLOWB(s) SIR_COLOR(1, 33, 49, s)
111 # define SIR_BYELLOW(s) SIR_COLOR(0, 93, 49, s)
112 # define SIR_BYELLOWB(s) SIR_COLOR(1, 93, 49, s)
113
114 # define SIR_BLUE(s) SIR_COLOR(0, 34, 49, s)
115 # define SIR_BLUEB(s) SIR_COLOR(1, 34, 49, s)
116 # define SIR_BBLUE(s) SIR_COLOR(0, 94, 49, s)
117 # define SIR_BBLUEB(s) SIR_COLOR(1, 94, 49, s)
118
119 # define SIR_MAGENTA(s) SIR_COLOR(0, 35, 49, s)
120 # define SIR_MAGENTAB(s) SIR_COLOR(1, 35, 49, s)
121 # define SIR_BMAGENTA(s) SIR_COLOR(0, 95, 49, s)
122 # define SIR_BMAGENTAB(s) SIR_COLOR(1, 95, 49, s)
123
124 # define SIR_CYAN(s) SIR_COLOR(0, 36, 49, s)
125 # define SIR_CYANB(s) SIR_COLOR(1, 36, 49, s)
126 # define SIR_BCYAN(s) SIR_COLOR(0, 96, 49, s)
127 # define SIR_BCYANB(s) SIR_COLOR(1, 96, 49, s)
128
129 # define SIR_BGRAY(s) SIR_COLOR(0, 37, 49, s)
130 # define SIR_BGRAYB(s) SIR_COLOR(1, 37, 49, s)
131 # define SIR_DGRAY(s) SIR_COLOR(0, 90, 49, s)
132 # define SIR_DGRAYB(s) SIR_COLOR(1, 90, 49, s)
133
134 # define SIR_WHITE(s) SIR_COLOR(0, 97, 49, s)
135 # define SIR_WHITEB(s) SIR_COLOR(1, 97, 49, s)
136 # else
137 # define SIR_COLOR(attr, fg, bg, s) s
138
139 # define SIR_STRIKE(s) s
140 # define SIR_INVERT(s) s
141 # define SIR_ULINE(s) s
142 # define SIR_EMPH(s) s
143 # define SIR_BOLD(s) s
144 # define SIR_BLINK(s) s
145
146 # define SIR_BLACK(s) s
147 # define SIR_BLACKB(s) s
148
149 # define SIR_RED(s) s
150 # define SIR_REDB(s) s
151 # define SIR_BRED(s) s
152 # define SIR_BREDB(s) s
153
154 # define SIR_GREEN(s) s
155 # define SIR_GREENB(s) s
156 # define SIR_BGREEN(s) s
157 # define SIR_BGREENB(s) s
158
159 # define SIR_YELLOW(s) s
160 # define SIR_YELLOWB(s) s
161 # define SIR_BYELLOW(s) s
162 # define SIR_BYELLOWB(s) s
163
164 # define SIR_BLUE(s) s
165 # define SIR_BLUEB(s) s
166 # define SIR_BBLUE(s) s
167 # define SIR_BBLUEB(s) s
168
169 # define SIR_MAGENTA(s) s
170 # define SIR_MAGENTAB(s) s
171 # define SIR_BMAGENTA(s) s
172 # define SIR_BMAGENTAB(s) s
173
174 # define SIR_CYAN(s) s
175 # define SIR_CYANB(s) s
176 # define SIR_BCYAN(s) s
177 # define SIR_BCYANB(s) s
178
179 # define SIR_BGRAY(s) s
180 # define SIR_BGRAYB(s) s
181 # define SIR_DGRAY(s) s
182 # define SIR_DGRAYB(s) s
183
184 # define SIR_WHITE(s) s
185 # define SIR_WHITEB(s) s
186 # endif
187 #endif