tags 368253 patch
thanks

This patch addresses the problem for nick displaying in channel mesgs.  It is
enough to be able to type or copy/paste them, and properly respond to the users
in question.

Things still broken:

 - join messages, part messages, nick changes, etc
 - tab expansion of nicknames
 - retrieving nickname list (/names)

-- 
Robert Millan

My spam trap is [EMAIL PROTECTED]  Note: this address is only intended for
spam harvesters.  Writing to it will get you added to my black list.
diff -ur irssi-0.8.10.old/src/fe-common/core/fe-messages.c 
irssi-0.8.10/src/fe-common/core/fe-messages.c
--- irssi-0.8.10.old/src/fe-common/core/fe-messages.c   2005-12-08 
18:32:43.000000000 +0100
+++ irssi-0.8.10/src/fe-common/core/fe-messages.c       2006-07-12 
15:53:48.000000000 +0200
@@ -167,7 +167,7 @@
                               const char *target, NICK_REC *nickrec)
 {
        CHANNEL_REC *chanrec;
-       const char *nickmode, *printnick;
+       const char *nickmode, *printnick, *recoded;
        int for_me, print_channel, level;
        char *color, *freemsg = NULL;
        HILIGHT_REC *hilight;
@@ -205,6 +205,8 @@
        if (printnick == NULL)
                printnick = nick;
 
+        recoded = recode_in(server, printnick, NULL);
+
        if (color != NULL) {
                /* highlighted nick */
                TEXT_DEST_REC dest;
@@ -212,23 +214,24 @@
                hilight_update_text_dest(&dest,hilight);
                if (!print_channel) /* message to active channel in window */
                        printformat_dest(&dest, TXT_PUBMSG_HILIGHT, color,
-                                        printnick, msg, nickmode);
+                                        recoded, msg, nickmode);
                else /* message to not existing/active channel */
                        printformat_dest(&dest, TXT_PUBMSG_HILIGHT_CHANNEL,
-                                        color, printnick, target, msg,
+                                        color, recoded, target, msg,
                                         nickmode);
        } else {
                if (!print_channel)
                        printformat(server, target, level,
                                    for_me ? TXT_PUBMSG_ME : TXT_PUBMSG,
-                                   printnick, msg, nickmode);
+                                   recoded, msg, nickmode);
                else
                        printformat(server, target, level,
                                    for_me ? TXT_PUBMSG_ME_CHANNEL :
                                    TXT_PUBMSG_CHANNEL,
-                                   printnick, target, msg, nickmode);
+                                   recoded, target, msg, nickmode);
        }                                               
 
+        g_free_not_null(recoded);
        g_free_not_null(freemsg);
        g_free_not_null(color);
 }

Reply via email to