diff options
-rw-r--r-- | TODO | 3 | ||||
-rw-r--r-- | src/core/cs_ban.c | 26 | ||||
-rw-r--r-- | src/core/cs_clear.c | 4 | ||||
-rw-r--r-- | src/core/cs_drop.c | 2 |
4 files changed, 18 insertions, 17 deletions
@@ -46,9 +46,6 @@ Legend: [ ] HelpServ must die (1.9.1?) [-] Command parser cleanup: mod_current_buffer needs to go away and be replaced by a proper parser. Commands should then indicate how they want the buffer split. These all need reviewing, remove them from the list _AS YOU GO_. Talk t0 w00t or CBX if you don't know what this is for: - src/core/cs_ban.c - src/core/cs_clear.c - src/core/cs_drop.c src/core/cs_forbid.c src/core/cs_getkey.c src/core/cs_getpass.c 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> ¶ms) { - 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> ¶ms) { - char *chan = strtok(NULL, " "); + const char *chan = params[0].c_str(); ChannelInfo *ci; int is_servadmin = is_services_admin(u); |