Mercurial > pidgin
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 |