X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=builtins%2Fbuiltins.c;h=9b20ce9d639275eec77e921a1902f356937049e6;hb=078d3b15dd160695cf0acfd7cd178c331834c968;hp=6cab6aa2c09340dc317afc6bc02c9de8ff9c2562;hpb=14e576785476dd318701c177d97fd266f730eee2;p=cparser diff --git a/builtins/builtins.c b/builtins/builtins.c index 6cab6aa..9b20ce9 100644 --- a/builtins/builtins.c +++ b/builtins/builtins.c @@ -1,9 +1,9 @@ static inline char *strchr(const char *s, int c) { - for ( ; *s != 0; ++s) { + do { if (*s == c) return (char*) s; - } + } while (*s++ != '\0'); return (char*) 0; } @@ -11,10 +11,10 @@ static inline char *strrchr(const char *s, int c) { const char *result = (const char*) 0; - for ( ; *s != 0; ++s) { + do { if (*s == c) result = s; - } + } while (*s++ != '\0'); return (char*) result; } @@ -24,7 +24,7 @@ static inline int strcmp(const char *s1, const char *s2) if(*s1 != *s2) break; } - return *s1 - *s2; + return (unsigned char)*s1 - (unsigned char)*s2; } static inline __SIZE_TYPE__ strlen(const char *s) @@ -34,3 +34,10 @@ static inline __SIZE_TYPE__ strlen(const char *s) result++; return result; } + +static inline char *strcpy(char *dest, const char *source) +{ + char *d = dest; + while ((*d++ = *source++) != '\0') {} + return dest; +}