diff options
author | cinap_lenrek <cinap_lenrek@localhost> | 2011-05-03 11:25:13 +0000 |
---|---|---|
committer | cinap_lenrek <cinap_lenrek@localhost> | 2011-05-03 11:25:13 +0000 |
commit | 458120dd40db6b4df55a4e96b650e16798ef06a0 (patch) | |
tree | 8f82685be24fef97e715c6f5ca4c68d34d5074ee /sys/src/cmd/python/Python/memmove.c | |
parent | 3a742c699f6806c1145aea5149bf15de15a0afd7 (diff) |
add hg and python
Diffstat (limited to 'sys/src/cmd/python/Python/memmove.c')
-rw-r--r-- | sys/src/cmd/python/Python/memmove.c | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/sys/src/cmd/python/Python/memmove.c b/sys/src/cmd/python/Python/memmove.c new file mode 100644 index 000000000..6fb0dad93 --- /dev/null +++ b/sys/src/cmd/python/Python/memmove.c @@ -0,0 +1,25 @@ + +/* A perhaps slow but I hope correct implementation of memmove */ + +extern char *memcpy(char *, char *, int); + +char * +memmove(char *dst, char *src, int n) +{ + char *realdst = dst; + if (n <= 0) + return dst; + if (src >= dst+n || dst >= src+n) + return memcpy(dst, src, n); + if (src > dst) { + while (--n >= 0) + *dst++ = *src++; + } + else if (src < dst) { + src += n; + dst += n; + while (--n >= 0) + *--dst = *--src; + } + return realdst; +} |