Use id to delete command
authorMyhailo Danylenko <isbear@ukrpost.net>
Wed, 07 Apr 2010 21:11:20 +0300
changeset 36 2910a8ca0d92
parent 35 7839ad2ef0e5
child 37 92c8a28f133e
Use id to delete command
config.h.in
disco.c
--- 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)