diff options
Diffstat (limited to 'epan/prefs.c')
-rw-r--r-- | epan/prefs.c | 17 |
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" |