bitfield_byte_length = p - label_str;
/* Fill in the textual info using stored (shifted) value */
- ret = g_snprintf(p, ITEM_LABEL_LENGTH - bitfield_byte_length,
- format, hfinfo->name, value);
+ if (IS_BASE_DUAL(hfinfo->display)) {
+ ret = g_snprintf(p, ITEM_LABEL_LENGTH - bitfield_byte_length,
+ format, hfinfo->name, value, value);
+ } else {
+ ret = g_snprintf(p, ITEM_LABEL_LENGTH - bitfield_byte_length,
+ format, hfinfo->name, value);
+ }
if ((ret == -1) || (ret >= (ITEM_LABEL_LENGTH - bitfield_byte_length)))
label_str[ITEM_LABEL_LENGTH - 1] = '\0';
value = fvalue_get_integer(&fi->value);
/* Fill in the textual info */
- ret = g_snprintf(label_str, ITEM_LABEL_LENGTH,
- format, hfinfo->name, value);
+ if (IS_BASE_DUAL(hfinfo->display)) {
+ ret = g_snprintf(label_str, ITEM_LABEL_LENGTH,
+ format, hfinfo->name, value, value);
+ } else {
+ ret = g_snprintf(label_str, ITEM_LABEL_LENGTH,
+ format, hfinfo->name, value);
+ }
if ((ret == -1) || (ret >= ITEM_LABEL_LENGTH))
label_str[ITEM_LABEL_LENGTH - 1] = '\0';
}
value = fvalue_get_integer64(&fi->value);
/* Fill in the textual info */
- ret = g_snprintf(label_str, ITEM_LABEL_LENGTH,
- format, hfinfo->name, value);
+ if (IS_BASE_DUAL(hfinfo->display)) {
+ ret = g_snprintf(label_str, ITEM_LABEL_LENGTH,
+ format, hfinfo->name, value, value);
+ } else {
+ ret = g_snprintf(label_str, ITEM_LABEL_LENGTH,
+ format, hfinfo->name, value);
+ }
if ((ret == -1) || (ret >= ITEM_LABEL_LENGTH))
label_str[ITEM_LABEL_LENGTH - 1] = '\0';
}
value = fvalue_get_integer(&fi->value);
/* Fill in the textual info */
- ret = g_snprintf(label_str, ITEM_LABEL_LENGTH,
- format, hfinfo->name, value);
+ if (IS_BASE_DUAL(hfinfo->display)) {
+ ret = g_snprintf(label_str, ITEM_LABEL_LENGTH,
+ format, hfinfo->name, value, value);
+ } else {
+ ret = g_snprintf(label_str, ITEM_LABEL_LENGTH,
+ format, hfinfo->name, value);
+ }
if ((ret == -1) || (ret >= ITEM_LABEL_LENGTH))
label_str[ITEM_LABEL_LENGTH - 1] = '\0';
}
value = fvalue_get_integer64(&fi->value);
/* Fill in the textual info */
- ret = g_snprintf(label_str, ITEM_LABEL_LENGTH,
- format, hfinfo->name, value);
+ if (IS_BASE_DUAL(hfinfo->display)) {
+ ret = g_snprintf(label_str, ITEM_LABEL_LENGTH,
+ format, hfinfo->name, value, value);
+ } else {
+ ret = g_snprintf(label_str, ITEM_LABEL_LENGTH,
+ format, hfinfo->name, value);
+ }
if ((ret == -1) || (ret >= ITEM_LABEL_LENGTH))
label_str[ITEM_LABEL_LENGTH - 1] = '\0';
}
switch(hfinfo->display) {
case BASE_DEC:
+ case BASE_DEC_HEX:
format = "%s: %s (%u)";
break;
case BASE_OCT: /* I'm lazy */
format = "%s: %s (%o)";
break;
case BASE_HEX:
+ case BASE_HEX_DEC:
switch(hfinfo->type) {
case FT_UINT8:
format = "%s: %s (0x%02x)";
case BASE_DEC:
format = "%s: %u";
break;
+ case BASE_DEC_HEX:
+ switch(hfinfo->type) {
+ case FT_UINT8:
+ format = "%s: %u (0x%02x)";
+ break;
+ case FT_UINT16:
+ format = "%s: %u (0x%04x)";
+ break;
+ case FT_UINT24:
+ format = "%s: %u (0x%06x)";
+ break;
+ case FT_UINT32:
+ format = "%s: %u (0x%08x)";
+ break;
+ default:
+ DISSECTOR_ASSERT_NOT_REACHED();
+ ;
+ }
+ break;
case BASE_OCT: /* I'm lazy */
format = "%s: %o";
break;
;
}
break;
+ case BASE_HEX_DEC:
+ switch(hfinfo->type) {
+ case FT_UINT8:
+ format = "%s: 0x%02x (%u)";
+ break;
+ case FT_UINT16:
+ format = "%s: 0x%04x (%u)";
+ break;
+ case FT_UINT24:
+ format = "%s: 0x%06x (%u)";
+ break;
+ case FT_UINT32:
+ format = "%s: 0x%08x (%u)";
+ break;
+ default:
+ DISSECTOR_ASSERT_NOT_REACHED();
+ ;
+ }
+ break;
default:
DISSECTOR_ASSERT_NOT_REACHED();
;
switch(hfinfo->display) {
case BASE_DEC:
+ case BASE_DEC_HEX:
format = "%s: %s (%d)";
break;
case BASE_OCT: /* I'm lazy */
format = "%s: %s (%o)";
break;
case BASE_HEX:
+ case BASE_HEX_DEC:
switch(hfinfo->type) {
case FT_INT8:
format = "%s: %s (0x%02x)";
case BASE_DEC:
format = "%s: %" PRIu64;
break;
+ case BASE_DEC_HEX:
+ format = "%s: %" PRIu64 " (%" PRIx64 ")";
+ break;
case BASE_OCT: /* I'm lazy */
format = "%s: %" PRIo64;
break;
case BASE_HEX:
format = "%s: 0x%016" PRIx64;
break;
+ case BASE_HEX_DEC:
+ format = "%s: 0x%016" PRIx64 " (%" PRIu64 ")";
+ break;
default:
DISSECTOR_ASSERT_NOT_REACHED();
;
case BASE_DEC:
format = "%s: %d";
break;
+ case BASE_DEC_HEX:
+ switch(hfinfo->type) {
+ case FT_INT8:
+ format = "%s: %d (0x%02x)";
+ break;
+ case FT_INT16:
+ format = "%s: %d (0x%04x)";
+ break;
+ case FT_INT24:
+ format = "%s: %d (0x%06x)";
+ break;
+ case FT_INT32:
+ format = "%s: %d (0x%08x)";
+ break;
+ default:
+ DISSECTOR_ASSERT_NOT_REACHED();
+ ;
+ }
case BASE_OCT: /* I'm lazy */
format = "%s: %o";
break;
DISSECTOR_ASSERT_NOT_REACHED();
;
}
+ case BASE_HEX_DEC:
+ switch(hfinfo->type) {
+ case FT_INT8:
+ format = "%s: 0x%02x (%d)";
+ break;
+ case FT_INT16:
+ format = "%s: 0x%04x (%d)";
+ break;
+ case FT_INT24:
+ format = "%s: 0x%06x (%d)";
+ break;
+ case FT_INT32:
+ format = "%s: 0x%08x (%d)";
+ break;
+ default:
+ DISSECTOR_ASSERT_NOT_REACHED();
+ ;
+ }
break;
default:
DISSECTOR_ASSERT_NOT_REACHED();
case BASE_DEC:
format = "%s: %" PRId64;
break;
+ case BASE_DEC_HEX:
+ format = "%s: %" PRId64 " (%" PRIx64 ")";
+ break;
case BASE_OCT: /* I'm lazy */
format = "%s: %" PRIo64;
break;
case BASE_HEX:
format = "%s: 0x%016" PRIx64;
break;
+ case BASE_HEX_DEC:
+ format = "%s: 0x%016" PRIx64 " (%" PRId64 ")";
+ break;
default:
DISSECTOR_ASSERT_NOT_REACHED();
;
case BASE_OCT:
base_name = "BASE_OCT";
break;
+ case BASE_DEC_HEX:
+ base_name = "BASE_DEC_HEX";
+ break;
+ case BASE_HEX_DEC:
+ base_name = "BASE_HEX_DEC";
+ break;
}
}
}
/* Pick the proper format string */
switch(hfinfo->display) {
case BASE_DEC:
+ case BASE_DEC_HEX:
case BASE_OCT: /* I'm lazy */
switch(hfinfo->type) {
case FT_UINT8:
}
break;
case BASE_HEX:
+ case BASE_HEX_DEC:
switch(hfinfo->type) {
case FT_UINT8:
format = "%s == 0x%02x";