1169689Skan/* Public domain.  */
2169689Skan#include <stddef.h>
3169689Skan
4169689Skanvoid *
5169689Skanmemmove (void *dest, const void *src, size_t len)
6169689Skan{
7169689Skan  char *d = dest;
8169689Skan  const char *s = src;
9169689Skan  if (d < s)
10169689Skan    while (len--)
11169689Skan      *d++ = *s++;
12169689Skan  else
13169689Skan    {
14169689Skan      char *lasts = s + (len-1);
15169689Skan      char *lastd = d + (len-1);
16169689Skan      while (len--)
17169689Skan        *lastd-- = *lasts--;
18169689Skan    }
19169689Skan  return dest;
20169689Skan}
21