sm64

A Super Mario 64 decompilation
Log | Files | Refs | README | LICENSE

string.c (965B)


      1 #include "libultra_internal.h"
      2 #include <string.h>
      3 
      4 #ifdef VERSION_CN
      5 
      6 char *strchr(const char *str, s32 ch) {
      7     char c = ch;
      8     while (*str != c) {
      9         if (*str == 0) {
     10             return NULL;
     11         }
     12         str++;
     13     }
     14     return (char *) str;
     15 }
     16 
     17 size_t strlen(const char *str) {
     18     const char *ptr = str;
     19     while (*ptr) {
     20         ptr++;
     21     }
     22     return ptr - str;
     23 }
     24 
     25 #endif
     26 
     27 void *memcpy(void *dst, const void *src, size_t size) {
     28     u8 *_dst = dst;
     29     const u8 *_src = src;
     30     while (size > 0) {
     31         *_dst++ = *_src++;
     32         size--;
     33     }
     34     return dst;
     35 }
     36 
     37 #ifndef VERSION_CN
     38 
     39 size_t strlen(const char *str) {
     40     const u8 *ptr = (const u8 *) str;
     41     while (*ptr) {
     42         ptr++;
     43     }
     44     return (const char *) ptr - str;
     45 }
     46 
     47 char *strchr(const char *str, s32 ch) {
     48     u8 c = ch;
     49     while (*(u8 *)str != c) {
     50         if (*(u8 *)str == 0) {
     51             return NULL;
     52         }
     53         str++;
     54     }
     55     return (char *) str;
     56 }
     57 
     58 #endif