aboutsummaryrefslogtreecommitdiffstats
path: root/ui/preference_utils.c
diff options
context:
space:
mode:
authorMichael Mann <mmann78@netscape.net>2018-01-05 23:39:55 -0500
committerMichael Mann <mmann78@netscape.net>2018-01-06 17:49:23 +0000
commiteef3c8434d556ad4d3fd9b0f4fdf912145f2670d (patch)
tree51a25eaae635737dcec8e23f9087398c24dd2d75 /ui/preference_utils.c
parenta65391f9014acd5cb8e4fe09ef8b2fac4716c024 (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.c23
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