aboutsummaryrefslogtreecommitdiffstats
path: root/ui
diff options
context:
space:
mode:
Diffstat (limited to 'ui')
-rw-r--r--ui/CMakeLists.txt1
-rw-r--r--ui/Makefile.common2
-rw-r--r--ui/filters.c632
-rw-r--r--ui/filters.h109
-rw-r--r--ui/gtk/filter_dlg.c2
-rw-r--r--ui/gtk/main.c2
-rw-r--r--ui/qt/Wireshark.pro1
-rw-r--r--ui/qt/capture_filter_edit.cpp2
-rw-r--r--ui/qt/display_filter_edit.cpp2
-rw-r--r--ui/qt/filter_dialog.cpp2
-rw-r--r--ui/qt/wireshark_application.cpp2
11 files changed, 7 insertions, 750 deletions
diff --git a/ui/CMakeLists.txt b/ui/CMakeLists.txt
index d68079062e..cb6d27df79 100644
--- a/ui/CMakeLists.txt
+++ b/ui/CMakeLists.txt
@@ -31,7 +31,6 @@ set(COMMON_UI_SRC
export_object_http.c
export_object_smb.c
export_object_tftp.c
- filters.c
help_url.c
iface_lists.c
io_graph_item.c
diff --git a/ui/Makefile.common b/ui/Makefile.common
index 94d33c3029..87d9040d94 100644
--- a/ui/Makefile.common
+++ b/ui/Makefile.common
@@ -52,7 +52,6 @@ WIRESHARK_UI_SRC = \
export_object_http.c \
export_object_smb.c \
export_object_tftp.c \
- filters.c \
iface_lists.c \
io_graph_item.c \
language.c \
@@ -92,7 +91,6 @@ noinst_HEADERS = \
export_object.h \
last_open_dir.h \
file_dialog.h \
- filters.h \
help_url.h \
packet_list_utils.h \
iface_lists.h \
diff --git a/ui/filters.c b/ui/filters.c
deleted file mode 100644
index 01014798f4..0000000000
--- a/ui/filters.c
+++ /dev/null
@@ -1,632 +0,0 @@
-/* filters.c
- * Code for reading and writing the filters file.
- *
- * 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
- */
-
-#include "config.h"
-
-#include <stdio.h>
-#include <string.h>
-#include <errno.h>
-
-#include <glib.h>
-
-#include <wsutil/file_util.h>
-#include <wsutil/filesystem.h>
-
-#include "ui/filters.h"
-
-/*
- * Old filter file name.
- */
-#define FILTER_FILE_NAME "filters"
-
-/*
- * Capture filter file name.
- */
-#define CFILTER_FILE_NAME "cfilters"
-
-/*
- * Display filter file name.
- */
-#define DFILTER_FILE_NAME "dfilters"
-
-/*
- * List of capture filters - saved.
- */
-static GList *capture_filters = NULL;
-
-/*
- * List of display filters - saved.
- */
-static GList *display_filters = NULL;
-
-/*
- * List of capture filters - currently edited.
- */
-static GList *capture_edited_filters = NULL;
-
-/*
- * List of display filters - currently edited.
- */
-static GList *display_edited_filters = NULL;
-
-/*
- * Read in a list of filters.
- *
- * On success, "*pref_path_return" is set to NULL.
- * On error, "*pref_path_return" is set to point to the pathname of
- * the file we tried to read - it should be freed by our caller -
- * and "*errno_return" is set to the error.
- */
-
-#define INIT_BUF_SIZE 128
-
-static GList *
-add_filter_entry(GList *fl, const char *filt_name, const char *filt_expr)
-{
- filter_def *filt;
-
- filt = (filter_def *) g_malloc(sizeof(filter_def));
- filt->name = g_strdup(filt_name);
- filt->strval = g_strdup(filt_expr);
- return g_list_append(fl, filt);
-}
-
-static GList *
-remove_filter_entry(GList *fl, GList *fl_entry)
-{
- filter_def *filt;
-
- filt = (filter_def *) fl_entry->data;
- g_free(filt->name);
- g_free(filt->strval);
- g_free(filt);
- return g_list_remove_link(fl, fl_entry);
-}
-
-static int
-skip_whitespace(FILE *ff)
-{
- int c;
-
- while ((c = getc(ff)) != EOF && c != '\n' && g_ascii_isspace(c))
- ;
- return c;
-}
-
-static int
-getc_crlf(FILE *ff)
-{
- int c;
-
- c = getc(ff);
- if (c == '\r') {
- /* Treat CR-LF at the end of a line like LF, so that if we're reading
- * a Windows-format file on UN*X, we handle it the same way we'd handle
- * a UN*X-format file. */
- c = getc(ff);
- if (c != EOF && c != '\n') {
- /* Put back the character after the CR, and process the CR normally. */
- ungetc(c, ff);
- c = '\r';
- }
- }
- return c;
-}
-
-void
-read_filter_list(filter_list_type_t list_type, char **pref_path_return,
- int *errno_return)
-{
- const char *ff_name;
- char *ff_path;
- FILE *ff;
- GList **flpp;
- int c;
- char *filt_name, *filt_expr;
- int filt_name_len, filt_expr_len;
- int filt_name_index, filt_expr_index;
- int line = 1;
-
- *pref_path_return = NULL; /* assume no error */
-
- switch (list_type) {
-
- case CFILTER_LIST:
- ff_name = CFILTER_FILE_NAME;
- flpp = &capture_filters;
- break;
-
- case DFILTER_LIST:
- ff_name = DFILTER_FILE_NAME;
- flpp = &display_filters;
- break;
-
- default:
- g_assert_not_reached();
- return;
- }
-
- /* try to open personal "cfilters"/"dfilters" file */
- ff_path = get_persconffile_path(ff_name, TRUE);
- if ((ff = ws_fopen(ff_path, "r")) == NULL) {
- /*
- * Did that fail because the file didn't exist?
- */
- if (errno != ENOENT) {
- /*
- * No. Just give up.
- */
- *pref_path_return = ff_path;
- *errno_return = errno;
- return;
- }
-
- /*
- * Yes. See if there's an "old style" personal "filters" file; if so, read it.
- * This means that a user will start out with their capture and
- * display filter lists being identical; each list may contain
- * filters that don't belong in that list. The user can edit
- * the filter lists, and delete the ones that don't belong in
- * a particular list.
- */
- g_free(ff_path);
- ff_path = get_persconffile_path(FILTER_FILE_NAME, FALSE);
- if ((ff = ws_fopen(ff_path, "r")) == NULL) {
- /*
- * Did that fail because the file didn't exist?
- */
- if (errno != ENOENT) {
- /*
- * No. Just give up.
- */
- *pref_path_return = ff_path;
- *errno_return = errno;
- return;
- }
-
- /*
- * Try to open the global "cfilters/dfilters" file */
- g_free(ff_path);
- ff_path = get_datafile_path(ff_name);
- if ((ff = ws_fopen(ff_path, "r")) == NULL) {
-
- /*
- * Well, that didn't work, either. Just give up.
- * Return an error if the file existed but we couldn't open it.
- */
- if (errno != ENOENT) {
- *pref_path_return = ff_path;
- *errno_return = errno;
- } else {
- g_free(ff_path);
- }
- return;
- }
- }
- }
-
- /* If we already have a list of filters, discard it. */
- /* this should never happen - this function is called only once for each list! */
- while(*flpp) {
- *flpp = remove_filter_entry(*flpp, g_list_first(*flpp));
- }
-
- /* Allocate the filter name buffer. */
- filt_name_len = INIT_BUF_SIZE;
- filt_name = (char *)g_malloc(filt_name_len + 1);
- filt_expr_len = INIT_BUF_SIZE;
- filt_expr = (char *)g_malloc(filt_expr_len + 1);
-
- for (line = 1; ; line++) {
- /* Lines in a filter file are of the form
-
- "name" expression
-
- where "name" is a name, in quotes - backslashes in the name
- escape the next character, so quotes and backslashes can appear
- in the name - and "expression" is a filter expression, not in
- quotes, running to the end of the line. */
-
- /* Skip over leading white space, if any. */
- c = skip_whitespace(ff);
-
- if (c == EOF)
- break; /* Nothing more to read */
- if (c == '\n')
- continue; /* Blank line. */
-
- /* "c" is the first non-white-space character.
- If it's not a quote, it's an error. */
- if (c != '"') {
- g_warning("'%s' line %d doesn't have a quoted filter name.", ff_path,
- line);
- while (c != '\n')
- c = getc(ff); /* skip to the end of the line */
- continue;
- }
-
- /* Get the name of the filter. */
- filt_name_index = 0;
- for (;;) {
- c = getc_crlf(ff);
- if (c == EOF || c == '\n')
- break; /* End of line - or end of file */
- if (c == '"') {
- /* Closing quote. */
- if (filt_name_index >= filt_name_len) {
- /* Filter name buffer isn't long enough; double its length. */
- filt_name_len *= 2;
- filt_name = (char *)g_realloc(filt_name, filt_name_len + 1);
- }
- filt_name[filt_name_index] = '\0';
- break;
- }
- if (c == '\\') {
- /* Next character is escaped */
- c = getc_crlf(ff);
- if (c == EOF || c == '\n')
- break; /* End of line - or end of file */
- }
- /* Add this character to the filter name string. */
- if (filt_name_index >= filt_name_len) {
- /* Filter name buffer isn't long enough; double its length. */
- filt_name_len *= 2;
- filt_name = (char *)g_realloc(filt_name, filt_name_len + 1);
- }
- filt_name[filt_name_index] = c;
- filt_name_index++;
- }
-
- if (c == EOF) {
- if (!ferror(ff)) {
- /* EOF, not error; no newline seen before EOF */
- g_warning("'%s' line %d doesn't have a newline.", ff_path,
- line);
- }
- break; /* nothing more to read */
- }
-
- if (c != '"') {
- /* No newline seen before end-of-line */
- g_warning("'%s' line %d doesn't have a closing quote.", ff_path,
- line);
- continue;
- }
-
- /* Skip over separating white space, if any. */
- c = skip_whitespace(ff);
-
- if (c == EOF) {
- if (!ferror(ff)) {
- /* EOF, not error; no newline seen before EOF */
- g_warning("'%s' line %d doesn't have a newline.", ff_path,
- line);
- }
- break; /* nothing more to read */
- }
-
- if (c == '\n') {
- /* No filter expression */
- g_warning("'%s' line %d doesn't have a filter expression.", ff_path,
- line);
- continue;
- }
-
- /* "c" is the first non-white-space character; it's the first
- character of the filter expression. */
- filt_expr_index = 0;
- for (;;) {
- /* Add this character to the filter expression string. */
- if (filt_expr_index >= filt_expr_len) {
- /* Filter expressioin buffer isn't long enough; double its length. */
- filt_expr_len *= 2;
- filt_expr = (char *)g_realloc(filt_expr, filt_expr_len + 1);
- }
- filt_expr[filt_expr_index] = c;
- filt_expr_index++;
-
- /* Get the next character. */
- c = getc_crlf(ff);
- if (c == EOF || c == '\n')
- break;
- }
-
- if (c == EOF) {
- if (!ferror(ff)) {
- /* EOF, not error; no newline seen before EOF */
- g_warning("'%s' line %d doesn't have a newline.", ff_path,
- line);
- }
- break; /* nothing more to read */
- }
-
- /* We saw the ending newline; terminate the filter expression string */
- if (filt_expr_index >= filt_expr_len) {
- /* Filter expressioin buffer isn't long enough; double its length. */
- filt_expr_len *= 2;
- filt_expr = (char *)g_realloc(filt_expr, filt_expr_len + 1);
- }
- filt_expr[filt_expr_index] = '\0';
-
- /* Add the new filter to the list of filters */
- *flpp = add_filter_entry(*flpp, filt_name, filt_expr);
- }
- if (ferror(ff)) {
- *pref_path_return = ff_path;
- *errno_return = errno;
- } else
- g_free(ff_path);
- fclose(ff);
- g_free(filt_name);
- g_free(filt_expr);
-
- /* init the corresponding edited list */
- switch (list_type) {
- case CFILTER_LIST:
- copy_filter_list(CFILTER_EDITED_LIST, CFILTER_LIST);
- break;
- case DFILTER_LIST:
- copy_filter_list(DFILTER_EDITED_LIST, DFILTER_LIST);
- break;
- default:
- g_assert_not_reached();
- return;
- }
-}
-
-/*
- * Get a pointer to a list of filters.
- */
-static GList **
-get_filter_list(filter_list_type_t list_type)
-{
- GList **flpp;
-
- switch (list_type) {
-
- case CFILTER_LIST:
- flpp = &capture_filters;
- break;
-
- case DFILTER_LIST:
- flpp = &display_filters;
- break;
-
- case CFILTER_EDITED_LIST:
- flpp = &capture_edited_filters;
- break;
-
- case DFILTER_EDITED_LIST:
- flpp = &display_edited_filters;
- break;
-
- default:
- g_assert_not_reached();
- flpp = NULL;
- }
- return flpp;
-}
-
-/*
- * Get a pointer to the first entry in a filter list.
- */
-GList *
-get_filter_list_first(filter_list_type_t list_type)
-{
- GList **flpp;
-
- flpp = get_filter_list(list_type);
- return g_list_first(*flpp);
-}
-
-/*
- * Add a new filter to the end of a list.
- * Returns a pointer to the newly-added entry.
- */
-GList *
-add_to_filter_list(filter_list_type_t list_type, const char *name,
- const char *expression)
-{
- GList **flpp;
-
- flpp = get_filter_list(list_type);
- *flpp = add_filter_entry(*flpp, name, expression);
-
- return g_list_last(*flpp);
-}
-
-/*
- * Remove a filter from a list.
- */
-void
-remove_from_filter_list(filter_list_type_t list_type, GList *fl_entry)
-{
- GList **flpp;
-
- flpp = get_filter_list(list_type);
- *flpp = remove_filter_entry(*flpp, fl_entry);
-}
-
-/*
- * Write out a list of filters.
- *
- * On success, "*pref_path_return" is set to NULL.
- * On error, "*pref_path_return" is set to point to the pathname of
- * the file we tried to read - it should be freed by our caller -
- * and "*errno_return" is set to the error.
- */
-void
-save_filter_list(filter_list_type_t list_type, char **pref_path_return,
- int *errno_return)
-{
- const gchar *ff_name;
- gchar *ff_path, *ff_path_new;
- GList *fl;
- GList *flpp;
- filter_def *filt;
- FILE *ff;
- guchar *p, c;
-
- *pref_path_return = NULL; /* assume no error */
-
- switch (list_type) {
-
- case CFILTER_LIST:
- ff_name = CFILTER_FILE_NAME;
- fl = capture_filters;
- break;
-
- case DFILTER_LIST:
- ff_name = DFILTER_FILE_NAME;
- fl = display_filters;
- break;
-
- default:
- g_assert_not_reached();
- return;
- }
-
- ff_path = get_persconffile_path(ff_name, TRUE);
-
- /* Write to "XXX.new", and rename if that succeeds.
- That means we don't trash the file if we fail to write it out
- completely. */
- ff_path_new = g_strdup_printf("%s.new", ff_path);
-
- if ((ff = ws_fopen(ff_path_new, "w")) == NULL) {
- *pref_path_return = ff_path;
- *errno_return = errno;
- g_free(ff_path_new);
- return;
- }
- flpp = g_list_first(fl);
- while (flpp) {
- filt = (filter_def *) flpp->data;
-
- /* Write out the filter name as a quoted string; escape any quotes
- or backslashes. */
- putc('"', ff);
- for (p = (guchar *)filt->name; (c = *p) != '\0'; p++) {
- if (c == '"' || c == '\\')
- putc('\\', ff);
- putc(c, ff);
- }
- putc('"', ff);
-
- /* Separate the filter name and value with a space. */
- putc(' ', ff);
-
- /* Write out the filter expression and a newline. */
- fprintf(ff, "%s\n", filt->strval);
- if (ferror(ff)) {
- *pref_path_return = ff_path;
- *errno_return = errno;
- fclose(ff);
- ws_unlink(ff_path_new);
- g_free(ff_path_new);
- return;
- }
- flpp = flpp->next;
- }
- if (fclose(ff) == EOF) {
- *pref_path_return = ff_path;
- *errno_return = errno;
- ws_unlink(ff_path_new);
- g_free(ff_path_new);
- return;
- }
-
-#ifdef _WIN32
- /* ANSI C doesn't say whether "rename()" removes the target if it
- exists; the Win32 call to rename files doesn't do so, which I
- infer is the reason why the MSVC++ "rename()" doesn't do so.
- We must therefore remove the target file first, on Windows.
-
- XXX - ws_rename() should be ws_stdio_rename() on Windows,
- and ws_stdio_rename() uses MoveFileEx() with MOVEFILE_REPLACE_EXISTING,
- so it should remove the target if it exists, so this stuff
- shouldn't be necessary. Perhaps it dates back to when we were
- calling rename(), with that being a wrapper around Microsoft's
- _rename(), which didn't remove the target. */
- if (ws_remove(ff_path) < 0 && errno != ENOENT) {
- /* It failed for some reason other than "it's not there"; if
- it's not there, we don't need to remove it, so we just
- drive on. */
- *pref_path_return = ff_path;
- *errno_return = errno;
- ws_unlink(ff_path_new);
- g_free(ff_path_new);
- return;
- }
-#endif
-
- if (ws_rename(ff_path_new, ff_path) < 0) {
- *pref_path_return = ff_path;
- *errno_return = errno;
- ws_unlink(ff_path_new);
- g_free(ff_path_new);
- return;
- }
- g_free(ff_path_new);
- g_free(ff_path);
-}
-
-/*
- * Copy a filter list into another.
- */
-void copy_filter_list(filter_list_type_t dest_type, filter_list_type_t src_type)
-{
- GList **flpp_dest;
- GList **flpp_src;
- GList *flp_src;
- filter_def *filt;
-
- g_assert(dest_type != src_type);
-
- flpp_dest = get_filter_list(dest_type);
- flpp_src = get_filter_list(src_type);
- /* throw away the "old" destination list - a NULL list is ok here */
- while(*flpp_dest) {
- *flpp_dest = remove_filter_entry(*flpp_dest, g_list_first(*flpp_dest));
- }
- g_assert(g_list_length(*flpp_dest) == 0);
-
- /* copy the list entries */
- for(flp_src = g_list_first(*flpp_src); flp_src; flp_src = g_list_next(flp_src)) {
- filt = (filter_def *)(flp_src->data);
-
- *flpp_dest = add_filter_entry(*flpp_dest, filt->name, filt->strval);
- }
-}
-
-/*
- * Editor modelines - http://www.wireshark.org/tools/modelines.html
- *
- * Local Variables:
- * c-basic-offset: 2
- * tab-width: 8
- * indent-tabs-mode: nil
- * End:
- *
- * ex: set shiftwidth=2 tabstop=8 expandtab:
- * :indentSize=2:tabSize=8:noTabs=true:
- */
diff --git a/ui/filters.h b/ui/filters.h
deleted file mode 100644
index b63ddca2ba..0000000000
--- a/ui/filters.h
+++ /dev/null
@@ -1,109 +0,0 @@
-/* filters.h
- * Declarations of routines for reading and writing the filters file.
- *
- * 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
- */
-
-#ifndef __UI_FILTERS_H__
-#define __UI_FILTERS_H__
-
-#ifdef __cplusplus
-extern "C" {
-#endif /* __cplusplus */
-
-/*
- * Filter lists.
- */
-typedef enum {
- CFILTER_LIST, /* capture filter list - saved */
- DFILTER_LIST, /* display filter list - saved */
- CFILTER_EDITED_LIST, /* capture filter list - currently edited. GTK+ only. */
- DFILTER_EDITED_LIST /* display filter list - currently edited. GTK+ only. */
-} filter_list_type_t;
-
-/*
- * Item in a list of filters.
- */
-typedef struct {
- char *name; /* filter name */
- char *strval; /* filter expression */
-} filter_def;
-
-/*
- * Read in a list of filters.
- *
- * On success, "*pref_path_return" is set to NULL.
- * On error, "*pref_path_return" is set to point to the pathname of
- * the file we tried to read - it should be freed by our caller -
- * and "*errno_return" is set to the error.
- */
-void read_filter_list(filter_list_type_t list_type, char **pref_path_return,
- int *errno_return);
-
-/*
- * Get a pointer to the first entry in a filter list.
- */
-GList *get_filter_list_first(filter_list_type_t list);
-
-/*
- * Add a new filter to the end of a list.
- * Returns a pointer to the newly-added entry.
- */
-GList *add_to_filter_list(filter_list_type_t list, const char *name,
- const char *expression);
-
-/*
- * Remove a filter from a list.
- */
-void remove_from_filter_list(filter_list_type_t list, GList *fl_entry);
-
-/*
- * Write out a list of filters.
- *
- * On success, "*pref_path_return" is set to NULL.
- * On error, "*pref_path_return" is set to point to the pathname of
- * the file we tried to read - it should be freed by our caller -
- * and "*errno_return" is set to the error.
- */
-void save_filter_list(filter_list_type_t list_type, char **pref_path_return,
- int *errno_return);
-
-/*
- * Clone the filter list so it can be edited. GTK+ only.
- */
-void copy_filter_list(filter_list_type_t dest_type, filter_list_type_t src_type);
-
-#ifdef __cplusplus
-}
-#endif /* __cplusplus */
-
-#endif /* __UI_FILTERS_H__ */
-
-/*
- * Editor modelines - http://www.wireshark.org/tools/modelines.html
- *
- * Local Variables:
- * c-basic-offset: 2
- * tab-width: 8
- * indent-tabs-mode: nil
- * End:
- *
- * vi: set shiftwidth=2 tabstop=8 expandtab:
- * :indentSize=2:tabSize=8:noTabs=true:
- */
diff --git a/ui/gtk/filter_dlg.c b/ui/gtk/filter_dlg.c
index 36f27b240f..0a360742d1 100644
--- a/ui/gtk/filter_dlg.c
+++ b/ui/gtk/filter_dlg.c
@@ -30,7 +30,7 @@
#include <epan/prefs.h>
#include <epan/column-info.h>
-#include "ui/filters.h"
+#include "filter_files.h"
#include "ui/simple_dialog.h"
#include "ui/main_statusbar.h"
diff --git a/ui/gtk/main.c b/ui/gtk/main.c
index 6e92da071c..7acbd6c2a2 100644
--- a/ui/gtk/main.c
+++ b/ui/gtk/main.c
@@ -107,7 +107,7 @@
#include "ui/alert_box.h"
#include "ui/console.h"
#include "ui/decode_as_utils.h"
-#include "ui/filters.h"
+#include "filter_files.h"
#include "ui/main_statusbar.h"
#include "ui/persfilepath_opt.h"
#include "ui/preference_utils.h"
diff --git a/ui/qt/Wireshark.pro b/ui/qt/Wireshark.pro
index 1fb0f6986a..940c0a48de 100644
--- a/ui/qt/Wireshark.pro
+++ b/ui/qt/Wireshark.pro
@@ -195,6 +195,7 @@ SOURCES_WS_C = \
../../extcap_parser.c \
../../file.c \
../../fileset.c \
+ ../../filter_files.c \
../../frame_tvbuff.c \
../../summary.c \
../../sync_pipe_write.c
diff --git a/ui/qt/capture_filter_edit.cpp b/ui/qt/capture_filter_edit.cpp
index c122c548f7..ccd17d31b9 100644
--- a/ui/qt/capture_filter_edit.cpp
+++ b/ui/qt/capture_filter_edit.cpp
@@ -28,7 +28,7 @@
#include "capture_opts.h"
#include <ui/capture_globals.h>
-#include <ui/filters.h>
+#include <filter_files.h>
#include <wsutil/utf8_entities.h>
#include "capture_filter_edit.h"
diff --git a/ui/qt/display_filter_edit.cpp b/ui/qt/display_filter_edit.cpp
index d91c8565c6..3d7df3eeb1 100644
--- a/ui/qt/display_filter_edit.cpp
+++ b/ui/qt/display_filter_edit.cpp
@@ -25,7 +25,7 @@
#include <epan/dfilter/dfilter.h>
-#include <ui/filters.h>
+#include <filter_files.h>
#include <wsutil/utf8_entities.h>
diff --git a/ui/qt/filter_dialog.cpp b/ui/qt/filter_dialog.cpp
index c19fce8823..30da83d569 100644
--- a/ui/qt/filter_dialog.cpp
+++ b/ui/qt/filter_dialog.cpp
@@ -25,7 +25,7 @@
#include <glib.h>
-#include <ui/filters.h>
+#include <filter_files.h>
#include <wsutil/filesystem.h>
diff --git a/ui/qt/wireshark_application.cpp b/ui/qt/wireshark_application.cpp
index 4e1d937812..d02edd225d 100644
--- a/ui/qt/wireshark_application.cpp
+++ b/ui/qt/wireshark_application.cpp
@@ -60,7 +60,7 @@
#endif
#include "ui/capture.h"
-#include "ui/filters.h"
+#include "filter_files.h"
#include "ui/capture_globals.h"
#include "ui/software_update.h"
#include "ui/last_open_dir.h"