403 |
|
|
404 |
simple_modes_mask |= mode->mode; |
simple_modes_mask |= mode->mode; |
405 |
|
|
406 |
/* setting + */ |
if (dir == MODE_ADD) /* setting + */ |
|
if (dir == MODE_ADD) /* && !(chptr->mode.mode & d)) */ |
|
407 |
{ |
{ |
408 |
AddCMode(chptr, mode->mode); |
if (MyClient(source_p) && HasCMode(chptr, mode->mode)) |
409 |
|
return; |
410 |
|
|
411 |
mode_changes[mode_count].letter = mode->letter; |
AddCMode(chptr, mode->mode); |
|
mode_changes[mode_count].arg = NULL; |
|
|
mode_changes[mode_count].id = NULL; |
|
|
mode_changes[mode_count].flags = 0; |
|
|
mode_changes[mode_count++].dir = dir; |
|
412 |
} |
} |
413 |
else if (dir == MODE_DEL) /* && (chptr->mode.mode & d)) */ |
else if (dir == MODE_DEL) /* setting - */ |
414 |
{ |
{ |
415 |
/* setting - */ |
if (MyClient(source_p) && !HasCMode(chptr, mode->mode)) |
416 |
DelCMode(chptr, mode->mode); |
return; |
417 |
|
|
418 |
mode_changes[mode_count].letter = mode->letter; |
DelCMode(chptr, mode->mode); |
|
mode_changes[mode_count].arg = NULL; |
|
|
mode_changes[mode_count].id = NULL; |
|
|
mode_changes[mode_count].flags = 0; |
|
|
mode_changes[mode_count++].dir = dir; |
|
419 |
} |
} |
420 |
|
|
421 |
|
mode_changes[mode_count].letter = mode->letter; |
422 |
|
mode_changes[mode_count].arg = NULL; |
423 |
|
mode_changes[mode_count].id = NULL; |
424 |
|
mode_changes[mode_count].flags = 0; |
425 |
|
mode_changes[mode_count++].dir = dir; |
426 |
} |
} |
427 |
|
|
428 |
static void |
static void |
1152 |
{ .letter = 'C', .mode = MODE_NOCTCP, .func = chm_simple }, |
{ .letter = 'C', .mode = MODE_NOCTCP, .func = chm_simple }, |
1153 |
{ .letter = 'I', .func = chm_invex }, |
{ .letter = 'I', .func = chm_invex }, |
1154 |
{ .letter = 'L', .mode = MODE_EXTLIMIT, .only_opers = 1, .func = chm_simple }, |
{ .letter = 'L', .mode = MODE_EXTLIMIT, .only_opers = 1, .func = chm_simple }, |
1155 |
{ .letter = 'M', .mode = MODE_MODREG, .func = chm_simple}, |
{ .letter = 'M', .mode = MODE_MODREG, .func = chm_simple }, |
1156 |
{ .letter = 'O', .mode = MODE_OPERONLY, .only_opers = 1, .func = chm_simple }, |
{ .letter = 'O', .mode = MODE_OPERONLY, .only_opers = 1, .func = chm_simple }, |
1157 |
{ .letter = 'R', .mode = MODE_REGONLY, .func = chm_simple}, |
{ .letter = 'R', .mode = MODE_REGONLY, .func = chm_simple }, |
1158 |
{ .letter = 'S', .mode = MODE_SSLONLY, .func = chm_simple}, |
{ .letter = 'S', .mode = MODE_SSLONLY, .func = chm_simple }, |
1159 |
{ .letter = 'T', .mode = MODE_NONOTICE, .func = chm_simple}, |
{ .letter = 'T', .mode = MODE_NONOTICE, .func = chm_simple }, |
1160 |
{ .letter = '\0', .mode = 0 } |
{ .letter = '\0', .mode = 0 } |
1161 |
}; |
}; |
1162 |
|
|