From 2afc011b16318d42f8fef6a99dbc5eb9f48fa887 Mon Sep 17 00:00:00 2001 From: mikeller Date: Fri, 7 Apr 2017 00:19:51 +1200 Subject: [PATCH] Fixed 'showdefaults' option for CLI 'dump' / 'diff'. --- src/main/fc/cli.c | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/src/main/fc/cli.c b/src/main/fc/cli.c index 9d469eb3e..dec0b94be 100755 --- a/src/main/fc/cli.c +++ b/src/main/fc/cli.c @@ -1407,26 +1407,26 @@ static void *getValuePointer(const clivalue_t *value) static void dumpPgValue(const clivalue_t *value, uint8_t dumpMask) { - const char *format = "set %s = "; const cliCurrentAndDefaultConfig_t *config = getCurrentAndDefaultConfigs(value->pgn); if (config->currentConfig == NULL || config->defaultConfig == NULL) { // has not been set up properly cliPrintf("VALUE %s ERROR\r\n", value->name); return; } + + const char *format = "set %s = "; + const char *defaultFormat = "#set %s = "; const int valueOffset = getValueOffset(value); - switch (dumpMask & (DO_DIFF | SHOW_DEFAULTS)) { - case DO_DIFF: - if (valuePtrEqualsDefault(value->type, (uint8_t*)config->currentConfig + valueOffset, (uint8_t*)config->defaultConfig + valueOffset)) { - break; + const bool equalsDefault = valuePtrEqualsDefault(value->type, (uint8_t*)config->currentConfig + valueOffset, (uint8_t*)config->defaultConfig + valueOffset); + if (((dumpMask & DO_DIFF) == 0) || !equalsDefault) { + if (dumpMask & SHOW_DEFAULTS && !equalsDefault) { + cliPrintf(defaultFormat, value->name); + printValuePointer(value, (uint8_t*)config->defaultConfig + valueOffset, 0); + cliPrint("\r\n"); } - // drop through, since not equal to default - case 0: - case SHOW_DEFAULTS: cliPrintf(format, value->name); printValuePointer(value, (uint8_t*)config->currentConfig + valueOffset, 0); cliPrint("\r\n"); - break; } }