comparison src/protocols/irc/cmds.c @ 10208:cbdce0acbbe6

[gaim-migrate @ 11330] This implements irc_ischannel for HEAD, and fixes /names committer: Tailor Script <tailor@pidgin.im>
author Ethan Blanton <elb@pidgin.im>
date Fri, 19 Nov 2004 16:42:07 +0000
parents 3f97624e7753
children a66cf83552dc
comparison
equal deleted inserted replaced
10207:9d03dd6ccc9a 10208:cbdce0acbbe6
195 195
196 if (!args) 196 if (!args)
197 return 0; 197 return 0;
198 198
199 if (!strcmp(cmd, "mode")) { 199 if (!strcmp(cmd, "mode")) {
200 if (!args[0] && (*target == '#' || *target == '&')) 200 if (!args[0] && irc_ischannel(target))
201 buf = irc_format(irc, "vc", "MODE", target); 201 buf = irc_format(irc, "vc", "MODE", target);
202 else if (args[0] && (*args[0] == '+' || *args[0] == '-')) 202 else if (args[0] && (*args[0] == '+' || *args[0] == '-'))
203 buf = irc_format(irc, "vcv", "MODE", target, args[0]); 203 buf = irc_format(irc, "vcv", "MODE", target, args[0]);
204 else if (args[0]) 204 else if (args[0])
205 buf = irc_format(irc, "vv", "MODE", args[0]); 205 buf = irc_format(irc, "vv", "MODE", args[0]);
222 222
223 int irc_cmd_names(struct irc_conn *irc, const char *cmd, const char *target, const char **args) 223 int irc_cmd_names(struct irc_conn *irc, const char *cmd, const char *target, const char **args)
224 { 224 {
225 char *buf; 225 char *buf;
226 226
227 if (!args) 227 if (!args || (!args[0] && !irc_ischannel(target)))
228 return 0; 228 return 0;
229 229
230 buf = irc_format(irc, "vc", "NAMES", args[0] ? args[0] : target); 230 buf = irc_format(irc, "vc", "NAMES", args[0] ? args[0] : target);
231 irc_send(irc, buf); 231 irc_send(irc, buf);
232 g_free(buf); 232 g_free(buf);
315 { 315 {
316 char *stamp; 316 char *stamp;
317 char *buf; 317 char *buf;
318 318
319 if (args && args[0]) { 319 if (args && args[0]) {
320 if (*args[0] == '#' || *args[0] == '&') 320 if (irc_ischannel(args[0]))
321 return 0; 321 return 0;
322 stamp = g_strdup_printf("\001PING %lu\001", time(NULL)); 322 stamp = g_strdup_printf("\001PING %lu\001", time(NULL));
323 buf = irc_format(irc, "vn:", "PRIVMSG", args[0], stamp); 323 buf = irc_format(irc, "vn:", "PRIVMSG", args[0], stamp);
324 g_free(stamp); 324 g_free(stamp);
325 } else { 325 } else {
412 char *buf; 412 char *buf;
413 413
414 if (!args || !args[0]) 414 if (!args || !args[0])
415 return 0; 415 return 0;
416 416
417 if (*target != '#' && *target != '&') /* not a channel, punt */ 417 if (!irc_ischannel(target)) /* not a channel, punt */
418 return 0; 418 return 0;
419 419
420 if (args[1]) 420 if (args[1])
421 buf = irc_format(irc, "vcn:", "REMOVE", target, args[0], args[1]); 421 buf = irc_format(irc, "vcn:", "REMOVE", target, args[0], args[1]);
422 else 422 else