shared: add nm_utils_bin2hexstr_a() macro

This commit is contained in:
Thomas Haller
2020-08-10 18:59:03 +02:00
parent 265a5879ae
commit aed61588fd

View File

@@ -1974,6 +1974,31 @@ char *nm_utils_bin2hexstr_full (gconstpointer addr,
gboolean upper_case, gboolean upper_case,
char *out); char *out);
#define nm_utils_bin2hexstr_a(addr, length, delimiter, upper_case, str_to_free) \
({ \
gconstpointer _addr = (addr); \
gsize _length = (length); \
char _delimiter = (delimiter); \
char **_str_to_free = (str_to_free); \
char *_s; \
gsize _s_len; \
\
nm_assert (_str_to_free); \
\
_s_len = _length == 0 \
? 1u \
: ( _delimiter == '\0' \
? _length * 2u + 1u \
: _length * 3u); \
if (_s_len < 100) \
_s = g_alloca (_s_len); \
else { \
_s = g_malloc (_s_len); \
*_str_to_free = _s; \
} \
nm_utils_bin2hexstr_full (_addr, _length, _delimiter, (upper_case), _s); \
})
guint8 *nm_utils_hexstr2bin_full (const char *hexstr, guint8 *nm_utils_hexstr2bin_full (const char *hexstr,
gboolean allow_0x_prefix, gboolean allow_0x_prefix,
gboolean delimiter_required, gboolean delimiter_required,