From: Zachary T Welch Date: Wed, 18 Nov 2009 20:41:20 +0000 (-0800) Subject: change all bool parsers to accept any value X-Git-Tag: v0.4.0-rc1~502 X-Git-Url: https://review.openocd.org/gitweb?p=openocd.git;a=commitdiff_plain;h=4d8d1d32d0f0e0b8866a06cb1d3f304563fa6796;hp=7e4adfe1c53aa18d4feba1e58ceb5c5aaa470775 change all bool parsers to accept any value This patch changes the behavior of all boolean parsing callers to accept any one of "true/enable/on/yes/1" or "false/disable/off/no/0". Since one particular pair will be most appropriate in any given situation, the specific macros should continue to be used in order to display the most informative error messages possible. --- diff --git a/src/helper/command.c b/src/helper/command.c index 5f3fae5107..b7c44efc91 100644 --- a/src/helper/command.c +++ b/src/helper/command.c @@ -955,7 +955,7 @@ DEFINE_PARSE_LONG(_s32, int32_t, n < INT32_MIN, INT32_MAX) DEFINE_PARSE_LONG(_s16, int16_t, n < INT16_MIN, INT16_MAX) DEFINE_PARSE_LONG(_s8, int8_t, n < INT8_MIN, INT8_MAX) -int command_parse_bool(const char *in, bool *out, +static int command_parse_bool(const char *in, bool *out, const char *on, const char *off) { if (strcasecmp(in, on) == 0) @@ -967,7 +967,7 @@ int command_parse_bool(const char *in, bool *out, return ERROR_OK; } -int command_parse_bool_any(const char *in, bool *out) +int command_parse_bool_arg(const char *in, bool *out) { if (command_parse_bool(in, out, "on", "off") == ERROR_OK) return ERROR_OK; @@ -987,7 +987,7 @@ COMMAND_HELPER(handle_command_parse_bool, bool *out, const char *label) switch (CMD_ARGC) { case 1: { const char *in = CMD_ARGV[0]; - if (command_parse_bool_any(in, out) != ERROR_OK) + if (command_parse_bool_arg(in, out) != ERROR_OK) { LOG_ERROR("%s: argument '%s' is not valid", CMD_NAME, in); return ERROR_INVALID_ARGUMENTS; diff --git a/src/helper/command.h b/src/helper/command.h index 06403eff54..a2e979708e 100644 --- a/src/helper/command.h +++ b/src/helper/command.h @@ -272,7 +272,7 @@ DECLARE_PARSE_WRAPPER(_s8, int8_t); #define COMMAND_PARSE_BOOL(in, out, on, off) \ do { \ bool value; \ - int retval = command_parse_bool(in, &value, on, off); \ + int retval = command_parse_bool_arg(in, &value); \ if (ERROR_OK != retval) { \ command_print(CMD_CTX, stringify(out) \ " option value ('%s') is not valid", in); \ @@ -283,8 +283,7 @@ DECLARE_PARSE_WRAPPER(_s8, int8_t); out = value; \ } while (0) -int command_parse_bool(const char *in, bool *out, - const char *on, const char *off); +int command_parse_bool_arg(const char *in, bool *out); COMMAND_HELPER(handle_command_parse_bool, bool *out, const char *label); /// parses an on/off command argument