From ca2a6635b62ed20fa285e416762f3d79a9626566 Mon Sep 17 00:00:00 2001 From: Alibek Omarov Date: Thu, 25 Aug 2022 19:16:40 +0300 Subject: [PATCH] engine: common: fix cmdlist and cvarlist to match the beginning of command or cvar --- engine/common/cmd.c | 12 ++++++++---- engine/common/cvar.c | 6 +++++- 2 files changed, 13 insertions(+), 5 deletions(-) diff --git a/engine/common/cmd.c b/engine/common/cmd.c index 1df7287b..9eeb1c68 100644 --- a/engine/common/cmd.c +++ b/engine/common/cmd.c @@ -1171,17 +1171,21 @@ void Cmd_List_f( void ) { cmd_t *cmd; int i = 0; - const char *match; + size_t matchlen = 0; + const char *match = NULL; - if( Cmd_Argc() > 1 ) match = Cmd_Argv( 1 ); - else match = NULL; + if( Cmd_Argc() > 1 ) + { + match = Cmd_Argv( 1 ); + matchlen = Q_strlen( match ); + } for( cmd = cmd_functions; cmd; cmd = cmd->next ) { if( cmd->name[0] == '@' ) continue; // never show system cmds - if( match && !Q_stricmpext( match, cmd->name )) + if( match && !Q_strnicmpext( match, cmd->name, matchlen )) continue; Con_Printf( " %-*s ^3%s^7\n", 32, cmd->name, cmd->desc ); diff --git a/engine/common/cvar.c b/engine/common/cvar.c index 0e33ef31..752a6846 100644 --- a/engine/common/cvar.c +++ b/engine/common/cvar.c @@ -934,16 +934,20 @@ void Cvar_List_f( void ) const char *match = NULL; char *value; int count = 0; + size_t matchlen = 0; if( Cmd_Argc() > 1 ) + { match = Cmd_Argv( 1 ); + matchlen = Q_strlen( match ); + } for( var = cvar_vars; var; var = var->next ) { if( var->name[0] == '@' ) continue; // never shows system cvars - if( match && !Q_stricmpext( match, var->name )) + if( match && !Q_strnicmpext( match, var->name, matchlen )) continue; if( Q_colorstr( var->string ))