Add support to display unsigned integer "field type" in hex.

Ping-Bug: 10318
Change-Id: Idb8790681cda901788df10fc1484179001bbb35c
Reviewed-on: https://code.wireshark.org/review/7566
Reviewed-by: Anders Broman <a.broman58@gmail.com>
This commit is contained in:
Michael Mann 2015-03-06 19:43:14 -05:00 committed by Anders Broman
parent 1e3840e40c
commit 082d03d2b7
1 changed files with 20 additions and 5 deletions

View File

@ -225,7 +225,7 @@ sint8_from_unparsed(fvalue_t *fv, const char *s, gboolean allow_partial_value, g
static int
integer_repr_len(fvalue_t *fv _U_, ftrepr_t rtype _U_, int field_display _U_)
{
return 11; /* enough for 12^31-1, in decimal */
return 11; /* enough for 2^31-1, in decimal */
}
static void
@ -243,15 +243,30 @@ integer_to_repr(fvalue_t *fv, ftrepr_t rtype _U_, int field_display _U_, char *b
}
static int
uinteger_repr_len(fvalue_t *fv _U_, ftrepr_t rtype _U_, int field_display _U_)
uinteger_repr_len(fvalue_t *fv _U_, ftrepr_t rtype _U_, int field_display)
{
return 10; /* enough for 2^32-1, in decimal */
if (field_display == BASE_HEX)
{
return 11; /* fits 0x%08x */
}
else
{
return 10; /* enough for 2^32-1, in decimal */
}
}
static void
uinteger_to_repr(fvalue_t *fv, ftrepr_t rtype _U_, int field_display _U_, char *buf)
uinteger_to_repr(fvalue_t *fv, ftrepr_t rtype _U_, int field_display, char *buf)
{
guint32_to_str_buf(fv->value.uinteger, buf, 11);
if (field_display == BASE_HEX)
{
/* This format perfectly fits into 11 bytes. */
sprintf(buf, "0x%08x", fv->value.uinteger);
}
else
{
guint32_to_str_buf(fv->value.uinteger, buf, 11);
}
}
static gboolean