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 |
