1
0
mirror of https://github.com/irssi/irssi.git synced 2025-02-02 15:08:01 -05:00

/MODE was buggy

git-svn-id: http://svn.irssi.org/repos/irssi/trunk@207 dbcabf3a-b0e7-0310-adc4-f8d773084564
This commit is contained in:
Timo Sirainen 2000-05-10 11:29:55 +00:00 committed by cras
parent 240df09c45
commit 749640e793

View File

@ -328,7 +328,7 @@ void channel_set_singlemode(IRC_SERVER_REC *server, const char *channel, const c
void channel_set_mode(IRC_SERVER_REC *server, const char *channel, const char *mode)
{
char *modestr, *curmode, type, *orig;
char *modestr, *curmode, *orig;
GString *tmode, *targs;
int count;
@ -338,17 +338,12 @@ void channel_set_mode(IRC_SERVER_REC *server, const char *channel, const char *m
tmode = g_string_new(NULL);
targs = g_string_new(NULL);
type = '+'; count = 0;
count = 0;
orig = modestr = g_strdup(mode);
curmode = cmd_get_param(&modestr);
for (; *curmode != '\0'; curmode++) {
if (*curmode == '+' || *curmode == '-') {
type = *curmode;
continue;
}
if (count == server->connrec->max_modes && MODE_HAS_ARG(*curmode)) {
irc_send_cmdv(server, "MODE %s %s%s", channel, tmode->str, targs->str);
@ -483,7 +478,9 @@ static void cmd_mode(const char *data, IRC_SERVER_REC *server, WI_IRC_REC *item)
}
if (*target == '\0') cmd_param_error(CMDERR_NOT_ENOUGH_PARAMS);
if (ischannel(*target))
if (*mode == '\0')
irc_send_cmdv(server, "MODE %s", target);
else if (ischannel(*target))
channel_set_mode(server, target, mode);
else
irc_send_cmdv(server, "MODE %s %s", target, mode);