| 251 | | static void sig_message_own_public(SERVER_REC *server, const char *msg, |
| 252 | | const char *target) |
| 253 | | { |
| 254 | | WINDOW_REC *window; |
| 255 | | CHANNEL_REC *channel; |
| 256 | | char *nickmode; |
| 257 | | char *freemsg = NULL;
|
| 258 | | int print_channel; |
| 259 | | channel = channel_find(server, target); |
| 260 | | if (channel != NULL)
|
| 261 | | target = channel->visible_name; |
| 262 | | |
| 263 | | nickmode = channel_get_nickmode(channel, server->nick); |
| 264 | | |
| 265 | | window = channel == NULL ? NULL :
|
| 266 | | window_item_window((WI_ITEM_REC *) channel);
|
| 267 | | |
| 268 | | print_channel = window == NULL ||
|
| 269 | | window->active != (WI_ITEM_REC *) channel; |
| 270 | | |
| 271 | | if (!print_channel && settings_get_bool("print_active_channel") && |
| 272 | | window != NULL && g_slist_length(window->items) > 1)
|
| 273 | | print_channel = TRUE;
|
| 274 | | |
| 275 | | if (settings_get_bool("emphasis")) |
| 276 | | msg = freemsg = expand_emphasis((WI_ITEM_REC *) channel, msg); |
| 277 | | |
| 278 | | if (!print_channel) { |
| 279 | | printformat(server, target, MSGLEVEL_PUBLIC | MSGLEVEL_NOHILIGHT | MSGLEVEL_NO_ACT,
|
| 280 | | TXT_OWN_MSG, server->nick, msg, nickmode); |
| 281 | | } else { |
| 282 | | printformat(server, target, MSGLEVEL_PUBLIC | MSGLEVEL_NOHILIGHT | MSGLEVEL_NO_ACT,
|
| 283 | | TXT_OWN_MSG_CHANNEL, server->nick, target, msg, nickmode); |
| 284 | | } |
| 285 | | |
| 286 | | g_free_not_null(nickmode);
|
| 287 | | g_free_not_null(freemsg);
|
| 288 | | } |