From 0f6a47837e64836385268bb4e99e123477775e68 Mon Sep 17 00:00:00 2001 From: zwelch Date: Fri, 12 Jun 2009 01:39:57 +0000 Subject: Simplify and improve handle_debug_level_comamnd: - 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 | 21 +++++++++++---------- 1 file changed, 11 insertions(+), 10 deletions(-) diff --git a/src/helper/log.c b/src/helper/log.c index 549d7127..8dbdc947 100644 --- a/src/helper/log.c +++ b/src/helper/log.c @@ -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) { -- cgit v1.2.3