From 2f49a6628225085f0857b832879c765e2ed49378 Mon Sep 17 00:00:00 2001 From: Bill Currie Date: Sun, 15 Jul 2012 06:57:11 +0900 Subject: [PATCH] Make "serverinfo key" display the value for the key. localinfo, too. From mvdsv. --- qw/source/sv_ccmds.c | 76 +++++++++++++++++++++++++++++--------------- 1 file changed, 51 insertions(+), 25 deletions(-) diff --git a/qw/source/sv_ccmds.c b/qw/source/sv_ccmds.c index ecf714e43..baf2f5c66 100644 --- a/qw/source/sv_ccmds.c +++ b/qw/source/sv_ccmds.c @@ -889,16 +889,29 @@ static void SV_Serverinfo_f (void) { cvar_t *var; + const char *key; + const char *value; - if (Cmd_Argc () == 1) { - SV_Printf ("Server info settings:\n"); - Info_Print (svs.info); - return; - } - - if (Cmd_Argc () != 3) { - SV_Printf ("usage: serverinfo [ ]\n"); - return; + switch (Cmd_Argc ()) { + case 1: + SV_Printf ("Server info settings:\n"); + Info_Print (svs.info); + return; + case 2: + key = Cmd_Argv (1); + value = Info_ValueForKey (svs.info, key); + if (Info_Key (svs.info, key)) + SV_Printf ("Server info %s: \"%s\"\n", key, value); + else + SV_Printf ("No such key %s\n", Cmd_Argv(1)); + return; + case 3: + key = Cmd_Argv (1); + value = Cmd_Argv (2); + break; + default: + SV_Printf ("usage: serverinfo [ ]\n"); + return; } if (Cmd_Argv (1)[0] == '*') { @@ -907,13 +920,12 @@ SV_Serverinfo_f (void) } // if this is a cvar, change it too - var = Cvar_FindVar (Cmd_Argv (1)); + var = Cvar_FindVar (key); if (var && (var->flags & CVAR_SERVERINFO)) { - Cvar_Set (var, Cmd_Argv (2)); + Cvar_Set (var, value); } else { - Info_SetValueForKey (svs.info, Cmd_Argv (1), Cmd_Argv (2), - !sv_highchars->int_val); - SV_SendServerInfoChange (Cmd_Argv (1), Cmd_Argv (2)); + Info_SetValueForKey (svs.info, key, value, !sv_highchars->int_val); + SV_SendServerInfoChange (key, value); } } @@ -954,22 +966,36 @@ SV_SetLocalinfo (const char *key, const char *value) static void SV_Localinfo_f (void) { - if (Cmd_Argc () == 1) { - SV_Printf ("Local info settings:\n"); - Info_Print (localinfo); - return; + const char *key; + const char *value; + + switch (Cmd_Argc ()) { + case 1: + SV_Printf ("Local info settings:\n"); + Info_Print (localinfo); + return; + case 2: + key = Cmd_Argv (1); + value = Info_ValueForKey (localinfo, key); + if (Info_Key (localinfo, key)) + SV_Printf ("Localinfo %s: \"%s\"\n", key, value); + else + SV_Printf ("No such key %s\n", Cmd_Argv(1)); + return; + case 3: + key = Cmd_Argv (1); + value = Cmd_Argv (2); + break; + default: + SV_Printf ("usage: localinfo [ ]\n"); + return; } - if (Cmd_Argc () != 3) { - SV_Printf ("usage: localinfo [ ]\n"); - return; - } - - if (Cmd_Argv (1)[0] == '*') { + if (key[0] == '*') { SV_Printf ("Star variables cannot be changed.\n"); return; } - SV_SetLocalinfo (Cmd_Argv (1), Cmd_Argv (2)); + SV_SetLocalinfo (key, value); } /*