aboutsummaryrefslogtreecommitdiffstats
path: root/epan/filter_expressions.c
diff options
context:
space:
mode:
authorStig Bjørlykke <stig@bjorlykke.org>2011-09-08 09:35:10 +0000
committerStig Bjørlykke <stig@bjorlykke.org>2011-09-08 09:35:10 +0000
commit1a046d693b9dc8c805c2ece35277c989e00c97ac (patch)
tree009e808dd13ccefdf589a1d05121c157dd275d25 /epan/filter_expressions.c
parent62894613b0f82178ecbbbc7466ca41ab5629cced (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.c80
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;
+}