--- a/config.h.in Sun Apr 04 16:41:05 2010 +0300
+++ b/config.h.in Wed Apr 07 21:11:20 2010 +0300
@@ -4,6 +4,12 @@
#cmakedefine HAVE_LM_CONNECTION_UNREGISTER_REPLY_HANDLER
+#include <mcabber/config.h>
+
+#if MCABBER_BRANCH_EXPERIMENTAL && MCABBER_API_VERSION >= 23
+# define HAVE_CMD_ID
+#endif
+
#define PROJECT_VERSION ( "${PROJECT_VERSION}" )
#endif
--- a/disco.c Sun Apr 04 16:41:05 2010 +0300
+++ b/disco.c Wed Apr 07 21:11:20 2010 +0300
@@ -49,7 +49,11 @@
static module_info_t info_disco_experimental = {
.branch = "experimental",
- .api = 15,
+#ifndef HAVE_CMD_ID
+ .api = 20,
+#else
+ .api = 23,
+#endif
.version = PROJECT_VERSION,
.description = DESCRIPTION,
.requires = NULL,
@@ -97,6 +101,10 @@
// globals
//
+#ifdef HAVE_CMD_ID
+static gpointer disco_cmid = NULL;
+#endif
+
static guint disco_cid = 0;
static guint disco_hid = 0;
static GSList *reply_handlers = NULL;
@@ -646,7 +654,11 @@
disco_hid = hk_add_handler (disco_hh, HOOK_PRE_DISCONNECT, G_PRIORITY_DEFAULT, NULL);
// command
+#ifndef HAVE_CMD_ID
cmd_add ("disco", "", disco_cid, COMPL_JID, do_disco, NULL);
+#else
+ disco_cmid = cmd_add ("disco", "", disco_cid, COMPL_JID, do_disco, NULL);
+#endif
return;
}
@@ -654,7 +666,12 @@
static void disco_uninit (void)
{
// command
+#ifndef HAVE_CMD_ID
cmd_del ("disco");
+#else
+ if (disco_cmid)
+ cmd_del (disco_cmid);
+#endif
// completion
if (disco_cid)