rem: !chan.ismode(this.id,CHANLIST_VOICE) && !chan.ismode(this.id,CHANLIST_OP) ) { 
add: !chan.ismode(this.id,CHANMODE_VOICE) && !chan.ismode(this.id,CHANMODE_OP) ) { 
context: function IRCClient_do_msg(target,type_str,send_str) {	if ((target[0] == "$") && (this.mode&USERMODE_OPER))		return this.global(target,type_str,send_str);	send_to_list = -1;	if (target[0] == "@" && ( (target[1] == "#") || target[1] == "&") ) {		send_to_list = CHANLIST_OP;		target = target.slice(1);	} else if (target[0]=="+" && ((target[1] == "#")|| target[1] == "&")) {		send_to_list = CHANLIST_VOICE;		target = target.slice(1);	}			if ((target[0] == "#") || (target[0] == "&")) {		chan = searchbychannel(target);		if (!chan) {			// check to see if it's a #*hostmask* oper message			if ((target[0] == "#") && (this.mode&USERMODE_OPER)) {				return this.global(target,type_str,send_str);			} else {				this.numeric401(target);				return 0;			}		}		if ( (chan.mode&CHANMODE_NOOUTSIDE) &&		     !this.onchannel(chan.nam.toUpperCase())) {			this.numeric(404, chan.nam + " :Cannot send to channel (+n: no outside messages)");			return 0;		}		if ( (chan.mode&CHANMODE_MODERATED) &&		     !chan.ismode(this.id,CHANLIST_VOICE) &&		     !chan.ismode(this.id,CHANLIST_OP) ) {			this.numeric(404, chan.nam + " :Cannot send to channel (+m: moderated)");			return 0;		}		if (chan.isbanned(this.ircnuh) &&		   !chan.ismode(this.id,CHANLIST_VOICE) &&		   !chan.ismode(this.id,CHANLIST_OP) ) {			this.numeric(404, chan.nam + " :Cannot send to channel (+b: you're banned!)");			return 0;		}		if(send_to_list == -1) {			str = type_str +" "+ chan.nam +" :"+ send_str;			this.bcast_to_channel(chan.nam, str, false);			this.bcast_to_channel_servers(chan.nam, str);		} else {			if (send_to_list == CHANLIST_OP)				prefix_chr="@";			else if (send_to_list == CHANLIST_VOICE)				prefix_chr="+";			str = type_str +" " + prefix_chr + chan.nam + " :"+ send_str;			this.bcast_to_list(chan, str, false, send_to_list);			this.bcast_to_channel_servers(chan.nam, str);		}	} else {		if (target.match("[@]")) {			var msg_arg = target.split('@');			var real_target = msg_arg[0];			var target_server = searchbyserver(msg_arg[1]);			if (!target_server) {				this.numeric401(target);				return 0;			}			if (target_server == -1) {				this.numeric(407, target + " :Duplicate recipients, no message delivered.");				return 0;			}			target = msg_arg[0] + "@" + msg_arg[1];		} else {			var real_target = target;		}		target_socket = searchbynick(real_target);		if (target_socket) {			if (target_server &&			    (target_server.parent != target_socket.parent)) {				this.numeric401(target);				return 0;			}			if (target_server && 			    (target_server.id == target_socket.parent) )				target = real_target;			str = type_str + " " + target + " :" + send_str;			target_socket.originatorout(str,this);			if (target_socket.away && (type_str == "PRIVMSG") &&			    !this.server && this.local)				this.numeric(301, target_socket.nick + " :" + target_socket.away);		} else {			this.numeric401(target);			return 0;		}	}	return 1;}
meta: 9592	/local1/tlutelli/issta_data/temp/all_js/javascript/2006_temp/2006/9592/602751b924140f2f131ade2fe4bd7d9263e66c52/ircd.js/buggy/ircd.js