Mercurial > cpython-lru_cache-weakref
annotate Python/memmove.c @ 31514:545229dfd909 legacy-trunk
This is my patch #876198 plus a NEWS entry and a header frob.
Remove the ability to use (from C) arbitrary objects supporting the
read buffer interface as the co_code member of code objects.
| author | Michael W. Hudson <mwh@python.net> |
|---|---|
| date | Thu, 12 Feb 2004 15:28:27 +0000 |
| parents | 6f6f965c5e2d |
| children |
| rev | line source |
|---|---|
| 1449 | 1 |
| 2 /* A perhaps slow but I hope correct implementation of memmove */ | |
| 3 | |
|
13658
f79434ee41fa
Mass ANSIfication of function definitions. Doesn't cover all 'extern'
Thomas Wouters <thomas@python.org>
parents:
13256
diff
changeset
|
4 extern char *memcpy(char *, char *, int); |
| 1449 | 5 |
| 6 char * | |
|
13658
f79434ee41fa
Mass ANSIfication of function definitions. Doesn't cover all 'extern'
Thomas Wouters <thomas@python.org>
parents:
13256
diff
changeset
|
7 memmove(char *dst, char *src, int n) |
| 1449 | 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 } |
