1 // SPDX-License-Identifier: GPL-2.0 OR MIT
3 * Copyright (C) 2015-2020 Jason A. Donenfeld <Jason@zx2c4.com>. All Rights Reserved.
16 static bool color_mode(void)
23 var = getenv("WG_COLOR_MODE");
24 if (var && !strcmp(var, "always"))
26 else if (var && !strcmp(var, "never"))
29 mode = isatty(fileno(stdout));
33 static void filter_ansi(const char *fmt, va_list args)
39 vfprintf(stdout, fmt, args);
43 len = vasprintf(&str, fmt, args);
46 for (i = 0; i < len - 2; ++i) {
47 if (str[i] == '\x1b' && str[i + 1] == '[') {
48 str[i] = str[i + 1] = '\0';
49 for (j = i + 2; j < len; ++j) {
50 if (char_is_alpha(str[j]))
58 for (i = 0; i < len; i = j) {
59 fputs(&str[i], stdout);
60 for (j = i + strlen(&str[i]); j < len; ++j) {
69 void terminal_printf(const char *fmt, ...)
74 filter_ansi(fmt, args);