/* ============ Cmd_List_f ============ */ void Cmd_List_f( void ) { cmd_t *cmd; int i = 0; char *match; if( Cmd_Argc() > 1 ) match = Cmd_Argv( 1 ); else match = NULL; for( cmd = cmd_functions; cmd; cmd = cmd->next ) { if( match && !Q_stricmpext( match, cmd->name )) continue; Msg( "%10s %s\n", cmd->name, cmd->desc ); i++; } Msg( "%i commands\n", i ); }
static qboolean Q_starcmp( const char *pattern, const char *text ) { char c, c1; const char *p = pattern, *t = text; while(( c = *p++ ) == '?' || c == '*' ) { if( c == '?' && *t++ == '\0' ) return false; } if( c == '\0' ) return true; for( c1 = (( c == '\\' ) ? *p : c ); ; ) { if( Q_tolower( *t ) == c1 && Q_stricmpext( p - 1, t )) return true; if( *t++ == '\0' ) return false; } }