rem: if (!this.local) { 
add: if (this.local) { 
context: function IRCClient_setusermode(modestr) {	if (!modestr)		return 0;	var add=true;	var unknown_mode=false;	var umode = new UMode();	for (modechar in modestr) {		switch (modestr[modechar]) {			case "+":				if (!add)					add=true;				break;			case "-":				if (add)					add=false;				break;			case "i":			case "w":			case "s":			case "k":			case "g":				umode.tweak_mode(USERMODE_CHAR					[modestr[modechar]],add);				break;			case "b":			case "r":			case "f":			case "y":			case "d":			case "n":				if (this.mode&USERMODE_OPER)					umode.tweak_mode(USERMODE_CHAR						[modestr[modechar]],add);				break;			case "o":				// Allow +o only by servers or non-local users.				if (add && this.parent &&				    Servers[this.parent].hub)					umode.tweak_mode(USERMODE_OPER,true);				else if (!add)					umode.tweak_mode(USERMODE_OPER,false);				break;			case "c":				if ((this.mode&USERMODE_OPER) &&				    (this.flags&OLINE_CAN_UMODEC))					umode.tweak_mode(USERMODE_CLIENT,add);				break;			default:				if (!unknown_mode && !this.parent) {					this.numeric(501, ":Unknown MODE flag");					unknown_mode=true;				}				break;		}	}	var addmodes = "";	var delmodes = "";	var bcast_addmodes = "";	var bcast_delmodes = "";	for (mym in USERMODE_CHAR) {		if ((umode.add_flags&USERMODE_CHAR[mym]) &&		    !(this.mode&USERMODE_CHAR[mym])) {			addmodes += mym;			if (USERMODE_BCAST[mym])				bcast_addmodes += mym;			this.mode |= USERMODE_CHAR[mym];		} else if ((umode.del_flags&USERMODE_CHAR[mym]) &&		    (this.mode&USERMODE_CHAR[mym])) {			delmodes += mym;			if (USERMODE_BCAST[mym])				bcast_delmodes += mym;			this.mode &= ~USERMODE_CHAR[mym];		}	}	if (!addmodes && !delmodes)		return 0;	var final_modestr = "";	var bcast_modestr = "";	if (addmodes)		final_modestr += "+" + addmodes;	if (delmodes)		final_modestr += "-" + delmodes;	if (bcast_addmodes)		bcast_modestr += "+" + bcast_addmodes;	if (bcast_delmodes)		bcast_modestr += "-" + bcast_delmodes;	if (!this.local) {		this.originatorout("MODE "+this.nick+" "+final_modestr,this);		if (bcast_addmodes || bcast_delmodes)			this.bcast_to_servers("MODE "+this.nick+" "+bcast_modestr,this);	}	return 1;}
meta: 9592	/local1/tlutelli/issta_data/temp/all_js/javascript/2006_temp/2006/9592/db61ac7ba7cd324a4493c52be4a38a7a5d590f8f/ircd.js/buggy/ircd.js