Merge pull request #354 from aecepoglu/master

* removed 'nocolor' option. Added 'color' option
This commit is contained in:
Dirk-Jan C. Binnema
2014-02-01 15:47:14 -08:00
3 changed files with 26 additions and 16 deletions

View File

@ -111,13 +111,14 @@ for extract MIME-parts (such as attachments) from messages. See
.SH COLORS .SH COLORS
Some \fBmu\fR sub-commands support colorized output. If you don't want this, Some \fBmu\fR sub-commands support colorized output using the \fB--color\fR option. This option mimics the
you can use the \fI--nocolor\fR/ option to disable it. Even then, colors will behaviour of same option in the GNU-version of \fBls\fR-command :
only be shown when output goes to a sufficiently capable terminal (this roughly With \fI"--color=auto"\fR, output is colorized only when stardard output is
mirrors the \fI--color=auto\fR of the GNU-version of the \fBls\fR-command). connected to a terminal.
\fI--color=never\fR doesn't print colorized output in any case,
and \fI--color=always\fR will always print colors.
Instead of the \fI--color\fR/, you can also set the \fBMU_NOCOLOR\fR The default value is \fI--color=always\fR.
environment variable to non-empty to disable colors.
Currently, \fBmu find\fR, \fBmu view\fR, \fBmu cfind\fR and \fBmu extract\fR Currently, \fBmu find\fR, \fBmu view\fR, \fBmu cfind\fR and \fBmu extract\fR
support colors. support colors.

View File

@ -76,14 +76,23 @@ set_group_mu_defaults (void)
g_free(MU_CONFIG.muhome); g_free(MU_CONFIG.muhome);
MU_CONFIG.muhome = exp; MU_CONFIG.muhome = exp;
} }
}
/* check for the MU_NOCOLOR env var; but in any case don't static gboolean
* use colors unless we're writing to a tty */ config_options_set_color (const gchar *option_name,
if (g_getenv (MU_NOCOLOR) != NULL) const gchar *value,
MU_CONFIG.nocolor = TRUE; gpointer data,
GError **error)
if (!isatty(fileno(stdout)) || !isatty(fileno(stderr))) {
if( g_strcmp0( value, "never") == 0)
MU_CONFIG.nocolor = TRUE; MU_CONFIG.nocolor = TRUE;
else if( g_strcmp0( value, "auto") == 0)
MU_CONFIG.nocolor = (!isatty(fileno(stdout)) || !isatty(fileno(stderr)));
else if( g_strcmp0( value, "always") == 0)
MU_CONFIG.nocolor = FALSE;
else
return FALSE;
return TRUE;
} }
static GOptionGroup* static GOptionGroup*
@ -101,8 +110,8 @@ config_options_group_mu (void)
"specify an alternative mu directory", "<dir>"}, "specify an alternative mu directory", "<dir>"},
{"log-stderr", 0, 0, G_OPTION_ARG_NONE, &MU_CONFIG.log_stderr, {"log-stderr", 0, 0, G_OPTION_ARG_NONE, &MU_CONFIG.log_stderr,
"log to standard error (false)", NULL}, "log to standard error (false)", NULL},
{"nocolor", 0, 0, G_OPTION_ARG_NONE, &MU_CONFIG.nocolor, {"color", 0, 0, G_OPTION_ARG_CALLBACK, &config_options_set_color,
"don't use ANSI-colors in output (false)", NULL}, "colorize output (never|auto|always)", "<mode>"},
{"verbose", 'v', 0, G_OPTION_ARG_NONE, &MU_CONFIG.verbose, {"verbose", 'v', 0, G_OPTION_ARG_NONE, &MU_CONFIG.verbose,
"verbose output (false)", NULL}, "verbose output (false)", NULL},

View File

@ -102,8 +102,8 @@ struct _MuConfig {
gboolean version; /* request mu version */ gboolean version; /* request mu version */
gboolean log_stderr; /* log to stderr (not logfile) */ gboolean log_stderr; /* log to stderr (not logfile) */
gchar** params; /* parameters (for querying) */ gchar** params; /* parameters (for querying) */
gboolean nocolor; /* don't use use ansi-colors gboolean nocolor; /* don't use use ansi-colors
* in some output */ * in some output */
gboolean verbose; /* verbose output */ gboolean verbose; /* verbose output */
/* options for indexing */ /* options for indexing */