aboutsummaryrefslogtreecommitdiffstats
path: root/gtk
diff options
context:
space:
mode:
Diffstat (limited to 'gtk')
-rw-r--r--gtk/color_dlg.c10
-rw-r--r--gtk/colors.c14
-rw-r--r--gtk/colors.h6
-rw-r--r--gtk/dfilter_expr_dlg.c94
-rw-r--r--gtk/file_dlg.c8
-rw-r--r--gtk/find_dlg.c8
-rw-r--r--gtk/help_dlg.c4
-rw-r--r--gtk/main.c190
-rw-r--r--gtk/packet_win.c3
9 files changed, 37 insertions, 300 deletions
diff --git a/gtk/color_dlg.c b/gtk/color_dlg.c
index 672c5cbb2f..7b06dca3bb 100644
--- a/gtk/color_dlg.c
+++ b/gtk/color_dlg.c
@@ -1,7 +1,7 @@
/* color_dlg.c
* Definitions for dialog boxes for color filters
*
- * $Id: color_dlg.c,v 1.8 2000/08/24 13:21:29 deniel Exp $
+ * $Id: color_dlg.c,v 1.9 2001/02/01 20:21:21 gram Exp $
*
* Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@zing.org>
@@ -43,7 +43,7 @@
#include "colors.h"
#include "color_dlg.h"
#include "file.h"
-#include "dfilter.h"
+#include "dfilter/dfilter.h"
#include "simple_dialog.h"
#include "dlg_utils.h"
#include "ui_util.h"
@@ -884,7 +884,7 @@ edit_color_filter_ok_cb (GtkButton *button,
gchar *filter_name;
gchar *filter_text;
color_filter_t *colorf;
- dfilter *compiled_filter;
+ dfilter_t *compiled_filter;
GtkWidget *color_filters;
dialog = (GtkWidget *)user_data;
@@ -904,7 +904,7 @@ edit_color_filter_ok_cb (GtkButton *button,
return;
}
- if(dfilter_compile(filter_text, &compiled_filter) != 0 ){
+ if(!dfilter_compile(filter_text, &compiled_filter)) {
simple_dialog(ESD_TYPE_CRIT, NULL, "Filter \"%s\" did not compile correctly.\n"
" Please try again. Filter unchanged.\n%s\n", filter_name,
dfilter_error_msg);
@@ -927,7 +927,7 @@ edit_color_filter_ok_cb (GtkButton *button,
gtk_clist_set_background(GTK_CLIST(color_filters),
cfile.colors->row_selected, &new_bg_color);
if(colorf->c_colorfilter != NULL)
- dfilter_destroy(colorf->c_colorfilter);
+ dfilter_free(colorf->c_colorfilter);
colorf->c_colorfilter = compiled_filter;
/* gtk_clist_set_text frees old text (if any) and allocates new space */
gtk_clist_set_text(GTK_CLIST(color_filters),
diff --git a/gtk/colors.c b/gtk/colors.c
index 44da72220a..6bbfe41ff3 100644
--- a/gtk/colors.c
+++ b/gtk/colors.c
@@ -1,7 +1,7 @@
/* colors.c
* Definitions for color structures and routines
*
- * $Id: colors.c,v 1.6 2000/09/28 03:16:29 gram Exp $
+ * $Id: colors.c,v 1.7 2001/02/01 20:21:21 gram Exp $
*
* Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@zing.org>
@@ -44,7 +44,7 @@
#include "packet.h"
#include "colors.h"
#include "file.h"
-#include "dfilter.h"
+#include "dfilter/dfilter.h"
#include "simple_dialog.h"
#include "util.h"
@@ -120,8 +120,8 @@ colfilter_new(void)
default_colors[i].proto);
colorf->bg_color = color;
- if (dfilter_compile(default_colors[i].proto,
- &colorf->c_colorfilter) != 0) {
+ if (!dfilter_compile(default_colors[i].proto,
+ &colorf->c_colorfilter)) {
simple_dialog(ESD_TYPE_WARN, NULL,
"Cannot compile default color filter %s.\n%s",
default_colors[i].proto, dfilter_error_msg);
@@ -158,7 +158,7 @@ delete_color_filter(color_filter_t *colorf)
if (colorf->filter_text != NULL)
g_free(colorf->filter_text);
if (colorf->c_colorfilter != NULL)
- dfilter_destroy(colorf->c_colorfilter);
+ dfilter_free(colorf->c_colorfilter);
filter_list = g_slist_remove(filter_list, colorf);
g_free(colorf);
}
@@ -177,7 +177,7 @@ read_filters(colfilter *filter)
FILE *f;
gchar *path;
gchar *fname = PF_DIR "/colorfilters";
- dfilter *temp_dfilter;
+ dfilter_t *temp_dfilter;
/* decide what file to open (from dfilter code) */
@@ -217,7 +217,7 @@ read_filters(colfilter *filter)
name, filter_exp, &bg_r, &bg_g, &bg_b, &fg_r, &fg_g, &fg_b) == 8){
/* we got a filter */
- if(dfilter_compile(filter_exp, &temp_dfilter) != 0){
+ if(!dfilter_compile(filter_exp, &temp_dfilter)) {
simple_dialog(ESD_TYPE_CRIT, NULL,
"Could not compile color filter %s from saved filters.\n%s",
name, dfilter_error_msg);
diff --git a/gtk/colors.h b/gtk/colors.h
index 8294e361b8..9c15030837 100644
--- a/gtk/colors.h
+++ b/gtk/colors.h
@@ -1,7 +1,7 @@
/* colors.h
* Definitions for color structures and routines
*
- * $Id: colors.h,v 1.3 2000/08/11 13:33:00 deniel Exp $
+ * $Id: colors.h,v 1.4 2001/02/01 20:21:21 gram Exp $
*
* Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@zing.org>
@@ -26,7 +26,7 @@
#define __COLORS_H__
#include "proto.h"
-#include "dfilter.h"
+#include "dfilter/dfilter.h"
#include <gtk/gtk.h>
#define MAXCOLORS 255
@@ -45,7 +45,7 @@ typedef struct _color_filter {
gchar *filter_text; /* text of the filter expression */
GdkColor bg_color; /* background color for packets that match */
GdkColor fg_color; /* foreground color for packets that match */
- dfilter *c_colorfilter; /* compiled filter expression */
+ dfilter_t *c_colorfilter; /* compiled filter expression */
GtkWidget *edit_dialog; /* if filter is being edited, dialog box for it */
} color_filter_t;
diff --git a/gtk/dfilter_expr_dlg.c b/gtk/dfilter_expr_dlg.c
index 657d01649c..97461259a1 100644
--- a/gtk/dfilter_expr_dlg.c
+++ b/gtk/dfilter_expr_dlg.c
@@ -7,7 +7,7 @@
* Copyright 2000, Jeffrey C. Foster<jfoste@woodward.com> and
* Guy Harris <guy@alum.mit.edu>
*
- * $Id: dfilter_expr_dlg.c,v 1.5 2001/01/10 23:36:35 guy Exp $
+ * $Id: dfilter_expr_dlg.c,v 1.6 2001/02/01 20:21:21 gram Exp $
*
* Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@zing.org>
@@ -139,7 +139,7 @@ field_select_row_cb(GtkWidget *tree, GList *node, gint column,
E_DFILTER_EXPR_ACCEPT_BT_KEY);
header_field_info *hfinfo, *cur_hfinfo;
guint32 relations;
- char *value_type;
+ const char *value_type;
char value_label_string[1024+1]; /* XXX - should be large enough */
hfinfo = gtk_ctree_node_get_row_data(GTK_CTREE(tree),
@@ -246,95 +246,7 @@ field_select_row_cb(GtkWidget *tree, GList *node, gint column,
* Set the label for the value to indicate what type of value
* it is.
*/
- switch (hfinfo->type) {
-
- case FT_NONE:
- /*
- * You can only test for the field's presence; hide
- * the value stuff.
- */
- value_type = NULL;
- break;
-
- case FT_BOOLEAN:
- value_type = "Boolean";
- break;
-
- case FT_UINT8:
- value_type = "unsigned, byte";
- break;
-
- case FT_UINT16:
- value_type = "unsigned, 2 bytes";
- break;
-
- case FT_UINT24:
- value_type = "unsigned, 3 bytes";
- break;
-
- case FT_UINT32:
- value_type = "unsigned, 4 bytes";
- break;
-
- case FT_INT8:
- value_type = "signed, byte";
- break;
-
- case FT_INT16:
- value_type = "signed, 2 bytes";
- break;
-
- case FT_INT24:
- value_type = "signed, 3 bytes";
- break;
-
- case FT_INT32:
- value_type = "signed, 4 bytes";
- break;
-
- case FT_DOUBLE:
- value_type = "floating point";
- break;
-
- case FT_ABSOLUTE_TIME:
- value_type = "date and time";
- break;
-
- case FT_RELATIVE_TIME:
- value_type = "time";
- break;
-
- case FT_STRING:
- case FT_STRINGZ:
- case FT_UINT_STRING:
- value_type = "character string";
- break;
-
- case FT_ETHER:
- value_type = "Ethernet or other MAC address";
- break;
-
- case FT_BYTES:
- value_type = "sequence of bytes";
- break;
-
- case FT_IPv4:
- value_type = "IPv4 address";
- break;
-
- case FT_IPv6:
- value_type = "IPv6 address";
- break;
-
- case FT_IPXNET:
- value_type = "IPX network address";
- break;
-
- default:
- g_assert_not_reached();
- value_type = NULL;
- break;
- }
+ value_type = ftype_pretty_name(hfinfo->type);
if (value_type != NULL) {
/*
* Indicate what type of value it is.
diff --git a/gtk/file_dlg.c b/gtk/file_dlg.c
index 757df42631..fab7d1f42d 100644
--- a/gtk/file_dlg.c
+++ b/gtk/file_dlg.c
@@ -1,7 +1,7 @@
/* file_dlg.c
* Dialog boxes for handling files
*
- * $Id: file_dlg.c,v 1.35 2001/01/21 02:27:24 guy Exp $
+ * $Id: file_dlg.c,v 1.36 2001/02/01 20:21:21 gram Exp $
*
* Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@zing.org>
@@ -149,13 +149,13 @@ static void
file_open_ok_cb(GtkWidget *w, GtkFileSelection *fs) {
gchar *cf_name, *rfilter, *s;
GtkWidget *filter_te, *resolv_cb;
- dfilter *rfcode = NULL;
+ dfilter_t *rfcode = NULL;
int err;
cf_name = g_strdup(gtk_file_selection_get_filename(GTK_FILE_SELECTION (fs)));
filter_te = gtk_object_get_data(GTK_OBJECT(w), E_RFILTER_TE_KEY);
rfilter = gtk_entry_get_text(GTK_ENTRY(filter_te));
- if (dfilter_compile(rfilter, &rfcode) != 0) {
+ if (!dfilter_compile(rfilter, &rfcode)) {
simple_dialog(ESD_TYPE_CRIT, NULL, dfilter_error_msg);
return;
}
@@ -178,7 +178,7 @@ file_open_ok_cb(GtkWidget *w, GtkFileSelection *fs) {
dismiss the alert box popped up for the open error,
try again. */
if (rfcode != NULL)
- dfilter_destroy(rfcode);
+ dfilter_free(rfcode);
g_free(cf_name);
return;
}
diff --git a/gtk/find_dlg.c b/gtk/find_dlg.c
index 9203899baf..18b827f8f5 100644
--- a/gtk/find_dlg.c
+++ b/gtk/find_dlg.c
@@ -1,7 +1,7 @@
/* find_dlg.c
* Routines for "find frame" window
*
- * $Id: find_dlg.c,v 1.18 2001/01/21 02:27:24 guy Exp $
+ * $Id: find_dlg.c,v 1.19 2001/02/01 20:21:21 gram Exp $
*
* Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@zing.org>
@@ -37,7 +37,7 @@
#include <glib.h>
#include "proto.h"
-#include "dfilter.h"
+#include "dfilter/dfilter.h"
#include "globals.h"
#include "ui_util.h"
@@ -187,7 +187,7 @@ find_frame_ok_cb(GtkWidget *ok_bt, gpointer parent_w)
{
GtkWidget *filter_te, *backward_rb;
gchar *filter_text;
- dfilter *sfcode;
+ dfilter_t *sfcode;
filter_te = (GtkWidget *) gtk_object_get_data(GTK_OBJECT(parent_w), E_FIND_FILT_KEY);
backward_rb = (GtkWidget *) gtk_object_get_data(GTK_OBJECT(parent_w), E_FIND_BACKWARD_KEY);
@@ -197,7 +197,7 @@ find_frame_ok_cb(GtkWidget *ok_bt, gpointer parent_w)
/*
* Try to compile the filter.
*/
- if (dfilter_compile(filter_text, &sfcode) != 0) {
+ if (!dfilter_compile(filter_text, &sfcode)) {
/* The attempt failed; report an error. */
simple_dialog(ESD_TYPE_CRIT, NULL, dfilter_error_msg);
return;
diff --git a/gtk/help_dlg.c b/gtk/help_dlg.c
index aa18ca99e9..03deb5ffb2 100644
--- a/gtk/help_dlg.c
+++ b/gtk/help_dlg.c
@@ -1,6 +1,6 @@
/* help_dlg.c
*
- * $Id: help_dlg.c,v 1.12 2000/11/22 04:07:00 gram Exp $
+ * $Id: help_dlg.c,v 1.13 2001/02/01 20:21:21 gram Exp $
*
* Laurent Deniel <deniel@worldnet.fr>
*
@@ -378,7 +378,7 @@ static void set_help_text(GtkWidget *w, help_type_t type)
nb_lines += 2;
} else {
- type_name = proto_registrar_ftype_name(hfinfo->type);
+ type_name = ftype_name(hfinfo->type);
snprintf(buffer, BUFF_LEN, "%s%s%s%s(%s)\n",
hfinfo->abbrev,
&blanks[B_LEN - (maxlen - strlen(hfinfo->abbrev)) - 2],
diff --git a/gtk/main.c b/gtk/main.c
index 649a6dfcf6..df341080b8 100644
--- a/gtk/main.c
+++ b/gtk/main.c
@@ -1,6 +1,6 @@
/* main.c
*
- * $Id: main.c,v 1.176 2001/01/28 23:56:29 guy Exp $
+ * $Id: main.c,v 1.177 2001/02/01 20:21:21 gram Exp $
*
* Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@ethereal.com>
@@ -120,7 +120,7 @@
#include "util.h"
#include "simple_dialog.h"
#include "proto_draw.h"
-#include "dfilter.h"
+#include "dfilter/dfilter.h"
#include "keys.h"
#include "packet_win.h"
#include "gtkglobals.h"
@@ -146,7 +146,6 @@ GtkStyle *item_style;
/* Specifies the field currently selected in the GUI protocol tree */
field_info *finfo_selected = NULL;
-static char* hfinfo_numeric_format(header_field_info *hfinfo);
static void create_main_window(gint, gint, gint, e_prefs*);
/* About Ethereal window */
@@ -171,10 +170,6 @@ match_selected_cb(GtkWidget *w, gpointer data)
{
char *buf;
GtkWidget *filter_te;
- char *ptr, *format, *stringified;
- int i, dfilter_len, abbrev_len;
- guint8 *c;
- header_field_info *hfinfo;
filter_te = gtk_object_get_data(GTK_OBJECT(w), E_DFILTER_TE_KEY);
@@ -186,123 +181,7 @@ match_selected_cb(GtkWidget *w, gpointer data)
return;
}
- hfinfo = finfo_selected->hfinfo;
- g_assert(hfinfo);
- abbrev_len = strlen(hfinfo->abbrev);
-
- switch(hfinfo->type) {
-
- case FT_BOOLEAN:
- dfilter_len = abbrev_len + 2;
- buf = g_malloc0(dfilter_len);
- snprintf(buf, dfilter_len, "%s%s", finfo_selected->value.numeric ? "" : "!",
- hfinfo->abbrev);
- break;
-
- case FT_UINT8:
- case FT_UINT16:
- case FT_UINT24:
- case FT_UINT32:
- case FT_INT8:
- case FT_INT16:
- case FT_INT24:
- case FT_INT32:
- dfilter_len = abbrev_len + 20;
- buf = g_malloc0(dfilter_len);
- format = hfinfo_numeric_format(hfinfo);
- snprintf(buf, dfilter_len, format, hfinfo->abbrev, finfo_selected->value.numeric);
- break;
-
- case FT_IPv4:
- dfilter_len = abbrev_len + 4 + 15 + 1;
- buf = g_malloc0(dfilter_len);
- snprintf(buf, dfilter_len, "%s == %s", hfinfo->abbrev,
- ipv4_addr_str(&(finfo_selected->value.ipv4)));
- break;
-
- case FT_IPXNET:
- dfilter_len = abbrev_len + 15;
- buf = g_malloc0(dfilter_len);
- snprintf(buf, dfilter_len, "%s == 0x%08x", hfinfo->abbrev,
- finfo_selected->value.numeric);
- break;
-
- case FT_IPv6:
- stringified = ip6_to_str((struct e_in6_addr*) &(finfo_selected->value.ipv6));
- dfilter_len = abbrev_len + 4 + strlen(stringified) + 1;
- buf = g_malloc0(dfilter_len);
- snprintf(buf, dfilter_len, "%s == %s", hfinfo->abbrev,
- stringified);
- break;
-
- case FT_DOUBLE:
- dfilter_len = abbrev_len + 30;
- buf = g_malloc0(dfilter_len);
- snprintf(buf, dfilter_len, "%s == %f", hfinfo->abbrev,
- finfo_selected->value.floating);
- break;
-
- case FT_ETHER:
- dfilter_len = abbrev_len + 22;
- buf = g_malloc0(dfilter_len);
- snprintf(buf, dfilter_len, "%s == %s",
- hfinfo->abbrev,
- ether_to_str(finfo_selected->value.ether));
- break;
-#if 0
-
- case FT_ABSOLUTE_TIME:
- case FT_RELATIVE_TIME:
- memcpy(&fi->value.time, va_arg(ap, struct timeval*),
- sizeof(struct timeval));
- break;
-
- case FT_TEXT_ONLY:
- ; /* nothing */
- break;
-#endif
-
- case FT_STRING:
- dfilter_len = abbrev_len +
- strlen(finfo_selected->value.string) + 7;
- buf = g_malloc0(dfilter_len);
- snprintf(buf, dfilter_len, "%s == \"%s\"",
- hfinfo->abbrev,
- finfo_selected->value.string);
- break;
-
- case FT_BYTES:
- dfilter_len = finfo_selected->length*3 - 1;
- dfilter_len += abbrev_len + 7;
- buf = g_malloc0(dfilter_len);
- snprintf(buf, dfilter_len, "%s == %s",
- hfinfo->abbrev,
- bytes_to_str_punct(finfo_selected->value.bytes, finfo_selected->length,':'));
- break;
- default:
- c = cfile.pd + finfo_selected->start;
- buf = g_malloc0(32 + finfo_selected->length * 3);
- ptr = buf;
-
- sprintf(ptr, "frame[%d] == ", finfo_selected->start);
- ptr = buf+strlen(buf);
-
- if (finfo_selected->length == 1) {
- sprintf(ptr, "0x%02x", *c++);
- }
- else {
- for (i=0;i<finfo_selected->length; i++) {
- if (i == 0 ) {
- sprintf(ptr, "%02x", *c++);
- }
- else {
- sprintf(ptr, ":%02x", *c++);
- }
- ptr = buf+strlen(buf);
- }
- }
- break;
- }
+ buf = proto_alloc_dfilter_string(finfo_selected, cfile.pd);
/* create a new one and set the display filter entry accordingly */
gtk_entry_set_text(GTK_ENTRY(filter_te), buf);
@@ -313,60 +192,6 @@ match_selected_cb(GtkWidget *w, gpointer data)
/* Don't g_free(buf) here. filter_packets() will do it the next time it's called */
}
-static char*
-hfinfo_numeric_format(header_field_info *hfinfo)
-{
- char *format = NULL;
-
- /* Pick the proper format string */
- switch(hfinfo->display) {
- case BASE_DEC:
- case BASE_NONE:
- case BASE_OCT: /* I'm lazy */
- case BASE_BIN: /* I'm lazy */
- switch(hfinfo->type) {
- case FT_UINT8:
- case FT_UINT16:
- case FT_UINT24:
- case FT_UINT32:
- format = "%s == %u";
- break;
- case FT_INT8:
- case FT_INT16:
- case FT_INT24:
- case FT_INT32:
- format = "%s == %d";
- break;
- default:
- g_assert_not_reached();
- ;
- }
- break;
- case BASE_HEX:
- switch(hfinfo->type) {
- case FT_UINT8:
- format = "%s == 0x%02x";
- break;
- case FT_UINT16:
- format = "%s == 0x%04x";
- break;
- case FT_UINT24:
- format = "%s == 0x%06x";
- break;
- case FT_UINT32:
- format = "%s == 0x%08x";
- break;
- default:
- g_assert_not_reached();
- ;
- }
- break;
- default:
- g_assert_not_reached();
- ;
- }
- return format;
-}
/* Run the current display filter on the current packet set, and
@@ -585,7 +410,8 @@ tree_view_select_row_cb(GtkCTree *ctree, GList *node, gint column, gpointer user
set_menus_for_selected_tree_row(TRUE);
- if (finfo->hfinfo && finfo->hfinfo->type != FT_TEXT_ONLY) {
+ /*if (finfo->hfinfo && finfo->hfinfo->type != FT_TEXT_ONLY) {*/
+ if (finfo->hfinfo) {
if (finfo->hfinfo->blurb != NULL &&
finfo->hfinfo->blurb[0] != '\0') {
has_blurb = TRUE;
@@ -872,7 +698,7 @@ main(int argc, char *argv[])
#endif
gint pl_size = 280, tv_size = 95, bv_size = 75;
gchar *rc_file, *cf_name = NULL, *rfilter = NULL;
- dfilter *rfcode = NULL;
+ dfilter_t *rfcode = NULL;
gboolean rfilter_parse_failed = FALSE;
e_prefs *prefs;
char *bold_font_name;
@@ -1312,7 +1138,7 @@ main(int argc, char *argv[])
up on top of us. */
if (cf_name) {
if (rfilter != NULL) {
- if (dfilter_compile(rfilter, &rfcode) != 0) {
+ if (!dfilter_compile(rfilter, &rfcode)) {
simple_dialog(ESD_TYPE_CRIT, NULL, dfilter_error_msg);
rfilter_parse_failed = TRUE;
}
@@ -1345,7 +1171,7 @@ main(int argc, char *argv[])
if (s != NULL)
last_open_dir = s;
} else {
- dfilter_destroy(rfcode);
+ dfilter_free(rfcode);
cfile.rfcode = NULL;
}
}
diff --git a/gtk/packet_win.c b/gtk/packet_win.c
index abf4e8a917..760033f8d8 100644
--- a/gtk/packet_win.c
+++ b/gtk/packet_win.c
@@ -3,7 +3,7 @@
*
* Copyright 2000, Jeffrey C. Foster <jfoste@woodward.com>
*
- * $Id: packet_win.c,v 1.16 2000/10/06 10:11:40 gram Exp $
+ * $Id: packet_win.c,v 1.17 2001/02/01 20:21:22 gram Exp $
*
* Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@zing.org>
@@ -64,7 +64,6 @@
#include "simple_dialog.h"
#include "ui_util.h"
#include "proto_draw.h"
-#include "dfilter.h"
#include "keys.h"
#include "gtkglobals.h"
#include "plugins.h"