From 66946a0a0cab3a51e6fded95aef4e991baee319f Mon Sep 17 00:00:00 2001 From: Ben Pfaff Date: Sun, 29 Aug 2010 14:55:41 -0700 Subject: [PATCH] settings: Avoid using a pointer and global data for algorithms. Until now the difference between the current and global settings for the algorithms in uses has been maintained as two values plus a pointer to the setting actually in use. Using global data like that makes it harder to save and restore settings, so this commit adopt an alternate method that avoids using global data or pointers. --- src/data/settings.c | 13 +++++-------- 1 file changed, 5 insertions(+), 8 deletions(-) diff --git a/src/data/settings.c b/src/data/settings.c index a5fbfdecbd..551556f011 100644 --- a/src/data/settings.c +++ b/src/data/settings.c @@ -33,8 +33,6 @@ #include "gettext.h" #define _(msgid) gettext (msgid) -static int global_algorithm = ENHANCED; - struct settings { /* Integer format used for IB and PIB input. */ @@ -70,7 +68,7 @@ struct settings bool testing_mode; int cmd_algorithm; - int *algorithm; + int global_algorithm; int syntax; struct fmt_settings *styles; @@ -110,7 +108,7 @@ static struct settings the_settings = { {FMT_F, 8, 2}, /* default_format */ false, /* testing_mode */ ENHANCED, /* cmd_algorithm */ - &global_algorithm, /* algorithm */ + ENHANCED, /* global_algorithm */ ENHANCED, /* syntax */ NULL, /* styles */ @@ -478,14 +476,14 @@ settings_set_testing_mode ( bool testing_mode) enum behavior_mode settings_get_algorithm (void) { - return *the_settings.algorithm; + return the_settings.cmd_algorithm; } /* Set the algorithm option globally. */ void settings_set_algorithm (enum behavior_mode mode) { - global_algorithm = mode; + the_settings.global_algorithm = the_settings.cmd_algorithm = mode; } /* Set the algorithm option for this command only */ @@ -493,14 +491,13 @@ void settings_set_cmd_algorithm ( enum behavior_mode mode) { the_settings.cmd_algorithm = mode; - the_settings.algorithm = &the_settings.cmd_algorithm; } /* Unset the algorithm option for this command */ void unset_cmd_algorithm (void) { - the_settings.algorithm = &global_algorithm; + the_settings.cmd_algorithm = the_settings.global_algorithm; } /* Get the current syntax setting */ -- 2.30.2