added option to limit debug output to specific debug mode
authorHolger Schemel <info@artsoft.org>
Wed, 16 Sep 2020 14:33:22 +0000 (16:33 +0200)
committerHolger Schemel <info@artsoft.org>
Wed, 16 Sep 2020 14:34:15 +0000 (16:34 +0200)
src/libgame/misc.c
src/libgame/system.h
src/main.c

index 17072d87cf249b43c38bbd21ebe0b27783dbef21..7047ba92d120b280eacbefa00c12289152982963 100644 (file)
@@ -331,6 +331,11 @@ void Debug(char *mode, char *format, ...)
 {
   va_list ap;
 
+  // if optional debug mode specified, limit debug output accordingly
+  if (options.debug_mode != NULL &&
+      !strEqual(options.debug_mode, mode))
+    return;
+
   va_start(ap, format);
   Log(LOG_DEBUG, mode, format, ap);
   va_end(ap);
@@ -1036,6 +1041,7 @@ void GetOptions(int argc, char *argv[],
 
   options.execute_command = NULL;
   options.special_flags = NULL;
+  options.debug_mode = NULL;
 
   options.mytapes = FALSE;
   options.serveronly = FALSE;
@@ -1170,6 +1176,10 @@ void GetOptions(int argc, char *argv[],
     else if (strncmp(option, "-debug", option_len) == 0)
     {
       options.debug = TRUE;
+
+      // optionally, debug output can be limited to a specific debug mode
+      if (option_arg != next_option)
+       options.debug_mode = getStringCopy(option_arg);
     }
     else if (strncmp(option, "-verbose", option_len) == 0)
     {
index 6e0296ef182a0a7c4dc2600e95d248705c474c00..d18f0f271df43dc9d20661cfbbd5201133d52f82 100644 (file)
@@ -1001,6 +1001,7 @@ struct OptionInfo
   char *execute_command;
 
   char *special_flags;
+  char *debug_mode;
 
   boolean mytapes;
   boolean serveronly;
index ca4be86d05615216959671464a53987732226652..86cd30994d89fcc6ee0545fb13d726bd2f147478 100644 (file)
@@ -7621,7 +7621,7 @@ static void print_usage(void)
        "      --serveronly                 only start network server\n"
        "  -v, --verbose                    verbose mode\n"
        "  -V, --version                    show program version\n"
-       "      --debug                      display debugging information\n"
+       "      --debug[=MODE]               show (and limit) debug output\n"
        "  -e, --execute COMMAND            execute batch COMMAND\n"
        "\n"
        "Valid commands for '--execute' option:\n"