range->displayed_cnt = 0L;
range->displayed_marked_cnt = 0L;
range->displayed_mark_range_cnt=0L;
+ range->displayed_plus_dependents_cnt = 0L;
range->displayed_ignored_cnt = 0L;
range->displayed_ignored_marked_cnt = 0L;
range->displayed_ignored_mark_range_cnt = 0L;
* for example, the case when TShark is doing a one-pass
* read of a file or a live capture.
*/
- if (cfile.ptree_root != NULL) {
+ if (cfile.frames != NULL) {
/* The next for-loop is used to obtain the amount of packets
* to be processed and is used to present the information in
* the Save/Print As widget.
*/
for(framenum = 1; framenum <= cfile.count; framenum++) {
- packet = cap_file_find_fdata(&cfile, framenum);
+ packet = frame_data_sequence_find(cfile.frames, framenum);
if (cfile.current_frame == packet) {
range->selected_packet = framenum;
if (packet->flags.passed_dfilter) {
range->displayed_cnt++;
}
+ if (packet->flags.passed_dfilter ||
+ packet->flags.dependent_of_displayed) {
+ range->displayed_plus_dependents_cnt++;
+ }
if (packet->flags.marked) {
if (packet->flags.ignored) {
range->ignored_marked_cnt++;
}
for(framenum = 1; framenum <= cfile.count; framenum++) {
- packet = cap_file_find_fdata(&cfile, framenum);
+ packet = frame_data_sequence_find(cfile.frames, framenum);
if (framenum >= mark_low &&
framenum <= mark_high)
* for example, the case when TShark is doing a one-pass
* read of a file or a live capture.
*/
- if (cfile.ptree_root != NULL) {
+ if (cfile.frames != NULL) {
for(framenum = 1; framenum <= cfile.count; framenum++) {
- packet = cap_file_find_fdata(&cfile, framenum);
+ packet = frame_data_sequence_find(cfile.frames, framenum);
if (value_is_in_range(range->user_range, framenum)) {
range->user_range_cnt++;
g_assert_not_reached();
}
- /* this packet has to pass the display filter but didn't? -> try next */
- if (range->process_filtered && fdata->flags.passed_dfilter == FALSE) {
+ /* This packet has to pass the display filter but didn't?
+ * Try next, but only if we're not including dependent packets and this
+ * packet happens to be a dependency on something that is displayed.
+ */
+ if ((range->process_filtered && fdata->flags.passed_dfilter == FALSE) &&
+ !(range->include_dependents && fdata->flags.dependent_of_displayed)) {
return range_process_next;
}