Ruby 3.1.3p185 (2022-11-24 revision 1a6b16756e0ba6b95ab71a441357ed5484e33498)
memcmp.c
1/* public domain rewrite of memcmp(3) */
2
3#include "ruby/missing.h"
4#include <stddef.h>
5
6int
7memcmp(const void *s1, const void *s2, size_t len)
8{
9 register unsigned char *a = (unsigned char*)s1;
10 register unsigned char *b = (unsigned char*)s2;
11 register int tmp;
12
13 for (; len; --len) {
14 tmp = *a++ - *b++;
15 if (tmp)
16 return tmp;
17 }
18 return 0;
19}