- s = parv[3];
- while(*s)
- {
- switch (*(s++))
- {
- case 'i':
- mode.mode |= MODE_INVITEONLY;
- break;
- case 'n':
- mode.mode |= MODE_NOPRIVMSGS;
- break;
- case 'p':
- mode.mode |= MODE_PRIVATE;
- break;
- case 's':
- mode.mode |= MODE_SECRET;
- break;
- case 'm':
- mode.mode |= MODE_MODERATED;
- break;
- case 't':
- mode.mode |= MODE_TOPICLIMIT;
- break;
- case 'r':
- mode.mode |= MODE_REGONLY;
- break;
- case 'L':
- mode.mode |= MODE_EXLIMIT;
- break;
- case 'P':
- mode.mode |= MODE_PERMANENT;
- break;
- case 'c':
- mode.mode |= MODE_NOCOLOR;
- break;
- case 'g':
- mode.mode |= MODE_FREEINVITE;
- break;
- case 'z':
- mode.mode |= MODE_OPMODERATE;
- break;
- case 'F':
- mode.mode |= MODE_FREETARGET;
- break;
- case 'Q':
- mode.mode |= MODE_DISFORWARD;
- break;
- case 'f':
- if(parc < 5 + args)
- return 0;
- strlcpy(mode.forward, parv[4 + args], sizeof(mode.forward));
- args++;
- break;
- case 'j':
- /* sent a +j without an arg. */
- if(parc < 5 + args)
- return 0;
- sscanf(parv[4 + args], "%d:%d", &mode.join_num, &mode.join_time);
- args++;
- break;
- case 'k':
- /* sent a +k without a key, eek. */
- if(parc < 5 + args)
- return 0;
- strlcpy(mode.key, parv[4 + args], sizeof(mode.key));
- args++;
- break;
- case 'l':
- /* sent a +l without a limit. */
- if(parc < 5 + args)
- return 0;
- mode.limit = atoi(parv[4 + args]);
- args++;
- break;
- }
- }
-