Fix missing warningstream (or similar problem) (#7034)
[oweals/minetest.git] / src / main.cpp
index 7f9f0967ecffd99ed540c2d130256de10cbede6e..d9073cfb859e59806784b7610b9f97b0441e6c02 100644 (file)
@@ -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;