src/protocols/irc/msgs.c

Tue, 17 Feb 2004 02:17:48 +0000

author
Scott Lamb
date
Tue, 17 Feb 2004 02:17:48 +0000
changeset 8273
7882af5843e9
parent 8256
3f3063796999
child 8504
dc3608dae7ee
permissions
-rw-r--r--

[gaim-migrate @ 8997]
This is Scott Lamb's eventloop abstraction patch. If it breaks things,
Scott Lamb will be glad to take the punishment. If it doesn't, it should
make integration into other event loops easier. Well, no, not easier,
harder actually, but it'll be done more appropriately and less hackily..
er, hacky. Is hackily a word?

committer: Christian Hammond <chipx86@chipx86.com>

6333
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
1 /**
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
2 * @file msgs.c
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
3 *
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
4 * gaim
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
5 *
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
6 * Copyright (C) 2003, Ethan Blanton <eblanton@cs.purdue.edu>
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
7 *
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
8 * This program is free software; you can redistribute it and/or modify
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
9 * it under the terms of the GNU General Public License as published by
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
10 * the Free Software Foundation; either version 2 of the License, or
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
11 * (at your option) any later version.
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
12 *
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
13 * This program is distributed in the hope that it will be useful,
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
14 * but WITHOUT ANY WARRANTY; without even the implied warranty of
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
16 * GNU General Public License for more details.
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
17 *
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
18 * You should have received a copy of the GNU General Public License
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
19 * along with this program; if not, write to the Free Software
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
20 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
21 */
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
22
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
23 #include "internal.h"
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
24
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
25 #include "conversation.h"
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
26 #include "blist.h"
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
27 #include "notify.h"
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
28 #include "util.h"
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
29 #include "debug.h"
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
30 #include "irc.h"
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
31
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
32 #include <stdio.h>
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
33
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
34 static char *irc_mask_nick(const char *mask);
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
35 static char *irc_mask_userhost(const char *mask);
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
36 static void irc_chat_remove_buddy(GaimConversation *convo, char *data[2]);
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
37 static void irc_buddy_status(char *name, struct irc_buddy *ib, struct irc_conn *irc);
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
38
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
39 static char *irc_mask_nick(const char *mask)
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
40 {
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
41 char *end, *buf;
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
42
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
43 end = strchr(mask, '!');
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
44 if (!end)
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
45 buf = g_strdup(mask);
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
46 else
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
47 buf = g_strndup(mask, end - mask);
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
48
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
49 return buf;
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
50 }
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
51
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
52 static char *irc_mask_userhost(const char *mask)
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
53 {
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
54 return g_strdup(strchr(mask, '!') + 1);
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
55 }
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
56
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
57 static void irc_chat_remove_buddy(GaimConversation *convo, char *data[2])
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
58 {
7118
280b3b85a28a [gaim-migrate @ 7685]
Christian Hammond <chipx86@chipx86.com>
parents: 7108
diff changeset
59 GList *users = gaim_conv_chat_get_users(GAIM_CONV_CHAT(convo));
6333
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
60 char *message = g_strdup_printf("quit: %s", data[1]);
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
61
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
62 if (g_list_find_custom(users, data[0], (GCompareFunc)(strcmp)))
7118
280b3b85a28a [gaim-migrate @ 7685]
Christian Hammond <chipx86@chipx86.com>
parents: 7108
diff changeset
63 gaim_conv_chat_remove_user(GAIM_CONV_CHAT(convo), data[0], message);
6333
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
64
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
65 g_free(message);
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
66 }
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
67
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
68 void irc_msg_default(struct irc_conn *irc, const char *name, const char *from, char **args)
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
69 {
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
70 gaim_debug(GAIM_DEBUG_INFO, "irc", "Unrecognized message: %s\n", args[0]);
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
71 }
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
72
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
73 void irc_msg_away(struct irc_conn *irc, const char *name, const char *from, char **args)
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
74 {
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
75 GaimConnection *gc;
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
76
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
77 if (!args || !args[1])
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
78 return;
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
79
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
80 if (irc->whois.nick && !gaim_utf8_strcasecmp(irc->whois.nick, args[1])) {
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
81 /* We're doing a whois, show this in the whois dialog */
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
82 irc_msg_whois(irc, name, from, args);
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
83 return;
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
84 }
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
85
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
86 gc = gaim_account_get_connection(irc->account);
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
87 if (gc)
7118
280b3b85a28a [gaim-migrate @ 7685]
Christian Hammond <chipx86@chipx86.com>
parents: 7108
diff changeset
88 serv_got_im(gc, args[1], args[2], GAIM_CONV_IM_AUTO_RESP, time(NULL));
6333
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
89 }
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
90
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
91 void irc_msg_badmode(struct irc_conn *irc, const char *name, const char *from, char **args)
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
92 {
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
93 GaimConnection *gc = gaim_account_get_connection(irc->account);
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
94
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
95 if (!args || !args[1] || !gc)
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
96 return;
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
97
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
98 gaim_notify_error(gc, NULL, _("Bad mode"), args[1]);
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
99 }
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
100
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
101 void irc_msg_banned(struct irc_conn *irc, const char *name, const char *from, char **args)
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
102 {
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
103 GaimConnection *gc = gaim_account_get_connection(irc->account);
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
104 char *buf;
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
105
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
106 if (!args || !args[1] || !gc)
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
107 return;
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
108
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
109 buf = g_strdup_printf(_("You are banned from %s."), args[1]);
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
110 gaim_notify_error(gc, _("Banned"), _("Banned"), buf);
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
111 g_free(buf);
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
112 }
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
113
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
114 void irc_msg_chanmode(struct irc_conn *irc, const char *name, const char *from, char **args)
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
115 {
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
116 GaimConversation *convo;
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
117 char *buf;
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
118
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
119 if (!args || !args[1] || !args[2])
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
120 return;
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
121
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
122 convo = gaim_find_conversation_with_account(args[1], irc->account);
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
123 if (!convo) /* XXX punt on channels we are not in for now */
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
124 return;
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
125
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
126 buf = g_strdup_printf("mode for %s: %s %s", args[1], args[2], args[3] ? args[3] : "");
7118
280b3b85a28a [gaim-migrate @ 7685]
Christian Hammond <chipx86@chipx86.com>
parents: 7108
diff changeset
127 gaim_conv_chat_write(GAIM_CONV_CHAT(convo), "", buf, GAIM_MESSAGE_SYSTEM|GAIM_MESSAGE_NO_LOG, time(NULL));
6333
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
128 g_free(buf);
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
129
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
130 return;
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
131 }
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
132
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
133 void irc_msg_whois(struct irc_conn *irc, const char *name, const char *from, char **args)
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
134 {
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
135 if (!irc->whois.nick) {
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
136 gaim_debug(GAIM_DEBUG_WARNING, "irc", "Unexpected WHOIS reply for %s\n", args[1]);
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
137 return;
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
138 }
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
139
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
140 if (gaim_utf8_strcasecmp(irc->whois.nick, args[1])) {
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
141 gaim_debug(GAIM_DEBUG_WARNING, "irc", "Got WHOIS reply for %s while waiting for %s\n", args[1], irc->whois.nick);
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
142 return;
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
143 }
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
144
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
145 if (!strcmp(name, "301")) {
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
146 irc->whois.away = g_strdup(args[2]);
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
147 } else if (!strcmp(name, "311")) {
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
148 irc->whois.userhost = g_strdup_printf("%s@%s", args[2], args[3]);
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
149 irc->whois.name = g_strdup(args[5]);
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
150 } else if (!strcmp(name, "312")) {
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
151 irc->whois.server = g_strdup(args[2]);
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
152 irc->whois.serverinfo = g_strdup(args[3]);
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
153 } else if (!strcmp(name, "313")) {
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
154 irc->whois.ircop = 1;
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
155 } else if (!strcmp(name, "317")) {
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
156 irc->whois.idle = atoi(args[2]);
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
157 if (args[3])
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
158 irc->whois.signon = (time_t)atoi(args[3]);
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
159 } else if (!strcmp(name, "319")) {
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
160 irc->whois.channels = g_strdup(args[2]);
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
161 } else if (!strcmp(name, "320")) {
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
162 irc->whois.identified = 1;
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
163 }
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
164 }
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
165
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
166 void irc_msg_endwhois(struct irc_conn *irc, const char *name, const char *from, char **args)
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
167 {
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
168 GaimConnection *gc;
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
169 GString *info;
7062
26abb8b189ce [gaim-migrate @ 7626]
Christian Hammond <chipx86@chipx86.com>
parents: 6982
diff changeset
170 char buffer[256];
6333
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
171 char *str;
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
172
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
173 if (!irc->whois.nick) {
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
174 gaim_debug(GAIM_DEBUG_WARNING, "irc", "Unexpected End of WHOIS for %s\n", args[1]);
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
175 return;
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
176 }
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
177 if (gaim_utf8_strcasecmp(irc->whois.nick, args[1])) {
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
178 gaim_debug(GAIM_DEBUG_WARNING, "irc", "Received end of WHOIS for %s, expecting %s\n", args[1], irc->whois.nick);
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
179 return;
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
180 }
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
181
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
182 info = g_string_new("");
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
183 g_string_append_printf(info, "<b>%s:</b> %s%s%s<br>", _("Nick"), args[1],
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
184 irc->whois.ircop ? _(" <i>(ircop)</i>") : "",
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
185 irc->whois.identified ? _(" <i>(identified)</i>") : "");
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
186 if (irc->whois.away) {
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
187 g_string_append_printf(info, "<b>%s:</b> %s<br>", _("Away"), irc->whois.away);
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
188 g_free(irc->whois.away);
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
189 }
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
190 if (irc->whois.userhost) {
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
191 g_string_append_printf(info, "<b>%s:</b> %s<br>", _("Username"), irc->whois.userhost);
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
192 g_string_append_printf(info, "<b>%s:</b> %s<br>", _("Realname"), irc->whois.name);
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
193 g_free(irc->whois.userhost);
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
194 g_free(irc->whois.name);
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
195 }
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
196 if (irc->whois.server) {
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
197 g_string_append_printf(info, "<b>%s:</b> %s (%s)<br>", _("Server"), irc->whois.server, irc->whois.serverinfo);
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
198 g_free(irc->whois.server);
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
199 g_free(irc->whois.serverinfo);
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
200 }
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
201 if (irc->whois.channels) {
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
202 g_string_append_printf(info, "<b>%s:</b> %s<br>", _("Currently on"), irc->whois.channels);
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
203 g_free(irc->whois.channels);
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
204 }
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
205 if (irc->whois.idle) {
7108
82655fa54acb [gaim-migrate @ 7673]
Christian Hammond <chipx86@chipx86.com>
parents: 7062
diff changeset
206 gchar *timex = gaim_str_seconds_to_string(irc->whois.idle);
6357
f83643b0a067 [gaim-migrate @ 6856]
Mark Doliner <markdoliner@pidgin.im>
parents: 6351
diff changeset
207 g_string_append_printf(info, _("<b>Idle for:</b> %s<br>"), timex);
f83643b0a067 [gaim-migrate @ 6856]
Mark Doliner <markdoliner@pidgin.im>
parents: 6351
diff changeset
208 g_free(timex);
6333
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
209 g_string_append_printf(info, "<b>%s:</b> %s", _("Online since"), ctime(&irc->whois.signon));
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
210 }
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
211 if (!strcmp(irc->whois.nick, "Paco-Paco")) {
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
212 g_string_append_printf(info, _("<br><b>Defining adjective:</b> Glorious<br>"));
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
213 }
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
214
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
215 gc = gaim_account_get_connection(irc->account);
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
216 str = g_string_free(info, FALSE);
7062
26abb8b189ce [gaim-migrate @ 7626]
Christian Hammond <chipx86@chipx86.com>
parents: 6982
diff changeset
217
26abb8b189ce [gaim-migrate @ 7626]
Christian Hammond <chipx86@chipx86.com>
parents: 6982
diff changeset
218 g_snprintf(buffer, sizeof(buffer),
26abb8b189ce [gaim-migrate @ 7626]
Christian Hammond <chipx86@chipx86.com>
parents: 6982
diff changeset
219 _("Buddy Information for %s"), irc->whois.nick);
26abb8b189ce [gaim-migrate @ 7626]
Christian Hammond <chipx86@chipx86.com>
parents: 6982
diff changeset
220 gaim_notify_formatted(gc, NULL, buffer, NULL, str, NULL, NULL);
26abb8b189ce [gaim-migrate @ 7626]
Christian Hammond <chipx86@chipx86.com>
parents: 6982
diff changeset
221
6333
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
222 g_free(str);
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
223 memset(&irc->whois, 0, sizeof(irc->whois));
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
224 }
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
225
8114
201c03cf6c5f [gaim-migrate @ 8818]
Tim Ringenbach <marv@pidgin.im>
parents: 7877
diff changeset
226 void irc_msg_list(struct irc_conn *irc, const char *name, const char *from, char **args)
201c03cf6c5f [gaim-migrate @ 8818]
Tim Ringenbach <marv@pidgin.im>
parents: 7877
diff changeset
227 {
201c03cf6c5f [gaim-migrate @ 8818]
Tim Ringenbach <marv@pidgin.im>
parents: 7877
diff changeset
228 if (!irc->roomlist)
201c03cf6c5f [gaim-migrate @ 8818]
Tim Ringenbach <marv@pidgin.im>
parents: 7877
diff changeset
229 return;
201c03cf6c5f [gaim-migrate @ 8818]
Tim Ringenbach <marv@pidgin.im>
parents: 7877
diff changeset
230
201c03cf6c5f [gaim-migrate @ 8818]
Tim Ringenbach <marv@pidgin.im>
parents: 7877
diff changeset
231 if (!strcmp(name, "321")) {
201c03cf6c5f [gaim-migrate @ 8818]
Tim Ringenbach <marv@pidgin.im>
parents: 7877
diff changeset
232 gaim_roomlist_set_in_progress(irc->roomlist, TRUE);
201c03cf6c5f [gaim-migrate @ 8818]
Tim Ringenbach <marv@pidgin.im>
parents: 7877
diff changeset
233 return;
201c03cf6c5f [gaim-migrate @ 8818]
Tim Ringenbach <marv@pidgin.im>
parents: 7877
diff changeset
234 }
201c03cf6c5f [gaim-migrate @ 8818]
Tim Ringenbach <marv@pidgin.im>
parents: 7877
diff changeset
235
201c03cf6c5f [gaim-migrate @ 8818]
Tim Ringenbach <marv@pidgin.im>
parents: 7877
diff changeset
236 if (!strcmp(name, "323")) {
201c03cf6c5f [gaim-migrate @ 8818]
Tim Ringenbach <marv@pidgin.im>
parents: 7877
diff changeset
237 gaim_roomlist_set_in_progress(irc->roomlist, FALSE);
201c03cf6c5f [gaim-migrate @ 8818]
Tim Ringenbach <marv@pidgin.im>
parents: 7877
diff changeset
238 gaim_roomlist_unref(irc->roomlist);
201c03cf6c5f [gaim-migrate @ 8818]
Tim Ringenbach <marv@pidgin.im>
parents: 7877
diff changeset
239 irc->roomlist = NULL;
201c03cf6c5f [gaim-migrate @ 8818]
Tim Ringenbach <marv@pidgin.im>
parents: 7877
diff changeset
240 }
201c03cf6c5f [gaim-migrate @ 8818]
Tim Ringenbach <marv@pidgin.im>
parents: 7877
diff changeset
241
201c03cf6c5f [gaim-migrate @ 8818]
Tim Ringenbach <marv@pidgin.im>
parents: 7877
diff changeset
242 if (!strcmp(name, "322")) {
201c03cf6c5f [gaim-migrate @ 8818]
Tim Ringenbach <marv@pidgin.im>
parents: 7877
diff changeset
243 GaimRoomlistRoom *room;
201c03cf6c5f [gaim-migrate @ 8818]
Tim Ringenbach <marv@pidgin.im>
parents: 7877
diff changeset
244
201c03cf6c5f [gaim-migrate @ 8818]
Tim Ringenbach <marv@pidgin.im>
parents: 7877
diff changeset
245 if (!args[0] || !args[1] || !args[2] || !args[3])
201c03cf6c5f [gaim-migrate @ 8818]
Tim Ringenbach <marv@pidgin.im>
parents: 7877
diff changeset
246 return;
201c03cf6c5f [gaim-migrate @ 8818]
Tim Ringenbach <marv@pidgin.im>
parents: 7877
diff changeset
247
201c03cf6c5f [gaim-migrate @ 8818]
Tim Ringenbach <marv@pidgin.im>
parents: 7877
diff changeset
248 room = gaim_roomlist_room_new(GAIM_ROOMLIST_ROOMTYPE_ROOM, args[1], NULL);
201c03cf6c5f [gaim-migrate @ 8818]
Tim Ringenbach <marv@pidgin.im>
parents: 7877
diff changeset
249 gaim_roomlist_room_add_field(irc->roomlist, room, args[1]);
201c03cf6c5f [gaim-migrate @ 8818]
Tim Ringenbach <marv@pidgin.im>
parents: 7877
diff changeset
250 gaim_roomlist_room_add_field(irc->roomlist, room, GINT_TO_POINTER(strtol(args[2], NULL, 10)));
201c03cf6c5f [gaim-migrate @ 8818]
Tim Ringenbach <marv@pidgin.im>
parents: 7877
diff changeset
251 gaim_roomlist_room_add_field(irc->roomlist, room, args[3]);
201c03cf6c5f [gaim-migrate @ 8818]
Tim Ringenbach <marv@pidgin.im>
parents: 7877
diff changeset
252 gaim_roomlist_room_add(irc->roomlist, room);
201c03cf6c5f [gaim-migrate @ 8818]
Tim Ringenbach <marv@pidgin.im>
parents: 7877
diff changeset
253 }
201c03cf6c5f [gaim-migrate @ 8818]
Tim Ringenbach <marv@pidgin.im>
parents: 7877
diff changeset
254 }
201c03cf6c5f [gaim-migrate @ 8818]
Tim Ringenbach <marv@pidgin.im>
parents: 7877
diff changeset
255
6333
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
256 void irc_msg_topic(struct irc_conn *irc, const char *name, const char *from, char **args)
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
257 {
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
258 char *chan, *topic, *msg, *nick;
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
259 GaimConversation *convo;
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
260
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
261 if (!strcmp(name, "topic")) {
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
262 chan = args[0];
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
263 topic = args[1];
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
264 } else {
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
265 chan = args[1];
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
266 topic = args[2];
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
267 }
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
268
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
269 convo = gaim_find_conversation_with_account(chan, irc->account);
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
270 if (!convo) {
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
271 gaim_debug(GAIM_DEBUG_ERROR, "irc", "Got a topic for %s, which doesn't exist\n", chan);
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
272 }
7118
280b3b85a28a [gaim-migrate @ 7685]
Christian Hammond <chipx86@chipx86.com>
parents: 7108
diff changeset
273 gaim_conv_chat_set_topic(GAIM_CONV_CHAT(convo), NULL, topic);
6333
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
274 /* If this is an interactive update, print it out */
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
275 if (!strcmp(name, "topic")) {
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
276 nick = irc_mask_nick(from);
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
277 msg = g_strdup_printf(_("%s has changed the topic to: %s"), nick, topic);
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
278 g_free(nick);
7118
280b3b85a28a [gaim-migrate @ 7685]
Christian Hammond <chipx86@chipx86.com>
parents: 7108
diff changeset
279 gaim_conv_chat_write(GAIM_CONV_CHAT(convo), from, msg, GAIM_MESSAGE_SYSTEM, time(NULL));
6333
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
280 g_free(msg);
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
281 } else {
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
282 msg = g_strdup_printf(_("The topic for %s is: %s"), chan, topic);
7118
280b3b85a28a [gaim-migrate @ 7685]
Christian Hammond <chipx86@chipx86.com>
parents: 7108
diff changeset
283 gaim_conv_chat_write(GAIM_CONV_CHAT(convo), "", msg, GAIM_MESSAGE_SYSTEM, time(NULL));
6333
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
284 g_free(msg);
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
285 }
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
286 }
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
287
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
288 void irc_msg_unknown(struct irc_conn *irc, const char *name, const char *from, char **args)
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
289 {
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
290 GaimConnection *gc = gaim_account_get_connection(irc->account);
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
291 char *buf;
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
292
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
293 if (!args || !args[1] || !gc)
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
294 return;
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
295
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
296 buf = g_strdup_printf(_("Unknown message '%s'"), args[1]);
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
297 gaim_notify_error(gc, _("Unknown message"), buf, _("Gaim has sent a message the IRC server did not understand."));
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
298 g_free(buf);
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
299 }
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
300
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
301 void irc_msg_names(struct irc_conn *irc, const char *name, const char *from, char **args)
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
302 {
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
303 char *names, *cur, *end, *tmp, *msg;
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
304 GaimConversation *convo;
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
305
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
306 if (!strcmp(name, "366")) {
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
307 convo = gaim_find_conversation_with_account(irc->nameconv ? irc->nameconv : args[1], irc->account);
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
308 if (!convo) {
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
309 gaim_debug(GAIM_DEBUG_ERROR, "irc", "Got a NAMES list for %s, which doesn't exist\n", args[2]);
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
310 g_string_free(irc->names, TRUE);
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
311 irc->names = NULL;
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
312 g_free(irc->nameconv);
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
313 irc->nameconv = NULL;
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
314 return;
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
315 }
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
316
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
317 names = cur = g_string_free(irc->names, FALSE);
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
318 irc->names = NULL;
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
319 if (irc->nameconv) {
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
320 msg = g_strdup_printf("Users on %s: %s", args[1], names);
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
321 if (gaim_conversation_get_type(convo) == GAIM_CONV_CHAT)
7118
280b3b85a28a [gaim-migrate @ 7685]
Christian Hammond <chipx86@chipx86.com>
parents: 7108
diff changeset
322 gaim_conv_chat_write(GAIM_CONV_CHAT(convo), "", msg, GAIM_MESSAGE_SYSTEM|GAIM_MESSAGE_NO_LOG, time(NULL));
6333
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
323 else
7118
280b3b85a28a [gaim-migrate @ 7685]
Christian Hammond <chipx86@chipx86.com>
parents: 7108
diff changeset
324 gaim_conv_im_write(GAIM_CONV_IM(convo), "", msg, GAIM_MESSAGE_SYSTEM|GAIM_MESSAGE_NO_LOG, time(NULL));
6333
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
325 g_free(msg);
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
326 g_free(irc->nameconv);
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
327 irc->nameconv = NULL;
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
328 } else {
6407
d67b6a6ba7d2 [gaim-migrate @ 6913]
Christian Hammond <chipx86@chipx86.com>
parents: 6357
diff changeset
329 GList *users = NULL;
d67b6a6ba7d2 [gaim-migrate @ 6913]
Christian Hammond <chipx86@chipx86.com>
parents: 6357
diff changeset
330
6333
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
331 while (*cur) {
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
332 end = strchr(cur, ' ');
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
333 if (!end)
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
334 end = cur + strlen(cur);
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
335 if (*cur == '@' || *cur == '%' || *cur == '+')
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
336 cur++;
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
337 tmp = g_strndup(cur, end - cur);
6407
d67b6a6ba7d2 [gaim-migrate @ 6913]
Christian Hammond <chipx86@chipx86.com>
parents: 6357
diff changeset
338 users = g_list_append(users, tmp);
6333
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
339 cur = end;
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
340 if (*cur)
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
341 cur++;
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
342 }
6407
d67b6a6ba7d2 [gaim-migrate @ 6913]
Christian Hammond <chipx86@chipx86.com>
parents: 6357
diff changeset
343
d67b6a6ba7d2 [gaim-migrate @ 6913]
Christian Hammond <chipx86@chipx86.com>
parents: 6357
diff changeset
344 if (users != NULL) {
d67b6a6ba7d2 [gaim-migrate @ 6913]
Christian Hammond <chipx86@chipx86.com>
parents: 6357
diff changeset
345 GList *l;
d67b6a6ba7d2 [gaim-migrate @ 6913]
Christian Hammond <chipx86@chipx86.com>
parents: 6357
diff changeset
346
7118
280b3b85a28a [gaim-migrate @ 7685]
Christian Hammond <chipx86@chipx86.com>
parents: 7108
diff changeset
347 gaim_conv_chat_add_users(GAIM_CONV_CHAT(convo), users);
6407
d67b6a6ba7d2 [gaim-migrate @ 6913]
Christian Hammond <chipx86@chipx86.com>
parents: 6357
diff changeset
348
d67b6a6ba7d2 [gaim-migrate @ 6913]
Christian Hammond <chipx86@chipx86.com>
parents: 6357
diff changeset
349 for (l = users; l != NULL; l = l->next)
d67b6a6ba7d2 [gaim-migrate @ 6913]
Christian Hammond <chipx86@chipx86.com>
parents: 6357
diff changeset
350 g_free(l->data);
d67b6a6ba7d2 [gaim-migrate @ 6913]
Christian Hammond <chipx86@chipx86.com>
parents: 6357
diff changeset
351
d67b6a6ba7d2 [gaim-migrate @ 6913]
Christian Hammond <chipx86@chipx86.com>
parents: 6357
diff changeset
352 g_list_free(users);
d67b6a6ba7d2 [gaim-migrate @ 6913]
Christian Hammond <chipx86@chipx86.com>
parents: 6357
diff changeset
353 }
6333
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
354 }
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
355 g_free(names);
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
356 } else {
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
357 if (!irc->names)
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
358 irc->names = g_string_new("");
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
359
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
360 irc->names = g_string_append(irc->names, args[3]);
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
361 }
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
362 }
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
363
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
364 void irc_msg_motd(struct irc_conn *irc, const char *name, const char *from, char **args)
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
365 {
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
366 GaimConnection *gc;
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
367 if (!strcmp(name, "375")) {
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
368 gc = gaim_account_get_connection(irc->account);
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
369 if (gc)
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
370 gaim_connection_set_display_name(gc, args[0]);
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
371 }
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
372
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
373 if (!irc->motd)
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
374 irc->motd = g_string_new("");
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
375
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
376 g_string_append_printf(irc->motd, "%s<br>", args[1]);
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
377 }
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
378
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
379 void irc_msg_endmotd(struct irc_conn *irc, const char *name, const char *from, char **args)
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
380 {
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
381 GaimConnection *gc;
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
382
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
383 gc = gaim_account_get_connection(irc->account);
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
384 if (!gc)
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
385 return;
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
386
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
387 gaim_connection_set_state(gc, GAIM_CONNECTED);
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
388
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
389 irc_blist_timeout(irc);
8273
7882af5843e9 [gaim-migrate @ 8997]
Scott Lamb
parents: 8256
diff changeset
390 irc->timer = gaim_timeout_add(45000, (GSourceFunc)irc_blist_timeout, (gpointer)irc);
6333
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
391 }
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
392
7877
e523a7081aaf [gaim-migrate @ 8531]
Ethan Blanton <elb@pidgin.im>
parents: 7118
diff changeset
393 void irc_msg_nochan(struct irc_conn *irc, const char *name, const char *from, char **args)
e523a7081aaf [gaim-migrate @ 8531]
Ethan Blanton <elb@pidgin.im>
parents: 7118
diff changeset
394 {
e523a7081aaf [gaim-migrate @ 8531]
Ethan Blanton <elb@pidgin.im>
parents: 7118
diff changeset
395 GaimConnection *gc = gaim_account_get_connection(irc->account);
e523a7081aaf [gaim-migrate @ 8531]
Ethan Blanton <elb@pidgin.im>
parents: 7118
diff changeset
396
e523a7081aaf [gaim-migrate @ 8531]
Ethan Blanton <elb@pidgin.im>
parents: 7118
diff changeset
397 if (gc == NULL || args == NULL || args[1] == NULL)
e523a7081aaf [gaim-migrate @ 8531]
Ethan Blanton <elb@pidgin.im>
parents: 7118
diff changeset
398 return;
e523a7081aaf [gaim-migrate @ 8531]
Ethan Blanton <elb@pidgin.im>
parents: 7118
diff changeset
399
e523a7081aaf [gaim-migrate @ 8531]
Ethan Blanton <elb@pidgin.im>
parents: 7118
diff changeset
400 gaim_notify_error(gc, NULL, _("No such channel"), args[1]);
e523a7081aaf [gaim-migrate @ 8531]
Ethan Blanton <elb@pidgin.im>
parents: 7118
diff changeset
401 }
e523a7081aaf [gaim-migrate @ 8531]
Ethan Blanton <elb@pidgin.im>
parents: 7118
diff changeset
402
6333
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
403 void irc_msg_nonick(struct irc_conn *irc, const char *name, const char *from, char **args)
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
404 {
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
405 GaimConnection *gc;
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
406 GaimConversation *convo;
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
407
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
408 convo = gaim_find_conversation_with_account(args[1], irc->account);
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
409 if (convo) {
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
410 if (gaim_conversation_get_type(convo) == GAIM_CONV_CHAT) /* does this happen? */
7118
280b3b85a28a [gaim-migrate @ 7685]
Christian Hammond <chipx86@chipx86.com>
parents: 7108
diff changeset
411 gaim_conv_chat_write(GAIM_CONV_CHAT(convo), args[1], _("no such channel"),
6621
2a18ef3e5224 [gaim-migrate @ 7145]
Robert McQueen <robot101@debian.org>
parents: 6407
diff changeset
412 GAIM_MESSAGE_SYSTEM|GAIM_MESSAGE_NO_LOG, time(NULL));
6333
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
413 else
7118
280b3b85a28a [gaim-migrate @ 7685]
Christian Hammond <chipx86@chipx86.com>
parents: 7108
diff changeset
414 gaim_conv_im_write(GAIM_CONV_IM(convo), args[1], _("User is not logged in"),
6621
2a18ef3e5224 [gaim-migrate @ 7145]
Robert McQueen <robot101@debian.org>
parents: 6407
diff changeset
415 GAIM_MESSAGE_SYSTEM|GAIM_MESSAGE_NO_LOG, time(NULL));
6333
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
416 } else {
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
417 if ((gc = gaim_account_get_connection(irc->account)) == NULL)
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
418 return;
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
419 gaim_notify_error(gc, NULL, _("No such nick or channel"), args[1]);
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
420 }
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
421
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
422 if (irc->whois.nick && !gaim_utf8_strcasecmp(irc->whois.nick, args[1])) {
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
423 g_free(irc->whois.nick);
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
424 irc->whois.nick = NULL;
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
425 }
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
426 }
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
427
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
428 void irc_msg_nosend(struct irc_conn *irc, const char *name, const char *from, char **args)
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
429 {
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
430 GaimConnection *gc;
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
431 GaimConversation *convo;
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
432
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
433 convo = gaim_find_conversation_with_account(args[1], irc->account);
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
434 if (convo) {
7118
280b3b85a28a [gaim-migrate @ 7685]
Christian Hammond <chipx86@chipx86.com>
parents: 7108
diff changeset
435 gaim_conv_chat_write(GAIM_CONV_CHAT(convo), args[1], args[2], GAIM_MESSAGE_SYSTEM|GAIM_MESSAGE_NO_LOG, time(NULL));
6333
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
436 } else {
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
437 if ((gc = gaim_account_get_connection(irc->account)) == NULL)
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
438 return;
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
439 gaim_notify_error(gc, NULL, _("Could not send"), args[2]);
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
440 }
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
441 }
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
442
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
443 void irc_msg_notinchan(struct irc_conn *irc, const char *name, const char *from, char **args)
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
444 {
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
445 GaimConversation *convo = gaim_find_conversation_with_account(args[1], irc->account);
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
446
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
447 gaim_debug(GAIM_DEBUG_INFO, "irc", "We're apparently not in %s, but tried to use it\n", args[1]);
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
448 if (convo) {
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
449 /*g_slist_remove(irc->gc->buddy_chats, convo);
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
450 gaim_conversation_set_account(convo, NULL);*/
7118
280b3b85a28a [gaim-migrate @ 7685]
Christian Hammond <chipx86@chipx86.com>
parents: 7108
diff changeset
451 gaim_conv_chat_write(GAIM_CONV_CHAT(convo), args[1], args[2], GAIM_MESSAGE_SYSTEM|GAIM_MESSAGE_NO_LOG, time(NULL));
6333
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
452 }
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
453 }
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
454
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
455 void irc_msg_notop(struct irc_conn *irc, const char *name, const char *from, char **args)
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
456 {
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
457 GaimConversation *convo;
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
458
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
459 if (!args || !args[1] || !args[2])
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
460 return;
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
461
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
462 convo = gaim_find_conversation_with_account(args[1], irc->account);
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
463 if (!convo)
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
464 return;
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
465
7118
280b3b85a28a [gaim-migrate @ 7685]
Christian Hammond <chipx86@chipx86.com>
parents: 7108
diff changeset
466 gaim_conv_chat_write(GAIM_CONV_CHAT(convo), "", args[2], GAIM_MESSAGE_SYSTEM, time(NULL));
6333
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
467 }
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
468
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
469 void irc_msg_invite(struct irc_conn *irc, const char *name, const char *from, char **args)
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
470 {
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
471 GaimConnection *gc = gaim_account_get_connection(irc->account);
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
472 GHashTable *components = g_hash_table_new_full(g_str_hash, g_str_equal, g_free, g_free);
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
473 char *nick = irc_mask_nick(from);
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
474
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
475 if (!args || !args[1] || !gc) {
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
476 g_free(nick);
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
477 g_hash_table_destroy(components);
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
478 return;
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
479 }
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
480
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
481 g_hash_table_insert(components, strdup("channel"), strdup(args[1]));
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
482
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
483 serv_got_chat_invite(gc, args[1], nick, NULL, components);
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
484 g_free(nick);
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
485 }
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
486
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
487 void irc_msg_inviteonly(struct irc_conn *irc, const char *name, const char *from, char **args)
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
488 {
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
489 GaimConnection *gc = gaim_account_get_connection(irc->account);
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
490 char *buf;
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
491
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
492 if (!args || !args[1] || !gc)
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
493 return;
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
494
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
495 buf = g_strdup_printf(_("Joining %s requires an invitation."), args[1]);
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
496 gaim_notify_error(gc, _("Invitation only"), _("Invitation only"), buf);
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
497 g_free(buf);
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
498 }
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
499
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
500 void irc_msg_ison(struct irc_conn *irc, const char *name, const char *from, char **args)
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
501 {
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
502 char **nicks;
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
503 struct irc_buddy *ib;
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
504 int i;
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
505
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
506 if (!args || !args[1])
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
507 return;
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
508
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
509 nicks = g_strsplit(args[1], " ", -1);
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
510
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
511 for (i = 0; nicks[i]; i++) {
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
512 if ((ib = g_hash_table_lookup(irc->buddies, (gconstpointer)nicks[i])) == NULL) {
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
513 continue;
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
514 }
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
515 ib->flag = TRUE;
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
516 }
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
517
6350
22dfc953f2fb [gaim-migrate @ 6849]
Ethan Blanton <elb@pidgin.im>
parents: 6333
diff changeset
518 g_strfreev(nicks);
22dfc953f2fb [gaim-migrate @ 6849]
Ethan Blanton <elb@pidgin.im>
parents: 6333
diff changeset
519
6333
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
520 g_hash_table_foreach(irc->buddies, (GHFunc)irc_buddy_status, (gpointer)irc);
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
521 }
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
522
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
523 static void irc_buddy_status(char *name, struct irc_buddy *ib, struct irc_conn *irc)
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
524 {
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
525 GaimConnection *gc = gaim_account_get_connection(irc->account);
6695
2a63688f0d6d [gaim-migrate @ 7221]
Nathan Walp <nwalp@pidgin.im>
parents: 6622
diff changeset
526 GaimBuddy *buddy = gaim_find_buddy(irc->account, name);
6333
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
527
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
528 if (!gc || !buddy)
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
529 return;
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
530
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
531 if (ib->online && !ib->flag) {
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
532 serv_got_update(gc, buddy->name, 0, 0, 0, 0, 0);
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
533 ib->online = FALSE;
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
534 }
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
535
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
536 if (!ib->online && ib->flag) {
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
537 serv_got_update(gc, buddy->name, 1, 0, 0, 0, 0);
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
538 ib->online = TRUE;
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
539 }
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
540 }
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
541
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
542 void irc_msg_join(struct irc_conn *irc, const char *name, const char *from, char **args)
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
543 {
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
544 GaimConnection *gc = gaim_account_get_connection(irc->account);
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
545 GaimConversation *convo;
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
546 char *nick = irc_mask_nick(from), *userhost;
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
547 static int id = 1;
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
548
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
549 if (!gc) {
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
550 g_free(nick);
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
551 return;
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
552 }
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
553
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
554 if (!gaim_utf8_strcasecmp(nick, gaim_connection_get_display_name(gc))) {
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
555 /* We are joining a channel for the first time */
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
556 serv_got_joined_chat(gc, id++, args[0]);
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
557 g_free(nick);
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
558 return;
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
559 }
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
560
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
561 convo = gaim_find_conversation_with_account(args[0], irc->account);
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
562 if (convo == NULL) {
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
563 gaim_debug(GAIM_DEBUG_ERROR, "irc", "JOIN for %s failed\n", args[0]);
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
564 g_free(nick);
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
565 return;
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
566 }
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
567
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
568 userhost = irc_mask_userhost(from);
7118
280b3b85a28a [gaim-migrate @ 7685]
Christian Hammond <chipx86@chipx86.com>
parents: 7108
diff changeset
569 gaim_conv_chat_add_user(GAIM_CONV_CHAT(convo), nick, userhost);
6333
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
570 g_free(userhost);
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
571 g_free(nick);
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
572 }
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
573
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
574 void irc_msg_kick(struct irc_conn *irc, const char *name, const char *from, char **args)
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
575 {
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
576 GaimConnection *gc = gaim_account_get_connection(irc->account);
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
577 GaimConversation *convo = gaim_find_conversation_with_account(args[0], irc->account);
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
578 char *nick = irc_mask_nick(from), *buf;
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
579
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
580 if (!gc) {
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
581 g_free(nick);
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
582 return;
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
583 }
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
584
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
585 if (!convo) {
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
586 gaim_debug(GAIM_DEBUG_ERROR, "irc", "Recieved a KICK for unknown channel %s\n", args[0]);
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
587 g_free(nick);
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
588 return;
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
589 }
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
590
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
591 if (!gaim_utf8_strcasecmp(gaim_connection_get_display_name(gc), args[1])) {
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
592 buf = g_strdup_printf(_("You have been kicked by %s: (%s)"), nick, args[2]);
7118
280b3b85a28a [gaim-migrate @ 7685]
Christian Hammond <chipx86@chipx86.com>
parents: 7108
diff changeset
593 gaim_conv_chat_write(GAIM_CONV_CHAT(convo), args[0], buf, GAIM_MESSAGE_SYSTEM, time(NULL));
6333
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
594 g_free(buf);
8256
3f3063796999 [gaim-migrate @ 8979]
Tim Ringenbach <marv@pidgin.im>
parents: 8186
diff changeset
595 serv_got_chat_left(gc, gaim_conv_chat_get_id(GAIM_CONV_CHAT(convo)));
6333
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
596 } else {
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
597 buf = g_strdup_printf(_("Kicked by %s (%s)"), nick, args[2]);
7118
280b3b85a28a [gaim-migrate @ 7685]
Christian Hammond <chipx86@chipx86.com>
parents: 7108
diff changeset
598 gaim_conv_chat_remove_user(GAIM_CONV_CHAT(convo), args[1], buf);
6333
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
599 g_free(buf);
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
600 }
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
601
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
602 g_free(nick);
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
603 return;
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
604 }
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
605
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
606 void irc_msg_mode(struct irc_conn *irc, const char *name, const char *from, char **args)
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
607 {
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
608 GaimConversation *convo;
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
609 char *nick = irc_mask_nick(from), *buf;
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
610
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
611 if (*args[0] == '#' || *args[0] == '&') { /* Channel */
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
612 convo = gaim_find_conversation_with_account(args[0], irc->account);
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
613 if (!convo) {
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
614 gaim_debug(GAIM_DEBUG_ERROR, "irc", "MODE received for %s, which we are not in\n", args[0]);
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
615 g_free(nick);
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
616 return;
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
617 }
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
618 buf = g_strdup_printf(_("mode (%s %s) by %s"), args[1], args[2] ? args[2] : "", nick);
7118
280b3b85a28a [gaim-migrate @ 7685]
Christian Hammond <chipx86@chipx86.com>
parents: 7108
diff changeset
619 gaim_conv_chat_write(GAIM_CONV_CHAT(convo), args[0], buf, GAIM_MESSAGE_SYSTEM|GAIM_MESSAGE_NO_LOG, time(NULL));
6333
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
620 g_free(buf);
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
621 } else { /* User */
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
622 }
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
623 g_free(nick);
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
624 }
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
625
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
626 void irc_msg_nick(struct irc_conn *irc, const char *name, const char *from, char **args)
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
627 {
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
628 GaimConnection *gc = gaim_account_get_connection(irc->account);
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
629 GSList *chats;
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
630 char *nick = irc_mask_nick(from);
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
631
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
632 if (!gc) {
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
633 g_free(nick);
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
634 return;
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
635 }
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
636 chats = gc->buddy_chats;
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
637
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
638 if (!gaim_utf8_strcasecmp(nick, gaim_connection_get_display_name(gc))) {
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
639 gaim_connection_set_display_name(gc, args[0]);
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
640 }
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
641
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
642 while (chats) {
7118
280b3b85a28a [gaim-migrate @ 7685]
Christian Hammond <chipx86@chipx86.com>
parents: 7108
diff changeset
643 GaimConvChat *chat = GAIM_CONV_CHAT(chats->data);
280b3b85a28a [gaim-migrate @ 7685]
Christian Hammond <chipx86@chipx86.com>
parents: 7108
diff changeset
644 GList *users = gaim_conv_chat_get_users(chat);
6333
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
645
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
646 while (users) {
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
647 char *user = users->data;
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
648
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
649 if (!strcmp(nick, user)) {
7118
280b3b85a28a [gaim-migrate @ 7685]
Christian Hammond <chipx86@chipx86.com>
parents: 7108
diff changeset
650 gaim_conv_chat_rename_user(chat, user, args[0]);
280b3b85a28a [gaim-migrate @ 7685]
Christian Hammond <chipx86@chipx86.com>
parents: 7108
diff changeset
651 users = gaim_conv_chat_get_users(chat);
6333
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
652 break;
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
653 }
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
654 users = users->next;
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
655 }
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
656 chats = chats->next;
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
657 }
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
658 g_free(nick);
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
659 }
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
660
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
661 void irc_msg_nickused(struct irc_conn *irc, const char *name, const char *from, char **args)
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
662 {
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
663 char *newnick, *buf, *end;
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
664
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
665 if (!args || !args[1])
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
666 return;
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
667
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
668 newnick = strdup(args[1]);
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
669 end = newnick + strlen(newnick) - 1;
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
670 /* try three fallbacks */
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
671 if (*end == 2) *end = '3';
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
672 else if (*end == 1) *end = '2';
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
673 else *end = '1';
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
674
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
675 buf = irc_format(irc, "vn", "NICK", newnick);
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
676 irc_send(irc, buf);
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
677 g_free(buf);
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
678 }
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
679
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
680 void irc_msg_notice(struct irc_conn *irc, const char *name, const char *from, char **args)
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
681 {
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
682 char *newargs[2];
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
683
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
684 newargs[0] = " notice "; /* The spaces are magic, leave 'em in! */
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
685 newargs[1] = args[1];
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
686 irc_msg_privmsg(irc, name, from, newargs);
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
687 }
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
688
6718
c535c7b09353 [gaim-migrate @ 7245]
Ethan Blanton <elb@pidgin.im>
parents: 6714
diff changeset
689 void irc_msg_nochangenick(struct irc_conn *irc, const char *name, const char *from, char **args)
c535c7b09353 [gaim-migrate @ 7245]
Ethan Blanton <elb@pidgin.im>
parents: 6714
diff changeset
690 {
c535c7b09353 [gaim-migrate @ 7245]
Ethan Blanton <elb@pidgin.im>
parents: 6714
diff changeset
691 GaimConnection *gc = gaim_account_get_connection(irc->account);
c535c7b09353 [gaim-migrate @ 7245]
Ethan Blanton <elb@pidgin.im>
parents: 6714
diff changeset
692 char *msg;
c535c7b09353 [gaim-migrate @ 7245]
Ethan Blanton <elb@pidgin.im>
parents: 6714
diff changeset
693
6753
7d8e93748f43 [gaim-migrate @ 7285]
Ethan Blanton <elb@pidgin.im>
parents: 6718
diff changeset
694 if (!args || !args[2] || !gc)
6718
c535c7b09353 [gaim-migrate @ 7245]
Ethan Blanton <elb@pidgin.im>
parents: 6714
diff changeset
695 return;
c535c7b09353 [gaim-migrate @ 7245]
Ethan Blanton <elb@pidgin.im>
parents: 6714
diff changeset
696
6753
7d8e93748f43 [gaim-migrate @ 7285]
Ethan Blanton <elb@pidgin.im>
parents: 6718
diff changeset
697 msg = g_strdup_printf(_("Could not change nick"));
6718
c535c7b09353 [gaim-migrate @ 7245]
Ethan Blanton <elb@pidgin.im>
parents: 6714
diff changeset
698 gaim_notify_error(gc, _("Cannot change nick"), msg, args[2]);
c535c7b09353 [gaim-migrate @ 7245]
Ethan Blanton <elb@pidgin.im>
parents: 6714
diff changeset
699 g_free(msg);
c535c7b09353 [gaim-migrate @ 7245]
Ethan Blanton <elb@pidgin.im>
parents: 6714
diff changeset
700 }
c535c7b09353 [gaim-migrate @ 7245]
Ethan Blanton <elb@pidgin.im>
parents: 6714
diff changeset
701
6333
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
702 void irc_msg_part(struct irc_conn *irc, const char *name, const char *from, char **args)
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
703 {
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
704 GaimConnection *gc = gaim_account_get_connection(irc->account);
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
705 GaimConversation *convo;
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
706 char *nick, *msg;
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
707
8186
3b37807ed6f2 [gaim-migrate @ 8907]
Ethan Blanton <elb@pidgin.im>
parents: 8163
diff changeset
708 if (!args || !args[0] || !gc)
6333
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
709 return;
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
710
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
711 convo = gaim_find_conversation_with_account(args[0], irc->account);
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
712 if (!convo) {
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
713 gaim_debug(GAIM_DEBUG_INFO, "irc", "Got a PART on %s, which doesn't exist -- probably closed\n", args[0]);
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
714 return;
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
715 }
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
716
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
717 nick = irc_mask_nick(from);
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
718 if (!gaim_utf8_strcasecmp(nick, gaim_connection_get_display_name(gc))) {
8186
3b37807ed6f2 [gaim-migrate @ 8907]
Ethan Blanton <elb@pidgin.im>
parents: 8163
diff changeset
719 msg = g_strdup_printf(_("You have parted the channel%s%s"),
3b37807ed6f2 [gaim-migrate @ 8907]
Ethan Blanton <elb@pidgin.im>
parents: 8163
diff changeset
720 (args[1] && *args[1]) ? ": " : "", args[1]);
7118
280b3b85a28a [gaim-migrate @ 7685]
Christian Hammond <chipx86@chipx86.com>
parents: 7108
diff changeset
721 gaim_conv_chat_write(GAIM_CONV_CHAT(convo), args[0], msg, GAIM_MESSAGE_SYSTEM, time(NULL));
6333
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
722 g_free(msg);
8256
3f3063796999 [gaim-migrate @ 8979]
Tim Ringenbach <marv@pidgin.im>
parents: 8186
diff changeset
723 serv_got_chat_left(gc, gaim_conv_chat_get_id(GAIM_CONV_CHAT(convo)));
6333
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
724 } else {
7118
280b3b85a28a [gaim-migrate @ 7685]
Christian Hammond <chipx86@chipx86.com>
parents: 7108
diff changeset
725 gaim_conv_chat_remove_user(GAIM_CONV_CHAT(convo), nick, args[1]);
6333
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
726 }
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
727 g_free(nick);
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
728 }
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
729
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
730 void irc_msg_ping(struct irc_conn *irc, const char *name, const char *from, char **args)
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
731 {
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
732 char *buf;
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
733 if (!args || !args[0])
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
734 return;
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
735
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
736 buf = irc_format(irc, "v:", "PONG", args[0]);
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
737 irc_send(irc, buf);
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
738 g_free(buf);
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
739 }
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
740
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
741 void irc_msg_pong(struct irc_conn *irc, const char *name, const char *from, char **args)
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
742 {
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
743 GaimConversation *convo;
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
744 GaimConnection *gc;
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
745 char **parts, *msg;
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
746 time_t oldstamp;
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
747
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
748 if (!args || !args[1])
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
749 return;
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
750
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
751 parts = g_strsplit(args[1], " ", 2);
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
752
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
753 if (!parts[0] || !parts[1]) {
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
754 g_strfreev(parts);
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
755 return;
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
756 }
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
757
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
758 if (sscanf(parts[1], "%lu", &oldstamp) != 1) {
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
759 msg = g_strdup(_("Error: invalid PONG from server"));
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
760 } else {
6350
22dfc953f2fb [gaim-migrate @ 6849]
Ethan Blanton <elb@pidgin.im>
parents: 6333
diff changeset
761 msg = g_strdup_printf(_("PING reply -- Lag: %lu seconds"), time(NULL) - oldstamp);
6333
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
762 }
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
763
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
764 convo = gaim_find_conversation_with_account(parts[0], irc->account);
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
765 g_strfreev(parts);
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
766 if (convo) {
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
767 if (gaim_conversation_get_type (convo) == GAIM_CONV_CHAT)
7118
280b3b85a28a [gaim-migrate @ 7685]
Christian Hammond <chipx86@chipx86.com>
parents: 7108
diff changeset
768 gaim_conv_chat_write(GAIM_CONV_CHAT(convo), "PONG", msg, GAIM_MESSAGE_SYSTEM|GAIM_MESSAGE_NO_LOG, time(NULL));
6333
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
769 else
7118
280b3b85a28a [gaim-migrate @ 7685]
Christian Hammond <chipx86@chipx86.com>
parents: 7108
diff changeset
770 gaim_conv_im_write(GAIM_CONV_IM(convo), "PONG", msg, GAIM_MESSAGE_SYSTEM|GAIM_MESSAGE_NO_LOG, time(NULL));
6333
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
771 } else {
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
772 gc = gaim_account_get_connection(irc->account);
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
773 if (!gc) {
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
774 g_free(msg);
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
775 return;
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
776 }
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
777 gaim_notify_info(gc, NULL, "PONG", msg);
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
778 }
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
779 g_free(msg);
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
780 }
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
781
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
782 void irc_msg_privmsg(struct irc_conn *irc, const char *name, const char *from, char **args)
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
783 {
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
784 GaimConnection *gc = gaim_account_get_connection(irc->account);
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
785 GaimConversation *convo;
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
786 char *nick = irc_mask_nick(from), *tmp, *msg;
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
787 int notice = 0;
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
788
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
789 if (!args || !args[0] || !args[1] || !gc) {
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
790 g_free(nick);
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
791 return;
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
792 }
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
793
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
794 notice = !strcmp(args[0], " notice ");
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
795 tmp = irc_parse_ctcp(irc, nick, args[0], args[1], notice);
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
796 if (!tmp) {
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
797 g_free(nick);
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
798 return;
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
799 }
8163
8f33bb0f433d [gaim-migrate @ 8875]
Ethan Blanton <elb@pidgin.im>
parents: 8114
diff changeset
800
8f33bb0f433d [gaim-migrate @ 8875]
Ethan Blanton <elb@pidgin.im>
parents: 8114
diff changeset
801 msg = gaim_escape_html(tmp);
6333
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
802 g_free(tmp);
8163
8f33bb0f433d [gaim-migrate @ 8875]
Ethan Blanton <elb@pidgin.im>
parents: 8114
diff changeset
803
8f33bb0f433d [gaim-migrate @ 8875]
Ethan Blanton <elb@pidgin.im>
parents: 8114
diff changeset
804 tmp = irc_mirc2html(msg);
8f33bb0f433d [gaim-migrate @ 8875]
Ethan Blanton <elb@pidgin.im>
parents: 8114
diff changeset
805 g_free(msg);
8f33bb0f433d [gaim-migrate @ 8875]
Ethan Blanton <elb@pidgin.im>
parents: 8114
diff changeset
806 msg = tmp;
6333
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
807 if (notice) {
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
808 tmp = g_strdup_printf("(notice) %s", msg);
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
809 g_free(msg);
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
810 msg = tmp;
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
811 }
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
812
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
813 if (!gaim_utf8_strcasecmp(args[0], gaim_connection_get_display_name(gc))) {
6982
12f08de92674 [gaim-migrate @ 7538]
Mark Doliner <markdoliner@pidgin.im>
parents: 6753
diff changeset
814 serv_got_im(gc, nick, msg, 0, time(NULL));
6333
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
815 } else if (notice) {
6982
12f08de92674 [gaim-migrate @ 7538]
Mark Doliner <markdoliner@pidgin.im>
parents: 6753
diff changeset
816 serv_got_im(gc, nick, msg, 0, time(NULL));
6333
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
817 } else {
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
818 convo = gaim_find_conversation_with_account(args[0], irc->account);
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
819 if (convo)
7118
280b3b85a28a [gaim-migrate @ 7685]
Christian Hammond <chipx86@chipx86.com>
parents: 7108
diff changeset
820 serv_got_chat_in(gc, gaim_conv_chat_get_id(GAIM_CONV_CHAT(convo)), nick, 0, msg, time(NULL));
6333
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
821 else
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
822 gaim_debug(GAIM_DEBUG_ERROR, "irc", "Got a PRIVMSG on %s, which does not exist\n", args[0]);
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
823 }
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
824 g_free(msg);
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
825 g_free(nick);
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
826 }
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
827
6714
414a52265486 [gaim-migrate @ 7240]
Ethan Blanton <elb@pidgin.im>
parents: 6695
diff changeset
828 void irc_msg_regonly(struct irc_conn *irc, const char *name, const char *from, char **args)
414a52265486 [gaim-migrate @ 7240]
Ethan Blanton <elb@pidgin.im>
parents: 6695
diff changeset
829 {
414a52265486 [gaim-migrate @ 7240]
Ethan Blanton <elb@pidgin.im>
parents: 6695
diff changeset
830 GaimConnection *gc = gaim_account_get_connection(irc->account);
414a52265486 [gaim-migrate @ 7240]
Ethan Blanton <elb@pidgin.im>
parents: 6695
diff changeset
831 char *msg;
414a52265486 [gaim-migrate @ 7240]
Ethan Blanton <elb@pidgin.im>
parents: 6695
diff changeset
832
414a52265486 [gaim-migrate @ 7240]
Ethan Blanton <elb@pidgin.im>
parents: 6695
diff changeset
833 if (!args || !args[1] || !args[2] || !gc)
414a52265486 [gaim-migrate @ 7240]
Ethan Blanton <elb@pidgin.im>
parents: 6695
diff changeset
834 return;
414a52265486 [gaim-migrate @ 7240]
Ethan Blanton <elb@pidgin.im>
parents: 6695
diff changeset
835
414a52265486 [gaim-migrate @ 7240]
Ethan Blanton <elb@pidgin.im>
parents: 6695
diff changeset
836 msg = g_strdup_printf(_("Cannot join %s:"), args[1]);
414a52265486 [gaim-migrate @ 7240]
Ethan Blanton <elb@pidgin.im>
parents: 6695
diff changeset
837 gaim_notify_error(gc, _("Cannot join channel"), msg, args[2]);
414a52265486 [gaim-migrate @ 7240]
Ethan Blanton <elb@pidgin.im>
parents: 6695
diff changeset
838 g_free(msg);
414a52265486 [gaim-migrate @ 7240]
Ethan Blanton <elb@pidgin.im>
parents: 6695
diff changeset
839 }
414a52265486 [gaim-migrate @ 7240]
Ethan Blanton <elb@pidgin.im>
parents: 6695
diff changeset
840
6333
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
841 void irc_msg_quit(struct irc_conn *irc, const char *name, const char *from, char **args)
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
842 {
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
843 GaimConnection *gc = gaim_account_get_connection(irc->account);
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
844 char *data[2];
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
845
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
846 if (!args || !args[0] || !gc)
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
847 return;
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
848
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
849 data[0] = irc_mask_nick(from);
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
850 data[1] = args[0];
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
851 /* XXX this should have an API, I shouldn't grab this directly */
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
852 g_slist_foreach(gc->buddy_chats, (GFunc)irc_chat_remove_buddy, data);
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
853 g_free(data[0]);
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
854
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
855 return;
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
856 }
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
857
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
858 void irc_msg_wallops(struct irc_conn *irc, const char *name, const char *from, char **args)
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
859 {
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
860 GaimConnection *gc = gaim_account_get_connection(irc->account);
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
861 char *nick, *msg;
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
862
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
863 if (!args || !args[0] || !gc)
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
864 return;
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
865
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
866 nick = irc_mask_nick(from);
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
867 msg = g_strdup_printf (_("Wallops from %s"), nick);
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
868 g_free(nick);
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
869 gaim_notify_info(gc, NULL, msg, args[0]);
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
870 g_free(msg);
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
871 }
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
872
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
873 void irc_msg_ignore(struct irc_conn *irc, const char *name, const char *from, char **args)
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
874 {
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
875 return;
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
876 }

mercurial