Ruby  2.5.0dev(2017-10-22revision60238)
memmove.c
Go to the documentation of this file.
1 /* public domain rewrite of memcmp(3) */
2 
3 #include "ruby/missing.h"
4 #include <stddef.h>
5 
6 void *
7 memmove(void *d, const void *s, size_t n)
8 {
9  char *dst = (char *)d;
10  const char *src = (const char *)s;
11 
12  if (src < dst) {
13  src += n;
14  dst += n;
15  for (; n; --n)
16  *--dst = *--src;
17  }
18  else if (dst < src)
19  for (; n; --n)
20  *dst++ = *src++;
21  return d;
22 }
void * memmove(void *d, const void *s, size_t n)
Definition: memmove.c:7