X-Git-Url: http://git.efficios.com/?p=babeltrace.git;a=blobdiff_plain;f=cli%2Fbabeltrace-cfg.c;h=e847b9705be1a5fd8248e4d895a9abdeba8700d9;hp=bf36be9b19b3c600532dfd88ff12fc7d0f477bc1;hb=60535549d314d7784f2e5fcfcf8883ea6c428997;hpb=8d77550c9ec0f0bdb483a672a676e842510bb384 diff --git a/cli/babeltrace-cfg.c b/cli/babeltrace-cfg.c index bf36be9b..e847b970 100644 --- a/cli/babeltrace-cfg.c +++ b/cli/babeltrace-cfg.c @@ -1207,6 +1207,7 @@ int insert_flat_params_from_array(GString *params_arg, int ret = 0; int i; GString *tmpstr = NULL, *default_value = NULL; + bool default_set = false, non_default_set = false; /* * names_array may be NULL if no CLI options were specified to @@ -1260,15 +1261,31 @@ int insert_flat_params_from_array(GString *params_arg, g_string_assign(default_value, "hide"); } if (is_default) { + default_set = true; g_string_append(tmpstr, "default"); append_param_arg(params_arg, tmpstr->str, default_value->str); } else { + non_default_set = true; g_string_append(tmpstr, suffix); append_param_arg(params_arg, tmpstr->str, "yes"); } } + /* Implicit field-default=hide if any non-default option is set. */ + if (non_default_set && !default_set) { + g_string_assign(tmpstr, prefix); + g_string_append(tmpstr, "-default"); + g_string_assign(default_value, "hide"); + ret = map_insert_string_or_null(map_obj, + tmpstr->str, + default_value); + if (ret) { + print_err_oom(); + goto end; + } + } + end: if (default_value) { g_string_free(default_value, TRUE);