aboutsummaryrefslogtreecommitdiffstats
path: root/memmove.c
diff options
context:
space:
mode:
Diffstat (limited to 'memmove.c')
-rw-r--r--memmove.c22
1 files changed, 22 insertions, 0 deletions
diff --git a/memmove.c b/memmove.c
new file mode 100644
index 00000000..2ffab60c
--- /dev/null
+++ b/memmove.c
@@ -0,0 +1,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;
+}