| 414 return; |
414 return; |
| 415 |
415 |
| 416 *po = 0; |
416 *po = 0; |
| 417 po += 2; |
417 po += 2; |
| 418 |
418 |
| 419 if ((c = irc_find_chat(gc, text))) |
419 if ((c = irc_find_chat(gc, text))) { |
| |
420 char buf[IRC_BUF_LEN]; |
| 420 chat_set_topic(c, NULL, po); |
421 chat_set_topic(c, NULL, po); |
| |
422 g_snprintf(buf, sizeof(buf), _("<B>%s has changed the topic to: %s</B>"), |
| |
423 text, po); |
| |
424 write_to_conv(c, buf, WFLAG_SYSTEM, NULL, time(NULL)); |
| |
425 } |
| 421 } |
426 } |
| 422 |
427 |
| 423 static gboolean mode_has_arg(struct gaim_connection *gc, char sign, char mode) |
428 static gboolean mode_has_arg(struct gaim_connection *gc, char sign, char mode) |
| 424 { |
429 { |
| 425 struct irc_data *id = gc->proto_data; |
430 struct irc_data *id = gc->proto_data; |
| 845 } else if (!strcmp(cmd, "QUIT")) { |
850 } else if (!strcmp(cmd, "QUIT")) { |
| 846 irc_rem_chat_bud(gc, nick); |
851 irc_rem_chat_bud(gc, nick); |
| 847 } else if (!strcmp(cmd, "TOPIC")) { |
852 } else if (!strcmp(cmd, "TOPIC")) { |
| 848 struct conversation *c = irc_find_chat(gc, word[3]); |
853 struct conversation *c = irc_find_chat(gc, word[3]); |
| 849 char *topic = *word_eol[4] == ':' ? word_eol[4] + 1 : word_eol[4]; |
854 char *topic = *word_eol[4] == ':' ? word_eol[4] + 1 : word_eol[4]; |
| 850 if (c) |
855 if (c) { |
| |
856 char buf[IRC_BUF_LEN]; |
| 851 chat_set_topic(c, nick, topic); |
857 chat_set_topic(c, nick, topic); |
| |
858 g_snprintf(buf, sizeof(buf), _("<B>%s has changed the topic to: %s</B>"), |
| |
859 nick, topic); |
| |
860 write_to_conv(c, buf, WFLAG_SYSTEM, NULL, time(NULL)); |
| |
861 } |
| 852 } else if (!strcmp(cmd, "WALLOPS")) { /* */ |
862 } else if (!strcmp(cmd, "WALLOPS")) { /* */ |
| 853 } |
863 } |
| 854 } |
864 } |
| 855 |
865 |
| 856 static void irc_login_callback(gpointer data, gint source, GaimInputCondition condition) |
866 static void irc_login_callback(gpointer data, gint source, GaimInputCondition condition) |