1
2 #include <stdlib.h>
3
4 /* C++Builder defines a "random" macro */
5 #undef random
6
7 #ifdef __native_client__
8 # define memset(dst, c, n) xmemset(dst, c, n)
9
10 static void *
xmemset(void * dst,int c,size_t n)11 xmemset(void *dst, int c, size_t n)
12 {
13 unsigned char * dst_ = (unsigned char *) dst;
14 const unsigned char c_ = (unsigned char) c;
15 size_t i;
16
17 for (i = 0; i < n; i++) {
18 dst_[i] = c_;
19 }
20 return dst;
21 }
22 #endif
23
24 #ifdef __EMSCRIPTEN__
25 # define strcmp(s1, s2) xstrcmp(s1, s2)
26
27 static int
strcmp(const char * s1,const char * s2)28 strcmp(const char *s1, const char *s2)
29 {
30 while (*s1 == *s2++) {
31 if (*s1++ == 0) {
32 return 0;
33 }
34 }
35 return *(unsigned char *) s1 - *(unsigned char *) --s2;
36 }
37 #endif
38
39 #ifdef _WIN32
40 static void
srandom(unsigned seed)41 srandom(unsigned seed)
42 {
43 srand(seed);
44 }
45
46 static long
random(void)47 random(void)
48 {
49 return (long) rand();
50 }
51 #endif
52