diff options
author | Michael Mann <mmann78@netscape.net> | 2018-01-05 23:39:55 -0500 |
---|---|---|
committer | Michael Mann <mmann78@netscape.net> | 2018-01-06 17:49:23 +0000 |
commit | eef3c8434d556ad4d3fd9b0f4fdf912145f2670d (patch) | |
tree | 51a25eaae635737dcec8e23f9087398c24dd2d75 /ui/preference_utils.c | |
parent | a65391f9014acd5cb8e4fe09ef8b2fac4716c024 (diff) |
Add ability for preferences to determine what they can change.
Add flags field to preference structure to help determine what
areas of Wireshark are affected by a preference changing. The
intent is to be able to distinguish dissection from GUI or other
changes that are not dissection.
The default is to have all preferences affect dissection, but their
flags can be changed. This patch doesn't change any flags from the
default.
Change-Id: Ied5ae961bc3f33f5b730b2892fff3fa0898380b8
Reviewed-on: https://code.wireshark.org/review/25171
Petri-Dish: Michael Mann <mmann78@netscape.net>
Tested-by: Petri Dish Buildbot
Reviewed-by: Michael Mann <mmann78@netscape.net>
Diffstat (limited to 'ui/preference_utils.c')
-rw-r--r-- | ui/preference_utils.c | 23 |
1 files changed, 12 insertions, 11 deletions
diff --git a/ui/preference_utils.c b/ui/preference_utils.c index b532060e94..b42b7d6165 100644 --- a/ui/preference_utils.c +++ b/ui/preference_utils.c @@ -70,47 +70,48 @@ prefs_main_write(void) } } -static gboolean +static unsigned int prefs_store_ext_helper(const char * module_name, const char *pref_name, const char *pref_value) { module_t * module = NULL; pref_t * pref = NULL; - gboolean pref_changed = TRUE; + unsigned int pref_changed = 0; if ( ! prefs_is_registered_protocol(module_name)) - return FALSE; + return 0; module = prefs_find_module(module_name); if ( ! module ) - return FALSE; + return 0; pref = prefs_find_preference(module, pref_name); if (!pref) - return FALSE; + return 0; if (prefs_get_type(pref) == PREF_STRING ) { - pref_changed = prefs_set_string_value(pref, pref_value, pref_stashed); + pref_changed |= prefs_set_string_value(pref, pref_value, pref_stashed); if ( ! pref_changed || prefs_get_string_value(pref, pref_stashed) != 0 ) - pref_changed = prefs_set_string_value(pref, pref_value, pref_current); + pref_changed |= prefs_set_string_value(pref, pref_value, pref_current); } return pref_changed; } -gboolean +unsigned int prefs_store_ext(const char * module_name, const char *pref_name, const char *pref_value) { - if ( prefs_store_ext_helper(module_name, pref_name, pref_value) ) + unsigned int changed_flags = prefs_store_ext_helper(module_name, pref_name, pref_value); + if ( changed_flags ) { prefs_main_write(); prefs_apply_all(); prefs_to_capture_opts(); - return TRUE; + return changed_flags; } - return FALSE; + return 0; } gboolean |