summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/core/cs_ban.c26
-rw-r--r--src/core/cs_clear.c4
-rw-r--r--src/core/cs_drop.c2
3 files changed, 18 insertions, 14 deletions
diff --git a/src/core/cs_ban.c b/src/core/cs_ban.c
index c72e45ff8..51288fa6e 100644
--- a/src/core/cs_ban.c
+++ b/src/core/cs_ban.c
@@ -31,7 +31,7 @@ void myChanServHelp(User * u)
class CommandCSBan : public Command
{
public:
- CommandCSBan() : Command("BAN", 1, 3)
+ CommandCSBan() : Command("BAN", 2, 3)
{
}
@@ -40,24 +40,24 @@ class CommandCSBan : public Command
{
const char *chan = params[0].c_str();
const char *target = params[1].c_str();
- params[2].resize(200);
- const char *reason = params[2].c_str();
+ const char *reason = NULL;
+
+ if (params.size() > 2)
+ {
+ params[2].resize(200);
+ reason = params[2].c_str();
+
+ }
Channel *c;
ChannelInfo *ci;
User *u2;
- if (!chan)
- return MOD_CONT;
-
int is_same;
if (!reason)
reason = "Requested";
- if (!target)
- target = u->nick;
-
is_same = (stricmp(target, u->nick) == 0);
if (!(c = findchan(chan))) {
@@ -119,6 +119,12 @@ class CommandCSBan : public Command
notice_lang(s_ChanServ, u, CHAN_HELP_BAN);
return true;
}
+
+ void OnSyntaxError(User *u)
+ {
+ // XXX: temporary, this can be tackled when the language system isn't so goddamn hairy.
+ syntax_error(s_ChanServ, u, "BAN", CHAN_UNBAN_SYNTAX);
+ }
};
@@ -133,7 +139,7 @@ class CommandCSUnban : public Command
CommandReturn Execute(User *u, std::vector<std::string> &params)
{
- char *chan = strtok(NULL, " ");
+ const char *chan = params[0].c_str();
Channel *c;
ChannelInfo *ci;
diff --git a/src/core/cs_clear.c b/src/core/cs_clear.c
index e7dfa2972..48ee0cf9d 100644
--- a/src/core/cs_clear.c
+++ b/src/core/cs_clear.c
@@ -41,9 +41,7 @@ class CommandCSClear : public Command
Channel *c;
ChannelInfo *ci;
- if (!what) {
- syntax_error(s_ChanServ, u, "CLEAR", CHAN_CLEAR_SYNTAX);
- } else if (!(c = findchan(chan))) {
+ if (!(c = findchan(chan))) {
notice_lang(s_ChanServ, u, CHAN_X_NOT_IN_USE, chan);
} else if (!(ci = c->ci)) {
notice_lang(s_ChanServ, u, CHAN_X_NOT_REGISTERED, chan);
diff --git a/src/core/cs_drop.c b/src/core/cs_drop.c
index 84e72a7a8..6dfa016d9 100644
--- a/src/core/cs_drop.c
+++ b/src/core/cs_drop.c
@@ -36,7 +36,7 @@ class CommandCSDrop : public Command
CommandReturn Execute(User *u, std::vector<std::string> &params)
{
- char *chan = strtok(NULL, " ");
+ const char *chan = params[0].c_str();
ChannelInfo *ci;
int is_servadmin = is_services_admin(u);