I recently noticed that if colors and progress bars are enabled, pacman will faithfully attempt to print them even to dumb terminals that cannot handle them. This patch fixes that.
Cheers, iff >From 08d67cd6bbfd1bc29ebfae8eff80ffbf9e24fdf5 Mon Sep 17 00:00:00 2001 From: Ivy Foster <ivy.fos...@gmail.com> Date: Thu, 24 Mar 2016 22:57:10 -0500 Subject: [PATCH] Disable colors and progress bars if TERM=dumb Signed-off-by: Ivy Foster <ivy.fos...@gmail.com> --- src/pacman/conf.c | 2 +- src/pacman/pacman.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/pacman/conf.c b/src/pacman/conf.c index 25de7af..39ea1ab 100644 --- a/src/pacman/conf.c +++ b/src/pacman/conf.c @@ -67,7 +67,7 @@ void enable_colors(int colors) { colstr_t *colstr = &config->colstr; - if(colors == PM_COLOR_ON) { + if(colors == PM_COLOR_ON && strcmp(getenv("TERM"), "dumb") != 0) { colstr->colon = BOLDBLUE "::" BOLD " "; colstr->title = BOLD; colstr->repo = BOLDMAGENTA; diff --git a/src/pacman/pacman.c b/src/pacman/pacman.c index be52d1b..1d6d20f 100644 --- a/src/pacman/pacman.c +++ b/src/pacman/pacman.c @@ -1110,7 +1110,7 @@ int main(int argc, char *argv[]) install_soft_interrupt_handler(); - if(!isatty(fileno(stdout))) { + if(!isatty(fileno(stdout)) || strcmp(getenv("TERM"), "dumb") == 0) { /* disable progressbar if the output is redirected */ config->noprogressbar = 1; } else { -- 2.7.4