From 01643b8621a376c43bb5bb603d79040e4b4380fd Mon Sep 17 00:00:00 2001 From: Dominic Clifton Date: Sat, 2 Aug 2014 10:00:37 +0100 Subject: [PATCH] Re-use existing code to show all matching cli commands for 'get' instead of exact match. e.g. 'get deadband' will show all varialbles with the word 'deadband' in it. exact match only required when setting variables. --- src/main/io/serial_cli.c | 36 ++++++++++++------------------------ 1 file changed, 12 insertions(+), 24 deletions(-) diff --git a/src/main/io/serial_cli.c b/src/main/io/serial_cli.c index e2856876bf..d5ad14577b 100644 --- a/src/main/io/serial_cli.c +++ b/src/main/io/serial_cli.c @@ -965,38 +965,26 @@ static void cliSet(char *cmdline) cliPrint("ERR: Unknown variable name\r\n"); } else { // no equals, check for matching variables. - for (i = 0; i < VALUE_COUNT; i++) { - if (strstr(valueTable[i].name, cmdline)) { - val = &valueTable[i]; - printf("%s = ", valueTable[i].name); - cliPrintVar(val, 0); - printf("\r\n"); - } - } + cliGet(cmdline); } } static void cliGet(char *cmdline) { uint32_t i; - uint32_t len; const clivalue_t *val; - - len = strlen(cmdline); - - // Find the matching variable - for (i = 0; i < VALUE_COUNT; i++) { - if ((strncasecmp(cmdline, valueTable[i].name, strlen(valueTable[i].name)) == 0) && (len == strlen(valueTable[i].name))) { - val = &valueTable[i]; - printf("%s = ", valueTable[i].name); - cliPrintVar(val, 0); - printf("\r\n"); - return; - } - } - + + for (i = 0; i < VALUE_COUNT; i++) { + if (strstr(valueTable[i].name, cmdline)) { + val = &valueTable[i]; + printf("%s = ", valueTable[i].name); + cliPrintVar(val, 0); + printf("\r\n"); + } + } + // If we get down here, then the variable was not found - printf("Variable '%s' not found.\r\n ", cmdline); + cliPrint("ERR: Unknown variable name\r\n"); } static void cliStatus(char *cmdline)