+static gboolean gi_chatjoincb(GaimConversation *conv, const char *user, GaimConvChatBuddyFlags flags, void *uudata)
+{
+ GaimConnection *c;
+
+ if((c = gaim_conversation_get_gc(conv)) == NULL)
+ return(FALSE);
+ if(c->prpl == me)
+ return(TRUE);
+ return(FALSE);
+}
+
+static gboolean gi_chatleavecb(GaimConversation *conv, const char *user, const char *reason, void *uudata)
+{
+ GaimConnection *c;
+
+ if((c = gaim_conversation_get_gc(conv)) == NULL)
+ return(FALSE);
+ if(c->prpl == me)
+ return(TRUE);
+ return(FALSE);
+}
+
+static void regsigs(void)
+{
+ static GaimPlugin *regged = NULL;
+
+ if(regged != me) {
+ gaim_signal_connect(gaim_conversations_get_handle(), "chat-buddy-joining", me, GAIM_CALLBACK(gi_chatjoincb), NULL);
+ gaim_signal_connect(gaim_conversations_get_handle(), "chat-buddy-leaving", me, GAIM_CALLBACK(gi_chatleavecb), NULL);
+ regged = me;
+ }
+}
+