diff options
author | Jiří Klimeš <jklimes@redhat.com> | 2015-04-22 12:10:53 +0200 |
---|---|---|
committer | Lubomir Rintel <lkundrak@v3.sk> | 2015-06-15 10:31:26 +0200 |
commit | bef07bc62d6cdb3fc9e2c427c9be0ce2120e0caf (patch) | |
tree | fe4cd800d3ed3effece72f452d39532bb34d9c3a | |
parent | 561f9b720312c88ce65c3c09b0c921aeaed787ae (diff) | |
download | NetworkManager-bef07bc62d6cdb3fc9e2c427c9be0ce2120e0caf.tar.gz |
cli: change function for allowed values to return array of strings
(cherry picked from commit 188d6cbaf3a8c874c8a6fb7cdb1d75d41c444aff)
-rw-r--r-- | clients/cli/connections.c | 22 | ||||
-rw-r--r-- | clients/cli/settings.c | 43 | ||||
-rw-r--r-- | clients/cli/settings.h | 2 |
3 files changed, 28 insertions, 39 deletions
diff --git a/clients/cli/connections.c b/clients/cli/connections.c index ebeec75f21..11b611a0be 100644 --- a/clients/cli/connections.c +++ b/clients/cli/connections.c @@ -7476,7 +7476,7 @@ editor_menu_main (NmCli *nmc, NMConnection *connection, const char *connection_t if (menu_ctx.level == 1) { const char *prop_name; char *prop_val_user = NULL; - const char *avals; + const char **avals; GError *tmp_err = NULL; prop_name = ask_check_property (cmd_arg, @@ -7486,9 +7486,12 @@ editor_menu_main (NmCli *nmc, NMConnection *connection, const char *connection_t break; avals = nmc_setting_get_property_allowed_values (menu_ctx.curr_setting, prop_name); - if (avals) - g_print (_("Allowed values for '%s' property: %s\n"), prop_name, avals); - + if (avals) { + char *avals_str = nmc_util_strv_for_display (avals, FALSE); + g_print (_("Allowed values for '%s' property: %s\n"), + prop_name, avals_str); + g_free (avals_str); + } prop_val_user = nmc_readline (_("Enter '%s' value: "), prop_name); /* Set property value */ @@ -7540,10 +7543,13 @@ editor_menu_main (NmCli *nmc, NMConnection *connection, const char *connection_t /* Ask for value */ if (!cmd_arg_v) { - const char *avals = nmc_setting_get_property_allowed_values (ss, prop_name); - if (avals) - g_print (_("Allowed values for '%s' property: %s\n"), prop_name, avals); - + const char **avals = nmc_setting_get_property_allowed_values (ss, prop_name); + if (avals) { + char *avals_str = nmc_util_strv_for_display (avals, FALSE); + g_print (_("Allowed values for '%s' property: %s\n"), + prop_name, avals_str); + g_free (avals_str); + } cmd_arg_v = nmc_readline (_("Enter '%s' value: "), prop_name); } diff --git a/clients/cli/settings.c b/clients/cli/settings.c index 09916954aa..2dbf3346c6 100644 --- a/clients/cli/settings.c +++ b/clients/cli/settings.c @@ -1601,12 +1601,12 @@ register_nmcli_value_transforms (void) /* Main hash table storing function pointer for manipulating properties */ static GHashTable *nmc_properties = NULL; -typedef char * (*NmcPropertyGetFunc) (NMSetting *); -typedef gboolean (*NmcPropertySetFunc) (NMSetting *, const char *, const char *, GError **); -typedef gboolean (*NmcPropertyRemoveFunc) (NMSetting *, const char *, const char *, guint32, GError **); -typedef const char * (*NmcPropertyDescribeFunc) (NMSetting *, const char *); -typedef const char * (*NmcPropertyValuesFunc) (NMSetting *, const char *); -typedef char * (*NmcPropertyOut2InFunc) (const char *); +typedef char * (*NmcPropertyGetFunc) (NMSetting *); +typedef gboolean (*NmcPropertySetFunc) (NMSetting *, const char *, const char *, GError **); +typedef gboolean (*NmcPropertyRemoveFunc) (NMSetting *, const char *, const char *, guint32, GError **); +typedef const char * (*NmcPropertyDescribeFunc) (NMSetting *, const char *); +typedef const char ** (*NmcPropertyValuesFunc) (NMSetting *, const char *); +typedef char * (*NmcPropertyOut2InFunc) (const char *); typedef struct { NmcPropertyGetFunc get_func; /* func getting property values */ @@ -2151,13 +2151,10 @@ check_and_set_string (NMSetting *setting, } #define DEFINE_ALLOWED_VAL_FUNC(def_func, valid_values) \ - static const char * \ + static const char ** \ def_func (NMSetting *setting, const char *prop) \ { \ - static char *values = NULL; \ - if (G_UNLIKELY (values == NULL)) \ - values = g_strjoinv (", ", (char **) valid_values); \ - return values; \ + return valid_values; \ } /* --- generic property setter functions --- */ @@ -3056,17 +3053,10 @@ nmc_property_bond_describe_options (NMSetting *setting, const char *prop) return desc; } -static const char * +static const char ** nmc_property_bond_allowed_options (NMSetting *setting, const char *prop) { - const char **valid_options; - static char *allowed_vals = NULL; - - if (G_UNLIKELY (allowed_vals == NULL)) { - valid_options = nm_setting_bond_get_valid_options (NM_SETTING_BOND (setting)); - allowed_vals = g_strjoinv (", ", (char **) valid_options); - } - return allowed_vals; + return nm_setting_bond_get_valid_options (NM_SETTING_BOND (setting)); } /* --- NM_SETTING_INFINIBAND_SETTING_NAME property setter functions --- */ @@ -4093,17 +4083,10 @@ DEFINE_REMOVER_OPTION (nmc_property_wired_remove_option_s390_options, NM_SETTING_WIRED, nm_setting_wired_remove_s390_option) -static const char * +static const char ** nmc_property_wired_allowed_s390_options (NMSetting *setting, const char *prop) { - const char **valid_options; - static char *allowed_vals = NULL; - - if (G_UNLIKELY (allowed_vals == NULL)) { - valid_options = nm_setting_wired_get_valid_s390_options (NM_SETTING_WIRED (setting)); - allowed_vals = g_strjoinv (", ", (char **) valid_options); - } - return allowed_vals; + return nm_setting_wired_get_valid_s390_options (NM_SETTING_WIRED (setting)); } static const char * @@ -6496,7 +6479,7 @@ nmc_setting_get_valid_properties (NMSetting *setting) /* * Return allowed values for 'prop' as a string. */ -const char * +const char ** nmc_setting_get_property_allowed_values (NMSetting *setting, const char *prop) { diff --git a/clients/cli/settings.h b/clients/cli/settings.h index 3c4c814fd2..179ef751cf 100644 --- a/clients/cli/settings.h +++ b/clients/cli/settings.h @@ -37,7 +37,7 @@ void nmc_setting_connection_connect_handlers (NMSettingConnection *setting, NMCo char **nmc_setting_get_valid_properties (NMSetting *setting); char *nmc_setting_get_property_desc (NMSetting *setting, const char *prop); -const char *nmc_setting_get_property_allowed_values (NMSetting *setting, const char *prop); +const char **nmc_setting_get_property_allowed_values (NMSetting *setting, const char *prop); char *nmc_setting_get_property (NMSetting *setting, const char *prop, GError **error); |