diff options
author | Thomas Haller <thaller@redhat.com> | 2018-04-27 11:26:47 +0200 |
---|---|---|
committer | Thomas Haller <thaller@redhat.com> | 2018-05-14 17:53:03 +0200 |
commit | 5975e4a39e81fab9a23db4adc74d531097ac5a41 (patch) | |
tree | c2bfbef9d676446a7a477a75646457dae5f28099 | |
parent | 69d5fc9bcebecde08901b3d03688405758ce63b4 (diff) | |
download | NetworkManager-5975e4a39e81fab9a23db4adc74d531097ac5a41.tar.gz |
cli: add helper methods for implementing NmcMetaGenericInfo's get_fcn()
-rw-r--r-- | clients/cli/utils.h | 40 | ||||
-rw-r--r-- | po/POTFILES.in | 1 |
2 files changed, 41 insertions, 0 deletions
diff --git a/clients/cli/utils.h b/clients/cli/utils.h index 6c0d1f4735..422d4e8e1d 100644 --- a/clients/cli/utils.h +++ b/clients/cli/utils.h @@ -165,6 +165,46 @@ struct _NmcMetaGenericInfo { NULL, \ })) +static inline const char * +nmc_meta_generic_get_str_i18n (const char *s, NMMetaAccessorGetType get_type) +{ + if (!NM_IN_SET (get_type, NM_META_ACCESSOR_GET_TYPE_PRETTY, + NM_META_ACCESSOR_GET_TYPE_PARSABLE)) + g_return_val_if_reached (NULL); + + if (!s) + return NULL; + if (get_type == NM_META_ACCESSOR_GET_TYPE_PRETTY) + return gettext (s); + return s; +} + +static inline const char * +nmc_meta_generic_get_bool (gboolean val, NMMetaAccessorGetType get_type) +{ + return nmc_meta_generic_get_str_i18n (val ? N_("yes") : N_("no"), get_type); +} + +static inline char * +nmc_meta_generic_get_enum_with_detail (gint64 enum_val, const char *str_val, NMMetaAccessorGetType get_type) +{ + if (!NM_IN_SET (get_type, NM_META_ACCESSOR_GET_TYPE_PRETTY, + NM_META_ACCESSOR_GET_TYPE_PARSABLE)) + g_return_val_if_reached (NULL); + + if (!str_val) { + /* Pass %NULL for only printing the numeric value. */ + return g_strdup_printf ("%lld", (long long) enum_val); + } + + /* note that this function will always print "$NUM ($NICK)", also in PARSABLE + * mode. That might not be desired, but it's done for certain properties to preserve + * previous behavior. */ + if (get_type == NM_META_ACCESSOR_GET_TYPE_PRETTY) + return g_strdup_printf (_("%lld (%s)"), (long long) enum_val, gettext (str_val)); + return g_strdup_printf ("%lld (%s)", (long long) enum_val, str_val); +} + /*****************************************************************************/ gboolean nmc_print (const NmcConfig *nmc_config, diff --git a/po/POTFILES.in b/po/POTFILES.in index ed492ba11e..941250418b 100644 --- a/po/POTFILES.in +++ b/po/POTFILES.in @@ -10,6 +10,7 @@ clients/cli/nmcli.c clients/cli/polkit-agent.c clients/cli/settings.c clients/cli/utils.c +clients/cli/utils.h clients/common/nm-client-utils.c clients/common/nm-meta-setting-access.c clients/common/nm-meta-setting-desc.c |