modularize-extcmd.diff
author Myhailo Danylenko <isbear@ukrpost.net>
Sat, 07 Nov 2015 17:39:49 +0200
changeset 88 0a87df8ad9c1
parent 87 78238d26911a
child 92 66f7e2aa040c
permissions -rw-r--r--
Refresh queue for new mcabber
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
88
0a87df8ad9c1 Refresh queue for new mcabber
Myhailo Danylenko <isbear@ukrpost.net>
parents: 87
diff changeset
     1
# HG changeset patch
0a87df8ad9c1 Refresh queue for new mcabber
Myhailo Danylenko <isbear@ukrpost.net>
parents: 87
diff changeset
     2
# Parent  d4d77c56d8da7c9771579efe469440eb25947271
29
335662766a88 Some updates to add-cmake
Myhailo Danylenko <isbear@ukrpost.net>
parents: 26
diff changeset
     3
Convert extcmd into a module
335662766a88 Some updates to add-cmake
Myhailo Danylenko <isbear@ukrpost.net>
parents: 26
diff changeset
     4
88
0a87df8ad9c1 Refresh queue for new mcabber
Myhailo Danylenko <isbear@ukrpost.net>
parents: 87
diff changeset
     5
diff -r d4d77c56d8da mcabber/configure.ac
0a87df8ad9c1 Refresh queue for new mcabber
Myhailo Danylenko <isbear@ukrpost.net>
parents: 87
diff changeset
     6
--- a/mcabber/configure.ac	Sat Nov 07 17:28:17 2015 +0200
0a87df8ad9c1 Refresh queue for new mcabber
Myhailo Danylenko <isbear@ukrpost.net>
parents: 87
diff changeset
     7
+++ b/mcabber/configure.ac	Sat Nov 07 17:38:46 2015 +0200
87
78238d26911a Update series to current dev version
Myhailo Danylenko <isbear@ukrpost.net>
parents: 62
diff changeset
     8
@@ -295,6 +295,7 @@
0
633272cbb544 Initial experimental branch commit
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
     9
                  modules/beep/Makefile
633272cbb544 Initial experimental branch commit
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    10
                  modules/xttitle/Makefile
633272cbb544 Initial experimental branch commit
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    11
                  modules/fifo/Makefile
633272cbb544 Initial experimental branch commit
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    12
+                 modules/eventcmd/Makefile
18
2714b95de09d Sync with development version
Mikael Berthe <mikael@lilotux.net>
parents: 16
diff changeset
    13
                  modules/urlregex/Makefile
0
633272cbb544 Initial experimental branch commit
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    14
                  doc/Makefile
633272cbb544 Initial experimental branch commit
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    15
                  doc/guide/Makefile
88
0a87df8ad9c1 Refresh queue for new mcabber
Myhailo Danylenko <isbear@ukrpost.net>
parents: 87
diff changeset
    16
diff -r d4d77c56d8da mcabber/mcabber/Makefile.am
0a87df8ad9c1 Refresh queue for new mcabber
Myhailo Danylenko <isbear@ukrpost.net>
parents: 87
diff changeset
    17
--- a/mcabber/mcabber/Makefile.am	Sat Nov 07 17:28:17 2015 +0200
0a87df8ad9c1 Refresh queue for new mcabber
Myhailo Danylenko <isbear@ukrpost.net>
parents: 87
diff changeset
    18
+++ b/mcabber/mcabber/Makefile.am	Sat Nov 07 17:38:46 2015 +0200
87
78238d26911a Update series to current dev version
Myhailo Danylenko <isbear@ukrpost.net>
parents: 62
diff changeset
    19
@@ -7,8 +7,7 @@
0
633272cbb544 Initial experimental branch commit
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    20
 		  xmpp.c xmpp.h xmpp_helper.c xmpp_helper.h xmpp_defines.h \
633272cbb544 Initial experimental branch commit
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    21
 		  xmpp_iq.c xmpp_iq.h xmpp_iqrequest.c xmpp_iqrequest.h \
633272cbb544 Initial experimental branch commit
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    22
 		  xmpp_muc.c xmpp_muc.h xmpp_s10n.c xmpp_s10n.h \
87
78238d26911a Update series to current dev version
Myhailo Danylenko <isbear@ukrpost.net>
parents: 62
diff changeset
    23
-		  caps.c caps.h help.c help.h carbons.c carbons.h \
78238d26911a Update series to current dev version
Myhailo Danylenko <isbear@ukrpost.net>
parents: 62
diff changeset
    24
-		  extcmd.c extcmd.h
78238d26911a Update series to current dev version
Myhailo Danylenko <isbear@ukrpost.net>
parents: 62
diff changeset
    25
+		  caps.c caps.h help.c help.h carbons.c carbons.h
0
633272cbb544 Initial experimental branch commit
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    26
 
633272cbb544 Initial experimental branch commit
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    27
 if OTR
633272cbb544 Initial experimental branch commit
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    28
 mcabber_SOURCES += otr.c otr.h nohtml.c nohtml.h
87
78238d26911a Update series to current dev version
Myhailo Danylenko <isbear@ukrpost.net>
parents: 62
diff changeset
    29
@@ -57,7 +56,7 @@
0
633272cbb544 Initial experimental branch commit
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    30
 
633272cbb544 Initial experimental branch commit
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    31
 mcabberincludedir = $(includedir)/mcabber
633272cbb544 Initial experimental branch commit
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    32
 else
87
78238d26911a Update series to current dev version
Myhailo Danylenko <isbear@ukrpost.net>
parents: 62
diff changeset
    33
-mcabber_SOURCES += fifo_internal.c fifo.h
78238d26911a Update series to current dev version
Myhailo Danylenko <isbear@ukrpost.net>
parents: 62
diff changeset
    34
+mcabber_SOURCES += fifo_internal.c fifo.h extcmd.c extcmd.h
0
633272cbb544 Initial experimental branch commit
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    35
 endif
633272cbb544 Initial experimental branch commit
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    36
 
633272cbb544 Initial experimental branch commit
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    37
 #SUBDIRS =
88
0a87df8ad9c1 Refresh queue for new mcabber
Myhailo Danylenko <isbear@ukrpost.net>
parents: 87
diff changeset
    38
diff -r d4d77c56d8da mcabber/mcabber/hooks.c
0a87df8ad9c1 Refresh queue for new mcabber
Myhailo Danylenko <isbear@ukrpost.net>
parents: 87
diff changeset
    39
--- a/mcabber/mcabber/hooks.c	Sat Nov 07 17:28:17 2015 +0200
0a87df8ad9c1 Refresh queue for new mcabber
Myhailo Danylenko <isbear@ukrpost.net>
parents: 87
diff changeset
    40
+++ b/mcabber/mcabber/hooks.c	Sat Nov 07 17:38:46 2015 +0200
0
633272cbb544 Initial experimental branch commit
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    41
@@ -36,7 +36,10 @@
633272cbb544 Initial experimental branch commit
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    42
 #include "utf8.h"
633272cbb544 Initial experimental branch commit
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    43
 #include "commands.h"
633272cbb544 Initial experimental branch commit
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    44
 #include "main.h"
633272cbb544 Initial experimental branch commit
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    45
-#include "extcmd.h"
633272cbb544 Initial experimental branch commit
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    46
+
633272cbb544 Initial experimental branch commit
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    47
+#ifndef MODULES_ENABLE
633272cbb544 Initial experimental branch commit
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    48
+# include "extcmd.h"
633272cbb544 Initial experimental branch commit
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    49
+#endif
633272cbb544 Initial experimental branch commit
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    50
 
633272cbb544 Initial experimental branch commit
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    51
 #ifdef MODULES_ENABLE
633272cbb544 Initial experimental branch commit
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    52
 #include <glib.h>
633272cbb544 Initial experimental branch commit
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    53
@@ -189,7 +192,9 @@
633272cbb544 Initial experimental branch commit
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    54
   int is_groupchat = FALSE; // groupchat message
633272cbb544 Initial experimental branch commit
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    55
   int is_room = FALSE;      // window is a room window
633272cbb544 Initial experimental branch commit
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    56
   int log_muc_conf = FALSE;
633272cbb544 Initial experimental branch commit
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    57
+#ifndef MODULES_ENABLE
633272cbb544 Initial experimental branch commit
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    58
   int active_window = FALSE;
633272cbb544 Initial experimental branch commit
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    59
+#endif
633272cbb544 Initial experimental branch commit
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    60
   int message_flags = 0;
633272cbb544 Initial experimental branch commit
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    61
   guint rtype = ROSTER_TYPE_USER;
633272cbb544 Initial experimental branch commit
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    62
   char *wmsg = NULL, *bmsg = NULL, *mmsg = NULL;
88
0a87df8ad9c1 Refresh queue for new mcabber
Myhailo Danylenko <isbear@ukrpost.net>
parents: 87
diff changeset
    63
@@ -402,6 +407,7 @@
0
633272cbb544 Initial experimental branch commit
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    64
   }
633272cbb544 Initial experimental branch commit
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    65
 #endif
633272cbb544 Initial experimental branch commit
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    66
 
633272cbb544 Initial experimental branch commit
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    67
+#ifndef MODULES_ENABLE
633272cbb544 Initial experimental branch commit
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    68
   if (settings_opt_get_int("events_ignore_active_window") &&
633272cbb544 Initial experimental branch commit
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    69
       current_buddy && scr_get_chatmode()) {
633272cbb544 Initial experimental branch commit
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    70
     gpointer bud = BUDDATA(current_buddy);
88
0a87df8ad9c1 Refresh queue for new mcabber
Myhailo Danylenko <isbear@ukrpost.net>
parents: 87
diff changeset
    71
@@ -420,6 +426,7 @@
0
633272cbb544 Initial experimental branch commit
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    72
     hk_ext_cmd(bjid, EXT_CMD_TYPE_MESSAGE,
633272cbb544 Initial experimental branch commit
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    73
                is_groupchat ? EXT_CMD_INFO_GROUPCHAT : EXT_CMD_INFO_RECEIVED,
633272cbb544 Initial experimental branch commit
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    74
                wmsg);
633272cbb544 Initial experimental branch commit
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    75
+#endif
633272cbb544 Initial experimental branch commit
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    76
 
633272cbb544 Initial experimental branch commit
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    77
   // Beep, if enabled:
633272cbb544 Initial experimental branch commit
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    78
   // - if it's a private message
88
0a87df8ad9c1 Refresh queue for new mcabber
Myhailo Danylenko <isbear@ukrpost.net>
parents: 87
diff changeset
    79
@@ -500,8 +507,10 @@
0
633272cbb544 Initial experimental branch commit
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    80
   }
633272cbb544 Initial experimental branch commit
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    81
 #endif
633272cbb544 Initial experimental branch commit
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    82
 
633272cbb544 Initial experimental branch commit
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    83
+#ifndef MODULES_ENABLE
633272cbb544 Initial experimental branch commit
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    84
   // External command
633272cbb544 Initial experimental branch commit
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    85
   hk_ext_cmd(bjid, EXT_CMD_TYPE_MESSAGE, EXT_CMD_INFO_SENT, NULL);
633272cbb544 Initial experimental branch commit
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    86
+#endif
633272cbb544 Initial experimental branch commit
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    87
 
633272cbb544 Initial experimental branch commit
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    88
   g_free(bmsg);
633272cbb544 Initial experimental branch commit
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    89
   g_free(mmsg);
88
0a87df8ad9c1 Refresh queue for new mcabber
Myhailo Danylenko <isbear@ukrpost.net>
parents: 87
diff changeset
    90
@@ -587,9 +596,11 @@
0
633272cbb544 Initial experimental branch commit
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    91
   }
633272cbb544 Initial experimental branch commit
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    92
 #endif
633272cbb544 Initial experimental branch commit
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    93
 
633272cbb544 Initial experimental branch commit
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    94
+#ifndef MODULES_ENABLE
633272cbb544 Initial experimental branch commit
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    95
   // External command
633272cbb544 Initial experimental branch commit
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    96
   newstatus[0] = toupper(newstatus[0]);
633272cbb544 Initial experimental branch commit
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    97
   hk_ext_cmd(bjid, EXT_CMD_TYPE_STATUS, newstatus, status_msg);
633272cbb544 Initial experimental branch commit
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    98
+#endif
633272cbb544 Initial experimental branch commit
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    99
 }
633272cbb544 Initial experimental branch commit
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   100
 
633272cbb544 Initial experimental branch commit
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   101
 void hk_mystatuschange(time_t timestamp, enum imstatus old_status,
88
0a87df8ad9c1 Refresh queue for new mcabber
Myhailo Danylenko <isbear@ukrpost.net>
parents: 87
diff changeset
   102
@@ -711,11 +722,13 @@
0
633272cbb544 Initial experimental branch commit
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   103
   prev_muc_unread    = muc_unread;
633272cbb544 Initial experimental branch commit
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   104
   prev_muc_attention = muc_attention;
633272cbb544 Initial experimental branch commit
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   105
 
633272cbb544 Initial experimental branch commit
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   106
+#ifndef MODULES_ENABLE
633272cbb544 Initial experimental branch commit
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   107
   /* Call external command */
633272cbb544 Initial experimental branch commit
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   108
   str_unread = g_strdup_printf("%u %u %u %u", unread_count, attention_count,
633272cbb544 Initial experimental branch commit
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   109
                                muc_unread, muc_attention);
633272cbb544 Initial experimental branch commit
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   110
   hk_ext_cmd("", EXT_CMD_TYPE_UNREAD, str_unread, NULL);
633272cbb544 Initial experimental branch commit
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   111
   g_free(str_unread);
633272cbb544 Initial experimental branch commit
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   112
+#endif
633272cbb544 Initial experimental branch commit
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   113
 }
633272cbb544 Initial experimental branch commit
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   114
 
14
020fbfb5441c Rebase to dev:15
Myhailo Danylenko <isbear@ukrpost.net>
parents: 12
diff changeset
   115
 //  hk_presence_subscription_request(jid, message)
88
0a87df8ad9c1 Refresh queue for new mcabber
Myhailo Danylenko <isbear@ukrpost.net>
parents: 87
diff changeset
   116
diff -r d4d77c56d8da mcabber/mcabber/main.c
0a87df8ad9c1 Refresh queue for new mcabber
Myhailo Danylenko <isbear@ukrpost.net>
parents: 87
diff changeset
   117
--- a/mcabber/mcabber/main.c	Sat Nov 07 17:28:17 2015 +0200
0a87df8ad9c1 Refresh queue for new mcabber
Myhailo Danylenko <isbear@ukrpost.net>
parents: 87
diff changeset
   118
+++ b/mcabber/mcabber/main.c	Sat Nov 07 17:38:46 2015 +0200
0a87df8ad9c1 Refresh queue for new mcabber
Myhailo Danylenko <isbear@ukrpost.net>
parents: 87
diff changeset
   119
@@ -50,9 +50,9 @@
0
633272cbb544 Initial experimental branch commit
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   120
 #include "help.h"
633272cbb544 Initial experimental branch commit
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   121
 #include "events.h"
87
78238d26911a Update series to current dev version
Myhailo Danylenko <isbear@ukrpost.net>
parents: 62
diff changeset
   122
 #include "compl.h"
0
633272cbb544 Initial experimental branch commit
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   123
-#include "extcmd.h"
633272cbb544 Initial experimental branch commit
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   124
 
633272cbb544 Initial experimental branch commit
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   125
 #ifndef MODULES_ENABLE
87
78238d26911a Update series to current dev version
Myhailo Danylenko <isbear@ukrpost.net>
parents: 62
diff changeset
   126
+# include "extcmd.h"
0
633272cbb544 Initial experimental branch commit
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   127
 # include "fifo.h"
87
78238d26911a Update series to current dev version
Myhailo Danylenko <isbear@ukrpost.net>
parents: 62
diff changeset
   128
 #endif
78238d26911a Update series to current dev version
Myhailo Danylenko <isbear@ukrpost.net>
parents: 62
diff changeset
   129
 
88
0a87df8ad9c1 Refresh queue for new mcabber
Myhailo Danylenko <isbear@ukrpost.net>
parents: 87
diff changeset
   130
@@ -509,9 +509,11 @@
0
633272cbb544 Initial experimental branch commit
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   131
   }
633272cbb544 Initial experimental branch commit
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   132
 #endif
633272cbb544 Initial experimental branch commit
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   133
 
633272cbb544 Initial experimental branch commit
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   134
+#ifndef MODULES_ENABLE
633272cbb544 Initial experimental branch commit
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   135
   optstring = settings_opt_get("events_command");
633272cbb544 Initial experimental branch commit
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   136
   if (optstring)
633272cbb544 Initial experimental branch commit
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   137
     hk_ext_cmd_init(optstring);
633272cbb544 Initial experimental branch commit
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   138
+#endif
633272cbb544 Initial experimental branch commit
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   139
 
633272cbb544 Initial experimental branch commit
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   140
   optstring = settings_opt_get("roster_display_filter");
633272cbb544 Initial experimental branch commit
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   141
   if (optstring)
88
0a87df8ad9c1 Refresh queue for new mcabber
Myhailo Danylenko <isbear@ukrpost.net>
parents: 87
diff changeset
   142
diff -r d4d77c56d8da mcabber/modules/Makefile.am
0a87df8ad9c1 Refresh queue for new mcabber
Myhailo Danylenko <isbear@ukrpost.net>
parents: 87
diff changeset
   143
--- a/mcabber/modules/Makefile.am	Sat Nov 07 17:28:17 2015 +0200
0a87df8ad9c1 Refresh queue for new mcabber
Myhailo Danylenko <isbear@ukrpost.net>
parents: 87
diff changeset
   144
+++ b/mcabber/modules/Makefile.am	Sat Nov 07 17:38:46 2015 +0200
0
633272cbb544 Initial experimental branch commit
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   145
@@ -1,1 +1,1 @@
18
2714b95de09d Sync with development version
Mikael Berthe <mikael@lilotux.net>
parents: 16
diff changeset
   146
-SUBDIRS = beep xttitle fifo urlregex
2714b95de09d Sync with development version
Mikael Berthe <mikael@lilotux.net>
parents: 16
diff changeset
   147
+SUBDIRS = beep xttitle fifo eventcmd urlregex
88
0a87df8ad9c1 Refresh queue for new mcabber
Myhailo Danylenko <isbear@ukrpost.net>
parents: 87
diff changeset
   148
diff -r d4d77c56d8da mcabber/modules/eventcmd/Makefile.am
0
633272cbb544 Initial experimental branch commit
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   149
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
88
0a87df8ad9c1 Refresh queue for new mcabber
Myhailo Danylenko <isbear@ukrpost.net>
parents: 87
diff changeset
   150
+++ b/mcabber/modules/eventcmd/Makefile.am	Sat Nov 07 17:38:46 2015 +0200
55
8f5cf5969e25 Add fix-separate-build.diff
Myhailo Danylenko <isbear@ukrpost.net>
parents: 36
diff changeset
   151
@@ -0,0 +1,13 @@
0
633272cbb544 Initial experimental branch commit
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   152
+
633272cbb544 Initial experimental branch commit
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   153
+if INSTALL_HEADERS
633272cbb544 Initial experimental branch commit
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   154
+pkglib_LTLIBRARIES = libeventcmd.la
88
0a87df8ad9c1 Refresh queue for new mcabber
Myhailo Danylenko <isbear@ukrpost.net>
parents: 87
diff changeset
   155
+libeventcmd_la_SOURCES = eventcmd.c ../mcabber/extcmd.c ../mcabber/extcmd.h
0
633272cbb544 Initial experimental branch commit
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   156
+libeventcmd_la_LDFLAGS = -module -avoid-version -shared
633272cbb544 Initial experimental branch commit
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   157
+
633272cbb544 Initial experimental branch commit
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   158
+LDADD = $(GLIB_LIBS)
55
8f5cf5969e25 Add fix-separate-build.diff
Myhailo Danylenko <isbear@ukrpost.net>
parents: 36
diff changeset
   159
+AM_CPPFLAGS = -I$(top_srcdir) -I$(top_builddir) \
8f5cf5969e25 Add fix-separate-build.diff
Myhailo Danylenko <isbear@ukrpost.net>
parents: 36
diff changeset
   160
+				$(GLIB_CFLAGS) $(LOUDMOUTH_CFLAGS) \
0
633272cbb544 Initial experimental branch commit
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   161
+				$(GPGME_CFLAGS) $(LIBOTR_CFLAGS) \
633272cbb544 Initial experimental branch commit
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   162
+				$(ENCHANT_CFLAGS)
633272cbb544 Initial experimental branch commit
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   163
+endif
633272cbb544 Initial experimental branch commit
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   164
+
88
0a87df8ad9c1 Refresh queue for new mcabber
Myhailo Danylenko <isbear@ukrpost.net>
parents: 87
diff changeset
   165
diff -r d4d77c56d8da mcabber/modules/eventcmd/eventcmd.c
0
633272cbb544 Initial experimental branch commit
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   166
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
88
0a87df8ad9c1 Refresh queue for new mcabber
Myhailo Danylenko <isbear@ukrpost.net>
parents: 87
diff changeset
   167
+++ b/mcabber/modules/eventcmd/eventcmd.c	Sat Nov 07 17:38:46 2015 +0200
0
633272cbb544 Initial experimental branch commit
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   168
@@ -0,0 +1,221 @@
633272cbb544 Initial experimental branch commit
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   169
+
633272cbb544 Initial experimental branch commit
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   170
+/* Copyright 2009 Myhailo Danylenko
633272cbb544 Initial experimental branch commit
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   171
+ *
633272cbb544 Initial experimental branch commit
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   172
+ * This file is part of mcabber
633272cbb544 Initial experimental branch commit
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   173
+ *
633272cbb544 Initial experimental branch commit
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   174
+ * mcabber is free software: you can redistribute it and/or modify
633272cbb544 Initial experimental branch commit
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   175
+ * it under the terms of the GNU General Public License as published by
633272cbb544 Initial experimental branch commit
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   176
+ * the Free Software Foundation, either version 2 of the License, or
633272cbb544 Initial experimental branch commit
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   177
+ * (at your option) any later version.
633272cbb544 Initial experimental branch commit
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   178
+ *
633272cbb544 Initial experimental branch commit
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   179
+ * This program is distributed in the hope that it will be useful,
633272cbb544 Initial experimental branch commit
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   180
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
633272cbb544 Initial experimental branch commit
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   181
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
633272cbb544 Initial experimental branch commit
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   182
+ * GNU General Public License for more details.
633272cbb544 Initial experimental branch commit
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   183
+ *
633272cbb544 Initial experimental branch commit
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   184
+ * You should have received a copy of the GNU General Public License
633272cbb544 Initial experimental branch commit
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   185
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>. */
633272cbb544 Initial experimental branch commit
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   186
+
633272cbb544 Initial experimental branch commit
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   187
+#include <glib.h>
633272cbb544 Initial experimental branch commit
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   188
+#include <gmodule.h>
633272cbb544 Initial experimental branch commit
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   189
+#include <string.h>
633272cbb544 Initial experimental branch commit
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   190
+#include <stdlib.h>
633272cbb544 Initial experimental branch commit
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   191
+#include <ctype.h> // tolower
633272cbb544 Initial experimental branch commit
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   192
+#include <unistd.h>
633272cbb544 Initial experimental branch commit
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   193
+
633272cbb544 Initial experimental branch commit
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   194
+#include <mcabber/settings.h>
633272cbb544 Initial experimental branch commit
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   195
+#include <mcabber/hooks.h>
633272cbb544 Initial experimental branch commit
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   196
+#include <mcabber/roster.h>
633272cbb544 Initial experimental branch commit
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   197
+#include <mcabber/utils.h>
633272cbb544 Initial experimental branch commit
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   198
+#include <mcabber/logprint.h>
633272cbb544 Initial experimental branch commit
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   199
+#include <mcabber/extcmd.h>
633272cbb544 Initial experimental branch commit
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   200
+#include <mcabber/modules.h>
633272cbb544 Initial experimental branch commit
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   201
+#include <mcabber/screen.h>
633272cbb544 Initial experimental branch commit
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   202
+#include <mcabber/config.h>
633272cbb544 Initial experimental branch commit
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   203
+
633272cbb544 Initial experimental branch commit
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   204
+static void ecm_init(void);
633272cbb544 Initial experimental branch commit
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   205
+static void ecm_uninit(void);
633272cbb544 Initial experimental branch commit
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   206
+
633272cbb544 Initial experimental branch commit
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   207
+module_info_t info_eventcmd = {
633272cbb544 Initial experimental branch commit
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   208
+  .branch          = MCABBER_BRANCH,
633272cbb544 Initial experimental branch commit
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   209
+  .api             = MCABBER_API_VERSION,
633272cbb544 Initial experimental branch commit
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   210
+  .version         = MCABBER_VERSION,
633272cbb544 Initial experimental branch commit
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   211
+  .requires        = NULL,
633272cbb544 Initial experimental branch commit
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   212
+  .init            = ecm_init,
633272cbb544 Initial experimental branch commit
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   213
+  .uninit          = ecm_uninit,
633272cbb544 Initial experimental branch commit
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   214
+  .description     = "External command execution on events\n"
633272cbb544 Initial experimental branch commit
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   215
+          "Recognizes options events_command (required), events_ignore_active_window, "
633272cbb544 Initial experimental branch commit
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   216
+          "event_log_files, event_log_dir, eventcmd_use_nickname, eventcmd_checkstatus.",
633272cbb544 Initial experimental branch commit
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   217
+  .next = NULL,
633272cbb544 Initial experimental branch commit
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   218
+};
633272cbb544 Initial experimental branch commit
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   219
+
633272cbb544 Initial experimental branch commit
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   220
+static guint eventcmd_hpmi_hid = 0;
633272cbb544 Initial experimental branch commit
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   221
+static guint eventcmd_hmo_hid  = 0;
633272cbb544 Initial experimental branch commit
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   222
+static guint eventcmd_hsc_hid  = 0;
633272cbb544 Initial experimental branch commit
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   223
+static guint eventcmd_hulc_hid = 0;
633272cbb544 Initial experimental branch commit
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   224
+
633272cbb544 Initial experimental branch commit
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   225
+static guint eventcmd_hpmih(const gchar *name, hk_arg_t *args,
633272cbb544 Initial experimental branch commit
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   226
+                            gpointer userdata)
633272cbb544 Initial experimental branch commit
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   227
+{
633272cbb544 Initial experimental branch commit
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   228
+  gboolean    active_window = FALSE;
633272cbb544 Initial experimental branch commit
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   229
+  gboolean    is_groupchat  = FALSE;
633272cbb544 Initial experimental branch commit
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   230
+  gboolean    timestamp     = FALSE;
633272cbb544 Initial experimental branch commit
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   231
+  const char *bjid          = NULL;
633272cbb544 Initial experimental branch commit
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   232
+  hk_arg_t   *arg           = args;
633272cbb544 Initial experimental branch commit
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   233
+  const char *wmsg          = NULL;
633272cbb544 Initial experimental branch commit
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   234
+
633272cbb544 Initial experimental branch commit
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   235
+  while (arg->name) {
633272cbb544 Initial experimental branch commit
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   236
+    if (!strcmp(arg->name, "jid"))
633272cbb544 Initial experimental branch commit
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   237
+      bjid = arg->value;
633272cbb544 Initial experimental branch commit
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   238
+    else if (!strcmp(arg->name, "groupchat"))
633272cbb544 Initial experimental branch commit
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   239
+      is_groupchat = strcmp(arg->value, "true") ? FALSE : TRUE;
12
a26aad513d18 Rebase to new development version
Myhailo Danylenko <isbear@ukrpost.net>
parents: 3
diff changeset
   240
+    else if (!strcmp(arg->name, "delayed") && *(arg->value))
0
633272cbb544 Initial experimental branch commit
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   241
+      timestamp = TRUE;
633272cbb544 Initial experimental branch commit
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   242
+    else if (!strcmp(arg->name, "message"))
633272cbb544 Initial experimental branch commit
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   243
+      wmsg = arg->value;
633272cbb544 Initial experimental branch commit
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   244
+    arg++;
633272cbb544 Initial experimental branch commit
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   245
+  }
633272cbb544 Initial experimental branch commit
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   246
+
633272cbb544 Initial experimental branch commit
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   247
+  if (!bjid) {
633272cbb544 Initial experimental branch commit
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   248
+    scr_LogPrint(LPRINT_LOGNORM, "eventcmd: post-message-in: No jid found.");
633272cbb544 Initial experimental branch commit
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   249
+    return HOOK_HANDLER_RESULT_ALLOW_MORE_HANDLERS;
633272cbb544 Initial experimental branch commit
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   250
+  }
633272cbb544 Initial experimental branch commit
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   251
+
633272cbb544 Initial experimental branch commit
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   252
+  if (settings_opt_get_int("events_ignore_active_window") &&
633272cbb544 Initial experimental branch commit
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   253
+      current_buddy && scr_get_chatmode()) {
633272cbb544 Initial experimental branch commit
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   254
+    gpointer bud = BUDDATA(current_buddy);
633272cbb544 Initial experimental branch commit
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   255
+    if (bud) {
633272cbb544 Initial experimental branch commit
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   256
+      const char *cjid = buddy_getjid(bud);
633272cbb544 Initial experimental branch commit
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   257
+      if (cjid && !strcasecmp(cjid, bjid))
633272cbb544 Initial experimental branch commit
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   258
+        active_window = TRUE;
633272cbb544 Initial experimental branch commit
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   259
+    }
633272cbb544 Initial experimental branch commit
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   260
+  }
633272cbb544 Initial experimental branch commit
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   261
+
633272cbb544 Initial experimental branch commit
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   262
+  if (!active_window && ((is_groupchat && !timestamp) || !is_groupchat))
633272cbb544 Initial experimental branch commit
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   263
+    hk_ext_cmd(bjid, EXT_CMD_TYPE_MESSAGE,
633272cbb544 Initial experimental branch commit
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   264
+               is_groupchat ? EXT_CMD_INFO_GROUPCHAT : EXT_CMD_INFO_RECEIVED, wmsg);
633272cbb544 Initial experimental branch commit
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   265
+
633272cbb544 Initial experimental branch commit
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   266
+  return HOOK_HANDLER_RESULT_ALLOW_MORE_HANDLERS;
633272cbb544 Initial experimental branch commit
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   267
+}
633272cbb544 Initial experimental branch commit
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   268
+
633272cbb544 Initial experimental branch commit
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   269
+static guint eventcmd_hmoh(const gchar *name, hk_arg_t *args, gpointer userdata)
633272cbb544 Initial experimental branch commit
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   270
+{
633272cbb544 Initial experimental branch commit
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   271
+  const char *bjid = NULL;
633272cbb544 Initial experimental branch commit
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   272
+  hk_arg_t   *arg  = args;
633272cbb544 Initial experimental branch commit
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   273
+
633272cbb544 Initial experimental branch commit
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   274
+  while (arg->name) {
633272cbb544 Initial experimental branch commit
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   275
+    if (!strcmp(arg->name, "jid")) {
633272cbb544 Initial experimental branch commit
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   276
+      bjid = arg->value;
633272cbb544 Initial experimental branch commit
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   277
+      break;
633272cbb544 Initial experimental branch commit
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   278
+    }
633272cbb544 Initial experimental branch commit
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   279
+    arg++;
633272cbb544 Initial experimental branch commit
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   280
+  }
633272cbb544 Initial experimental branch commit
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   281
+
633272cbb544 Initial experimental branch commit
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   282
+  if (!bjid) {
633272cbb544 Initial experimental branch commit
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   283
+    scr_LogPrint(LPRINT_LOGNORM, "eventcmd: message-out: No jid found.");
633272cbb544 Initial experimental branch commit
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   284
+    return HOOK_HANDLER_RESULT_ALLOW_MORE_HANDLERS;
633272cbb544 Initial experimental branch commit
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   285
+  }
633272cbb544 Initial experimental branch commit
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   286
+
633272cbb544 Initial experimental branch commit
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   287
+  hk_ext_cmd(bjid, EXT_CMD_TYPE_MESSAGE, EXT_CMD_INFO_SENT, NULL);
633272cbb544 Initial experimental branch commit
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   288
+
633272cbb544 Initial experimental branch commit
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   289
+  return HOOK_HANDLER_RESULT_ALLOW_MORE_HANDLERS;
633272cbb544 Initial experimental branch commit
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   290
+}
633272cbb544 Initial experimental branch commit
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   291
+
633272cbb544 Initial experimental branch commit
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   292
+static guint eventcmd_hsch(const gchar *name, hk_arg_t *args, gpointer userdata)
633272cbb544 Initial experimental branch commit
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   293
+{
633272cbb544 Initial experimental branch commit
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   294
+  const char *bjid      = NULL;
633272cbb544 Initial experimental branch commit
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   295
+  char        status[2] = { '?', '\0' };
633272cbb544 Initial experimental branch commit
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   296
+  hk_arg_t   *arg       = args;
633272cbb544 Initial experimental branch commit
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   297
+  const char *message   = NULL;
633272cbb544 Initial experimental branch commit
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   298
+
633272cbb544 Initial experimental branch commit
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   299
+  while (arg->name) {
633272cbb544 Initial experimental branch commit
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   300
+    if (!strcmp(arg->name, "jid"))
633272cbb544 Initial experimental branch commit
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   301
+      bjid = arg->value;
633272cbb544 Initial experimental branch commit
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   302
+    else if (!strcmp(arg->name, "new_status"))
633272cbb544 Initial experimental branch commit
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   303
+      status[0] = toupper (arg->value[0]);
633272cbb544 Initial experimental branch commit
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   304
+    else if (!strcmp(arg->name, "message") && arg->value && *(arg->value))
633272cbb544 Initial experimental branch commit
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   305
+      message = arg->value;
633272cbb544 Initial experimental branch commit
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   306
+    arg++;
633272cbb544 Initial experimental branch commit
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   307
+  }
633272cbb544 Initial experimental branch commit
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   308
+
633272cbb544 Initial experimental branch commit
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   309
+  if (!bjid) {
633272cbb544 Initial experimental branch commit
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   310
+    scr_LogPrint(LPRINT_LOGNORM, "eventcmd: status-change: No jid found.");
633272cbb544 Initial experimental branch commit
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   311
+    return HOOK_HANDLER_RESULT_ALLOW_MORE_HANDLERS;
633272cbb544 Initial experimental branch commit
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   312
+  }
633272cbb544 Initial experimental branch commit
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   313
+
633272cbb544 Initial experimental branch commit
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   314
+  hk_ext_cmd(bjid, EXT_CMD_TYPE_STATUS, status, message);
633272cbb544 Initial experimental branch commit
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   315
+
633272cbb544 Initial experimental branch commit
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   316
+  return HOOK_HANDLER_RESULT_ALLOW_MORE_HANDLERS;
633272cbb544 Initial experimental branch commit
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   317
+}
633272cbb544 Initial experimental branch commit
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   318
+
633272cbb544 Initial experimental branch commit
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   319
+static guint eventcmd_hulch(const gchar *name, hk_arg_t *args, gpointer userdata)
633272cbb544 Initial experimental branch commit
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   320
+{
633272cbb544 Initial experimental branch commit
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   321
+  hk_arg_t    *arg           = args;
633272cbb544 Initial experimental branch commit
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   322
+  const gchar *unread        = NULL;
633272cbb544 Initial experimental branch commit
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   323
+  const gchar *attention     = NULL;
633272cbb544 Initial experimental branch commit
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   324
+  const gchar *muc_unread    = NULL;
633272cbb544 Initial experimental branch commit
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   325
+  const gchar *muc_attention = NULL;
633272cbb544 Initial experimental branch commit
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   326
+
633272cbb544 Initial experimental branch commit
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   327
+  while (arg->name) {
633272cbb544 Initial experimental branch commit
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   328
+    if (!strcmp(arg->name, "unread"))
633272cbb544 Initial experimental branch commit
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   329
+      unread = arg->value;
633272cbb544 Initial experimental branch commit
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   330
+    else if (!strcmp(arg->name, "attention"))
633272cbb544 Initial experimental branch commit
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   331
+      attention = arg->value;
633272cbb544 Initial experimental branch commit
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   332
+    else if (!strcmp(arg->name, "muc_unread"))
633272cbb544 Initial experimental branch commit
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   333
+      muc_unread = arg->value;
633272cbb544 Initial experimental branch commit
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   334
+    else if (!strcmp(arg->name, "muc_attention"))
633272cbb544 Initial experimental branch commit
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   335
+      muc_attention = arg->value;
633272cbb544 Initial experimental branch commit
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   336
+    arg++;
633272cbb544 Initial experimental branch commit
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   337
+  }
633272cbb544 Initial experimental branch commit
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   338
+
633272cbb544 Initial experimental branch commit
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   339
+  if (!unread || !attention || !muc_unread || !muc_attention) {
633272cbb544 Initial experimental branch commit
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   340
+    scr_LogPrint(LPRINT_LOGNORM, "eventcmd: unread-list-change: Missing parameter.");
633272cbb544 Initial experimental branch commit
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   341
+    return HOOK_HANDLER_RESULT_ALLOW_MORE_HANDLERS;
633272cbb544 Initial experimental branch commit
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   342
+  }
633272cbb544 Initial experimental branch commit
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   343
+
633272cbb544 Initial experimental branch commit
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   344
+  {
633272cbb544 Initial experimental branch commit
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   345
+    gchar *str = g_strdup_printf("%s %s %s %s", unread, attention, muc_unread,
633272cbb544 Initial experimental branch commit
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   346
+                                 muc_attention);
633272cbb544 Initial experimental branch commit
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   347
+    hk_ext_cmd("", EXT_CMD_TYPE_UNREAD, str, NULL);
633272cbb544 Initial experimental branch commit
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   348
+    g_free(str);
633272cbb544 Initial experimental branch commit
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   349
+  }
633272cbb544 Initial experimental branch commit
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   350
+
633272cbb544 Initial experimental branch commit
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   351
+  return HOOK_HANDLER_RESULT_ALLOW_MORE_HANDLERS;
633272cbb544 Initial experimental branch commit
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   352
+}
633272cbb544 Initial experimental branch commit
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   353
+
633272cbb544 Initial experimental branch commit
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   354
+const gchar *g_module_check_init(GModule *module)
633272cbb544 Initial experimental branch commit
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   355
+{
633272cbb544 Initial experimental branch commit
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   356
+  const char *command = settings_opt_get("events_command");
633272cbb544 Initial experimental branch commit
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   357
+  if (!command)
633272cbb544 Initial experimental branch commit
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   358
+    return "events_command not set";
633272cbb544 Initial experimental branch commit
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   359
+  hk_ext_cmd_init(command);
633272cbb544 Initial experimental branch commit
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   360
+  return NULL;
633272cbb544 Initial experimental branch commit
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   361
+}
633272cbb544 Initial experimental branch commit
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   362
+
633272cbb544 Initial experimental branch commit
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   363
+void g_module_unload(GModule *module)
633272cbb544 Initial experimental branch commit
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   364
+{
633272cbb544 Initial experimental branch commit
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   365
+  hk_ext_cmd_init(NULL);
633272cbb544 Initial experimental branch commit
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   366
+}
633272cbb544 Initial experimental branch commit
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   367
+
633272cbb544 Initial experimental branch commit
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   368
+static void ecm_init(void)
633272cbb544 Initial experimental branch commit
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   369
+{
633272cbb544 Initial experimental branch commit
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   370
+  eventcmd_hpmi_hid = hk_add_handler(eventcmd_hpmih, HOOK_POST_MESSAGE_IN,
633272cbb544 Initial experimental branch commit
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   371
+                                     G_PRIORITY_LOW, NULL);
633272cbb544 Initial experimental branch commit
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   372
+  eventcmd_hmo_hid  = hk_add_handler(eventcmd_hmoh,  HOOK_MESSAGE_OUT,
633272cbb544 Initial experimental branch commit
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   373
+                                     G_PRIORITY_LOW, NULL);
633272cbb544 Initial experimental branch commit
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   374
+  eventcmd_hsc_hid  = hk_add_handler(eventcmd_hsch,  HOOK_STATUS_CHANGE,
633272cbb544 Initial experimental branch commit
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   375
+                                     G_PRIORITY_LOW, NULL);
633272cbb544 Initial experimental branch commit
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   376
+  eventcmd_hulc_hid = hk_add_handler(eventcmd_hulch, HOOK_UNREAD_LIST_CHANGE,
633272cbb544 Initial experimental branch commit
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   377
+                                     G_PRIORITY_LOW, NULL);
633272cbb544 Initial experimental branch commit
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   378
+
633272cbb544 Initial experimental branch commit
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   379
+}
633272cbb544 Initial experimental branch commit
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   380
+
633272cbb544 Initial experimental branch commit
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   381
+static void ecm_uninit(void)
633272cbb544 Initial experimental branch commit
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   382
+{
633272cbb544 Initial experimental branch commit
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   383
+  hk_del_handler(HOOK_POST_MESSAGE_IN,    eventcmd_hpmi_hid);
633272cbb544 Initial experimental branch commit
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   384
+  hk_del_handler(HOOK_MESSAGE_OUT,        eventcmd_hmo_hid);
633272cbb544 Initial experimental branch commit
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   385
+  hk_del_handler(HOOK_STATUS_CHANGE,      eventcmd_hsc_hid);
633272cbb544 Initial experimental branch commit
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   386
+  hk_del_handler(HOOK_UNREAD_LIST_CHANGE, eventcmd_hulc_hid);
633272cbb544 Initial experimental branch commit
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   387
+}
633272cbb544 Initial experimental branch commit
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   388
+
633272cbb544 Initial experimental branch commit
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   389
+/* vim: set expandtab cindent cinoptions=>2\:2(0 sw=2 ts=2:  For Vim users... */