source: vendor/python/2.5/Python/memmove.c

Last change on this file was 3225, checked in by bird, 18 years ago

Python 2.5

File size: 439 bytes
Line 
1
2/* A perhaps slow but I hope correct implementation of memmove */
3
4extern char *memcpy(char *, char *, int);
5
6char *
7memmove(char *dst, char *src, int n)
8{
9 char *realdst = dst;
10 if (n <= 0)
11 return dst;
12 if (src >= dst+n || dst >= src+n)
13 return memcpy(dst, src, n);
14 if (src > dst) {
15 while (--n >= 0)
16 *dst++ = *src++;
17 }
18 else if (src < dst) {
19 src += n;
20 dst += n;
21 while (--n >= 0)
22 *--dst = *--src;
23 }
24 return realdst;
25}
Note: See TracBrowser for help on using the repository browser.