aboutsummaryrefslogtreecommitdiffstats
path: root/epan/dissectors/packet-x11.c
diff options
context:
space:
mode:
Diffstat (limited to 'epan/dissectors/packet-x11.c')
-rw-r--r--epan/dissectors/packet-x11.c24
1 files changed, 12 insertions, 12 deletions
diff --git a/epan/dissectors/packet-x11.c b/epan/dissectors/packet-x11.c
index e4a9c77614..c6b428294b 100644
--- a/epan/dissectors/packet-x11.c
+++ b/epan/dissectors/packet-x11.c
@@ -1786,35 +1786,35 @@ static void listOfKeycode(tvbuff_t *tvb, int *offsetp, proto_tree *t, int hf,
int *modifiermap[], int keycodes_per_modifier,
gboolean little_endian)
{
- char buffer[1024];
proto_item *ti = proto_tree_add_item(t, hf, tvb, *offsetp,
- array_length(modifiers) * keycodes_per_modifier, little_endian);
-
+ array_length(modifiers) * keycodes_per_modifier, little_endian);
proto_tree *tt = proto_item_add_subtree(ti, ett_x11_list_of_keycode);
size_t m;
for (m = 0; m < array_length(modifiers);
++m, *offsetp += keycodes_per_modifier) {
const guint8 *p;
- char *bp = buffer;
+ proto_item *tikc;
+ char *sep = ": ";
int i;
p = tvb_get_ptr(tvb, *offsetp, keycodes_per_modifier);
- modifiermap[m] =
- g_malloc(sizeof(*modifiermap[m]) * keycodes_per_modifier);
+ modifiermap[m] =
+ g_malloc(sizeof(*modifiermap[m]) * keycodes_per_modifier);
+ tikc = proto_tree_add_bytes_format(tt, hf_x11_keycodes_item, tvb,
+ *offsetp, keycodes_per_modifier, p,
+ "Keycode list for %s", modifiers[m]);
for(i = 0; i < keycodes_per_modifier; ++i) {
guchar c = p[i];
- if (c)
- bp += sprintf(bp, " %s=%d", modifiers[m], c);
+ if (c) {
+ proto_item_append_text(tikc, "%s%u", sep, c);
+ sep = ", ";
+ }
modifiermap[m][i] = c;
}
-
- proto_tree_add_bytes_format(tt, hf_x11_keycodes_item, tvb,
- *offsetp, keycodes_per_modifier, p,
- "item: %s", buffer);
}
}