From: Crossfire C. r. messages.
<cro...@li...> - 2010-07-28 18:48:14
|
Revision: 13525 http://crossfire.svn.sourceforge.net/crossfire/?rev=13525&view=rev Author: ryo_saeba Date: 2010-07-28 18:48:08 +0000 (Wed, 28 Jul 2010) Log Message: ----------- Remove static variable. Modified Paths: -------------- server/trunk/ChangeLog server/trunk/include/sproto.h server/trunk/server/c_new.c server/trunk/server/plugins.c Modified: server/trunk/ChangeLog =================================================================== --- server/trunk/ChangeLog 2010-07-28 18:28:56 UTC (rev 13524) +++ server/trunk/ChangeLog 2010-07-28 18:48:08 UTC (rev 13525) @@ -14,6 +14,9 @@ else. With this, include the file(s) that you changed. ------------------------------------------------------------------------------ +Remove static variable. +Nicolas Weeger 2010-07-28 + Remove commented out code. Nicolas Weeger 2010-07-28 Modified: server/trunk/include/sproto.h =================================================================== --- server/trunk/include/sproto.h 2010-07-28 18:28:56 UTC (rev 13524) +++ server/trunk/include/sproto.h 2010-07-28 18:48:08 UTC (rev 13525) @@ -537,7 +537,7 @@ void *cfapi_object_user_event(int *type, ...); void *cfapi_player_quest(int *type, ...); void *cfapi_player_knowledge(int *type, ...); -command_array_struct *find_plugin_command(char *cmd, object *op); +command_array_struct *find_plugin_command(const char *cmd, command_array_struct *command); int initPlugins(void); void cleanupPlugins(void); /* quest.c */ Modified: server/trunk/server/c_new.c =================================================================== --- server/trunk/server/c_new.c 2010-07-28 18:28:56 UTC (rev 13524) +++ server/trunk/server/c_new.c 2010-07-28 18:48:08 UTC (rev 13525) @@ -96,7 +96,7 @@ * 0 if invalid command, else actual command's return value (which may be zero). */ int execute_newserver_command(object *pl, char *command) { - command_array_struct *csp; + command_array_struct *csp, sent; char *cp, *low; pl->contr->has_hit = 0; @@ -121,7 +121,7 @@ for (low = command; *low; low++) *low = tolower(*low); - csp = find_plugin_command(command, pl); + csp = find_plugin_command(command, &sent); if (!csp) csp = find_command_element(command, Commands, CommandsSize); if (!csp) Modified: server/trunk/server/plugins.c =================================================================== --- server/trunk/server/plugins.c 2010-07-28 18:28:56 UTC (rev 13524) +++ server/trunk/server/plugins.c 2010-07-28 18:48:08 UTC (rev 13525) @@ -58,6 +58,8 @@ #include <timers.h> #endif +#include <assert.h> + #define NR_OF_HOOKS (sizeof(plug_hooks)/sizeof(*plug_hooks)) static const hook_entry plug_hooks[] = { @@ -4834,26 +4836,30 @@ /*****************************************************************************/ -/*****************************************************************************/ -/* Tries to find if a given command is handled by a plugin. */ -/* Note that find_plugin_command is called *before *the internal commands are*/ -/* checked, meaning that you can "overwrite" them. */ -/*****************************************************************************/ /** - * @todo - * remove static buffer. + * Tries to find if a given command is handled by a plugin. + * Note that this function is called before the internal commands are + * checked, meaning that you can "overwrite" them. + * @param cmd + * command to search for. + * @param command + * must be a valid structure pointer, that will be returned if the command is + * indeed handled by a plugin. + * @return NULL if the command is not handled by a plugin, else command is returned filled. */ -command_array_struct *find_plugin_command(char *cmd, object *op) { +command_array_struct *find_plugin_command(const char *cmd, command_array_struct *command) { int i; crossfire_plugin *cp; - static command_array_struct rtn_cmd; + assert(cmd != NULL); + assert(command != NULL); + if (plugins_list == NULL) return NULL; for (cp = plugins_list; cp != NULL; cp = cp->next) { - if (cp->propfunc(&i, "command?", cmd, &rtn_cmd) != NULL) - return &rtn_cmd; + if (cp->propfunc(&i, "command?", cmd, command) != NULL) + return command; } return NULL; } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |