From ba11d00aba51338920cf44d42d556d334c05c6a8 Mon Sep 17 00:00:00 2001 From: Jeff Teunissen Date: Sat, 4 Nov 2000 07:42:43 +0000 Subject: [PATCH] compat.h: Add str*equal () convenience macros cl_main.c: Clean up version string a little cmd.c: Add setrom parsing to first init phase, clean up includes a little cvar.c: setrom command now uses set's semantics. Cvar_Set, Cvar_Set_f, Cvar_Setrom_f now do a Con_DPrintf to report attempts to set CVAR_ROM cvars. sv_main.c: Clean up version string a little vid.c: -winsize, -width, and -height no longer use Cvar_SetROM. The code looks a little uglier, but it's more correct. --- include/compat.h | 14 +++++++++ source/cl_main.c | 4 +-- source/cmd.c | 26 ++++++++++------ source/cvar.c | 79 +++++++++++++++++++++++++++--------------------- source/sv_main.c | 6 ++-- source/vid.c | 24 +++++++-------- 6 files changed, 92 insertions(+), 61 deletions(-) diff --git a/include/compat.h b/include/compat.h index ecd1ee0..df16d5a 100644 --- a/include/compat.h +++ b/include/compat.h @@ -74,3 +74,17 @@ extern int vsnprintf(char *s, size_t maxlen, const char *format, va_list arg); #endif #endif // _COMPAT_H + +/* String utility functions */ +#if !defined(strequal) +# define strequal(a,b) (strcmp (a, b) == 0) +#endif +#if !defined(strcaseequal) +# define strcaseequal(a,b) (strcasecmp (a, b) == 0) +#endif +#if !defined(strnequal) +# define strnequal(a,b,c) (strncmp (a, b, c) == 0) +#endif +#if !defined(strncaseequal) +# define strncaseequal(a,b,c) (strncasecmp (a, b, c) == 0) +#endif diff --git a/source/cl_main.c b/source/cl_main.c index f8c462d..a91f49b 100644 --- a/source/cl_main.c +++ b/source/cl_main.c @@ -1702,9 +1702,9 @@ void Host_Init (quakeparms_t *parms) host_initialized = true; - Con_Printf ("\nClient Version %s (Build %04d)\n\n", VERSION, build_number()); + Con_Printf ("\nClient version %s (build %04d)\n\n", VERSION, build_number ()); - Con_Printf (" %s Initialized \n", PROGRAM); + Con_Printf (" %s initialized \n", PROGRAM); } diff --git a/source/cmd.c b/source/cmd.c index 500d97b..85ffc63 100644 --- a/source/cmd.c +++ b/source/cmd.c @@ -27,10 +27,18 @@ */ #ifdef HAVE_CONFIG_H -# include +# include "config.h" #endif + +#include +#include +#ifdef HAVE_STRINGS_H +#include +#endif + #include "sys.h" #include "cmd.h" +#include "compat.h" #include "cvar.h" #include "sizebuf.h" #include "console.h" @@ -39,12 +47,6 @@ #include "commdef.h" #include "zone.h" -#include -#include -#ifdef HAVE_STRINGS_H -#include -#endif - void Cmd_ForwardToServer (void); #define MAX_ALIAS_NAME 32 @@ -258,10 +260,14 @@ Cbuf_Execute_Sets (void) while (cmd_text.cursize) { extract_line (line); // execute the command line - if (strncmp(line,"set",3)==0 - && isspace((int) line[3])) - //Con_DPrintf("+%s\n",line), + if (strnequal(line, "set", 3) && isspace((int) line[3])) { + //Con_DPrintf ("+%s\n",line); Cmd_ExecuteString (line); + } + if (strnequal(line, "setrom", 6) && isspace((int) line[6])) { + //Con_DPrintf ("+%s\n",line); + Cmd_ExecuteString (line); + } } } diff --git a/source/cvar.c b/source/cvar.c index 61a83fe..53f6565 100644 --- a/source/cvar.c +++ b/source/cvar.c @@ -187,22 +187,25 @@ void Cvar_Info (cvar_t *var); Cvar_Set ============ */ -void Cvar_Set (cvar_t *var, char *value) +void +Cvar_Set (cvar_t *var, char *value) { if (!var) return; - if(var->flags & CVAR_ROM) + if(var->flags & CVAR_ROM) { + Con_DPrintf ("Cvar \"%s\" is read-only, cannot modify\n", var->name); return; + } free (var->string); // free the old value string - var->string = malloc (strlen(value)+1); + var->string = malloc (strlen (value) + 1); strcpy (var->string, value); var->value = atof (var->string); var->int_val = atoi (var->string); - Cvar_Info(var); + Cvar_Info (var); } @@ -211,7 +214,8 @@ void Cvar_Set (cvar_t *var, char *value) doesn't check for CVAR_ROM flag */ -void Cvar_SetROM (cvar_t *var, char *value) +void +Cvar_SetROM (cvar_t *var, char *value) { if (!var) return; @@ -252,11 +256,12 @@ Cvar_Command Handles variable inspection and changing from the console ============ */ -qboolean Cvar_Command (void) +qboolean +Cvar_Command (void) { - cvar_t *v; + cvar_t *v; -// check variables + // check variables v = Cvar_FindVar (Cmd_Argv(0)); if (!v) v = Cvar_FindAlias (Cmd_Argv(0)); @@ -264,8 +269,7 @@ qboolean Cvar_Command (void) return false; // perform a variable print or set - if (Cmd_Argc() == 1) - { + if (Cmd_Argc() == 1) { Con_Printf ("\"%s\" is \"%s\"\n", v->name, v->string); return true; } @@ -292,56 +296,63 @@ void Cvar_WriteVariables (QFile *f) Qprintf (f, "%s \"%s\"\n", var->name, var->string); } -void Cvar_Set_f(void) +void +Cvar_Set_f (void) { cvar_t *var; char *value; char *var_name; - if (Cmd_Argc() != 3) - { + if (Cmd_Argc() != 3) { Con_Printf ("usage: set \n"); return; } var_name = Cmd_Argv (1); value = Cmd_Argv (2); var = Cvar_FindVar (var_name); + if (!var) var = Cvar_FindAlias (var_name); - if (var) - { - Cvar_Set (var, value); - } - else - { + + if (var) { + if (var->flags & CVAR_ROM) { + Con_DPrintf ("Cvar \"%s\" is read-only, cannot modify\n", var_name); + } else { + Cvar_Set (var, value); + } + } else { var = Cvar_Get (var_name, value, CVAR_USER_CREATED, - "User created cvar"); + "User-created cvar"); } } -void Cvar_Setrom_f(void) +void +Cvar_Setrom_f (void) { - cvar_t *var; - char *value; - char *var_name; + cvar_t *var; + char *value; + char *var_name; - if (Cmd_Argc() != 2) - { - Con_Printf ("usage: setrom \n"); + if (Cmd_Argc() != 3) { + Con_Printf ("usage: setrom \n"); return; } var_name = Cmd_Argv (1); value = Cmd_Argv (2); var = Cvar_FindVar (var_name); + if (!var) var = Cvar_FindAlias (var_name); - if (var) - { - var->flags |= CVAR_ROM; - } - else - { - Con_Printf ("cvar %s not found\n", var_name); + + if (var) { + if (var->flags & CVAR_ROM) { + Con_DPrintf ("Cvar \"%s\" is read-only, cannot modify\n", var_name); + } else { + Cvar_Set (var, value); + } + } else { + var = Cvar_Get (var_name, value, CVAR_USER_CREATED|CVAR_ROM, + "User-created READ-ONLY Cvar"); } } diff --git a/source/sv_main.c b/source/sv_main.c index 4bca48d..470186b 100644 --- a/source/sv_main.c +++ b/source/sv_main.c @@ -1917,11 +1917,11 @@ void SV_Init (quakeparms_t *parms) host_initialized = true; // Con_Printf ("Exe: "__TIME__" "__DATE__"\n"); - Con_Printf ("%4.1f megabyte heap\n",parms->memsize/ (1024*1024.0)); + Con_Printf ("%4.1f megabyte heap\n", parms->memsize / (1024*1024.0)); - Con_Printf ("\nQuakeForge Version %s (Build %04d)\n\n", VERSION, build_number()); + Con_Printf ("\n%s server, Version %s (build %04d)\n\n", PROGRAM, VERSION, build_number ()); - Con_Printf ("======== %s Initialized ========\n", PROGRAM); + Con_Printf ("<==> %s initialized <==>\n", PROGRAM); // process command line arguments Cmd_StuffCmds_f (); diff --git a/source/vid.c b/source/vid.c index c9fbbd1..b557b8d 100644 --- a/source/vid.c +++ b/source/vid.c @@ -47,13 +47,19 @@ VID_GetWindowSize (int def_w, int def_h) { int pnum; - vid_width = Cvar_Get ("vid_width", va("%d",def_w), CVAR_ROM, "screen width"); - vid_height = Cvar_Get ("vid_height", va("%d",def_h), CVAR_ROM, "screen height"); + if ((pnum=COM_CheckParm("-winsize"))) { + if (pnum >= com_argc-2) + Sys_Error("VID: -winsize \n"); + vid_width = Cvar_Get ("vid_width", com_argv[pnum+1], CVAR_ROM, "screen width"); + vid_height = Cvar_Get ("vid_height", com_argv[pnum+2], CVAR_ROM, "screen height"); + if (!vid_width->int_val || !vid_height->int_val) + Sys_Error("VID: Bad window width/height\n"); + } if ((pnum=COM_CheckParm("-width"))) { if (pnum >= com_argc-1) Sys_Error("VID: -width \n"); - Cvar_SetROM (vid_width, com_argv[pnum+1]); + vid_width = Cvar_Get ("vid_width", com_argv[pnum+1], CVAR_ROM, "screen width"); if (!vid_width->int_val) Sys_Error("VID: Bad window width\n"); } @@ -61,19 +67,13 @@ VID_GetWindowSize (int def_w, int def_h) if ((pnum=COM_CheckParm("-height"))) { if (pnum >= com_argc-1) Sys_Error("VID: -height \n"); - Cvar_SetROM (vid_height, com_argv[pnum+1]); + vid_height = Cvar_Get ("vid_height", com_argv[pnum+1], CVAR_ROM, "screen height"); if (!vid_height->int_val) Sys_Error("VID: Bad window height\n"); } - if ((pnum=COM_CheckParm("-winsize"))) { - if (pnum >= com_argc-2) - Sys_Error("VID: -winsize \n"); - Cvar_SetROM (vid_width, com_argv[pnum+1]); - Cvar_SetROM (vid_height, com_argv[pnum+2]); - if (!vid_width->int_val || !vid_height->int_val) - Sys_Error("VID: Bad window width/height\n"); - } + vid_width = Cvar_Get ("vid_width", va("%d",def_w), CVAR_ROM, "screen width"); + vid_height = Cvar_Get ("vid_height", va("%d",def_h), CVAR_ROM, "screen height"); scr_width = vid.width = vid_width->int_val; scr_height = vid.height = vid_height->int_val;