diff options
author | tma <tma@edf5b092-35ff-0310-97b2-ce42778d08ea> | 2008-09-16 21:05:22 +0000 |
---|---|---|
committer | tma <tma@edf5b092-35ff-0310-97b2-ce42778d08ea> | 2008-09-16 21:05:22 +0000 |
commit | 660be5cc7d3989740b4e6fbd8ed8b1d9c46ebd20 (patch) | |
tree | c609227c4de7d3ea10310714c3262d58665b3ffa /code/client/cl_keys.c | |
parent | 134e4522a3a9eb3f3e2f8e3646eb3d3999d49694 (diff) | |
download | ioquake3-aero-660be5cc7d3989740b4e6fbd8ed8b1d9c46ebd20.tar.gz ioquake3-aero-660be5cc7d3989740b4e6fbd8ed8b1d9c46ebd20.zip |
* Move command argument completion from being hard coded to being associated
with the individual commands to be completed
git-svn-id: svn://svn.icculus.org/quake3/trunk@1472 edf5b092-35ff-0310-97b2-ce42778d08ea
Diffstat (limited to 'code/client/cl_keys.c')
-rw-r--r-- | code/client/cl_keys.c | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/code/client/cl_keys.c b/code/client/cl_keys.c index 3097f54..f2932d9 100644 --- a/code/client/cl_keys.c +++ b/code/client/cl_keys.c @@ -1058,6 +1058,50 @@ void Key_KeynameCompletion( void(*callback)(const char *s) ) { } /* +==================== +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); } |