From: Christoph Mallon Date: Fri, 25 Jul 2008 10:25:40 +0000 (+0000) Subject: Fix builtin implementations. X-Git-Url: http://nsz.repo.hu/git/?a=commitdiff_plain;h=97620a36d173883343ad51438f04711eff04981d;p=cparser Fix builtin implementations. [r20685] --- diff --git a/builtins/builtins.c b/builtins/builtins.c index f229513..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) @@ -38,8 +38,6 @@ static inline __SIZE_TYPE__ strlen(const char *s) static inline char *strcpy(char *dest, const char *source) { char *d = dest; - for ( ; *source != 0; ++d, ++source) { - *d = *source; - } + while ((*d++ = *source++) != '\0') {} return dest; }