All pastes #188247 Raw Edit

Anonymous

public text v1 · immutable
·published 2006-10-01 22:51 UTC
rendered paste body
void ParseMessage(SOCKET sSock, LPSTR lpszMsg)
{
	LPSTR lpszOriginal = new CHAR[ strlen(lpszMsg) + 1];
	strcpy(lpszOriginal, lpszMsg);
	IRCMSG iMsg;
	if(*lpszMsg == ':'){ *lpszMsg = 0; lpszMsg++; }
	LPSTR lpszExlca = strstr(lpszMsg, "!");
	if(lpszExlca != NULL){
		*lpszExlca = 0;
		iMsg.lpszNick = new CHAR[ strlen(lpszMsg) + 1];
		strcpy(iMsg.lpszNick, lpszMsg);
		lpszMsg += strlen(lpszMsg) + 1;
	}
	LPSTR lpszUser = strstr(lpszMsg, "@");
	if(lpszUser != NULL){
		*lpszUser = 0;
		iMsg.lpszUser = new CHAR[ strlen(lpszMsg) + 1];
		strcpy(iMsg.lpszUser, lpszMsg);
		lpszMsg += strlen(lpszMsg) + 1;
	}
	LPSTR lpszSpace = strstr(lpszMsg, " ");
	if(lpszSpace != NULL){
		*lpszSpace = 0;
		iMsg.lpszHost = new CHAR[ strlen(lpszMsg) + 1];
		strcpy(iMsg.lpszHost, lpszMsg);
		lpszMsg += strlen(lpszMsg) + 1;
	}
	LPSTR lpszCmd = strstr(lpszMsg, " ");
	if(lpszCmd != NULL){
		*lpszCmd = 0;
		iMsg.lpszCmd = new CHAR[ strlen(lpszMsg) + 1];
		strcpy(iMsg.lpszCmd, lpszMsg);
		lpszMsg += strlen(lpszMsg) + 1;
	}else iMsg.lpszCmd = NULL;
	int nCount = 0;
	LPSTR lpszParam = NULL;
	while((lpszParam = strstr(lpszMsg, " ")) && nCount < 16){
		*lpszParam = 0;
		iMsg.lpszParams[nCount] = lpszMsg;
		lpszMsg += strlen(lpszMsg) + 1;
		nCount++;
	}
	ProcessMessage(sSock, iMsg);
}