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 * 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 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 41 srandom(unsigned seed) 42 { 43 srand(seed); 44 } 45 46 static long 47 random(void) 48 { 49 return (long) rand(); 50 } 51 #endif 52