Hooks flags
authorMyhailo Danylenko <isbear@ukrpost.net>
Thu, 15 Oct 2009 11:07:23 +0300
changeset 81 9008e2daa1b1
parent 80 c8271a839357
child 82 546ee60a3b91
Hooks flags * Updated headers from -crew * Hook uses flags
include/events.h
include/hgcset.h
include/hooks.h
include/roster.h
include/screen.h
include/settings.h
include/utils.h
include/xmpp.h
include/xmpp_defines.h
include/xmpp_helper.h
include/xmpp_iq.h
include/xmpp_iqrequest.h
include/xmpp_muc.h
include/xmpp_s10n.h
main.c
--- a/include/events.h	Wed Oct 14 13:37:40 2009 +0300
+++ b/include/events.h	Thu Oct 15 11:07:23 2009 +0300
@@ -1,10 +1,8 @@
 #ifndef __EVENTS_H__
 #define __EVENTS_H__ 1
 
-#include "xmpp.h"
 #include "config.h" // MODULES_ENABLE
 
-
 #define EVS_DEFAULT_TIMEOUT 90
 #define EVS_MAX_TIMEOUT     432000
 
--- a/include/hgcset.h	Wed Oct 14 13:37:40 2009 +0300
+++ b/include/hgcset.h	Thu Oct 15 11:07:23 2009 +0300
@@ -1,1 +1,1 @@
-
+#define HGCSET "52b63087f421+"
--- a/include/hooks.h	Wed Oct 14 13:37:40 2009 +0300
+++ b/include/hooks.h	Thu Oct 15 11:07:23 2009 +0300
@@ -13,14 +13,20 @@
 #ifdef MODULES_ENABLE
 #include <glib.h>
 
+#define HOOK_MESSAGE_IN       ( 0x00000001 )
+#define HOOK_MESSAGE_OUT      ( 0x00000002 )
+#define HOOK_STATUS_CHANGE    ( 0x00000004 )
+#define HOOK_MY_STATUS_CHANGE ( 0x00000008 )
+#define HOOK_INTERNAL         ( 0x00000010 )
+
 typedef struct {
   const char *name;
   const char *value;
 } hk_arg_t;
 
-typedef void (*hk_handler_t) (hk_arg_t *args, gpointer userdata);
+typedef void (*hk_handler_t) (guint32 flags, hk_arg_t *args, gpointer userdata);
 
-void hk_add_handler (hk_handler_t handler, gpointer userdata);
+void hk_add_handler (hk_handler_t handler, guint32 flags, gpointer userdata);
 void hk_del_handler (hk_handler_t handler, gpointer userdata);
 #endif
 
--- a/include/roster.h	Wed Oct 14 13:37:40 2009 +0300
+++ b/include/roster.h	Thu Oct 15 11:07:23 2009 +0300
@@ -6,9 +6,7 @@
 
 #include "pgp.h"
 
-#ifndef SPECIAL_BUFFER_STATUS_ID
 #define SPECIAL_BUFFER_STATUS_ID  "[status]"
-#endif
 
 enum imstatus {
     offline,
--- a/include/screen.h	Wed Oct 14 13:37:40 2009 +0300
+++ b/include/screen.h	Thu Oct 15 11:07:23 2009 +0300
@@ -14,7 +14,7 @@
 # include <panel.h>
 #endif
 
-#ifdef WITH_ASPELL
+#if defined(WITH_ENCHANT) || defined(WITH_ASPELL)
 void spellcheck_init(void);
 void spellcheck_deinit(void);
 //static void spellcheck(char*, char*);
@@ -169,7 +169,7 @@
 void readline_cancel_completion(void);
 void readline_do_completion(void);
 void readline_refresh_screen(void);
-void readline_disable_chat_mode(void);
+void readline_disable_chat_mode(guint show_roster);
 void readline_hist_beginning_search_bwd(void);
 void readline_hist_beginning_search_fwd(void);
 void readline_hist_prev(void);
--- a/include/settings.h	Wed Oct 14 13:37:40 2009 +0300
+++ b/include/settings.h	Thu Oct 15 11:07:23 2009 +0300
@@ -18,12 +18,8 @@
 #define SETTINGS_TYPE_OTR       4
 #endif
 
-#ifndef COMMAND_CHAR
 #define COMMAND_CHAR    '/'
-#endif
-#ifndef COMMAND_CHARSTR
 #define COMMAND_CHARSTR "/"
-#endif
 
 #define settings_opt_get(k)     settings_get(SETTINGS_TYPE_OPTION, k)
 #define settings_opt_get_int(k) settings_get_int(SETTINGS_TYPE_OPTION, k)
--- a/include/utils.h	Wed Oct 14 13:37:40 2009 +0300
+++ b/include/utils.h	Thu Oct 15 11:07:23 2009 +0300
@@ -15,6 +15,7 @@
 #define JID_DOMAIN_SEPARATORSTR     "@"
 
 char *jidtodisp(const char *fjid);
+char *jid_get_username(const char *fjid);
 char *compose_jid(const char *username, const char *servername,
                   const char *resource);
 gboolean jid_equal(const char *jid1, const char *jid2);
--- a/include/xmpp.h	Wed Oct 14 13:37:40 2009 +0300
+++ b/include/xmpp.h	Thu Oct 15 11:07:23 2009 +0300
@@ -32,15 +32,6 @@
 extern LmSSL* lssl;
 extern GMainLoop *main_loop;
 
-typedef struct {
-	char   *subject;
-	char   *body;
-	time_t  timestamp;
-	char   *jid;
-} unread_message_t;
-
-extern GSList *unread_messages;
-
 void xmpp_connect(void);
 void xmpp_disconnect(void);
 
@@ -86,4 +77,7 @@
 void xmpp_request(const char *fjid, enum iqreq_type reqtype);
 void request_vcard(const char *bjid);
 void xmpp_request_storage(const gchar *storage);
+
 #endif /* __XMPP_H__ */
+
+/* vim: set expandtab cindent cinoptions=>2\:2(0:  For Vim users... */
--- a/include/xmpp_defines.h	Wed Oct 14 13:37:40 2009 +0300
+++ b/include/xmpp_defines.h	Thu Oct 15 11:07:23 2009 +0300
@@ -78,3 +78,5 @@
 #define XMPP_ERROR_DISCONNECTED          510
 
 #endif
+
+/* vim: set expandtab cindent cinoptions=>2\:2(0:  For Vim users... */
--- a/include/xmpp_helper.h	Wed Oct 14 13:37:40 2009 +0300
+++ b/include/xmpp_helper.h	Thu Oct 15 11:07:23 2009 +0300
@@ -1,6 +1,13 @@
 #ifndef __XMPPHELPER_H__
 #define __XMPPHELPER_H__ 1
 
+#include <time.h>
+#include <loudmouth/loudmouth.h>
+
+#include "xmpp.h"
+#include "xmpp_defines.h"
+#include "config.h"
+
 extern time_t iqlast;           /* last message/status change time */
 
 struct T_presence {
@@ -8,21 +15,44 @@
   const char *msg;
 };
 
-#include "config.h"
+struct xmpp_error {
+  guint code;
+  const char *code_str;
+  const char *meaning;
+  const char *condition;
+  const char *type;
+};
+
+
 #ifdef MODULES_ENABLE
 void xmpp_add_feature (const char *xmlns);
 void xmpp_del_feature (const char *xmlns);
 #endif
 
-LmMessageNode * lm_message_node_new(const gchar *name, const gchar *xmlns);
-const gchar* lm_message_node_get_child_value(LmMessageNode * node,
+LmMessageNode *lm_message_node_new(const gchar *name, const gchar *xmlns);
+LmMessageNode *lm_message_node_find_xmlns(LmMessageNode *node,
+                                          const char *xmlns);
+const gchar* lm_message_node_get_child_value(LmMessageNode *node,
                                              const gchar *child);
-void lm_message_node_hide(LmMessageNode * node);
-void lm_message_node_insert_childnode(LmMessageNode * node,
+void lm_message_node_hide(LmMessageNode *node);
+void lm_message_node_insert_childnode(LmMessageNode *node,
                                       LmMessageNode *child);
-void lm_message_node_deep_ref(LmMessageNode * node);
+void lm_message_node_deep_ref(LmMessageNode *node);
+time_t lm_message_node_get_timestamp(LmMessageNode *node);
+
+LmMessage *lm_message_new_iq_from_query(LmMessage *m, LmMessageSubType type);
+
+LmMessage *lm_message_new_presence(enum imstatus st,
+                                   const char *recipient, const char *msg);
+
+const gchar* lm_message_get_from(LmMessage *m);
+const gchar* lm_message_get_id(LmMessage *m);
+
+void display_server_error(LmMessageNode *x);
 
 /* XEP-0115 (Entity Capabilities) node */
 const char *entity_version(enum imstatus status);
 
 #endif
+
+/* vim: set expandtab cindent cinoptions=>2\:2(0:  For Vim users... */
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/include/xmpp_iq.h	Thu Oct 15 11:07:23 2009 +0300
@@ -0,0 +1,32 @@
+#ifndef __XMPP_IQ_H__
+#define __XMPP_IQ_H__ 1
+
+LmHandlerResult handle_iq_commands(LmMessageHandler *h,
+                                   LmConnection *c,
+                                   LmMessage *m, gpointer ud);
+LmHandlerResult handle_iq_disco_items(LmMessageHandler *h,
+                                      LmConnection *c,
+                                      LmMessage *m, gpointer ud);
+LmHandlerResult handle_iq_disco_info(LmMessageHandler *h,
+                                     LmConnection *c,
+                                     LmMessage *m, gpointer ud);
+LmHandlerResult handle_iq_roster(LmMessageHandler *h, LmConnection *c,
+                                 LmMessage *m, gpointer ud);
+LmHandlerResult handle_iq_ping(LmMessageHandler *h, LmConnection *c,
+                               LmMessage *m, gpointer ud);
+LmHandlerResult handle_iq_last(LmMessageHandler *h, LmConnection *c,
+                               LmMessage *m, gpointer ud);
+LmHandlerResult handle_iq_version(LmMessageHandler *h, LmConnection *c,
+                                  LmMessage *m, gpointer ud);
+LmHandlerResult handle_iq_time(LmMessageHandler *h, LmConnection *c,
+                               LmMessage *m, gpointer ud);
+LmHandlerResult handle_iq_time202(LmMessageHandler *h, LmConnection *c,
+                                  LmMessage *m, gpointer ud);
+LmHandlerResult handle_iq_vcard(LmMessageHandler *h, LmConnection *c,
+                                LmMessage *m, gpointer ud);
+
+void send_iq_error(LmConnection *c, LmMessage *m, guint error);
+
+#endif /* __XMPP_IQ_H__ */
+
+/* vim: set expandtab cindent cinoptions=>2\:2(0:  For Vim users... */
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/include/xmpp_iqrequest.h	Thu Oct 15 11:07:23 2009 +0300
@@ -0,0 +1,8 @@
+#ifndef __XMPP_IQREQUEST_H__
+#define __XMPP_IQREQUEST_H__ 1
+
+void xmpp_iq_request(const char *fulljid, const char *xmlns);
+
+#endif /* __XMPP_IQREQUEST_H__ */
+
+/* vim: set expandtab cindent cinoptions=>2\:2(0:  For Vim users... */
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/include/xmpp_muc.h	Thu Oct 15 11:07:23 2009 +0300
@@ -0,0 +1,13 @@
+#ifndef __XMPP_MUC_H__
+#define __XMPP_MUC_H__ 1
+
+void roompresence(gpointer room, void *presencedata);
+void got_muc_message(const char *from, LmMessageNode *x);
+void handle_muc_presence(const char *from, LmMessageNode * xmldata,
+                         const char *roomjid, const char *rname,
+                         enum imstatus ust, const char *ustmsg,
+                         time_t usttime, char bpprio);
+
+#endif /* __XMPP_MUC_H__ */
+
+/* vim: set expandtab cindent cinoptions=>2\:2(0:  For Vim users... */
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/include/xmpp_s10n.h	Thu Oct 15 11:07:23 2009 +0300
@@ -0,0 +1,10 @@
+#ifndef __XMPP_S10N_H__
+#define __XMPP_S10N_H__ 1
+
+#include "events.h"
+
+int evscallback_subscription(eviqs *evp, guint evcontext);
+
+#endif /* __XMPP_S10N_H__ */
+
+/* vim: set expandtab cindent cinoptions=>2\:2(0:  For Vim users... */
--- a/main.c	Wed Oct 14 13:37:40 2009 +0300
+++ b/main.c	Thu Oct 15 11:07:23 2009 +0300
@@ -1181,7 +1181,7 @@
 	}
 }
 
-static void lua_hook (hk_arg_t *args, lua_State *L)
+static void lua_hook (guint32 hookid, hk_arg_t *args, lua_State *L)
 {
 	hk_arg_t   *arg  = args;
 	const char *hook = settings_opt_get ("lua_hook_function");
@@ -1306,14 +1306,14 @@
 	}
 #endif
 
-	hk_add_handler ((hk_handler_t) lua_hook, lua);
+	hk_add_handler ((hk_handler_t) lua_hook, ~((guint32)0), lua);
 
 	{
 		hk_arg_t args[] = {
 			{ "hook", "hook-start" },
 			{ NULL,   NULL         },
 		};
-		lua_hook (args, lua);
+		lua_hook (0, args, lua);
 	}
 
 	return NULL;
@@ -1365,7 +1365,7 @@
 			{ "hook", "hook-quit" },
 			{ NULL,   NULL        },
 		};
-		lua_hook (args, lua);
+		lua_hook (0, args, lua);
 
 		hk_del_handler ((hk_handler_t) lua_hook, lua);