diff options
author | Wilmer van der Gaast <wilmer@gaast.net> | 2010-04-01 23:25:41 -0400 |
---|---|---|
committer | Wilmer van der Gaast <wilmer@gaast.net> | 2010-04-01 23:25:41 -0400 |
commit | f012a9f0bb363cfcbdb6f2d563254ffba26b9fc8 (patch) | |
tree | e73e976243ac36a082f4e7f5cd354d8d1103f0e3 /irc_im.c | |
parent | 231b08b07a2807881da1327408e33855370b7b95 (diff) |
Can receive messages again.
Diffstat (limited to 'irc_im.c')
-rw-r--r-- | irc_im.c | 31 |
1 files changed, 31 insertions, 0 deletions
@@ -62,6 +62,9 @@ static gboolean bee_irc_user_new( bee_t *bee, bee_user_t *bu ) iu->user = g_strdup( bu->handle ); } + if( set_getbool( &bee->set, "private" ) ) + iu->flags |= IRC_USER_PRIVATE; + iu->f = &irc_user_im_funcs; //iu->last_typing_notice = 0; @@ -89,10 +92,38 @@ static gboolean bee_irc_user_status( bee_t *bee, bee_user_t *bu, bee_user_t *old return TRUE; } +static gboolean bee_irc_user_msg( bee_t *bee, bee_user_t *bu, const char *msg, time_t sent_at ) +{ + irc_t *irc = bee->ui_data; + irc_channel_t *ic = irc->channels->data; + irc_user_t *iu = (irc_user_t *) bu->ui_data; + char *dst, *prefix = NULL; + char *wrapped; + + if( iu->flags & IRC_USER_PRIVATE ) + { + dst = irc->user->nick; + } + else + { + dst = ic->name; + prefix = g_strdup_printf( "%s%s", irc->user->nick, set_getstr( &bee->set, "to_char" ) ); + } + + wrapped = word_wrap( msg, 425 ); + irc_send_msg( iu, "PRIVMSG", dst, wrapped, prefix ); + + g_free( wrapped ); + g_free( prefix ); + + return TRUE; +} + const struct bee_ui_funcs irc_ui_funcs = { bee_irc_user_new, bee_irc_user_free, bee_irc_user_status, + bee_irc_user_msg, }; |