Newer
Older
Scratch / mobius / src / libc / string / memmove.c
@Christopher W. Olsen Christopher W. Olsen on 25 Oct 2019 625 bytes Scratch
/*****************************************************************************
	name:	memmove
	action:	moves Count bytes from address Src to address Dst
	returns:Dst
*****************************************************************************/
void *memmove(void *DstPtr, const void *SrcPtr, unsigned int Count)
{	void *RetVal=DstPtr;
	const char *Src=(const char *)SrcPtr;
	char *Dst=(char *)DstPtr;

	if(DstPtr < SrcPtr)	/* copy up */
	{	for(; Count != 0; Count--)
			*Dst++=*Src++; }
	else			/* copy down */
	{	Dst += (Count - 1);
		Src += (Count - 1);
		for(; Count != 0; Count--)
			*Dst--=*Src--; }
	return(RetVal); }