Index: src/protocols/irc/cmds.c
===================================================================
RCS file: /cvsroot/gaim/gaim/src/protocols/irc/cmds.c,v
retrieving revision 1.16
diff -u -p -r1.16 cmds.c
--- src/protocols/irc/cmds.c 2 Jul 2004 03:54:13 -0000 1.16
+++ src/protocols/irc/cmds.c 13 Aug 2004 17:37:58 -0000
@@ -444,9 +444,12 @@ int irc_cmd_topic(struct irc_conn *irc,
topic = gaim_conv_chat_get_topic (GAIM_CONV_CHAT(convo));
if (topic) {
- char *tmp = gaim_escape_html(topic);
- buf = g_strdup_printf(_("current topic is: %s"), tmp);
+ char *tmp, tmp2;
+ tmp = gaim_escape_html(topic);
+ tmp2 = gaim_markup_linkify(tmp);
+ buf = g_strdup_printf(_("current topic is: %s"), tmp2);
g_free(tmp);
+ g_free(tmp2);
} else
buf = g_strdup(_("No topic is set"));
gaim_conv_chat_write(GAIM_CONV_CHAT(convo), target, buf, GAIM_MESSAGE_SYSTEM|GAIM_MESSAGE_NO_LOG, time(NULL));
Index: src/protocols/irc/msgs.c
===================================================================
RCS file: /cvsroot/gaim/gaim/src/protocols/irc/msgs.c,v
retrieving revision 1.35
diff -u -p -r1.35 msgs.c
--- src/protocols/irc/msgs.c 12 Aug 2004 00:26:28 -0000 1.35
+++ src/protocols/irc/msgs.c 13 Aug 2004 17:37:59 -0000
@@ -260,7 +260,7 @@ void irc_msg_list(struct irc_conn *irc,
void irc_msg_topic(struct irc_conn *irc, const char *name, const char *from, char **args)
{
- char *chan, *topic, *msg, *nick, *tmp;
+ char *chan, *topic, *msg, *nick, *tmp, *tmp2;
GaimConversation *convo;
if (!strcmp(name, "topic")) {
@@ -278,20 +278,22 @@ void irc_msg_topic(struct irc_conn *irc,
/* If this is an interactive update, print it out */
tmp = gaim_escape_html(topic);
+ tmp2 = gaim_markup_linkify(tmp);
+ g_free(tmp);
if (!strcmp(name, "topic")) {
nick = irc_mask_nick(from);
gaim_conv_chat_set_topic(GAIM_CONV_CHAT(convo), nick, topic);
- msg = g_strdup_printf(_("%s has changed the topic to: %s"), nick, tmp);
+ msg = g_strdup_printf(_("%s has changed the topic to: %s"), nick, tmp2);
g_free(nick);
gaim_conv_chat_write(GAIM_CONV_CHAT(convo), from, msg, GAIM_MESSAGE_SYSTEM, time(NULL));
g_free(msg);
} else {
- msg = g_strdup_printf(_("The topic for %s is: %s"), chan, tmp);
+ msg = g_strdup_printf(_("The topic for %s is: %s"), chan, tmp2);
gaim_conv_chat_set_topic(GAIM_CONV_CHAT(convo), NULL, topic);
gaim_conv_chat_write(GAIM_CONV_CHAT(convo), "", msg, GAIM_MESSAGE_SYSTEM, time(NULL));
g_free(msg);
}
- g_free(tmp);
+ g_free(tmp2);
g_free(topic);
}
Index: src/protocols/jabber/chat.c
===================================================================
RCS file: /cvsroot/gaim/gaim/src/protocols/jabber/chat.c,v
retrieving revision 1.34
diff -u -p -r1.34 chat.c
--- src/protocols/jabber/chat.c 8 Aug 2004 05:38:00 -0000 1.34
+++ src/protocols/jabber/chat.c 13 Aug 2004 17:37:59 -0000
@@ -530,11 +530,15 @@ void jabber_chat_change_topic(JabberChat
jabber_message_free(jm);
} else {
const char *cur = gaim_conv_chat_get_topic(GAIM_CONV_CHAT(chat->conv));
- char *buf;
+ char *buf, *tmp, *tmp2;
- if(cur)
- buf = g_strdup_printf(_("current topic is: %s"), cur);
- else
+ if(cur) {
+ tmp = gaim_escape_html(cur);
+ tmp2 = gaim_markup_linkify(tmp);
+ buf = g_strdup_printf(_("current topic is: %s"), tmp2);
+ g_free(tmp);
+ g_free(tmp2);
+ } else
buf = g_strdup(_("No topic is set"));
gaim_conv_chat_write(GAIM_CONV_CHAT(chat->conv), "", buf,
GAIM_MESSAGE_SYSTEM | GAIM_MESSAGE_NO_LOG, time(NULL));
Index: src/protocols/jabber/message.c
===================================================================
RCS file: /cvsroot/gaim/gaim/src/protocols/jabber/message.c,v
retrieving revision 1.38
diff -u -p -r1.38 message.c
--- src/protocols/jabber/message.c 24 Jul 2004 15:18:32 -0000 1.38
+++ src/protocols/jabber/message.c 13 Aug 2004 17:37:59 -0000
@@ -168,12 +168,16 @@ static void handle_groupchat(JabberMessa
gaim_conv_chat_set_topic(GAIM_CONV_CHAT(chat->conv), jid->resource,
jm->subject);
if(!jm->xhtml && !jm->body) {
- char *msg;
+ char *msg, *tmp, *tmp2;
+ tmp = gaim_escape_html(jm->subject);
+ tmp2 = gaim_markup_linkify(tmp);
if(jid->resource)
- msg = g_strdup_printf(_("%s has set the topic to: %s"), jid->resource, jm->subject);
+ msg = g_strdup_printf(_("%s has set the topic to: %s"), jid->resource, tmp2);
else
- msg = g_strdup_printf(_("The topic is: %s"), jm->subject);
+ msg = g_strdup_printf(_("The topic is: %s"), tmp2);
gaim_conv_chat_write(GAIM_CONV_CHAT(chat->conv), "", msg, GAIM_MESSAGE_SYSTEM, jm->sent);
+ g_free(tmp);
+ g_free(tmp2);
g_free(msg);
}
}
Index: src/protocols/silc/ops.c
===================================================================
RCS file: /cvsroot/gaim/gaim/src/protocols/silc/ops.c,v
retrieving revision 1.14
diff -u -p -r1.14 ops.c
--- src/protocols/silc/ops.c 2 Aug 2004 04:19:26 -0000 1.14
+++ src/protocols/silc/ops.c 13 Aug 2004 17:37:59 -0000
@@ -314,52 +314,61 @@ silc_notify(SilcClient client, SilcClien
break;
case SILC_NOTIFY_TYPE_TOPIC_SET:
- idtype = va_arg(va, int);
- entry = va_arg(va, void *);
- tmp = va_arg(va, char *);
- channel = va_arg(va, SilcChannelEntry);
+ {
+ char *esc, *tmp2;
+ idtype = va_arg(va, int);
+ entry = va_arg(va, void *);
+ tmp = va_arg(va, char *);
+ channel = va_arg(va, SilcChannelEntry);
- convo = gaim_find_conversation_with_account(channel->channel_name,
- sg->account);
- if (!convo)
- break;
+ convo = gaim_find_conversation_with_account(channel->channel_name,
+ sg->account);
+ if (!convo)
+ break;
- if (!tmp)
- break;
+ if (!tmp)
+ break;
- if (idtype == SILC_ID_CLIENT) {
- client_entry = (SilcClientEntry)entry;
- g_snprintf(buf, sizeof(buf),
- _("%s has changed the topic of %s to: %s"),
- client_entry->nickname, channel->channel_name, tmp);
- gaim_conv_chat_write(GAIM_CONV_CHAT(convo), client_entry->nickname,
- buf, GAIM_MESSAGE_SYSTEM, time(NULL));
- gaim_conv_chat_set_topic(GAIM_CONV_CHAT(convo),
- client_entry->nickname, tmp);
- } else if (idtype == SILC_ID_SERVER) {
- server_entry = (SilcServerEntry)entry;
- g_snprintf(buf, sizeof(buf),
- _("%s has changed the topic of %s to: %s"),
- server_entry->server_name, channel->channel_name, tmp);
- gaim_conv_chat_write(GAIM_CONV_CHAT(convo), server_entry->server_name,
- buf, GAIM_MESSAGE_SYSTEM, time(NULL));
- gaim_conv_chat_set_topic(GAIM_CONV_CHAT(convo),
- server_entry->server_name, tmp);
- } else if (idtype == SILC_ID_CHANNEL) {
- channel = (SilcChannelEntry)entry;
- g_snprintf(buf, sizeof(buf),
- _("%s has changed the topic of %s to: %s"),
- channel->channel_name, channel->channel_name, tmp);
- gaim_conv_chat_write(GAIM_CONV_CHAT(convo), channel->channel_name,
- buf, GAIM_MESSAGE_SYSTEM, time(NULL));
- gaim_conv_chat_set_topic(GAIM_CONV_CHAT(convo),
- channel->channel_name, tmp);
- } else {
- gaim_conv_chat_set_topic(GAIM_CONV_CHAT(convo), NULL, tmp);
- }
+ esc = gaim_escape_html(tmp);
+ tmp2 = gaim_markup_linkify(esc);
+ g_free(esc);
- break;
+ if (idtype == SILC_ID_CLIENT) {
+ client_entry = (SilcClientEntry)entry;
+ g_snprintf(buf, sizeof(buf),
+ _("%s has changed the topic of %s to: %s"),
+ client_entry->nickname, channel->channel_name, tmp2);
+ gaim_conv_chat_write(GAIM_CONV_CHAT(convo), client_entry->nickname,
+ buf, GAIM_MESSAGE_SYSTEM, time(NULL));
+ gaim_conv_chat_set_topic(GAIM_CONV_CHAT(convo),
+ client_entry->nickname, tmp);
+ } else if (idtype == SILC_ID_SERVER) {
+ server_entry = (SilcServerEntry)entry;
+ g_snprintf(buf, sizeof(buf),
+ _("%s has changed the topic of %s to: %s"),
+ server_entry->server_name, channel->channel_name, tmp2);
+ gaim_conv_chat_write(GAIM_CONV_CHAT(convo), server_entry->server_name,
+ buf, GAIM_MESSAGE_SYSTEM, time(NULL));
+ gaim_conv_chat_set_topic(GAIM_CONV_CHAT(convo),
+ server_entry->server_name, tmp);
+ } else if (idtype == SILC_ID_CHANNEL) {
+ channel = (SilcChannelEntry)entry;
+ g_snprintf(buf, sizeof(buf),
+ _("%s has changed the topic of %s to: %s"),
+ channel->channel_name, channel->channel_name, tmp2);
+ gaim_conv_chat_write(GAIM_CONV_CHAT(convo), channel->channel_name,
+ buf, GAIM_MESSAGE_SYSTEM, time(NULL));
+ gaim_conv_chat_set_topic(GAIM_CONV_CHAT(convo),
+ channel->channel_name, tmp);
+ } else {
+ gaim_conv_chat_set_topic(GAIM_CONV_CHAT(convo), NULL, tmp);
+ }
+ g_free(tmp2);
+
+ break;
+
+ }
case SILC_NOTIFY_TYPE_NICK_CHANGE:
client_entry = va_arg(va, SilcClientEntry);
client_entry2 = va_arg(va, SilcClientEntry);
Index: src/protocols/silc/silc.c
===================================================================
RCS file: /cvsroot/gaim/gaim/src/protocols/silc/silc.c,v
retrieving revision 1.21
diff -u -p -r1.21 silc.c
--- src/protocols/silc/silc.c 9 Aug 2004 14:46:52 -0000 1.21
+++ src/protocols/silc/silc.c 13 Aug 2004 17:37:59 -0000
@@ -985,7 +985,7 @@ static GaimCmdRet silcgaim_cmd_chat_topi
{
GaimConnection *gc;
int id = 0;
- char *buf, *tmp;
+ char *buf, *tmp, *tmp2;
const char *topic;
gc = gaim_conversation_get_gc(conv);
@@ -998,8 +998,10 @@ static GaimCmdRet silcgaim_cmd_chat_topi
topic = gaim_conv_chat_get_topic (GAIM_CONV_CHAT(conv));
if (topic) {
tmp = gaim_escape_html(topic);
- buf = g_strdup_printf(_("current topic is: %s"), tmp);
+ tmp2 = gaim_markup_linkify(tmp);
+ buf = g_strdup_printf(_("current topic is: %s"), tmp2);
g_free(tmp);
+ g_free(tmp2);
} else
buf = g_strdup(_("No topic is set"));
gaim_conv_chat_write(GAIM_CONV_CHAT(conv), gc->account->username, buf,