diff options
author | Stig Bjørlykke <stig@bjorlykke.org> | 2011-09-08 09:35:10 +0000 |
---|---|---|
committer | Stig Bjørlykke <stig@bjorlykke.org> | 2011-09-08 09:35:10 +0000 |
commit | 1a046d693b9dc8c805c2ece35277c989e00c97ac (patch) | |
tree | 009e808dd13ccefdf589a1d05121c157dd275d25 /epan/filter_expressions.c | |
parent | 62894613b0f82178ecbbbc7466ca41ab5629cced (diff) |
From Edwin Groothuis via bug 6207:
Added Filter Toolbar Save functionality.
From me:
Removed unused code.
svn path=/trunk/; revision=38937
Diffstat (limited to 'epan/filter_expressions.c')
-rw-r--r-- | epan/filter_expressions.c | 80 |
1 files changed, 80 insertions, 0 deletions
diff --git a/epan/filter_expressions.c b/epan/filter_expressions.c new file mode 100644 index 0000000000..92c9439ff8 --- /dev/null +++ b/epan/filter_expressions.c @@ -0,0 +1,80 @@ +/* filter_expressions.c + * Submitted by Edwin Groothuis <wireshark@mavetju.org> + * + * $Id$ + * + * Wireshark - Network traffic analyzer + * By Gerald Combs <gerald@wireshark.org> + * Copyright 1998 Gerald Combs + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + */ + +#ifdef HAVE_CONFIG_H +# include "config.h" +#endif + +#include <stdlib.h> +#include <glib.h> + +#include <epan/prefs.h> + +#include "epan/filter_expressions.h" + +static struct filter_expression *_filter_expression_head = NULL; +struct filter_expression **pfilter_expression_head = &_filter_expression_head; + +/* + * Create a new filter_expression and add it to the end of the list + * of filter_expressions. + */ +struct filter_expression * +filter_expression_new(const gchar *label, const gchar *expr, + const gboolean enabled) +{ + struct filter_expression *expression; + struct filter_expression *prev; + + expression = (struct filter_expression *)g_malloc(sizeof(struct filter_expression)); + memset(expression, '\0', sizeof(struct filter_expression)); + expression->button = NULL; + expression->label = g_strdup(label); + expression->expression = g_strdup(expr); + expression->enabled = enabled; + expression->deleted = FALSE; + expression->index = 0; + + expression->next = NULL; + + /* Add it at the end so the button order is always the same*/ + if (*pfilter_expression_head == NULL) { + _filter_expression_head = expression; + } else { + prev = *pfilter_expression_head; + while (prev->next != NULL) + prev = prev->next; + prev->next = expression; + expression->index = prev->index + 1; + } + + return(expression); +} + +void +filter_expression_init(gboolean enable_prefs) +{ + if (enable_prefs) + prefs.filter_expressions = pfilter_expression_head; +} |