Use id to delete commands
authorMyhailo Danylenko <isbear@ukrpost.net>
Wed, 07 Apr 2010 21:45:15 +0300
changeset 15 522a4193ef2f
parent 14 01cdc293e2c2
child 16 42179abafd69
Use id to delete commands
config.h.in
marking.c
--- a/config.h.in	Sun Apr 04 16:44:53 2010 +0300
+++ b/config.h.in	Wed Apr 07 21:45:15 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
--- a/marking.c	Sun Apr 04 16:44:53 2010 +0300
+++ b/marking.c	Wed Apr 07 21:45:15 2010 +0300
@@ -40,7 +40,11 @@
 
 static module_info_t info_marking_experimental = {
 	.branch      = "experimental",
-	.api         = 15,
+#ifndef HAVE_CMD_ID
+	.api         = 20,
+#else
+	.api         = 23,
+#endif
 	.version     = PROJECT_VERSION,
 	.description = DESCRIPTION,
 	.requires    = NULL,
@@ -60,6 +64,11 @@
 	.next        = &info_marking_experimental,
 };
 
+#ifdef HAVE_CMD_ID
+static gpointer mark_cmid   = NULL;
+static gpointer marked_cmid = NULL;
+#endif
+
 static GSList *marked_jids = NULL;
 
 // mark set jid
@@ -201,14 +210,26 @@
 
 static void marking_init (void)
 {
+#ifndef HAVE_CMD_ID
 	cmd_add ("mark", "", 0, COMPL_JID, do_mark, NULL);
 	cmd_add ("marked", "", 0, COMPL_CMD, do_marked, NULL);
+#else
+	mark_cmid   = cmd_add ("mark", "", 0, COMPL_JID, do_mark, NULL);
+	marked_cmid = cmd_add ("marked", "", 0, COMPL_CMD, do_marked, NULL);
+#endif
 }
 
 static void marking_uninit (void)
 {
+#ifndef HAVE_CMD_ID
 	cmd_del ("mark");
 	cmd_del ("marked");
+#else
+	if (mark_cmid)
+		cmd_del (mark_cmid);
+	if (marked_cmid)
+		cmd_del (marked_cmid);
+#endif
 
 	{
 		GSList *mel;
@@ -221,4 +242,4 @@
 	}
 }
 
-/* The End */
+/* vim: se ts=4 sw=4: */