Skip to content

Auto-wildcard for cvarlist #448

@Gelmo

Description

@Gelmo

Adjust the cvarlist command so it wraps the provided arg in wildcards. For example, it would be nice to do cvarlist color instead of cvarlist *color*

source/qcommon/cvar.c:

/*
* Cvar_List_f
*/
static void Cvar_List_f( void )
{
        struct trie_dump_s *dump = NULL;
        unsigned int i;
        char *pattern;

        if( Cmd_Argc() == 1 )
                pattern = NULL;
        else
                pattern = Cmd_Args();

        assert( cvar_trie );
        QMutex_Lock( cvar_mutex );
        Trie_DumpIf( cvar_trie, "", TRIE_DUMP_VALUES, Cvar_PatternMatches, pattern, &dump );
        QMutex_Unlock( cvar_mutex );

        Com_Printf( "\nConsole variables:\n" );
        for( i = 0; i < dump->size; ++i )
        {
                cvar_t *const var = dump->key_value_vector[i].value;
#ifdef PUBLIC_BUILD
                if( Cvar_FlagIsSet( var->flags, CVAR_DEVELOPER ) )
                        continue;
#endif
                if( Cvar_FlagIsSet( var->flags, CVAR_ARCHIVE ) )
                        Com_Printf( "*" );
                else
                        Com_Printf( " " );
                if( Cvar_FlagIsSet( var->flags, CVAR_USERINFO ) )
                        Com_Printf( "U" );
                else
                        Com_Printf( " " );
                if( Cvar_FlagIsSet( var->flags, CVAR_SERVERINFO ) )
                        Com_Printf( "S" );
                else
                        Com_Printf( " " );
                if( Cvar_FlagIsSet( var->flags, CVAR_NOSET ) || Cvar_FlagIsSet( var->flags, CVAR_READONLY ) )
                        Com_Printf( "-" );
                else if( Cvar_FlagIsSet( var->flags, CVAR_LATCH ) || Cvar_FlagIsSet( var->flags, CVAR_LATCH_VIDEO ) ||
                        Cvar_FlagIsSet( var->flags, CVAR_LATCH_SOUND ) )
                        Com_Printf( "L" );
                else
                        Com_Printf( " " );
                if( Cvar_FlagIsSet( var->flags, CVAR_CHEAT ) )
                        Com_Printf( "C" );
                else
                        Com_Printf( " " );
                Com_Printf( " %s \"%s%s\", default: \"%s%s\"\n", var->name,
                        var->string, Q_ColorStringTerminator( var->string, ColorIndex(COLOR_WHITE) ),
                        var->dvalue, Q_ColorStringTerminator( var->dvalue, ColorIndex(COLOR_WHITE) ) );
        }
        Com_Printf( "%i variables\n", i );

        Trie_FreeDump( dump );
}

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions