diff options
author | Zachary T Welch <zw@superlucidity.net> | 2009-11-18 06:58:27 -0800 |
---|---|---|
committer | Zachary T Welch <zw@superlucidity.net> | 2009-11-18 15:51:07 -0800 |
commit | 7e4adfe1c53aa18d4feba1e58ceb5c5aaa470775 (patch) | |
tree | b6e359af900dc57c08f10fa8c7ab535a40e35379 /src/helper/command.h | |
parent | 410fab9ea8c6632da2e4967d960f66eecc7821ec (diff) | |
download | riscv-openocd-7e4adfe1c53aa18d4feba1e58ceb5c5aaa470775.zip riscv-openocd-7e4adfe1c53aa18d4feba1e58ceb5c5aaa470775.tar.gz riscv-openocd-7e4adfe1c53aa18d4feba1e58ceb5c5aaa470775.tar.bz2 |
add handle_command_parse_bool command helper
Rewrite arm11_handle_bool to provide a generic on/off command helper.
Refactors COMMAND_PARSE_BOOL to use new command_parse_bool helper,
which gets reused by the new command_parse_bool_any helper.
This later helper is called by the new command helper function to
accepts any on/off, enable/disable, true/false, yes/no, or 0/1 parameter.
Diffstat (limited to 'src/helper/command.h')
-rw-r--r-- | src/helper/command.h | 15 |
1 files changed, 9 insertions, 6 deletions
diff --git a/src/helper/command.h b/src/helper/command.h index 9f2d971..06403ef 100644 --- a/src/helper/command.h +++ b/src/helper/command.h @@ -271,19 +271,22 @@ DECLARE_PARSE_WRAPPER(_s8, int8_t); */ #define COMMAND_PARSE_BOOL(in, out, on, off) \ do { \ - if (strcmp(in, on) == 0) \ - out = true; \ - else if (strcmp(in, off) == 0) \ - out = false; \ - else { \ + bool value; \ + int retval = command_parse_bool(in, &value, on, off); \ + if (ERROR_OK != retval) { \ command_print(CMD_CTX, stringify(out) \ " option value ('%s') is not valid", in); \ command_print(CMD_CTX, " choices are '%s' or '%s'", \ on, off); \ - return ERROR_COMMAND_SYNTAX_ERROR; \ + return retval; \ } \ + out = value; \ } while (0) +int command_parse_bool(const char *in, bool *out, + const char *on, const char *off); +COMMAND_HELPER(handle_command_parse_bool, bool *out, const char *label); + /// parses an on/off command argument #define COMMAND_PARSE_ON_OFF(in, out) \ COMMAND_PARSE_BOOL(in, out, "on", "off") |