* Move command argument completion from being hard coded to being associated
with the individual commands to be completed
This commit is contained in:
parent
47ee177430
commit
130c0c6575
8 changed files with 195 additions and 89 deletions
|
@ -1057,6 +1057,50 @@ void Key_KeynameCompletion( void(*callback)(const char *s) ) {
|
|||
callback( keynames[ i ].name );
|
||||
}
|
||||
|
||||
/*
|
||||
====================
|
||||
Key_CompleteUnbind
|
||||
====================
|
||||
*/
|
||||
static void Key_CompleteUnbind( char *args, int argNum )
|
||||
{
|
||||
if( argNum == 2 )
|
||||
{
|
||||
// Skip "unbind "
|
||||
char *p = Com_SkipTokens( args, 1, " " );
|
||||
|
||||
if( p > args )
|
||||
Field_CompleteKeyname( );
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
====================
|
||||
Key_CompleteBind
|
||||
====================
|
||||
*/
|
||||
static void Key_CompleteBind( char *args, int argNum )
|
||||
{
|
||||
char *p;
|
||||
|
||||
if( argNum == 2 )
|
||||
{
|
||||
// Skip "bind "
|
||||
p = Com_SkipTokens( args, 1, " " );
|
||||
|
||||
if( p > args )
|
||||
Field_CompleteKeyname( );
|
||||
}
|
||||
else if( argNum >= 3 )
|
||||
{
|
||||
// Skip "bind <key> "
|
||||
p = Com_SkipTokens( args, 2, " " );
|
||||
|
||||
if( p > args )
|
||||
Field_CompleteCommand( p, qtrue, qtrue );
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
===================
|
||||
CL_InitKeyCommands
|
||||
|
@ -1065,7 +1109,9 @@ CL_InitKeyCommands
|
|||
void CL_InitKeyCommands( void ) {
|
||||
// register our functions
|
||||
Cmd_AddCommand ("bind",Key_Bind_f);
|
||||
Cmd_SetCommandCompletionFunc( "bind", Key_CompleteBind );
|
||||
Cmd_AddCommand ("unbind",Key_Unbind_f);
|
||||
Cmd_SetCommandCompletionFunc( "unbind", Key_CompleteUnbind );
|
||||
Cmd_AddCommand ("unbindall",Key_Unbindall_f);
|
||||
Cmd_AddCommand ("bindlist",Key_Bindlist_f);
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue