diff --git a/firmware/util/cli_registry.c b/firmware/util/cli_registry.c index 860cbe6de3..929ddbb6f5 100644 --- a/firmware/util/cli_registry.c +++ b/firmware/util/cli_registry.c @@ -153,6 +153,17 @@ static void echo(int value) { print("got value: %d\r\n", value); } +char *unquote(char *line) { + if (line[0] == '"') { + int len = strlen(line); + if (line[len - 1] == '"') { + line[len - 1] = 0; + return line + 1; + } + } + return line; +} + int findEndOfToken(const char *line) { if (line[0] == '"') { /** diff --git a/unit_tests/main.cpp b/unit_tests/main.cpp index e4d125cc57..a33457c8c7 100644 --- a/unit_tests/main.cpp +++ b/unit_tests/main.cpp @@ -132,7 +132,7 @@ int main(void) { testFLStack(); // resizeMap(); - printf("Success 20131009\r\n"); + printf("Success 20131012\r\n"); return EXIT_SUCCESS; } diff --git a/unit_tests/test_util.cpp b/unit_tests/test_util.cpp index 72b72b5fd5..733a6cb7a7 100644 --- a/unit_tests/test_util.cpp +++ b/unit_tests/test_util.cpp @@ -284,6 +284,12 @@ void testConsoleLogic(void) { cmd = "\"h e\" ha"; assertEquals(5, findEndOfToken(cmd)); + strcpy(buffer, "echo"); + assertTrue(strEqual("echo", unquote(buffer))); + + strcpy(buffer, "\"echo\""); + assertTrueM("unquote quoted", strEqual("echo", unquote(buffer))); + char *ptr = validateSecureLine(UNKNOWN_COMMAND); assertEquals(0, strcmp(UNKNOWN_COMMAND, ptr));