From 8f090c68c074d2de46e11e165e76d5e108d918be Mon Sep 17 00:00:00 2001 From: Bruce Hill Date: Sun, 13 Sep 2020 00:37:17 -0700 Subject: Don't use color for non-tty outputs, added `-m` mode argument --- vm.c | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) (limited to 'vm.c') diff --git a/vm.c b/vm.c index 1e2cb76..97c0e7c 100644 --- a/vm.c +++ b/vm.c @@ -426,7 +426,7 @@ static match_t *get_capture_named(match_t *m, const char *name) void print_match(match_t *m, const char *color, int verbose) { if (m->is_replacement) { - printf("\033[0;34m"); + if (color) printf("\033[0;34m"); for (const char *r = m->name_or_replacement; *r; ) { if (*r == '\\') { ++r; @@ -466,27 +466,27 @@ void print_match(match_t *m, const char *color, int verbose) } } if (cap != NULL) { - print_match(cap, "\033[0;35m", verbose); - printf("\033[0;34m"); + print_match(cap, color ? "\033[0;35m" : NULL, verbose); + if (color) printf("\033[0;34m"); } } } else { const char *name = m->name_or_replacement; if (verbose && m->is_ref && name && isupper(name[0])) - printf("\033[0;2;35m{%s:", name); + printf(color ? "\033[0;2;35m{%s:" : "{%s", name); //if (m->is_capture && name) // printf("\033[0;2;33m[%s:", name); const char *prev = m->start; for (match_t *child = m->child; child; child = child->nextsibling) { if (child->start > prev) - printf("%s%.*s", color, (int)(child->start - prev), prev); - print_match(child, m->is_capture ? "\033[0;1m" : color, verbose); + printf("%s%.*s", color ? color : "", (int)(child->start - prev), prev); + print_match(child, color ? (m->is_capture ? "\033[0;31;1m" : color) : NULL, verbose); prev = child->end; } if (m->end > prev) - printf("%s%.*s", color, (int)(m->end - prev), prev); + printf("%s%.*s", color ? color : "", (int)(m->end - prev), prev); if (verbose && m->is_ref && name && isupper(name[0])) - printf("\033[0;2;35m}"); + printf(color ? "\033[0;2;35m}" : "}"); //if (m->is_capture && name) // printf("\033[0;2;33m]"); } -- cgit v1.2.3