X-Git-Url: http://de.git.xonotic.org/?a=blobdiff_plain;f=cmd.h;h=38d4346394642c57aa8b683d5f1b20840c57d33c;hb=2dbe17fce49258350f4a501edc8923470f224cb5;hp=35ce36f26b8582b8f350e00f330febec5f1b1add;hpb=7e5798f42d1ce9ca82f71343b98fceafa3956adb;p=xonotic%2Fdarkplaces.git diff --git a/cmd.h b/cmd.h index 35ce36f2..38d43463 100644 --- a/cmd.h +++ b/cmd.h @@ -8,7 +8,7 @@ of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. @@ -37,23 +37,30 @@ The game starts with a Cbuf_AddText ("exec quake.rc\n"); Cbuf_Execute (); #ifndef CMD_H #define CMD_H +/// allocates an initial text buffer that will grow as needed void Cbuf_Init (void); -// allocates an initial text buffer that will grow as needed +void Cmd_Init_Commands (void); + +void Cbuf_Shutdown (void); + +/*! as new commands are generated from the console or keybindings, + * the text is added to the end of the command buffer. + */ void Cbuf_AddText (const char *text); -// as new commands are generated from the console or keybindings, -// the text is added to the end of the command buffer. +/*! when a command wants to issue other commands immediately, the text is + * inserted at the beginning of the buffer, before any remaining unexecuted + * commands. + */ void Cbuf_InsertText (const char *text); -// when a command wants to issue other commands immediately, the text is -// inserted at the beginning of the buffer, before any remaining unexecuted -// commands. +/*! Pulls off terminated lines of text from the command buffer and sends + * them through Cmd_ExecuteString. Stops when the buffer is empty. + * Normally called once per frame, but may be explicitly invoked. + * \note Do not call inside a command function! + */ void Cbuf_Execute (void); -// Pulls off \n terminated lines of text from the command buffer and sends -// them through Cmd_ExecuteString. Stops when the buffer is empty. -// Normally called once per frame, but may be explicitly invoked. -// Do not call inside a command function! //=========================================================================== @@ -72,26 +79,28 @@ typedef void (*xcommand_t) (void); typedef enum { - src_client, // came in over a net connection as a clc_stringcmd - // host_client will be valid during this state. - src_command // from the command buffer + src_client, ///< came in over a net connection as a clc_stringcmd + ///< host_client will be valid during this state. + src_command ///< from the command buffer } cmd_source_t; extern cmd_source_t cmd_source; void Cmd_Init (void); +void Cmd_Shutdown (void); -void Cmd_AddCommand (const char *cmd_name, xcommand_t function); +void Cmd_AddCommand_WithClientCommand (const char *cmd_name, xcommand_t consolefunction, xcommand_t clientfunction, const char *description); +void Cmd_AddCommand (const char *cmd_name, xcommand_t function, const char *description); // called by the init functions of other parts of the program to // register commands and functions to call for them. // The cmd_name is referenced later, so it should not be in temp memory +/// used by the cvar code to check for cvar / command name overlap qboolean Cmd_Exists (const char *cmd_name); -// used by the cvar code to check for cvar / command name overlap +/// attempts to match a partial command for automatic command line completion +/// returns NULL if nothing fits const char *Cmd_CompleteCommand (const char *partial); -// attempts to match a partial command for automatic command line completion -// returns NULL if nothing fits int Cmd_CompleteAliasCountPossible (const char *partial); @@ -101,8 +110,12 @@ int Cmd_CompleteCountPossible (const char *partial); const char **Cmd_CompleteBuildList (const char *partial); +void Cmd_CompleteCommandPrint (const char *partial); + const char *Cmd_CompleteAlias (const char *partial); +void Cmd_CompleteAliasPrint (const char *partial); + // Enhanced console completion by Fett erich@heintz.com // Added by EvilTypeGuy eviltypeguy@qeradiant.com @@ -114,30 +127,37 @@ const char *Cmd_Args (void); // functions. Cmd_Argv () will return an empty string, not a NULL // if arg > argc, so string operations are always safe. +/// Returns the position (1 to argc-1) in the command's argument list +/// where the given parameter apears, or 0 if not present int Cmd_CheckParm (const char *parm); -// Returns the position (1 to argc-1) in the command's argument list -// where the given parameter apears, or 0 if not present //void Cmd_TokenizeString (char *text); // Takes a null terminated string. Does not need to be /n terminated. // breaks the string up into arg tokens. +/// Parses a single line of text into arguments and tries to execute it. +/// The text can come from the command buffer, a remote client, or stdin. void Cmd_ExecuteString (const char *text, cmd_source_t src); -// Parses a single line of text into arguments and tries to execute it. -// The text can come from the command buffer, a remote client, or stdin. +/// adds the string as a clc_stringcmd to the client message. +/// (used when there is no reason to generate a local command to do it) void Cmd_ForwardStringToServer (const char *s); -// adds the string as a clc_stringcmd to the client message. -// (used when there is no reason to generate a local command to do it) +/// adds the current command line as a clc_stringcmd to the client message. +/// things like godmode, noclip, etc, are commands directed to the server, +/// so when they are typed in at the console, they will need to be forwarded. void Cmd_ForwardToServer (void); -// adds the current command line as a clc_stringcmd to the client message. -// things like godmode, noclip, etc, are commands directed to the server, -// so when they are typed in at the console, they will need to be forwarded. +/// used by command functions to send output to either the graphics console or +/// passed as a print message to the client void Cmd_Print(const char *text); -// used by command functions to send output to either the graphics console or -// passed as a print message to the client + +/// quotes a string so that it can be used as a command argument again; +/// quoteset is a string that contains one or more of ", \, $ and specifies +/// the characters to be quoted (you usually want to either pass "\"\\" or +/// "\"\\$"). Returns true on success, and false on overrun (in which case out +/// will contain a part of the quoted string). +qboolean Cmd_QuoteString(char *out, size_t outlen, const char *in, const char *quoteset); #endif