diff options
-rw-r--r-- | epan/dissectors/packet-devicenet.c | 18 | ||||
-rw-r--r-- | epan/prefs.c | 6 | ||||
-rw-r--r-- | epan/prefs.h | 1 | ||||
-rw-r--r-- | epan/proto.c | 19 |
4 files changed, 30 insertions, 14 deletions
diff --git a/epan/dissectors/packet-devicenet.c b/epan/dissectors/packet-devicenet.c index 62c5438685..3584c8a70d 100644 --- a/epan/dissectors/packet-devicenet.c +++ b/epan/dissectors/packet-devicenet.c @@ -298,8 +298,7 @@ static gint body_type_8_over_8_dissection(guint8 data_length, proto_tree *device if (data_length > 4) { length = offset-start_offset; - proto_tree_add_bytes_format_value(devicenet_tree, hf_devicenet_data, tvb, offset, length, - NULL, "%s", tvb_bytes_to_str_punct(wmem_packet_scope(), tvb, offset, length, ' ')); + proto_tree_add_item(devicenet_tree, hf_devicenet_data, tvb, offset, length, ENC_NA); offset += length; } return offset; @@ -455,8 +454,7 @@ static int dissect_devicenet(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree message_id = can_id.id & MESSAGE_GROUP_1_MSG_MASK; col_set_str(pinfo->cinfo, COL_INFO, val_to_str_const(message_id, devicenet_grp_msg1_vals, "Other Group 1 Message")); - proto_tree_add_bytes_format_value(devicenet_tree, hf_devicenet_data, tvb, offset, data_length, - NULL, "%s", tvb_bytes_to_str_punct(wmem_packet_scope(), tvb, offset, data_length, ' ')); + proto_tree_add_item(devicenet_tree, hf_devicenet_data, tvb, offset, data_length, ENC_NA); } /* * Message group 2 @@ -488,13 +486,11 @@ static int dissect_devicenet(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree case 0x3: case 0x4: case 0x5: - proto_tree_add_bytes_format_value(content_tree, hf_devicenet_data, tvb, offset, data_length, - NULL, "%s", tvb_bytes_to_str_punct(wmem_packet_scope(), tvb, offset, data_length, ' ')); + proto_tree_add_item(content_tree, hf_devicenet_data, tvb, offset, data_length, ENC_NA); break; case 0x6: - proto_tree_add_bytes_format_value(content_tree, hf_devicenet_data, tvb, offset, data_length, - NULL, "%s", tvb_bytes_to_str_punct(wmem_packet_scope(), tvb, offset, data_length, ' ')); + proto_tree_add_item(content_tree, hf_devicenet_data, tvb, offset, data_length, ENC_NA); break; case 0x7: @@ -646,8 +642,7 @@ static int dissect_devicenet(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree default: if(service_rr & CIP_SC_MASK) { - proto_tree_add_bytes_format_value(devicenet_tree, hf_devicenet_data, tvb, offset, data_length - 2, - NULL, "%s", tvb_bytes_to_str_punct(wmem_packet_scope(), tvb, offset, data_length - 2, ' ')); + proto_tree_add_item(devicenet_tree, hf_devicenet_data, tvb, offset, data_length - 2, ENC_NA); } else { @@ -672,8 +667,7 @@ static int dissect_devicenet(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree body_type_16_over_16_dissection(data_length, content_tree, tvb, pinfo, offset); break; default: - proto_tree_add_bytes_format_value(content_tree, hf_devicenet_data, tvb, offset, data_length, - NULL, "%s", tvb_bytes_to_str_punct(wmem_packet_scope(), tvb, offset, data_length, ' ')); + proto_tree_add_item(content_tree, hf_devicenet_data, tvb, offset, data_length, ENC_NA); break; } } diff --git a/epan/prefs.c b/epan/prefs.c index 2046b0864e..6f7128cf7f 100644 --- a/epan/prefs.c +++ b/epan/prefs.c @@ -2564,6 +2564,11 @@ prefs_register_modules(void) "Display all hidden protocol items in the packet list.", &prefs.display_hidden_proto_items); + prefs_register_bool_preference(protocols_module, "display_byte_fields_with_spaces", + "Display byte fields with a space character between bytes", + "Display all byte fields with a space character between each byte in the packet list.", + &prefs.display_byte_fields_with_spaces); + /* Obsolete preferences * These "modules" were reorganized/renamed to correspond to their GUI * configuration screen within the preferences dialog @@ -3002,6 +3007,7 @@ pre_init_prefs(void) prefs.st_sort_defdescending = TRUE; prefs.st_sort_showfullname = FALSE; prefs.display_hidden_proto_items = FALSE; + prefs.display_byte_fields_with_spaces = FALSE; prefs_pre_initialized = TRUE; } diff --git a/epan/prefs.h b/epan/prefs.h index c45a2a098e..8e77a782c2 100644 --- a/epan/prefs.h +++ b/epan/prefs.h @@ -203,6 +203,7 @@ typedef struct _e_prefs { guint rtp_player_max_visible; guint tap_update_interval; gboolean display_hidden_proto_items; + gboolean display_byte_fields_with_spaces; gpointer filter_expressions;/* Actually points to &head */ gboolean gui_update_enabled; software_update_channel_e gui_update_channel; diff --git a/epan/proto.c b/epan/proto.c index 948928cca0..bc322eff46 100644 --- a/epan/proto.c +++ b/epan/proto.c @@ -4281,7 +4281,15 @@ proto_custom_set(proto_tree* tree, GSList *field_ids, gint occurrence, case BASE_NONE: default: if (bytes) { - char* str = (char*)bytes_to_str(NULL, bytes, fvalue_length(&finfo->value)); + char* str; + if (prefs.display_byte_fields_with_spaces) + { + str = (char*)bytestring_to_str(NULL, bytes, fvalue_length(&finfo->value), ' '); + } + else + { + str = (char*)bytes_to_str(NULL, bytes, fvalue_length(&finfo->value)); + } offset_r += protoo_strlcpy(result+offset_r, str, size-offset_r); wmem_free(NULL, str); } else { @@ -6043,7 +6051,14 @@ proto_item_fill_label(field_info *fi, gchar *label_str) break; case BASE_NONE: default: - str = (char*)bytes_to_str(NULL, bytes, fvalue_length(&fi->value)); + if (prefs.display_byte_fields_with_spaces) + { + str = (char*)bytestring_to_str(NULL, bytes, fvalue_length(&fi->value), ' '); + } + else + { + str = (char*)bytes_to_str(NULL, bytes, fvalue_length(&fi->value)); + } break; } label_fill(label_str, 0, hfinfo, str); |