From 540e07e3ef07de760100c2948dc3a756e48b1c72 Mon Sep 17 00:00:00 2001 From: you Date: Sun, 4 Mar 2018 17:34:36 +0100 Subject: Fix missing warningstream (or similar problem) (#7034) Use the --color command line parameter instead of a setting for coloured logs This fixes the missing warningstream bug, g_settings->get mustn't be used there. Also, the decision about en- or disabling log colours fits better to the command line parameters than minetest settings. --- src/main.cpp | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) (limited to 'src/main.cpp') diff --git a/src/main.cpp b/src/main.cpp index 7f9f0967e..d9073cfb8 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -266,6 +266,15 @@ static void set_allowed_options(OptionList *allowed_options) "'name' lists names, 'both' lists both)")))); allowed_options->insert(std::make_pair("quiet", ValueSpec(VALUETYPE_FLAG, _("Print to console errors only")))); +#if !defined(_WIN32) + allowed_options->insert(std::make_pair("color", ValueSpec(VALUETYPE_STRING, + _("Coloured logs ('always', 'never' or 'auto'), defaults to 'auto'" + )))); +#else + allowed_options->insert(std::make_pair("color", ValueSpec(VALUETYPE_STRING, + _("Coloured logs ('always' or 'never'), defaults to 'never'" + )))); +#endif allowed_options->insert(std::make_pair("info", ValueSpec(VALUETYPE_FLAG, _("Print more information to console")))); allowed_options->insert(std::make_pair("verbose", ValueSpec(VALUETYPE_FLAG, @@ -393,6 +402,17 @@ static void setup_log_params(const Settings &cmd_args) g_logger.addOutputMaxLevel(&stderr_output, LL_ERROR); } + // Coloured log messages (see log.h) + if (cmd_args.exists("color")) { + std::string mode = cmd_args.get("color"); + if (mode == "auto") + Logger::color_mode = LOG_COLOR_AUTO; + else if (mode == "always") + Logger::color_mode = LOG_COLOR_ALWAYS; + else + Logger::color_mode = LOG_COLOR_NEVER; + } + // If trace is enabled, enable logging of certain things if (cmd_args.getFlag("trace")) { dstream << _("Enabling trace level debug output") << std::endl; -- cgit v1.2.3