Modified the WMUD_COMMAND macro

The WMUD_COMMAND macro now automatically prefixes command handlers
with gcmd_. It is convenient.
This commit is contained in:
Polonkai Gergely 2012-03-24 19:37:37 +00:00
parent 570d31ad4c
commit 74e84919d7
2 changed files with 9 additions and 5 deletions

View File

@ -24,9 +24,7 @@
#include "networking.h" #include "networking.h"
#include "main.h" #include "main.h"
#define IS_SPACE(c) (g_ascii_isspace((c)) || (!(c))) WMUD_COMMAND(quit);
WMUD_COMMAND(gcmd_quit);
static wmudCommand command_list[] = { static wmudCommand command_list[] = {
{ "quit", gcmd_quit }, { "quit", gcmd_quit },
@ -87,7 +85,7 @@ wmud_interpret_game_command(wmudClient *client)
start++; start++;
break; break;
} }
else if (!IS_SPACE(*start)) else if (g_ascii_isspace(*start) || (!*start))
{ {
break; break;
} }

View File

@ -30,7 +30,13 @@
* Command handler function type * Command handler function type
*/ */
typedef void (*wmudCommandFunc)(wmudClient *client, gchar *command, GSList *token_list); typedef void (*wmudCommandFunc)(wmudClient *client, gchar *command, GSList *token_list);
#define WMUD_COMMAND(name) void name(wmudClient *client, gchar *command, GSList *token_list) /**
* WMUD_COMMAND:
* @name: the name of the command. Should be in lowercase
*
* Shorthand to create the function header for command handlers
*/
#define WMUD_COMMAND(name) void gcmd_ ## name(wmudClient *client, gchar *command, GSList *token_list)
/** /**
* wmudCommand: * wmudCommand: