Instead of a plain integer. This updates integer_type_print() to look up some basefmt in the change of datatype, the first we find will be used to format the output. Signed-off-by: Pablo Neira Ayuso <pablo@xxxxxxxxxxxxx> --- src/datatype.c | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/src/datatype.c b/src/datatype.c index f93337b..82a7753 100644 --- a/src/datatype.c +++ b/src/datatype.c @@ -260,15 +260,22 @@ const struct datatype bitmask_type = { .type = TYPE_BITMASK, .name = "bitmask", .desc = "bitmask", + .basefmt = "0x%Zx", .basetype = &integer_type, }; static void integer_type_print(const struct expr *expr) { + const struct datatype *dtype = expr->dtype; const char *fmt = "%Zu"; - if (expr->dtype->basefmt != NULL) - fmt = expr->dtype->basefmt; + do { + if (dtype->basefmt != NULL) { + fmt = dtype->basefmt; + break; + } + } while ((dtype = dtype->basetype)); + gmp_printf(fmt, expr->value); } -- 1.7.10.4 -- To unsubscribe from this list: send the line "unsubscribe netfilter-devel" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html