diff options
author | Michael Mann <mmann78@netscape.net> | 2017-01-04 10:57:25 -0500 |
---|---|---|
committer | Michael Mann <mmann78@netscape.net> | 2017-01-07 15:35:18 +0000 |
commit | 165c8b04227df05a0ae329e92adff7bd314b9d4b (patch) | |
tree | b632e9e30ca7c3ca472d0e8e3926ec53efe244fc /ui/preference_utils.c | |
parent | fb9ac503c16e88408a53e808f17f19f63787f2de (diff) | |
download | wireshark-165c8b04227df05a0ae329e92adff7bd314b9d4b.tar.gz |
Refactor range preference.
Refactored so that all handling of ranges in struct preference
can be internal to prefs.c
Change-Id: I68577909f9c07b23a16ab3443a523355d4645314
Reviewed-on: https://code.wireshark.org/review/19577
Petri-Dish: Michael Mann <mmann78@netscape.net>
Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org>
Reviewed-by: Michael Mann <mmann78@netscape.net>
Diffstat (limited to 'ui/preference_utils.c')
-rw-r--r-- | ui/preference_utils.c | 277 |
1 files changed, 0 insertions, 277 deletions
diff --git a/ui/preference_utils.c b/ui/preference_utils.c index a9cfac2f05..b40935c40d 100644 --- a/ui/preference_utils.c +++ b/ui/preference_utils.c @@ -40,283 +40,6 @@ #include "ui/preference_utils.h" #include "ui/simple_dialog.h" -guint -pref_stash(pref_t *pref, gpointer unused _U_) -{ - switch (pref->type) { - - case PREF_DECODE_AS_UINT: - pref->stashed_val.uint = *pref->varp.uint; - break; - - case PREF_UINT: - pref->stashed_val.uint = *pref->varp.uint; - break; - - case PREF_BOOL: - pref->stashed_val.boolval = *pref->varp.boolp; - break; - - case PREF_ENUM: - pref->stashed_val.enumval = *pref->varp.enump; - break; - - case PREF_STRING: - case PREF_FILENAME: - case PREF_DIRNAME: - g_free(pref->stashed_val.string); - pref->stashed_val.string = g_strdup(*pref->varp.string); - break; - - case PREF_DECODE_AS_RANGE: - case PREF_RANGE: - wmem_free(wmem_epan_scope(), pref->stashed_val.range); - pref->stashed_val.range = range_copy(wmem_epan_scope(), *pref->varp.range); - break; - - case PREF_COLOR: - pref->stashed_val.color = *pref->varp.colorp; - break; - - case PREF_STATIC_TEXT: - case PREF_UAT: - case PREF_CUSTOM: - break; - - case PREF_OBSOLETE: - g_assert_not_reached(); - break; - } - return 0; -} - -guint -pref_unstash(pref_t *pref, gpointer unstash_data_p) -{ - pref_unstash_data_t *unstash_data = (pref_unstash_data_t *)unstash_data_p; - dissector_table_t sub_dissectors = NULL; - dissector_handle_t handle = NULL; - - /* Revert the preference to its saved value. */ - switch (pref->type) { - - case PREF_DECODE_AS_UINT: - if (*pref->varp.uint != pref->stashed_val.uint) { - unstash_data->module->prefs_changed = TRUE; - - if (unstash_data->handle_decode_as) { - if (*pref->varp.uint != pref->default_val.uint) { - dissector_reset_uint(pref->name, *pref->varp.uint); - } - } - - *pref->varp.uint = pref->stashed_val.uint; - - if (unstash_data->handle_decode_as) { - sub_dissectors = find_dissector_table(pref->name); - if (sub_dissectors != NULL) { - handle = dissector_table_get_dissector_handle(sub_dissectors, (gchar*)unstash_data->module->title); - if (handle != NULL) { - dissector_change_uint(pref->name, *pref->varp.uint, handle); - } - } - } - } - break; - - case PREF_UINT: - if (*pref->varp.uint != pref->stashed_val.uint) { - unstash_data->module->prefs_changed = TRUE; - *pref->varp.uint = pref->stashed_val.uint; - } - break; - - case PREF_BOOL: - if (*pref->varp.boolp != pref->stashed_val.boolval) { - unstash_data->module->prefs_changed = TRUE; - *pref->varp.boolp = pref->stashed_val.boolval; - } - break; - - case PREF_ENUM: - if (*pref->varp.enump != pref->stashed_val.enumval) { - unstash_data->module->prefs_changed = TRUE; - *pref->varp.enump = pref->stashed_val.enumval; - } - break; - - case PREF_STRING: - case PREF_FILENAME: - case PREF_DIRNAME: - if (strcmp(*pref->varp.string, pref->stashed_val.string) != 0) { - unstash_data->module->prefs_changed = TRUE; - g_free(*pref->varp.string); - *pref->varp.string = g_strdup(pref->stashed_val.string); - } - break; - - case PREF_DECODE_AS_RANGE: - if (!ranges_are_equal(*pref->varp.range, pref->stashed_val.range)) { - guint32 i, j; - unstash_data->module->prefs_changed = TRUE; - - if (unstash_data->handle_decode_as) { - sub_dissectors = find_dissector_table(pref->name); - if (sub_dissectors != NULL) { - handle = dissector_table_get_dissector_handle(sub_dissectors, (gchar*)unstash_data->module->title); - if (handle != NULL) { - /* Delete all of the old values from the dissector table */ - for (i = 0; i < (*pref->varp.range)->nranges; i++) { - for (j = (*pref->varp.range)->ranges[i].low; j < (*pref->varp.range)->ranges[i].high; j++) { - dissector_delete_uint(pref->name, j, handle); - decode_build_reset_list(pref->name, dissector_table_get_type(sub_dissectors), GUINT_TO_POINTER(j), NULL, NULL); - } - - dissector_delete_uint(pref->name, (*pref->varp.range)->ranges[i].high, handle); - decode_build_reset_list(pref->name, dissector_table_get_type(sub_dissectors), GUINT_TO_POINTER((*pref->varp.range)->ranges[i].high), NULL, NULL); - } - } - } - } - - wmem_free(wmem_epan_scope(), *pref->varp.range); - *pref->varp.range = range_copy(wmem_epan_scope(), pref->stashed_val.range); - - if (unstash_data->handle_decode_as) { - if ((sub_dissectors != NULL) && (handle != NULL)) { - - /* Add new values to the dissector table */ - for (i = 0; i < (*pref->varp.range)->nranges; i++) { - - for (j = (*pref->varp.range)->ranges[i].low; j < (*pref->varp.range)->ranges[i].high; j++) { - dissector_change_uint(pref->name, j, handle); - decode_build_reset_list(pref->name, dissector_table_get_type(sub_dissectors), GUINT_TO_POINTER(j), NULL, NULL); - } - - dissector_change_uint(pref->name, (*pref->varp.range)->ranges[i].high, handle); - decode_build_reset_list(pref->name, dissector_table_get_type(sub_dissectors), GUINT_TO_POINTER((*pref->varp.range)->ranges[i].high), NULL, NULL); - } - } - } - } - break; - - case PREF_RANGE: - if (!ranges_are_equal(*pref->varp.range, pref->stashed_val.range)) { - unstash_data->module->prefs_changed = TRUE; - wmem_free(wmem_epan_scope(), *pref->varp.range); - *pref->varp.range = range_copy(wmem_epan_scope(), pref->stashed_val.range); - } - break; - - case PREF_COLOR: - *pref->varp.colorp = pref->stashed_val.color; - break; - - case PREF_STATIC_TEXT: - case PREF_UAT: - case PREF_CUSTOM: - break; - - case PREF_OBSOLETE: - g_assert_not_reached(); - break; - } - return 0; -} - -void -reset_stashed_pref(pref_t *pref) { - switch (pref->type) { - - case PREF_DECODE_AS_UINT: - pref->stashed_val.uint = pref->default_val.uint; - break; - - case PREF_UINT: - pref->stashed_val.uint = pref->default_val.uint; - break; - - case PREF_BOOL: - pref->stashed_val.boolval = pref->default_val.boolval; - break; - - case PREF_ENUM: - pref->stashed_val.enumval = pref->default_val.enumval; - break; - - case PREF_STRING: - case PREF_FILENAME: - case PREF_DIRNAME: - g_free(pref->stashed_val.string); - pref->stashed_val.string = g_strdup(pref->default_val.string); - break; - - case PREF_DECODE_AS_RANGE: - case PREF_RANGE: - wmem_free(wmem_epan_scope(), pref->stashed_val.range); - pref->stashed_val.range = range_copy(wmem_epan_scope(), pref->default_val.range); - break; - - case PREF_COLOR: - memcpy(&pref->stashed_val.color, &pref->default_val.color, sizeof(color_t)); - break; - - case PREF_STATIC_TEXT: - case PREF_UAT: - case PREF_CUSTOM: - break; - - case PREF_OBSOLETE: - g_assert_not_reached(); - break; - } -} - -guint -pref_clean_stash(pref_t *pref, gpointer unused _U_) -{ - switch (pref->type) { - - case PREF_UINT: - case PREF_DECODE_AS_UINT: - break; - - case PREF_BOOL: - break; - - case PREF_ENUM: - break; - - case PREF_STRING: - case PREF_FILENAME: - case PREF_DIRNAME: - if (pref->stashed_val.string != NULL) { - g_free(pref->stashed_val.string); - pref->stashed_val.string = NULL; - } - break; - - case PREF_DECODE_AS_RANGE: - case PREF_RANGE: - if (pref->stashed_val.range != NULL) { - wmem_free(wmem_epan_scope(), pref->stashed_val.range); - pref->stashed_val.range = NULL; - } - break; - - case PREF_STATIC_TEXT: - case PREF_UAT: - case PREF_COLOR: - case PREF_CUSTOM: - break; - - case PREF_OBSOLETE: - g_assert_not_reached(); - break; - } - return 0; -} /* Fill in capture options with values from the preferences */ void |