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.__archive__
parent
7e4adfe1c5
commit
4d8d1d32d0
|
@ -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;
|
||||
|
|
|
@ -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
|
||||
|
|
Loading…
Reference in New Issue