]> git.sur5r.net Git - openocd/commitdiff
Simplify and improve handle_debug_level_comamnd:
authorzwelch <zwelch@b42882b7-edfa-0310-969c-e2dbd0fdcd60>
Fri, 12 Jun 2009 01:39:57 +0000 (01:39 +0000)
committerzwelch <zwelch@b42882b7-edfa-0310-969c-e2dbd0fdcd60>
Fri, 12 Jun 2009 01:39:57 +0000 (01:39 +0000)
- Bug fix: Return a syntax error if more than one argument is given.
- Bug fix: Use new parse_uint helper ensure debug_level parses correctly.
- Change: Display the debug_level after it has been set.
- Simplify bounds checking of debug_level.

git-svn-id: svn://svn.berlios.de/openocd/trunk@2208 b42882b7-edfa-0310-969c-e2dbd0fdcd60

src/helper/log.c

index 549d71279d9a8f38b226f39ff796920f545a21dc..8dbdc9471bdff3a5cc764f433aa04c25dad4aff3 100644 (file)
@@ -194,17 +194,18 @@ void log_printf_lf(enum log_levels level, const char *file, int line, const char
  */
 int handle_debug_level_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc)
 {
-       if (argc == 0)
-               command_print(cmd_ctx, "debug_level: %i", debug_level);
-
-       if (argc > 0)
-               debug_level = strtoul(args[0], NULL, 0);
-
-       if (debug_level < 0)
-               debug_level = 0;
+       if (argc == 1)
+       {
+               unsigned new_level;
+               int retval = parse_uint(args[0], &new_level);
+               if (ERROR_OK != retval)
+                       return retval;
+               debug_level = MIN(new_level, LOG_LVL_DEBUG);
+       }
+       else if (argc > 1)
+               return ERROR_COMMAND_SYNTAX_ERROR;
 
-       if (debug_level > 3)
-               debug_level = 3;
+       command_print(cmd_ctx, "debug_level: %i", debug_level);
 
        if (debug_level >= LOG_LVL_DEBUG && server_use_pipes == 1)
        {