aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAleksander Morgado <aleksander@aleksander.es>2020-03-24 06:22:34 +0100
committerAleksander Morgado <aleksander@aleksander.es>2020-04-09 12:38:50 +0000
commit1c7304eb718a76dc679b1c08d3e5f0a5cf2d7a2d (patch)
tree23a279e3b41df87030be6db9f4bf05121deea672
parent539562af0181f12343f6ebe2e3ffd44c5efb2fce (diff)
libmm-glib,helpers: allow reading hex strings from match info
-rw-r--r--libmm-glib/mm-common-helpers.c25
-rw-r--r--libmm-glib/mm-common-helpers.h6
2 files changed, 31 insertions, 0 deletions
diff --git a/libmm-glib/mm-common-helpers.c b/libmm-glib/mm-common-helpers.c
index cdb9115c..8e0fc601 100644
--- a/libmm-glib/mm-common-helpers.c
+++ b/libmm-glib/mm-common-helpers.c
@@ -1492,6 +1492,31 @@ mm_get_u64_from_match_info (GMatchInfo *match_info,
}
gboolean
+mm_get_uint_from_hex_match_info (GMatchInfo *match_info,
+ guint32 match_index,
+ guint *out)
+{
+ guint64 num;
+
+ if (!mm_get_u64_from_hex_match_info (match_info, match_index, &num) || num > G_MAXUINT)
+ return FALSE;
+
+ *out = (guint)num;
+ return TRUE;
+}
+
+gboolean
+mm_get_u64_from_hex_match_info (GMatchInfo *match_info,
+ guint32 match_index,
+ guint64 *out)
+{
+ g_autofree gchar *s = NULL;
+
+ s = mm_get_string_unquoted_from_match_info (match_info, match_index);
+ return (s ? mm_get_u64_from_hex_str (s, out) : FALSE);
+}
+
+gboolean
mm_get_double_from_str (const gchar *str,
gdouble *out)
{
diff --git a/libmm-glib/mm-common-helpers.h b/libmm-glib/mm-common-helpers.h
index be9f2bb8..65d0e70a 100644
--- a/libmm-glib/mm-common-helpers.h
+++ b/libmm-glib/mm-common-helpers.h
@@ -164,6 +164,12 @@ gboolean mm_get_uint_from_match_info (GMatchInfo *match_info,
gboolean mm_get_u64_from_match_info (GMatchInfo *match_info,
guint32 match_index,
guint64 *out);
+gboolean mm_get_uint_from_hex_match_info (GMatchInfo *match_info,
+ guint32 match_index,
+ guint *out);
+gboolean mm_get_u64_from_hex_match_info (GMatchInfo *match_info,
+ guint32 match_index,
+ guint64 *out);
gboolean mm_get_double_from_str (const gchar *str,
gdouble *out);
gboolean mm_get_double_from_match_info (GMatchInfo *match_info,