Fix display of bytes as EBCDIC
MSVC compiler does not support properly setting an enum being part of a bit field. For example the following code: pinfo->fd->flags.encoding = PACKET_CHAR_ENC_CHAR_EBCDIC; changes pinfo->fd->flags.encoding from 0x0 to 0xfffffffe instead of 0x1 Let's put back an unsigned int definition (like it is in master-1.12 branch) and add explicit casts where required Bug: 11787 Change-Id: Idae0140fb6c172f1b3dbf10baefc8cfb00128f4c Reviewed-on: https://code.wireshark.org/review/12220 Petri-Dish: Pascal Quantin <pascal.quantin@gmail.com> Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org> Reviewed-by: Pascal Quantin <pascal.quantin@gmail.com>
This commit is contained in:
parent
946222c676
commit
62b03da49a
|
@ -75,7 +75,8 @@ typedef struct _frame_data {
|
|||
struct {
|
||||
unsigned int passed_dfilter : 1; /**< 1 = display, 0 = no display */
|
||||
unsigned int dependent_of_displayed : 1; /**< 1 if a displayed frame depends on this frame */
|
||||
packet_char_enc encoding : 1; /**< Character encoding (ASCII, EBCDIC...) */
|
||||
/* Do NOT use packet_char_enc enum here: MSVC compiler does not handle an enum in a bit field properly */
|
||||
unsigned int encoding : 1; /**< Character encoding (ASCII, EBCDIC...) */
|
||||
unsigned int visited : 1; /**< Has this packet been visited yet? 1=Yes,0=No*/
|
||||
unsigned int marked : 1; /**< 1 = marked by user, 0 = normal */
|
||||
unsigned int ref_time : 1; /**< 1 = marked as a reference time frame, 0 = normal */
|
||||
|
|
|
@ -122,7 +122,7 @@ proto_tree_print(print_args_t *print_args, epan_dissect_t *edt,
|
|||
data.stream = stream;
|
||||
data.success = TRUE;
|
||||
data.src_list = edt->pi.data_src;
|
||||
data.encoding = edt->pi.fd->flags.encoding;
|
||||
data.encoding = (packet_char_enc)edt->pi.fd->flags.encoding;
|
||||
data.print_dissections = print_args->print_dissections;
|
||||
/* If we're printing the entire packet in hex, don't
|
||||
print uninterpreted data fields in hex as well. */
|
||||
|
@ -902,7 +902,7 @@ print_hex_data(print_stream_t *stream, epan_dissect_t *edt)
|
|||
return TRUE;
|
||||
cp = tvb_get_ptr(tvb, 0, length);
|
||||
if (!print_hex_data_buffer(stream, cp, length,
|
||||
edt->pi.fd->flags.encoding))
|
||||
(packet_char_enc)edt->pi.fd->flags.encoding))
|
||||
return FALSE;
|
||||
}
|
||||
return TRUE;
|
||||
|
|
|
@ -999,7 +999,7 @@ packet_hex_print(GtkWidget *bv, const guint8 *pd, frame_data *fd,
|
|||
/* stig: it should be done only for bitview... */
|
||||
if (recent.gui_bytes_view != BYTES_BITS)
|
||||
bmask = 0x00;
|
||||
packet_hex_update(bv, pd, len, bstart, bend, bmask, bmask_le, astart, aend, pstart, pend, fd->flags.encoding);
|
||||
packet_hex_update(bv, pd, len, bstart, bend, bmask, bmask_le, astart, aend, pstart, pend, (packet_char_enc)fd->flags.encoding);
|
||||
}
|
||||
|
||||
void
|
||||
|
@ -1040,7 +1040,7 @@ packet_hex_editor_print(GtkWidget *bv, const guint8 *pd, frame_data *fd, int off
|
|||
g_object_set_data(G_OBJECT(bv), E_BYTE_VIEW_PROTO_START_KEY, GINT_TO_POINTER(pstart));
|
||||
g_object_set_data(G_OBJECT(bv), E_BYTE_VIEW_PROTO_END_KEY, GINT_TO_POINTER(pend));
|
||||
|
||||
packet_hex_update(bv, pd, len, bstart, bend, bmask, bmask_le, astart, aend, pstart, pend, fd->flags.encoding);
|
||||
packet_hex_update(bv, pd, len, bstart, bend, bmask, bmask_le, astart, aend, pstart, pend, (packet_char_enc)fd->flags.encoding);
|
||||
}
|
||||
|
||||
/*
|
||||
|
|
|
@ -83,7 +83,7 @@ PacketDialog::PacketDialog(QWidget &parent, CaptureFile &cf, frame_data *fdata)
|
|||
source = (struct data_source *)src_le->data;
|
||||
source_name = get_data_source_name(source);
|
||||
byte_view_tab_->addTab(source_name, get_data_source_tvb(source), edt_.tree, proto_tree_,
|
||||
cap_file_.capFile()->current_frame->flags.encoding);
|
||||
(packet_char_enc)cap_file_.capFile()->current_frame->flags.encoding);
|
||||
wmem_free(NULL, source_name);
|
||||
}
|
||||
byte_view_tab_->setCurrentIndex(0);
|
||||
|
|
|
@ -475,7 +475,7 @@ void PacketList::selectionChanged (const QItemSelection & selected, const QItemS
|
|||
for (src_le = cap_file_->edt->pi.data_src; src_le != NULL; src_le = src_le->next) {
|
||||
source = (struct data_source *)src_le->data;
|
||||
source_name = get_data_source_name(source);
|
||||
byte_view_tab_->addTab(source_name, get_data_source_tvb(source), cap_file_->edt->tree, proto_tree_, cap_file_->current_frame->flags.encoding);
|
||||
byte_view_tab_->addTab(source_name, get_data_source_tvb(source), cap_file_->edt->tree, proto_tree_, (packet_char_enc)cap_file_->current_frame->flags.encoding);
|
||||
wmem_free(NULL, source_name);
|
||||
}
|
||||
byte_view_tab_->setCurrentIndex(0);
|
||||
|
|
Loading…
Reference in New Issue