diff options
-rw-r--r-- | file.c | 8 | ||||
-rw-r--r-- | gtk/print_dlg.c | 18 | ||||
-rw-r--r-- | print.h | 7 | ||||
-rw-r--r-- | tethereal.c | 3 |
4 files changed, 29 insertions, 7 deletions
@@ -1,7 +1,7 @@ /* file.c * File I/O routines * - * $Id: file.c,v 1.242 2001/07/05 00:34:38 guy Exp $ + * $Id: file.c,v 1.243 2001/07/17 05:32:42 hagbard Exp $ * * Ethereal - Network traffic analyzer * By Gerald Combs <gerald@ethereal.com> @@ -1181,8 +1181,10 @@ print_packets(capture_file *cf, print_args_t *print_args) } count++; - - if (fdata->flags.passed_dfilter) { + /* Check to see if we are suppressing unmarked packets, if so, + * suppress them and then proceed to check for visibility. + */ + if (((print_args->suppress_unmarked && fdata->flags.marked ) || !(print_args->suppress_unmarked)) && fdata->flags.passed_dfilter) { wtap_seek_read (cf->wth, fdata->file_off, &cf->pseudo_header, cf->pd, fdata->cap_len); if (print_args->print_summary) { diff --git a/gtk/print_dlg.c b/gtk/print_dlg.c index 5804a41bc0..b1dc1c1b94 100644 --- a/gtk/print_dlg.c +++ b/gtk/print_dlg.c @@ -1,7 +1,7 @@ /* print_dlg.c * Dialog boxes for printing * - * $Id: print_dlg.c,v 1.23 2001/06/08 08:50:51 guy Exp $ + * $Id: print_dlg.c,v 1.24 2001/07/17 05:32:44 hagbard Exp $ * * Ethereal - Network traffic analyzer * By Gerald Combs <gerald@ethereal.com> @@ -67,6 +67,7 @@ static gint print_format = PR_FMT_TEXT; #define PRINT_HEX_CB_KEY "printer_hex_check_button" #define PRINT_EXPAND_ALL_RB_KEY "printer_expand_all_radio_button" #define PRINT_AS_DISPLAYED_RB_KEY "printer_as_displayed_radio_button" +#define PRINT_SUPPRESS_UNMARKED_CB_KEY "printer_suppress_unmarked_check_button" #define E_FS_CALLER_PTR_KEY "fs_caller_ptr" #define E_FILE_SEL_DIALOG_PTR_KEY "file_sel_dialog_ptr" @@ -93,7 +94,7 @@ file_print_cmd_cb(GtkWidget *widget, gpointer data) GtkWidget *file_bt_hb, *file_bt, *file_te; GSList *dest_grp; GtkWidget *options_hb; - GtkWidget *print_type_vb, *summary_rb, *detail_rb, *hex_cb; + GtkWidget *print_type_vb, *summary_rb, *detail_rb, *hex_cb,*marked_cb; GSList *summary_grp; GtkWidget *expand_vb, *expand_all_rb, *as_displayed_rb; GSList *expand_grp; @@ -251,6 +252,13 @@ file_print_cmd_cb(GtkWidget *widget, gpointer data) gtk_container_add(GTK_CONTAINER(print_type_vb), hex_cb); gtk_widget_show(hex_cb); + /* "Suppress Unmarked" check button. */ + marked_cb = dlg_check_button_new_with_label_with_mnemonic("Suppress _unmarked frames", + accel_group); + gtk_toggle_button_set_state(GTK_TOGGLE_BUTTON(marked_cb), FALSE); + gtk_container_add(GTK_CONTAINER(print_type_vb), marked_cb); + gtk_widget_show(marked_cb); + /* Vertical box into which to put the "Expand all levels"/"Print as displayed" radio buttons. */ expand_vb = gtk_vbox_new(FALSE, 5); @@ -293,6 +301,7 @@ file_print_cmd_cb(GtkWidget *widget, gpointer data) gtk_object_set_data(GTK_OBJECT(ok_bt), PRINT_SUMMARY_RB_KEY, summary_rb); gtk_object_set_data(GTK_OBJECT(ok_bt), PRINT_HEX_CB_KEY, hex_cb); gtk_object_set_data(GTK_OBJECT(ok_bt), PRINT_EXPAND_ALL_RB_KEY, expand_all_rb); + gtk_object_set_data(GTK_OBJECT(ok_bt), PRINT_SUPPRESS_UNMARKED_CB_KEY, marked_cb); gtk_signal_connect(GTK_OBJECT(ok_bt), "clicked", GTK_SIGNAL_FUNC(print_ok_cb), GTK_OBJECT(print_w)); GTK_WIDGET_SET_FLAGS(ok_bt, GTK_CAN_DEFAULT); @@ -490,6 +499,10 @@ print_ok_cb(GtkWidget *ok_bt, gpointer parent_w) PRINT_EXPAND_ALL_RB_KEY); print_args.expand_all = GTK_TOGGLE_BUTTON (button)->active; + button = (GtkWidget *) gtk_object_get_data(GTK_OBJECT(ok_bt), + PRINT_SUPPRESS_UNMARKED_CB_KEY); + print_args.suppress_unmarked = GTK_TOGGLE_BUTTON (button)->active; + gtk_widget_destroy(GTK_WIDGET(parent_w)); /* Now print the packets */ @@ -575,6 +588,7 @@ file_print_packet_cmd_cb(GtkWidget *widget, gpointer data) { print_args.print_summary = FALSE; print_args.print_hex = FALSE; print_args.expand_all = TRUE; + print_args.suppress_unmarked = FALSE; proto_tree_print(TRUE, &print_args, (GNode*) cfile.protocol_tree, cfile.current_frame, fh); print_finale(fh, prefs.pr_format); @@ -1,7 +1,7 @@ /* print.h * Definitions for printing packet analysis trees. * - * $Id: print.h,v 1.22 2001/06/08 08:50:49 guy Exp $ + * $Id: print.h,v 1.23 2001/07/17 05:32:43 hagbard Exp $ * * Gilbert Ramirez <gram@xiexie.org> * @@ -43,6 +43,11 @@ typedef struct { FALSE if we should print only if not dissected. */ gboolean expand_all; /* TRUE if we should expand all levels; FALSE if we should expand as displayed. */ + gboolean suppress_unmarked; /* TRUE if we should suppress unmarked + frames FALSE if we should allow + both marked and unmarked frames to be + printed. + */ } print_args_t; /* Functions in print.h */ diff --git a/tethereal.c b/tethereal.c index 4469900372..66b168dac5 100644 --- a/tethereal.c +++ b/tethereal.c @@ -1,6 +1,6 @@ /* tethereal.c * - * $Id: tethereal.c,v 1.87 2001/07/05 00:34:39 guy Exp $ + * $Id: tethereal.c,v 1.88 2001/07/17 05:32:43 hagbard Exp $ * * Ethereal - Network traffic analyzer * By Gerald Combs <gerald@ethereal.com> @@ -1172,6 +1172,7 @@ wtap_dispatch_cb_print(u_char *user, const struct wtap_pkthdr *phdr, int offset, print_args.print_summary = FALSE; print_args.print_hex = print_hex; print_args.expand_all = TRUE; + print_args.suppress_unmarked = FALSE; proto_tree_print(FALSE, &print_args, (GNode *)protocol_tree, &fdata, stdout); if (!print_hex) { |