--- a/cmd.c Sun Apr 04 16:40:43 2010 +0300
+++ b/cmd.c Wed Apr 07 21:05:20 2010 +0300
@@ -47,7 +47,11 @@
static module_info_t info_cmd_experimental = {
.branch = "experimental",
- .api = 15,
+#ifndef HAVE_CMD_ID
+ .api = 20,
+#else
+ .api = 23,
+#endif
.version = PROJECT_VERSION,
.description = DESCRIPTION,
.requires = NULL,
@@ -76,6 +80,10 @@
GIOChannel *channel;
} cmd_cb_t;
+#ifdef HAVE_CMD_ID
+static gpointer mcmd_cmid = NULL;
+#endif
+
static GSList *cmd_channels = NULL;
static gboolean is_room (const gchar *jid)
@@ -334,14 +342,23 @@
static void mcmd_init (void)
{
+#ifndef HAVE_CMD_ID
cmd_add ("cmd", "", 0, 0, do_cmd, NULL);
+#else
+ mcmd_cmid = cmd_add ("cmd", "", 0, 0, do_cmd, NULL);
+#endif
}
static void mcmd_uninit (void)
{
GSList *sel;
+#ifndef HAVE_CMD_ID
cmd_del ("cmd");
+#else
+ if (mcmd_cmid)
+ cmd_del (mcmd_cmid);
+#endif
for (sel = cmd_channels; sel; sel = sel->next) {
cmd_cb_t *cb = (cmd_cb_t *) sel->data;
--- a/config.h.in Sun Apr 04 16:40:43 2010 +0300
+++ b/config.h.in Wed Apr 07 21:05:20 2010 +0300
@@ -2,6 +2,12 @@
#ifndef LOCAL_CONFIG_H
#define LOCAL_CONFIG_H
+#include <mcabber/config.h>
+
+#if MCABBER_BRANCH_EXPERIMENTAL && MCABBER_API_VERSION >= 23
+# define HAVE_CMD_ID
+#endif
+
#define PROJECT_VERSION ( "${PROJECT_VERSION}" )
#endif