Add VF_NO_SAVE flag to mark variables that shouldn't be saved

This replaces an explicit test for the variable names "DISPLAY" and "CLIENT_INFORMATION".
This commit is contained in:
Kevin Easton
2017-10-26 16:12:19 +11:00
parent 796eef3f99
commit dc30b852e1
2 changed files with 6 additions and 5 deletions

View File

@@ -404,7 +404,8 @@ extern int loading_global;
#define STR_TYPE_VAR 3 #define STR_TYPE_VAR 3
#define SET_TYPE_VAR 4 #define SET_TYPE_VAR 4
#define VF_EXPAND_PATH 0x0002 #define VF_NO_SAVE 0x0001U
#define VF_EXPAND_PATH 0x0002U
#define VIF_CHANGED 0x01 #define VIF_CHANGED 0x01
#define VIF_GLOBAL 0x02 #define VIF_GLOBAL 0x02

View File

@@ -160,7 +160,7 @@ static IrcVariable irc_variable[] =
{ "CHANMODE",0, STR_TYPE_VAR, 0, NULL, NULL, 0, VIF_BITCHX }, { "CHANMODE",0, STR_TYPE_VAR, 0, NULL, NULL, 0, VIF_BITCHX },
{ "CHANNEL_NAME_WIDTH",0, INT_TYPE_VAR, DEFAULT_CHANNEL_NAME_WIDTH, NULL, BX_update_all_status, 0, 0 }, { "CHANNEL_NAME_WIDTH",0, INT_TYPE_VAR, DEFAULT_CHANNEL_NAME_WIDTH, NULL, BX_update_all_status, 0, 0 },
{ "CHECK_BEEP_USERS",0, BOOL_TYPE_VAR, 0, NULL, NULL, 0, 0 }, { "CHECK_BEEP_USERS",0, BOOL_TYPE_VAR, 0, NULL, NULL, 0, 0 },
{ "CLIENT_INFORMATION",0, STR_TYPE_VAR, 0, NULL, NULL, 0, 0 }, { "CLIENT_INFORMATION",0, STR_TYPE_VAR, 0, NULL, NULL, 0, VF_NO_SAVE },
{ "CLOAK",0, INT_TYPE_VAR, DEFAULT_CLOAK, NULL, BX_update_all_status, 0, VIF_BITCHX }, { "CLOAK",0, INT_TYPE_VAR, DEFAULT_CLOAK, NULL, BX_update_all_status, 0, VIF_BITCHX },
{ "CLOCK",0, BOOL_TYPE_VAR, DEFAULT_CLOCK, NULL, BX_update_all_status, 0, 0 }, { "CLOCK",0, BOOL_TYPE_VAR, DEFAULT_CLOCK, NULL, BX_update_all_status, 0, 0 },
{ "CLOCK_24HOUR",0, BOOL_TYPE_VAR, DEFAULT_CLOCK_24HOUR, NULL, reset_clock, 0, VIF_BITCHX }, { "CLOCK_24HOUR",0, BOOL_TYPE_VAR, DEFAULT_CLOCK_24HOUR, NULL, reset_clock, 0, VIF_BITCHX },
@@ -213,7 +213,7 @@ static IrcVariable irc_variable[] =
{ "DEOP_ON_KICKFLOOD",0, INT_TYPE_VAR, DEFAULT_DEOP_ON_KICKFLOOD, NULL, NULL, 0, VIF_BITCHX }, { "DEOP_ON_KICKFLOOD",0, INT_TYPE_VAR, DEFAULT_DEOP_ON_KICKFLOOD, NULL, NULL, 0, VIF_BITCHX },
{ "DETACH_ON_HUP",0, BOOL_TYPE_VAR, DEFAULT_DETACH_ON_HUP, NULL, set_detach_on_hup, 0, 0 }, { "DETACH_ON_HUP",0, BOOL_TYPE_VAR, DEFAULT_DETACH_ON_HUP, NULL, set_detach_on_hup, 0, 0 },
{ "DISPATCH_UNKNOWN_COMMANDS",0,BOOL_TYPE_VAR, DEFAULT_DISPATCH_UNKNOWN_COMMANDS, NULL, NULL, 0, 0 }, { "DISPATCH_UNKNOWN_COMMANDS",0,BOOL_TYPE_VAR, DEFAULT_DISPATCH_UNKNOWN_COMMANDS, NULL, NULL, 0, 0 },
{ "DISPLAY",0, BOOL_TYPE_VAR, DEFAULT_DISPLAY, NULL, NULL, 0, 0 }, { "DISPLAY",0, BOOL_TYPE_VAR, DEFAULT_DISPLAY, NULL, NULL, 0, VF_NO_SAVE },
{ "DISPLAY_ANSI",0, BOOL_TYPE_VAR, DEFAULT_DISPLAY_ANSI, NULL, toggle_reverse_status, 0, 0 }, { "DISPLAY_ANSI",0, BOOL_TYPE_VAR, DEFAULT_DISPLAY_ANSI, NULL, toggle_reverse_status, 0, 0 },
{ "DISPLAY_PC_CHARACTERS",0, INT_TYPE_VAR, DEFAULT_DISPLAY_PC_CHARACTERS, NULL, reinit_screen, 0, VIF_BITCHX }, { "DISPLAY_PC_CHARACTERS",0, INT_TYPE_VAR, DEFAULT_DISPLAY_PC_CHARACTERS, NULL, reinit_screen, 0, VIF_BITCHX },
{ "DOUBLE_STATUS_LINE",0, INT_TYPE_VAR, DEFAULT_DOUBLE_STATUS_LINE, NULL, NULL, 0, VIF_BITCHX }, { "DOUBLE_STATUS_LINE",0, INT_TYPE_VAR, DEFAULT_DOUBLE_STATUS_LINE, NULL, NULL, 0, VIF_BITCHX },
@@ -1224,10 +1224,10 @@ void save_variables(FILE *fp, int do_all)
{ {
if (!(var->int_flags & VIF_CHANGED)) if (!(var->int_flags & VIF_CHANGED))
continue; continue;
if (var->flags & VF_NO_SAVE)
continue;
if ((do_all == 1) || !(var->int_flags & VIF_GLOBAL)) if ((do_all == 1) || !(var->int_flags & VIF_GLOBAL))
{ {
if (strcmp(var->name, "DISPLAY") == 0 || strcmp(var->name, "CLIENT_INFORMATION") == 0)
continue;
fprintf(fp, "SET "); fprintf(fp, "SET ");
switch (var->type) switch (var->type)
{ {