marking.c
changeset 15 522a4193ef2f
parent 14 01cdc293e2c2
child 16 42179abafd69
equal deleted inserted replaced
14:01cdc293e2c2 15:522a4193ef2f
    38 
    38 
    39 #define DESCRIPTION ( "Actions on multiple marked buddies\nProvides commands /mark and /marked" )
    39 #define DESCRIPTION ( "Actions on multiple marked buddies\nProvides commands /mark and /marked" )
    40 
    40 
    41 static module_info_t info_marking_experimental = {
    41 static module_info_t info_marking_experimental = {
    42 	.branch      = "experimental",
    42 	.branch      = "experimental",
    43 	.api         = 15,
    43 #ifndef HAVE_CMD_ID
       
    44 	.api         = 20,
       
    45 #else
       
    46 	.api         = 23,
       
    47 #endif
    44 	.version     = PROJECT_VERSION,
    48 	.version     = PROJECT_VERSION,
    45 	.description = DESCRIPTION,
    49 	.description = DESCRIPTION,
    46 	.requires    = NULL,
    50 	.requires    = NULL,
    47 	.init        = marking_init,
    51 	.init        = marking_init,
    48 	.uninit      = marking_uninit,
    52 	.uninit      = marking_uninit,
    58 	.init        = marking_init,
    62 	.init        = marking_init,
    59 	.uninit      = marking_uninit,
    63 	.uninit      = marking_uninit,
    60 	.next        = &info_marking_experimental,
    64 	.next        = &info_marking_experimental,
    61 };
    65 };
    62 
    66 
       
    67 #ifdef HAVE_CMD_ID
       
    68 static gpointer mark_cmid   = NULL;
       
    69 static gpointer marked_cmid = NULL;
       
    70 #endif
       
    71 
    63 static GSList *marked_jids = NULL;
    72 static GSList *marked_jids = NULL;
    64 
    73 
    65 // mark set jid
    74 // mark set jid
    66 // mark clear jid
    75 // mark clear jid
    67 // mark toggle jid
    76 // mark toggle jid
   199 	free_arg_lst (args);
   208 	free_arg_lst (args);
   200 }
   209 }
   201 
   210 
   202 static void marking_init (void)
   211 static void marking_init (void)
   203 {
   212 {
       
   213 #ifndef HAVE_CMD_ID
   204 	cmd_add ("mark", "", 0, COMPL_JID, do_mark, NULL);
   214 	cmd_add ("mark", "", 0, COMPL_JID, do_mark, NULL);
   205 	cmd_add ("marked", "", 0, COMPL_CMD, do_marked, NULL);
   215 	cmd_add ("marked", "", 0, COMPL_CMD, do_marked, NULL);
       
   216 #else
       
   217 	mark_cmid   = cmd_add ("mark", "", 0, COMPL_JID, do_mark, NULL);
       
   218 	marked_cmid = cmd_add ("marked", "", 0, COMPL_CMD, do_marked, NULL);
       
   219 #endif
   206 }
   220 }
   207 
   221 
   208 static void marking_uninit (void)
   222 static void marking_uninit (void)
   209 {
   223 {
       
   224 #ifndef HAVE_CMD_ID
   210 	cmd_del ("mark");
   225 	cmd_del ("mark");
   211 	cmd_del ("marked");
   226 	cmd_del ("marked");
       
   227 #else
       
   228 	if (mark_cmid)
       
   229 		cmd_del (mark_cmid);
       
   230 	if (marked_cmid)
       
   231 		cmd_del (marked_cmid);
       
   232 #endif
   212 
   233 
   213 	{
   234 	{
   214 		GSList *mel;
   235 		GSList *mel;
   215 
   236 
   216 		for (mel = marked_jids; mel; mel = mel->next)
   237 		for (mel = marked_jids; mel; mel = mel->next)
   219 		g_slist_free (marked_jids);
   240 		g_slist_free (marked_jids);
   220 		marked_jids = NULL;
   241 		marked_jids = NULL;
   221 	}
   242 	}
   222 }
   243 }
   223 
   244 
   224 /* The End */
   245 /* vim: se ts=4 sw=4: */