Ruby  2.0.0p594(2014-10-27revision48167)
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 }
ssize_t n
Definition: bigdecimal.c:5676
RUBY_EXTERN void * memmove(void *, const void *, size_t)
Definition: memmove.c:7
d
Definition: strlcat.c:58
register char * s
Definition: os2.c:56
VALUE src
Definition: tcltklib.c:7952
char * dst
Definition: tcltklib.c:9867