aboutsummaryrefslogtreecommitdiffstats
path: root/memmove.c
blob: 2ffab60cec0beede983c3c9695a34b288c8acdd7 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
/*
 * Scratch implementation of memmove() in case your C library lacks one.
 *
 * For license terms, see the file COPYING in this directory.
 */
char *memmove(char *dst, register char *src, register int n)
{
    register char *svdst;

    if ((dst > src) && (dst < src + n)) 
    {
        src += n;
        for (svdst = dst + n; n-- > 0; )
            *--svdst = *--src;
    }
    else
    {
        for (svdst = dst; n-- > 0; )
            *svdst++ = *src++;
    }
    return dst;
}