summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThomas Haller <thaller@redhat.com>2018-04-27 11:26:47 +0200
committerThomas Haller <thaller@redhat.com>2018-05-14 17:53:03 +0200
commit5975e4a39e81fab9a23db4adc74d531097ac5a41 (patch)
treec2bfbef9d676446a7a477a75646457dae5f28099
parent69d5fc9bcebecde08901b3d03688405758ce63b4 (diff)
cli: add helper methods for implementing NmcMetaGenericInfo's get_fcn()
-rw-r--r--clients/cli/utils.h40
-rw-r--r--po/POTFILES.in1
2 files changed, 41 insertions, 0 deletions
diff --git a/clients/cli/utils.h b/clients/cli/utils.h
index 6c0d1f473..422d4e8e1 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 ed492ba11..941250418 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