cmd.c
changeset 24 592b7f42ba54
parent 21 29491118c0dd
child 29 5b0349cbc6a7
equal deleted inserted replaced
23:78b690288db1 24:592b7f42ba54
    32 #include <mcabber/hbuf.h>
    32 #include <mcabber/hbuf.h>
    33 #include <mcabber/xmpp.h>
    33 #include <mcabber/xmpp.h>
    34 #include <mcabber/roster.h>
    34 #include <mcabber/roster.h>
    35 #include <mcabber/modules.h>
    35 #include <mcabber/modules.h>
    36 #include <mcabber/hooks.h>
    36 #include <mcabber/hooks.h>
       
    37 #include <mcabber/api.h>
    37 
    38 
    38 #include "config.h"
    39 #include "config.h"
    39 
    40 
    40 static void mcmd_init   (void);
    41 void mcmd_init   (void);
    41 static void mcmd_uninit (void);
    42 void mcmd_uninit (void);
    42 
    43 
    43 #define DESCRIPTION ( \
    44 #define DESCRIPTION ( \
    44 	"Sends output of command to buddy\n" \
    45 	"Sends output of command to buddy\n" \
    45 	"Recognizes options cmd_shell, cmd_redirect_stderr, cmd_header and cmd_header_inline\n" \
    46 	"Recognizes options cmd_shell, cmd_redirect_stderr, cmd_header and cmd_header_inline\n" \
    46 	"Provides command /cmd" )
    47 	"Provides command /cmd" )
    47 
    48 
    48 static module_info_t info_cmd_experimental = {
    49 static module_info_t info_cmd_dev = {
    49 	.branch          = "experimental",
    50 	.branch          = "dev",
    50 	.api             = 27,
    51 	.api             = 20,
    51 	.version         = PROJECT_VERSION,
    52 	.version         = PROJECT_VERSION,
    52 	.description     = DESCRIPTION,
    53 	.description     = DESCRIPTION,
    53 	.requires        = NULL,
    54 	.requires        = NULL,
    54 	.init            = mcmd_init,
    55 	.init            = mcmd_init,
    55 	.uninit          = mcmd_uninit,
    56 	.uninit          = mcmd_uninit,
    56 	.next            = NULL,
    57 	.next            = NULL,
    57 };
    58 };
    58 
    59 
    59 static module_info_t info_cmd_dev = {
       
    60 	.branch          = "dev",
       
    61 	.api             = 13,
       
    62 	.version         = PROJECT_VERSION,
       
    63 	.description     = DESCRIPTION,
       
    64 	.requires        = NULL,
       
    65 	.init            = mcmd_init,
       
    66 	.uninit          = mcmd_uninit,
       
    67 	.next            = &info_cmd_experimental,
       
    68 };
       
    69 
       
    70 module_info_t info_cmd = {
    60 module_info_t info_cmd = {
    71 	.branch          = "0.10.0",
    61 	.branch          = "0.10.1",
    72 	.api             = 1,
    62 	.api             = 1,
    73 	.version         = PROJECT_VERSION,
    63 	.version         = PROJECT_VERSION,
    74 	.description     = DESCRIPTION,
    64 	.description     = DESCRIPTION,
    75 	.requires        = NULL,
    65 	.requires        = NULL,
    76 	.init            = mcmd_init,
    66 	.init            = mcmd_init,
    85 	guint       seq;
    75 	guint       seq;
    86 	guint       source;
    76 	guint       source;
    87 	GIOChannel *channel;
    77 	GIOChannel *channel;
    88 } cmd_cb_t;
    78 } cmd_cb_t;
    89 
    79 
    90 #ifdef HAVE_CMD_ID
    80 #ifdef MCABBER_API_HAVE_CMD_ID
    91 static gpointer mcmd_cmid = NULL;
    81 static gpointer mcmd_cmid = NULL;
    92 #endif
    82 #endif
    93 
    83 
    94 static GSList *cmd_channels = NULL;
    84 static GSList *cmd_channels = NULL;
    95 
    85 
   345 			cmd_channels = g_slist_append (cmd_channels, cb);
   335 			cmd_channels = g_slist_append (cmd_channels, cb);
   346 		}
   336 		}
   347 	}
   337 	}
   348 }
   338 }
   349 
   339 
   350 static void mcmd_init (void)
   340 void mcmd_init (void)
   351 {
   341 {
   352 #ifndef HAVE_CMD_ID
   342 #ifndef MCABBER_API_HAVE_CMD_ID
   353 	cmd_add ("cmd", "", 0, 0, do_cmd, NULL);
   343 	cmd_add ("cmd", "", 0, 0, do_cmd, NULL);
   354 #else
   344 #else
   355 	mcmd_cmid = cmd_add ("cmd", "", 0, 0, do_cmd, NULL);
   345 	mcmd_cmid = cmd_add ("cmd", "", 0, 0, do_cmd, NULL);
   356 #endif
   346 #endif
   357 }
   347 }
   358 
   348 
   359 static void mcmd_uninit (void)
   349 void mcmd_uninit (void)
   360 {
   350 {
   361 	GSList *sel;
   351 	GSList *sel;
   362 
   352 
   363 #ifndef HAVE_CMD_ID
   353 #ifndef MCABBER_API_HAVE_CMD_ID
   364 	cmd_del ("cmd");
   354 	cmd_del ("cmd");
   365 #else
   355 #else
   366 	if (mcmd_cmid)
   356 	if (mcmd_cmid)
   367 		cmd_del (mcmd_cmid);
   357 		cmd_del (mcmd_cmid);
   368 #endif
   358 #endif