shared: add nm_utils_bin2hexstr_a() macro
This commit is contained in:
@@ -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,
|
||||||
|
Reference in New Issue
Block a user