Ruby: missing/memmove.c Source File

Ruby 3.0.5p211 (2022-11-24 revision ba5cf0f7c52d4d35cc6a173c89eda98ceffa2dcf)

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
6void *
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}
missing.h
Prototype for *.c in ./missing, and for missing timeval struct.
memmove
void * memmove(void *d, const void *s, size_t n)
Definition: memmove.c:7