summaryrefslogtreecommitdiff
path: root/ui/preference_utils.c
diff options
context:
space:
mode:
authorMichael Mann <mmann78@netscape.net>2017-01-04 10:57:25 -0500
committerMichael Mann <mmann78@netscape.net>2017-01-07 15:35:18 +0000
commit165c8b04227df05a0ae329e92adff7bd314b9d4b (patch)
treeb632e9e30ca7c3ca472d0e8e3926ec53efe244fc /ui/preference_utils.c
parentfb9ac503c16e88408a53e808f17f19f63787f2de (diff)
downloadwireshark-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.c277
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