diff mcabber/src/hooks.c @ 141:6533a231a65e

[/trunk] Changeset 153 by mikael * We now rebuild the buddy list when receiving a message from an offline/invisible buddy.
author mikael
date Thu, 28 Apr 2005 20:34:40 +0000
parents cfd3df636d5f
children 50f23c38743a
line wrap: on
line diff
--- a/mcabber/src/hooks.c	Thu Apr 28 20:11:31 2005 +0000
+++ b/mcabber/src/hooks.c	Thu Apr 28 20:34:40 2005 +0000
@@ -30,10 +30,21 @@
 inline void hk_message_in(const char *jid, time_t timestamp, const char *msg)
 {
   char *buffer = utf8_decode(msg);
-  // XXX Maybe filter out special chars?
+  int new_guy = FALSE;
+
+  // If this user isn't in the roster, we add it
+  if (!roster_exists(jid, jidsearch, ROSTER_TYPE_USER|ROSTER_TYPE_AGENT)) {
+    roster_add_user(jid, NULL, NULL, ROSTER_TYPE_USER);
+    new_guy = TRUE;
+  }
+
   scr_WriteIncomingMessage(jid, buffer);
   hlog_write_message(jid, timestamp, FALSE, buffer);
   free(buffer);
+  if (new_guy) {
+    buddylist_build();
+    update_roster = TRUE;
+  }
 }
 
 inline void hk_message_out(const char *jid, time_t timestamp, const char *msg)