Mercurial > hg
diff mcabber/src/commands.c @ 95:9e6b7897ec37
[/trunk] Changeset 109 by mikael
* Work on compl.* integration. No big change yet...
author | mikael |
---|---|
date | Wed, 20 Apr 2005 19:06:25 +0000 |
parents | 9a4aa2797f02 |
children | 8b2703ccc4be |
line wrap: on
line diff
--- a/mcabber/src/commands.c Tue Apr 19 20:09:54 2005 +0000 +++ b/mcabber/src/commands.c Wed Apr 20 19:06:25 2005 +0000 @@ -19,10 +19,13 @@ * USA */ +#include <string.h> + #include "commands.h" #include "jabglue.h" #include "roster.h" #include "screen.h" +#include "compl.h" #include "utf8.h" #include "utils.h" @@ -30,11 +33,60 @@ // Command structure typedef struct { char name[32]; - char *help; // ? - guint completion_flags; + const char *help; + guint completion_flags[2]; void *(*func)(); } cmd; +static GSList *Commands; + +// cmd_add() +// Adds a command to the commands list and to the CMD completion list +void cmd_add(const char *name, const char *help, + guint flags_row1, guint flags_row2, void *(*f)()) +{ + cmd *n_cmd = g_new0(cmd, 1); + strncpy(n_cmd->name, name, 32-1); + n_cmd->help = help; + n_cmd->completion_flags[0] = flags_row1; + n_cmd->completion_flags[1] = flags_row2; + n_cmd->func = f; + g_slist_append(Commands, n_cmd); + // Add to completion CMD category + compl_add_category_word(COMPL_CMD, name); +} + +// cmd_init() +// ... +void cmd_init(void) +{ + guint cflags[4]; + + //cmd_add("add"); + //cmd_add("clear"); + //cmd_add("del"); + //cmd_add("group"); + //cmd_add("info"); + //cmd_add("move"); + //cmd_add("nick"); + cmd_add("quit", "Exit the software", 0, 0, NULL); + //cmd_add("rename"); + //cmd_add("request_auth"); + cmd_add("say", "Say something to the selected buddy", 0, 0, NULL); + //cmd_add("search"); + //cmd_add("send_auth"); + cmd_add("status", "Show or set your status", COMPL_STATUS, 0, NULL); + + // Status category + compl_add_category_word(COMPL_STATUS, "online"); + compl_add_category_word(COMPL_STATUS, "avail"); + compl_add_category_word(COMPL_STATUS, "invisible"); + compl_add_category_word(COMPL_STATUS, "free"); + compl_add_category_word(COMPL_STATUS, "dnd"); + compl_add_category_word(COMPL_STATUS, "busy"); + compl_add_category_word(COMPL_STATUS, "notavail"); + compl_add_category_word(COMPL_STATUS, "away"); +} // send_message(msg) // Write the message in the buddy's window and send the message on