Merged from silc_1_0_branch.
[silc.git] / apps / irssi / src / fe-common / core / fe-messages.c
index 44c9fb35f635c4929c7ecd6c77788aed28d90028..31bbbfad056125c3ccee7b1dd7844af09ecbd423 100644 (file)
@@ -39,7 +39,7 @@
 
 #define ishighalnum(c) ((unsigned char) (c) >= 128 || i_isalnum(c))
 
-static GHashTable *printnicks;
+GHashTable *printnicks;
 
 /* convert _underlined_ and *bold* words (and phrases) to use real
    underlining or bolding */
@@ -227,14 +227,19 @@ static void sig_message_private(SERVER_REC *server, const char *msg,
        g_free_not_null(freemsg);
 }
 
-static void print_own_channel_message(SERVER_REC *server, CHANNEL_REC *channel,
-                                     const char *target, const char *msg)
+static void sig_message_own_public(SERVER_REC *server, const char *msg,
+                                  const char *target)
 {
        WINDOW_REC *window;
+       CHANNEL_REC *channel;
        const char *nickmode;
         char *freemsg = NULL;
        int print_channel;
 
+       channel = channel_find(server, target);
+       if (channel != NULL)
+               target = channel->visible_name;
+
        nickmode = channel_get_nickmode(channel, server->nick);
 
        window = channel == NULL ? NULL :
@@ -261,18 +266,6 @@ static void print_own_channel_message(SERVER_REC *server, CHANNEL_REC *channel,
        g_free_not_null(freemsg);
 }
 
-static void sig_message_own_public(SERVER_REC *server, const char *msg,
-                                  const char *target)
-{
-       CHANNEL_REC *channel;
-
-       g_return_if_fail(server != NULL);
-       g_return_if_fail(msg != NULL);
-
-       channel = channel_find(server, target);
-       print_own_channel_message(server, channel, target, msg);
-}
-
 static void sig_message_own_private(SERVER_REC *server, const char *msg,
                                    const char *target, const char *origtarget)
 {
@@ -347,7 +340,7 @@ static void sig_message_quit(SERVER_REC *server, const char *nick,
                if (!nicklist_find(rec, nick))
                        continue;
 
-               if (ignore_check(server, nick, address, rec->name,
+               if (ignore_check(server, nick, address, rec->visible_name,
                                 reason, MSGLEVEL_QUITS)) {
                        count++;
                        continue;
@@ -355,17 +348,18 @@ static void sig_message_quit(SERVER_REC *server, const char *nick,
 
                if (print_channel == NULL ||
                    active_win->active == (WI_ITEM_REC *) rec)
-                       print_channel = rec->name;
+                       print_channel = rec->visible_name;
 
                if (once)
-                       g_string_sprintfa(chans, "%s,", rec->name);
+                       g_string_sprintfa(chans, "%s,", rec->visible_name);
                else {
                        window = window_item_window((WI_ITEM_REC *) rec);
                        if (g_slist_find(windows, window) == NULL) {
                                windows = g_slist_append(windows, window);
-                               printformat(server, rec->name, MSGLEVEL_QUITS,
+                               printformat(server, rec->visible_name,
+                                           MSGLEVEL_QUITS,
                                            TXT_QUIT, nick, address, reason,
-                                           rec->name);
+                                           rec->visible_name);
                        }
                }
                count++;
@@ -441,8 +435,8 @@ static void print_nick_change(SERVER_REC *server, const char *newnick,
                        continue;
 
                windows = g_slist_append(windows, window);
-               print_nick_change_channel(server, channel->name, newnick,
-                                         oldnick, address, ownnick);
+               print_nick_change_channel(server, channel->visible_name,
+                                         newnick, oldnick, address, ownnick);
                msgprint = TRUE;
        }