aboutsummaryrefslogtreecommitdiffstats
path: root/epan/prefs.c
diff options
context:
space:
mode:
Diffstat (limited to 'epan/prefs.c')
-rw-r--r--epan/prefs.c17
1 files changed, 17 insertions, 0 deletions
diff --git a/epan/prefs.c b/epan/prefs.c
index b74ab1f419..96d242d7e2 100644
--- a/epan/prefs.c
+++ b/epan/prefs.c
@@ -5388,6 +5388,8 @@ set_pref(gchar *pref_name, const gchar *value, void *private_data _U_,
filter_expression_new(filter_label, value, "", filter_enabled);
g_free(filter_label);
filter_label = NULL;
+ /* Remember to save the new UAT to file. */
+ prefs.filter_expressions_old = TRUE;
} else if (strcmp(pref_name, "gui.version_in_start_page") == 0) {
/* Convert deprecated value to closest current equivalent */
if (g_ascii_strcasecmp(value, "true") == 0) {
@@ -6586,6 +6588,21 @@ write_prefs(char **pf_path_return)
pf = stdout;
}
+ /*
+ * If the preferences file is being written, be sure to write UAT files
+ * first that were migrated from the preferences file.
+ */
+ if (pf_path_return != NULL) {
+ if (prefs.filter_expressions_old) {
+ char *err = NULL;
+ prefs.filter_expressions_old = FALSE;
+ if (!uat_save(uat_get_table_by_name("Display expressions"), &err)) {
+ g_warning("Unable to save Display expressions: %s", err);
+ g_free(err);
+ }
+ }
+ }
+
fputs("# Configuration file for Wireshark " VERSION ".\n"
"#\n"
"# This file is regenerated each time preferences are saved within\n"