Also avoid regular white/black, because it is often the terminal background and invisible as foreground color. Change debug messages to blue while at it to differentiate them from trace ones.
Unified · Split
| @@ -321,13 +321,27 @@ static void set_term_color(void *talloc_ctx, bstr *text, int c) · 320 unmodified lines | ||
| 321 | 321 | bstr_xappend(talloc_ctx, text, bstr0("\033[0m")); |
| 322 | 322 | return; |
| 323 | 323 | } |
| 324 | − | |
| 325 | − bstr_xappend_asprintf(talloc_ctx, text, "\033[%d;3%dm", c >> 3, c & 7); | |
| 324 | + // Pure black to gray | |
| 325 | + if (c == 0) | |
| 326 | + c += 8; | |
| 327 | + // Pure white to light one | |
| 328 | + if (c == 15) | |
| 329 | + c -= 8; | |
| 330 | + bstr_xappend_asprintf(talloc_ctx, text, "\033[%d%dm", c >= 8 ? 9 : 3, c & 7); | |
| 326 | 331 | } |
| 327 | 332 | |
| 328 | 333 | static void set_msg_color(void *talloc_ctx, bstr *text, int lev) |
| 329 | 334 | { |
| 330 | − static const int v_colors[] = {9, 1, 3, -1, -1, 2, 8, 8, 8, -1}; | |
| 335 | + static const int v_colors[] = { | |
| 336 | + [MSGL_FATAL] = 9, // bright red | |
| 337 | + [MSGL_ERR] = 1, // red | |
| 338 | + [MSGL_WARN] = 3, // yellow | |
| 339 | + [MSGL_INFO] = -1, // default | |
| 340 | + [MSGL_STATUS] = -1, // default | |
| 341 | + [MSGL_V] = 2, // green | |
| 342 | + [MSGL_DEBUG] = 4, // blue | |
| 343 | + [MSGL_TRACE] = 8, // bright black aka. gray | |
| 344 | + }; | |
| 331 | 345 | set_term_color(talloc_ctx, text, v_colors[lev]); |
| 332 | 346 | } |
| 333 | 347 | |