diff interpretiert code?



  • Hallo

    ich versuche von einer C++ Datei einen patch zu machen und benutze dabei den befehl "diff -u dateialt.cpp dateigepatcht". Aber diff wirft den code total durcheinander. Hier der betreffende code:

    static void send_chat(int cid, int team, const char *text)
    {
    	if(cid > -1 && cid < MAX_CLIENTS)
    	{
    		player *tmp = get_player(cid);
    		if(tmp->muted)
    		{
    			if(tmp->last_message_tick + 120*SERVER_TICK_SPEED > server_tick())
    			{
    				tmp->message_num++;
    				if(tmp->message_num > 3)
    				{
    					server_kick(cid,"You were kicked because of spamming.");
    				}
    				return;
    			}
    			else
    			{
    				tmp->muted = false;
    				tmp->message_num = 0;
    				tmp->last_message_tick = server_tick();
    			}
    		}
    		else
    		{
    			if(tmp->last_message_tick + 30*SERVER_TICK_SPEED > server_tick())
    			{
    				if(tmp->message_num > 8)
    				{
    					tmp->muted = true;
    					tmp->message_num = 0;
    					char *muting = (char *)malloc(sizeof(char) * 200);
    					sprintf(muting, "%s was muted for 2 minutes because of spamming.", server_clientname(cid));
    					NETMSG_SV_CHAT msg;
    					msg.team = 0;
    					msg.cid = -1;
    					msg.message = muting;
    					msg.pack(MSGFLAG_VITAL);
    					server_send_msg(-1);
    					free(muting);
    					return;
    				}
    				else
    					tmp->message_num++;
    			}
    			else
    			{
    				tmp->last_message_tick = server_tick();
    				tmp->message_num = 0;
    			}
    		}
    	}
    	if(cid >= 0 && cid < MAX_CLIENTS)                    //ab hier der alte code, davor hinzugefügter code
    		dbg_msg("chat", "%d:%d:%s: %s", cid, team, server_clientname(cid), text);
    	else
    		dbg_msg("chat", "*** %s", text);
    
    	if(team == CHAT_ALL)
    	{
    		NETMSG_SV_CHAT msg;
    		msg.team = 0;
    		msg.cid = cid;
    		msg.message = text;
    		msg.pack(MSGFLAG_VITAL);
    		server_send_msg(-1);
    	}
    	else
    	{
    		NETMSG_SV_CHAT msg;
    		msg.team = 1;
    		msg.cid = cid;
    		msg.message = text;
    		msg.pack(MSGFLAG_VITAL);
    
    		for(int i = 0; i < MAX_CLIENTS; i++)
    		{
    			if(players[i].client_id != -1 && players[i].team == team)
    				server_send_msg(i);
    		}
    	}
    }
    

    an dem kommentar(Z. 53) sieht man bis wo neuer code steht. hier nun die ausgabe von diff dazu:

    @@ -39,25 +39,53 @@
    
     static void send_chat(int cid, int team, const char *text)
     {
    +	if(cid > -1 && cid < MAX_CLIENTS)
     	if(cid >= 0 && cid < MAX_CLIENTS)
    +		player *tmp = get_player(cid);
    +		if(tmp->muted)
     		dbg_msg("chat", "%d:%d:%s: %s", cid, team, server_clientname(cid), text);
    +			if(tmp->last_message_tick + 120*SERVER_TICK_SPEED > server_tick())
     	else
    +				tmp->message_num++;
    +				if(tmp->message_num > 3)
     		dbg_msg("chat", "*** %s", text);
    +					server_kick(cid,"You were kicked because of spamming.");
    
    +				return;
     	if(team == CHAT_ALL)
     	{
     		NETMSG_SV_CHAT msg;
    +				tmp->muted = false;
    +				tmp->message_num = 0;
    +				tmp->last_message_tick = server_tick();
     		msg.team = 0;
     		msg.cid = cid;
     		msg.message = text;
     		msg.pack(MSGFLAG_VITAL);
    +			if(tmp->last_message_tick + 30*SERVER_TICK_SPEED > server_tick())
     		server_send_msg(-1);
    +				if(tmp->message_num > 8)
     	}
    +					tmp->muted = true;
    +					tmp->message_num = 0;
    +					char *muting = (char *)malloc(sizeof(char) * 200);
    +					sprintf(muting, "%s was muted for 2 minutes because of spamming.", server_clientname(cid));
    +					NETMSG_SV_CHAT msg;
    +					msg.team = 0;
    +					msg.cid = -1;
    +					msg.message = muting;
    +					msg.pack(MSGFLAG_VITAL);
    +					server_send_msg(-1);
    +					free(muting);
    +					return;
     	else
     	{
    +					tmp->message_num++;
     		NETMSG_SV_CHAT msg;
     		msg.team = 1;
     		msg.cid = cid;
    +				tmp->last_message_tick = server_tick();
    +				tmp->message_num = 0;
     		msg.message = text;
     		msg.pack(MSGFLAG_VITAL);
    

    btw: hoffentlich das richtige forum

    danke
    scosu


Anmelden zum Antworten