PacketListRecord *record;
guint vis_idx;
- frame_data fdata;
- memset (&fdata, 0, sizeof fdata);
-
- nstime_set_zero(&fdata.abs_ts);
- nstime_set_zero(&fdata.rel_ts);
- nstime_set_zero(&fdata.del_cap_ts);
- nstime_set_zero(&fdata.del_dis_ts);
+ guint widest_packet = 0;
+ gint widest_column_len = -1;
for(vis_idx = 0; vis_idx < PACKET_LIST_RECORD_COUNT(packet_list->visible_rows); ++vis_idx) {
- record = PACKET_LIST_RECORD_GET(packet_list->visible_rows, vis_idx);
- switch (cfile.cinfo.col_fmt[col]) {
+ gint column_len;
- case COL_NUMBER:
- if (record->fdata->num > fdata.num)
- fdata.num = record->fdata->num;
- break;
- case COL_PACKET_LENGTH:
- if (record->fdata->pkt_len > fdata.pkt_len)
- fdata.pkt_len = record->fdata->pkt_len;
- break;
- case COL_CUMULATIVE_BYTES:
- if (record->fdata->cum_bytes > fdata.cum_bytes)
- fdata.cum_bytes = record->fdata->cum_bytes;
- break;
- case COL_ABS_TIME:
- case COL_ABS_DATE_TIME:
- case COL_UTC_TIME:
- case COL_UTC_DATE_TIME:
- if (nstime_cmp(&record->fdata->abs_ts, &fdata.abs_ts) > 0)
- fdata.abs_ts = record->fdata->abs_ts;
- break;
- case COL_REL_TIME:
- if (nstime_cmp(&record->fdata->rel_ts, &fdata.rel_ts) > 0)
- fdata.rel_ts = record->fdata->rel_ts;
- break;
- case COL_DELTA_TIME:
- if (nstime_cmp(&record->fdata->del_cap_ts, &fdata.del_cap_ts) > 0)
- fdata.del_cap_ts = record->fdata->del_cap_ts;
- break;
- case COL_DELTA_TIME_DIS:
- if (nstime_cmp(&record->fdata->del_dis_ts, &fdata.del_dis_ts) > 0)
- fdata.del_dis_ts = record->fdata->del_dis_ts;
- break;
- case COL_CLS_TIME:
- switch (timestamp_get_type()) {
- case TS_ABSOLUTE:
- case TS_ABSOLUTE_WITH_DATE:
- case TS_UTC:
- case TS_UTC_WITH_DATE:
- if (nstime_cmp(&record->fdata->abs_ts, &fdata.abs_ts) > 0)
- fdata.abs_ts = record->fdata->abs_ts;
- break;
-
- case TS_RELATIVE:
- if (nstime_cmp(&record->fdata->rel_ts, &fdata.rel_ts) > 0)
- fdata.rel_ts = record->fdata->rel_ts;
- break;
-
- case TS_DELTA:
- if (nstime_cmp(&record->fdata->del_cap_ts, &fdata.del_cap_ts) > 0)
- fdata.del_cap_ts = record->fdata->del_cap_ts;
- break;
-
- case TS_DELTA_DIS:
- if (nstime_cmp(&record->fdata->del_dis_ts, &fdata.del_dis_ts) > 0)
- fdata.del_dis_ts = record->fdata->del_dis_ts;
- break;
-
- case TS_EPOCH:
- if (nstime_cmp(&record->fdata->abs_ts, &fdata.abs_ts) > 0)
- fdata.abs_ts = record->fdata->abs_ts;
- break;
-
- case TS_NOT_SET:
- /* code is missing for this case, but I don't know which [jmayer20051219] */
- g_assert_not_reached();
- break;
- }
- break;
+ record = PACKET_LIST_RECORD_GET(packet_list->visible_rows, vis_idx);
- default:
- g_assert_not_reached();
+ col_fill_in_frame_data(record->fdata, &cfile.cinfo, col, FALSE);
+ column_len = (gint) strlen(cfile.cinfo.col_buf[col]);
+ if (column_len > widest_column_len) {
+ widest_column_len = column_len;
+ widest_packet = vis_idx;
}
}
- col_fill_in_frame_data(&fdata, &cfile.cinfo, col, FALSE);
+ if (widest_column_len != -1) {
+ record = PACKET_LIST_RECORD_GET(packet_list->visible_rows, widest_packet);
+ col_fill_in_frame_data(record->fdata, &cfile.cinfo, col, FALSE);
- return cfile.cinfo.col_buf[col];
+ return cfile.cinfo.col_buf[col];
+ } else
+ return "";
}
else {
PacketListRecord *record;