From b433ee10fd4ef7fd1b4dfeb985ade850ade6b8cc Mon Sep 17 00:00:00 2001 From: Yamagi Burmeister Date: Thu, 14 Dec 2017 19:48:44 +0100 Subject: [PATCH 1/3] Add a way to rewrite cvars loaded from config.cfg. With this renamed cvars can be rewritten when config.cfg is first loaded. Please note that once this was done older YQ2 versions can't parse that config.cfg anymore. --- src/common/cmdparser.c | 9 +++++++++ src/common/cvar.c | 34 +++++++++++++++++++++++++++++----- src/common/header/common.h | 3 +++ 3 files changed, 41 insertions(+), 5 deletions(-) diff --git a/src/common/cmdparser.c b/src/common/cmdparser.c index 4f9cafcf..a316f611 100644 --- a/src/common/cmdparser.c +++ b/src/common/cmdparser.c @@ -924,6 +924,9 @@ Cmd_IsComplete(char *command) /* ugly hack to suppress warnings from default.cfg in Key_Bind_f() */ qboolean doneWithDefaultCfg; +/* Another ugly hack, this time to rewrite CVARs loaded from config.cfg */ +qboolean doneWithCfg; + /* * A complete command line has been parsed, so try to execute it */ @@ -947,6 +950,12 @@ Cmd_ExecuteString(char *text) doneWithDefaultCfg = true; } + if(Cmd_Argc() > 1 && Q_strcasecmp(cmd_argv[0], "exec") == 0 && Q_strcasecmp(cmd_argv[1], "autoexec.cfg") == 0) + { + /* exec autoexec.cfg is done directly after exec config.cfg, see Qcommon_Init() */ + doneWithCfg = true; + } + /* check functions */ for (cmd = cmd_functions; cmd; cmd = cmd->next) { diff --git a/src/common/cvar.c b/src/common/cvar.c index c972f4bc..c0e5f534 100644 --- a/src/common/cvar.c +++ b/src/common/cvar.c @@ -28,6 +28,18 @@ cvar_t *cvar_vars; + +typedef struct +{ + char *old; + char *new; +} replacement_t; + +/* An ugly hack to rewrite CVARs loaded from config.cfg */ +replacement_t replacements[] = { +}; + + static qboolean Cvar_InfoValidate(char *s) { @@ -408,8 +420,8 @@ Cvar_Command(void) void Cvar_Set_f(void) { - int c; - int flags; + char *firstarg; + int c, flags, i; c = Cmd_Argc(); @@ -419,6 +431,19 @@ Cvar_Set_f(void) return; } + firstarg = Cmd_Argv(1); + + /* An ugly hack to rewrite CVARs loaded from config.cfg */ + if (!doneWithCfg) + { + for (i = 0; i < sizeof(replacements) / sizeof(replacement_t); i++) + { + if (!strcmp(firstarg, replacements[i].old)) + { + firstarg = replacements[i].new; + } + } + } if (c == 4) { if (!strcmp(Cmd_Argv(3), "u")) @@ -437,12 +462,11 @@ Cvar_Set_f(void) return; } - Cvar_FullSet(Cmd_Argv(1), Cmd_Argv(2), flags); + Cvar_FullSet(firstarg, Cmd_Argv(2), flags); } - else { - Cvar_Set(Cmd_Argv(1), Cmd_Argv(2)); + Cvar_Set(firstarg, Cmd_Argv(2)); } } diff --git a/src/common/header/common.h b/src/common/header/common.h index e4645abe..8541bb80 100644 --- a/src/common/header/common.h +++ b/src/common/header/common.h @@ -313,6 +313,9 @@ enum clc_ops_e #define EXEC_INSERT 1 /* insert at current position, but don't run yet */ #define EXEC_APPEND 2 /* add to end of the command buffer */ +/* An ugly hack to rewrite CVARs loaded from config.cfg */ +extern qboolean doneWithCfg; + void Cbuf_Init(void); /* allocates an initial text buffer that will grow as needed */ From 00bf016576f62bc31fac767ba6aeed71d54d893a Mon Sep 17 00:00:00 2001 From: Yamagi Burmeister Date: Sat, 16 Dec 2017 16:42:24 +0100 Subject: [PATCH 2/3] Rewrite all cvars, not just the ones loaded from config.cfg. And print a nice message thate the cvar is deprecated. --- src/common/cmdparser.c | 9 --------- src/common/cvar.c | 14 +++++++------- src/common/header/common.h | 3 --- 3 files changed, 7 insertions(+), 19 deletions(-) diff --git a/src/common/cmdparser.c b/src/common/cmdparser.c index a316f611..4f9cafcf 100644 --- a/src/common/cmdparser.c +++ b/src/common/cmdparser.c @@ -924,9 +924,6 @@ Cmd_IsComplete(char *command) /* ugly hack to suppress warnings from default.cfg in Key_Bind_f() */ qboolean doneWithDefaultCfg; -/* Another ugly hack, this time to rewrite CVARs loaded from config.cfg */ -qboolean doneWithCfg; - /* * A complete command line has been parsed, so try to execute it */ @@ -950,12 +947,6 @@ Cmd_ExecuteString(char *text) doneWithDefaultCfg = true; } - if(Cmd_Argc() > 1 && Q_strcasecmp(cmd_argv[0], "exec") == 0 && Q_strcasecmp(cmd_argv[1], "autoexec.cfg") == 0) - { - /* exec autoexec.cfg is done directly after exec config.cfg, see Qcommon_Init() */ - doneWithCfg = true; - } - /* check functions */ for (cmd = cmd_functions; cmd; cmd = cmd->next) { diff --git a/src/common/cvar.c b/src/common/cvar.c index c0e5f534..3e65dc1d 100644 --- a/src/common/cvar.c +++ b/src/common/cvar.c @@ -433,17 +433,17 @@ Cvar_Set_f(void) firstarg = Cmd_Argv(1); - /* An ugly hack to rewrite CVARs loaded from config.cfg */ - if (!doneWithCfg) + /* An ugly hack to rewrite changed CVARs */ + for (i = 0; i < sizeof(replacements) / sizeof(replacement_t); i++) { - for (i = 0; i < sizeof(replacements) / sizeof(replacement_t); i++) + if (!strcmp(firstarg, replacements[i].old)) { - if (!strcmp(firstarg, replacements[i].old)) - { - firstarg = replacements[i].new; - } + Com_Printf("cvar %s ist deprecated, use %s instead\n", replacements[i].old, replacements[i].new); + + firstarg = replacements[i].new; } } + if (c == 4) { if (!strcmp(Cmd_Argv(3), "u")) diff --git a/src/common/header/common.h b/src/common/header/common.h index 8541bb80..e4645abe 100644 --- a/src/common/header/common.h +++ b/src/common/header/common.h @@ -313,9 +313,6 @@ enum clc_ops_e #define EXEC_INSERT 1 /* insert at current position, but don't run yet */ #define EXEC_APPEND 2 /* add to end of the command buffer */ -/* An ugly hack to rewrite CVARs loaded from config.cfg */ -extern qboolean doneWithCfg; - void Cbuf_Init(void); /* allocates an initial text buffer that will grow as needed */ From 041d1c6cb6e1eff8d84ce883ff42c3c7f1c5f67e Mon Sep 17 00:00:00 2001 From: Yamagi Burmeister Date: Sat, 16 Dec 2017 16:55:30 +0100 Subject: [PATCH 3/3] Remove unused WinError() function. --- src/backends/windows/system.c | 16 ---------------- 1 file changed, 16 deletions(-) diff --git a/src/backends/windows/system.c b/src/backends/windows/system.c index 3fa51479..29b8127d 100644 --- a/src/backends/windows/system.c +++ b/src/backends/windows/system.c @@ -127,22 +127,6 @@ Sys_Quit(void) exit(0); } -void -WinError(void) -{ - LPVOID lpMsgBuf; - - FormatMessage(FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM, - NULL, GetLastError(), MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), - (LPTSTR)&lpMsgBuf, 0, NULL); - - /* Display the string. */ - MessageBox(NULL, lpMsgBuf, "GetLastError", MB_OK | MB_ICONINFORMATION); - - /* Free the buffer. */ - LocalFree(lpMsgBuf); -} - /* ================================================================ */ void