From e2c1370d60501f96713feb441fd386120d1e32b9 Mon Sep 17 00:00:00 2001 From: darkvater Date: Sun, 19 Sep 2004 15:24:45 +0000 Subject: (svn r295) -Fix: Rewrite and fix of console stuff, including marking (XXX) of areas that require further investigation (Tron) -Note: booby trapped some suspicous assignments (Tron) --- console_cmds.c | 309 ++++++++++++++++++++++++++------------------------------- 1 file changed, 138 insertions(+), 171 deletions(-) (limited to 'console_cmds.c') diff --git a/console_cmds.c b/console_cmds.c index c9fc837fe..548f5982e 100644 --- a/console_cmds.c +++ b/console_cmds.c @@ -7,7 +7,7 @@ #include "variables.h" #if defined(WIN32) -# define ENABLE_NETWORK +# define ENABLE_NETWORK #endif @@ -17,20 +17,20 @@ static bool _script_running; // ** console command / variable defines ** // -#define DEF_CONSOLE_CMD(yyyy) static _iconsole_var * yyyy(byte argc, byte* argv[], byte argt[]) +#define DEF_CONSOLE_CMD(yyyy) static _iconsole_var * yyyy(byte argc, char* argv[], byte argt[]) #define DEF_CONSOLE_CMD_HOOK(yyyy) static bool yyyy(_iconsole_cmd * hookcmd) #define DEF_CONSOLE_VAR_HOOK(yyyy) static bool yyyy(_iconsole_var * hookvar) // ** supporting functions ** // -static int32 GetArgumentInteger(byte *arg) +static uint32 GetArgumentInteger(const char* arg) { - int32 result; - sscanf((char *)arg, "%u", &result); + uint32 result; + sscanf(arg, "%u", &result); if (result == 0 && arg[0] == '0' && arg[1] == 'x') - sscanf((char *)arg, "%x", &result); + sscanf(arg, "%x", &result); return result; } @@ -44,7 +44,7 @@ DEF_CONSOLE_CMD_HOOK(ConCmdHookNoNetwork) if (_networking) { IConsoleError("this command is forbidden in multiplayer"); return false; - } + } return true; } @@ -54,7 +54,7 @@ DEF_CONSOLE_VAR_HOOK(ConVarHookNoNetwork) if (_networking) { IConsoleError("this variable is forbidden in multiplayer"); return false; - } + } return true; } #endif @@ -64,7 +64,7 @@ DEF_CONSOLE_VAR_HOOK(ConVarHookNoNetClient) if (!_networking_server) { IConsoleError("this variable only makes sense for a network server"); return false; - } + } return true; } @@ -78,6 +78,7 @@ DEF_CONSOLE_CMD(ConResetEngines) return 0; } +#ifdef _DEBUG DEF_CONSOLE_CMD(ConResetTile) { if (argc == 2) { @@ -87,6 +88,7 @@ DEF_CONSOLE_CMD(ConResetTile) return 0; } +#endif DEF_CONSOLE_CMD(ConScrollToTile) { @@ -105,9 +107,9 @@ DEF_CONSOLE_CMD(ConScrollToTile) DEF_CONSOLE_CMD(ConNetworkConnect) { - byte * ip; - const byte *port = NULL; - const byte *player = NULL; + char* ip; + const char *port = NULL; + const char *player = NULL; uint16 rport; if (argc<2) return NULL; @@ -117,14 +119,14 @@ DEF_CONSOLE_CMD(ConNetworkConnect) ParseConnectionString(&player, &port, ip); - IConsolePrintF(_iconsole_color_default,"Connecting to %s...", ip); + IConsolePrintF(_iconsole_color_default, "Connecting to %s...", ip); if (player!=NULL) { _network_playas = atoi(player); - IConsolePrintF(_iconsole_color_default," player-no: %s", player); + IConsolePrintF(_iconsole_color_default, " player-no: %s", player); } if (port!=NULL) { rport = atoi(port); - IConsolePrintF(_iconsole_color_default," port: %s", port); + IConsolePrintF(_iconsole_color_default, " port: %s", port); } NetworkCoreConnectGame(ip, rport); @@ -146,7 +148,7 @@ DEF_CONSOLE_CMD(ConExec) if (argc<2) return NULL; doerror = true; - _script_file = fopen(argv[1],"rb"); + _script_file = fopen(argv[1], "rb"); if (_script_file == NULL) { if (argc>2) if (atoi(argv[2])==0) doerror=false; @@ -157,11 +159,8 @@ DEF_CONSOLE_CMD(ConExec) _script_running = true; while (!feof(_script_file) && _script_running) { - - fgets((char *)&cmd, 1024, _script_file); - - IConsoleCmdExec((byte *) &cmd); - + fgets(cmd, sizeof(cmd), _script_file); + IConsoleCmdExec(cmd); } _script_running = false; @@ -182,13 +181,14 @@ DEF_CONSOLE_CMD(ConReturn) DEF_CONSOLE_CMD(ConScript) { extern FILE* _iconsole_output_file; - if (_iconsole_output_file!=NULL) { - IConsolePrintF(_iconsole_color_default,"file output complete"); + if (_iconsole_output_file != NULL) { + IConsolePrintF(_iconsole_color_default, "file output complete"); fclose(_iconsole_output_file); } else { - if (argc<2) return NULL; - IConsolePrintF(_iconsole_color_default,"file output started to: %s",argv[1]); - _iconsole_output_file = fopen(argv[1],"ab"); + if (argc < 2) return NULL; + IConsolePrintF(_iconsole_color_default, "file output started to: %s", + argv[1]); + _iconsole_output_file = fopen(argv[1], "ab"); if (_iconsole_output_file == NULL) IConsoleError("could not open file"); } return NULL; @@ -197,93 +197,94 @@ DEF_CONSOLE_CMD(ConScript) DEF_CONSOLE_CMD(ConEcho) { - if (argc<2) return NULL; + if (argc < 2) return NULL; IConsolePrint(_iconsole_color_default, argv[1]); return NULL; } DEF_CONSOLE_CMD(ConEchoC) { - if (argc<3) return NULL; + if (argc < 3) return NULL; IConsolePrint(atoi(argv[1]), argv[2]); return NULL; } DEF_CONSOLE_CMD(ConPrintF) { - if (argc<3) return NULL; - IConsolePrintF(_iconsole_color_default, argv[1] ,argv[2],argv[3],argv[4],argv[5],argv[6],argv[7],argv[8],argv[9],argv[10],argv[11],argv[12],argv[13],argv[14],argv[15],argv[16],argv[17],argv[18],argv[19]); + if (argc < 3) return NULL; + IConsolePrintF(_iconsole_color_default, argv[1] , argv[2], argv[3], argv[4], argv[5], argv[6], argv[7], argv[8], argv[9], argv[10], argv[11], argv[12], argv[13], argv[14], argv[15], argv[16], argv[17], argv[18], argv[19]); /* XXX ugh... */ return NULL; } DEF_CONSOLE_CMD(ConPrintFC) { - if (argc<3) return NULL; - IConsolePrintF(atoi(argv[1]), argv[2] ,argv[3],argv[4],argv[5],argv[6],argv[7],argv[8],argv[9],argv[10],argv[11],argv[12],argv[13],argv[14],argv[15],argv[16],argv[17],argv[18],argv[19]); + if (argc < 3) return NULL; + IConsolePrintF(atoi(argv[1]), argv[2] , argv[3], argv[4], argv[5], argv[6], argv[7], argv[8], argv[9], argv[10], argv[11], argv[12], argv[13], argv[14], argv[15], argv[16], argv[17], argv[18], argv[19]); /* XXX ugh... */ return NULL; } DEF_CONSOLE_CMD(ConScreenShot) { - if (argc<2) { - _make_screenshot=1; + if (argc < 2) { + _make_screenshot = 1; } else { - if (strcmp(argv[1],"big")==0) { + if (strcmp(argv[1], "big") == 0) _make_screenshot=2; - } - if (strcmp(argv[1],"no_con")==0) { + if (strcmp(argv[1], "no_con") == 0) { IConsoleClose(); - _make_screenshot=1; - } + _make_screenshot = 1; } + } return NULL; } DEF_CONSOLE_CMD(ConInfoVar) { - if (argc<2) return NULL; - if (argt[1]!=ICONSOLE_VAR_REFERENCE) { + if (argc < 2) return NULL; + if (argt[1] != ICONSOLE_VAR_REFERENCE) { IConsoleError("first argument has to be a variable reference"); - } else { - _iconsole_var * item; - item = (_iconsole_var *) argv[1]; - IConsolePrintF(_iconsole_color_default,"var_name: %s",item->name); - IConsolePrintF(_iconsole_color_default,"var_type: %i",item->type); - IConsolePrintF(_iconsole_color_default,"var_addr: %i",item->addr); - if (item->_malloc) IConsolePrintF(_iconsole_color_default,"var_malloc: internal"); - else IConsolePrintF(_iconsole_color_default, "var_malloc: external"); + } else { + _iconsole_var* item; + item = (_iconsole_var*)argv[1]; + IConsolePrintF(_iconsole_color_default, "var_name: %s", item->name); + IConsolePrintF(_iconsole_color_default, "var_type: %i", item->type); + IConsolePrintF(_iconsole_color_default, "var_addr: %i", item->data.addr); + if (item->_malloc) + IConsolePrintF(_iconsole_color_default, "var_malloc: internal"); + else + IConsolePrintF(_iconsole_color_default, "var_malloc: external"); if (item->hook_access) IConsoleWarning("var_access hooked"); if (item->hook_before_change) IConsoleWarning("var_before_change hooked"); if (item->hook_after_change) IConsoleWarning("var_after_change hooked"); - } + } return NULL; } DEF_CONSOLE_CMD(ConInfoCmd) { - if (argc<2) return NULL; - if (argt[1]!=ICONSOLE_VAR_UNKNOWN) { + if (argc < 2) return NULL; + if (argt[1] != ICONSOLE_VAR_UNKNOWN) { IConsoleError("first argument has to be a command name"); - } else { - _iconsole_cmd * item; + } else { + _iconsole_cmd* item; item = IConsoleCmdGet(argv[1]); - if (item==NULL) { + if (item == NULL) { IConsoleError("the given command was not found"); return NULL; } - IConsolePrintF(_iconsole_color_default,"cmd_name: %s",item->name); - IConsolePrintF(_iconsole_color_default,"cmd_addr: %i",item->addr); + IConsolePrintF(_iconsole_color_default, "cmd_name: %s", item->name); + IConsolePrintF(_iconsole_color_default, "cmd_addr: %i", item->addr); if (item->hook_access) IConsoleWarning("cmd_access hooked"); if (item->hook_before_exec) IConsoleWarning("cmd_before_exec hooked"); if (item->hook_after_exec) IConsoleWarning("cmd_after_exec hooked"); - } + } return NULL; } DEF_CONSOLE_CMD(ConDebugLevel) { - if (argc<2) return NULL; + if (argc < 2) return NULL; SetDebugString(argv[1]); return NULL; } @@ -296,100 +297,68 @@ DEF_CONSOLE_CMD(ConExit) DEF_CONSOLE_CMD(ConHelp) { - IConsolePrint(13 ," -- console help -- "); - IConsolePrint(1 ," variables: [command to list them: list_vars]"); - IConsolePrint(1 ," *temp_string = \"my little \""); - IConsolePrint(1 ,""); - IConsolePrint(1 ," commands: [command to list them: list_cmds]"); - IConsolePrint(1 ," [command] [\"string argument with spaces\"] [argument 2] ..."); - IConsolePrint(1 ," printf \"%s world\" *temp_string"); - IConsolePrint(1 ,""); - IConsolePrint(1 ," command/variable returning a value into an variable:"); - IConsolePrint(1 ," *temp_uint16 << random"); - IConsolePrint(1 ," *temp_uint16 << *temp_uint16_2"); - IConsolePrint(1 ,""); + IConsolePrint(13, " -- console help -- "); + IConsolePrint( 1, " variables: [command to list them: list_vars]"); + IConsolePrint( 1, " *temp_string = \"my little \""); + IConsolePrint( 1, ""); + IConsolePrint( 1, " commands: [command to list them: list_cmds]"); + IConsolePrint( 1, " [command] [\"string argument with spaces\"] [argument 2] ..."); + IConsolePrint( 1, " printf \"%s world\" *temp_string"); + IConsolePrint( 1, ""); + IConsolePrint( 1, " command/variable returning a value into an variable:"); + IConsolePrint( 1, " *temp_uint16 << random"); + IConsolePrint( 1, " *temp_uint16 << *temp_uint16_2"); + IConsolePrint( 1, ""); return NULL; } DEF_CONSOLE_CMD(ConRandom) { - _iconsole_var * result; + /* XXX memory leak */ + _iconsole_var* result; result = IConsoleVarAlloc(ICONSOLE_VAR_UINT16); - IConsoleVarSetValue(result,rand()); + IConsoleVarSetValue(result, rand()); return result; } DEF_CONSOLE_CMD(ConListCommands) { - _iconsole_cmd * item; - int l = 0; - - if (argv[1]!=NULL) l = strlen((char *) argv[1]); - - item = _iconsole_cmds; - while (item != NULL) { - if (argv[1]!=NULL) { + const _iconsole_cmd* item; + size_t l = 0; - if (memcmp((void *) item->name, (void *) argv[1],l)==0) - IConsolePrintF(_iconsole_color_default,"%s",item->name); + if (argv[1] != NULL) l = strlen(argv[1]); - } else { - - IConsolePrintF(_iconsole_color_default,"%s",item->name); - - } - item = item->_next; - } + for (item = _iconsole_cmds; item != NULL; item = item->_next) + if (argv[1] == NULL || strncmp(item->name, argv[1], l) == 0) + IConsolePrintF(_iconsole_color_default, "%s", item->name); return NULL; } DEF_CONSOLE_CMD(ConListVariables) { - _iconsole_var * item; - int l = 0; - - if (argv[1]!=NULL) l = strlen((char *) argv[1]); - - item = _iconsole_vars; - while (item != NULL) { - if (argv[1]!=NULL) { + const _iconsole_var* item; + size_t l = 0; - if (memcmp(item->name, argv[1],l)==0) - IConsolePrintF(_iconsole_color_default,"%s",item->name); + if (argv[1] != NULL) l = strlen(argv[1]); - } else { - - IConsolePrintF(_iconsole_color_default,"%s",item->name); - - } - item = item->_next; - } + for (item = _iconsole_vars; item != NULL; item = item->_next) + if (argv[1] == NULL || strncmp(item->name, argv[1], l) == 0) + IConsolePrintF(_iconsole_color_default, "%s", item->name); return NULL; } DEF_CONSOLE_CMD(ConListDumpVariables) { - _iconsole_var * item; - int l = 0; - - if (argv[1]!=NULL) l = strlen((char *) argv[1]); - - item = _iconsole_vars; - while (item != NULL) { - if (argv[1]!=NULL) { + const _iconsole_var* item; + size_t l = 0; - if (memcmp(item->name, argv[1],l)==0) - IConsoleVarDump(item,NULL); + if (argv[1] != NULL) l = strlen(argv[1]); - } else { - - IConsoleVarDump(item,NULL); - - } - item = item->_next; - } + for (item = _iconsole_vars; item != NULL; item = item->_next) + if (argv[1] == NULL || strncmp(item->name, argv[1], l) == 0) + IConsoleVarDump(item, NULL); return NULL; } @@ -402,19 +371,19 @@ DEF_CONSOLE_CMD(ConListDumpVariables) void IConsoleDebugLibRegister() { // stdlib - extern bool _stdlib_con_developer; - - IConsoleVarRegister("con_developer",(void *) &_stdlib_con_developer,ICONSOLE_VAR_BOOLEAN); - IConsoleVarMemRegister("temp_bool",ICONSOLE_VAR_BOOLEAN); - IConsoleVarMemRegister("temp_int16",ICONSOLE_VAR_INT16); - IConsoleVarMemRegister("temp_int32",ICONSOLE_VAR_INT32); - IConsoleVarMemRegister("temp_pointer",ICONSOLE_VAR_POINTER); - IConsoleVarMemRegister("temp_uint16",ICONSOLE_VAR_UINT16); - IConsoleVarMemRegister("temp_uint16_2",ICONSOLE_VAR_UINT16); - IConsoleVarMemRegister("temp_uint32",ICONSOLE_VAR_UINT32); - IConsoleVarMemRegister("temp_string",ICONSOLE_VAR_STRING); - IConsoleVarMemRegister("temp_string2",ICONSOLE_VAR_STRING); - IConsoleCmdRegister("resettile",ConResetTile); + extern bool _stdlib_con_developer; /* XXX extern in .c */ + + IConsoleVarRegister("con_developer", &_stdlib_con_developer, ICONSOLE_VAR_BOOLEAN); + IConsoleVarMemRegister("temp_bool", ICONSOLE_VAR_BOOLEAN); + IConsoleVarMemRegister("temp_int16", ICONSOLE_VAR_INT16); + IConsoleVarMemRegister("temp_int32", ICONSOLE_VAR_INT32); + IConsoleVarMemRegister("temp_pointer", ICONSOLE_VAR_POINTER); + IConsoleVarMemRegister("temp_uint16", ICONSOLE_VAR_UINT16); + IConsoleVarMemRegister("temp_uint16_2", ICONSOLE_VAR_UINT16); + IConsoleVarMemRegister("temp_uint32", ICONSOLE_VAR_UINT32); + IConsoleVarMemRegister("temp_string", ICONSOLE_VAR_STRING); + IConsoleVarMemRegister("temp_string2", ICONSOLE_VAR_STRING); + IConsoleCmdRegister("resettile", ConResetTile); } #endif @@ -425,51 +394,49 @@ void IConsoleDebugLibRegister() void IConsoleStdLibRegister() { // stdlib - extern byte _stdlib_developer; + extern byte _stdlib_developer; /* XXX extern in .c */ #ifdef _DEBUG IConsoleDebugLibRegister(); -#else - (void)ConResetTile; // Silence warning, this is only used in _DEBUG #endif - // functions [please add them alphabeticaly] + // functions [please add them alphabetically] #ifdef ENABLE_NETWORK - IConsoleCmdRegister("connect",ConNetworkConnect); - IConsoleCmdHook("connect",ICONSOLE_HOOK_ACCESS,ConCmdHookNoNetwork); + IConsoleCmdRegister("connect", ConNetworkConnect); + IConsoleCmdHook("connect", ICONSOLE_HOOK_ACCESS, ConCmdHookNoNetwork); #endif - IConsoleCmdRegister("debug_level",ConDebugLevel); - IConsoleCmdRegister("dump_vars",ConListDumpVariables); - IConsoleCmdRegister("echo",ConEcho); - IConsoleCmdRegister("echoc",ConEchoC); - IConsoleCmdRegister("exec",ConExec); - IConsoleCmdRegister("exit",ConExit); - IConsoleCmdRegister("help",ConHelp); - IConsoleCmdRegister("info_cmd",ConInfoCmd); - IConsoleCmdRegister("info_var",ConInfoVar); - IConsoleCmdRegister("list_cmds",ConListCommands); - IConsoleCmdRegister("list_vars",ConListVariables); - IConsoleCmdRegister("printf",ConPrintF); - IConsoleCmdRegister("printfc",ConPrintFC); - IConsoleCmdRegister("quit",ConExit); - IConsoleCmdRegister("random",ConRandom); - IConsoleCmdRegister("resetengines",ConResetEngines); - IConsoleCmdHook("resetengines",ICONSOLE_HOOK_ACCESS,ConCmdHookNoNetwork); - IConsoleCmdRegister("return",ConReturn); - IConsoleCmdRegister("screenshot",ConScreenShot); - IConsoleCmdRegister("script",ConScript); - IConsoleCmdRegister("scrollto",ConScrollToTile); + IConsoleCmdRegister("debug_level", ConDebugLevel); + IConsoleCmdRegister("dump_vars", ConListDumpVariables); + IConsoleCmdRegister("echo", ConEcho); + IConsoleCmdRegister("echoc", ConEchoC); + IConsoleCmdRegister("exec", ConExec); + IConsoleCmdRegister("exit", ConExit); + IConsoleCmdRegister("help", ConHelp); + IConsoleCmdRegister("info_cmd", ConInfoCmd); + IConsoleCmdRegister("info_var", ConInfoVar); + IConsoleCmdRegister("list_cmds", ConListCommands); + IConsoleCmdRegister("list_vars", ConListVariables); + IConsoleCmdRegister("printf", ConPrintF); + IConsoleCmdRegister("printfc", ConPrintFC); + IConsoleCmdRegister("quit", ConExit); + IConsoleCmdRegister("random", ConRandom); + IConsoleCmdRegister("resetengines", ConResetEngines); + IConsoleCmdHook("resetengines", ICONSOLE_HOOK_ACCESS, ConCmdHookNoNetwork); + IConsoleCmdRegister("return", ConReturn); + IConsoleCmdRegister("screenshot", ConScreenShot); + IConsoleCmdRegister("script", ConScript); + IConsoleCmdRegister("scrollto", ConScrollToTile); // variables [please add them alphabeticaly] - IConsoleVarRegister("developer",(void *) &_stdlib_developer,ICONSOLE_VAR_BYTE); + IConsoleVarRegister("developer", &_stdlib_developer, ICONSOLE_VAR_BYTE); #ifdef ENABLE_NETWORK - IConsoleVarRegister("net_client_timeout",&_network_client_timeout,ICONSOLE_VAR_UINT16); - IConsoleVarHook("*net_client_timeout",ICONSOLE_HOOK_ACCESS,ConVarHookNoNetClient); - IConsoleVarRegister("net_ready_ahead",&_network_ready_ahead,ICONSOLE_VAR_UINT16); - IConsoleVarRegister("net_sync_freq",&_network_sync_freq,ICONSOLE_VAR_UINT16); - IConsoleVarHook("*net_sync_freq",ICONSOLE_HOOK_ACCESS,ConVarHookNoNetClient); + IConsoleVarRegister("net_client_timeout", &_network_client_timeout, ICONSOLE_VAR_UINT16); + IConsoleVarHook("*net_client_timeout", ICONSOLE_HOOK_ACCESS, ConVarHookNoNetClient); + IConsoleVarRegister("net_ready_ahead", &_network_ready_ahead, ICONSOLE_VAR_UINT16); + IConsoleVarRegister("net_sync_freq", &_network_sync_freq, ICONSOLE_VAR_UINT16); + IConsoleVarHook("*net_sync_freq", ICONSOLE_HOOK_ACCESS, ConVarHookNoNetClient); #endif } -/* -------------------- dont cross this line --------------------- */ +/* -------------------- don't cross this line --------------------- */ -- cgit v1.2.3-54-g00ecf