1 static inline char *strchr(const char *s, int c)
6 } while (*s++ != '\0');
10 static inline char *strrchr(const char *s, int c)
12 const char *result = (const char*) 0;
17 } while (*s++ != '\0');
18 return (char*) result;
21 static inline int strcmp(const char *s1, const char *s2)
23 for( ; *s1 != 0; ++s1, ++s2) {
27 return (unsigned char)*s1 - (unsigned char)*s2;
31 static inline __SIZE_TYPE__ strlen(const char *s)
33 __SIZE_TYPE__ result = 0;
40 static inline __SIZE_TYPE__ strlen(const char *str)
43 const unsigned long *long_ptr;
44 unsigned long int longword, magic_bits, himagic, lomagic;
47 for (char_ptr = str; ((unsigned long int) char_ptr & (sizeof(longword)-1)) != 0; ++char_ptr) {
48 if (*char_ptr == '\0')
49 return char_ptr - str;
52 long_ptr = (unsigned long int*) char_ptr;
53 magic_bits = 0x7efefeffL;
54 himagic = 0x80808080L;
55 lomagic = 0x01010101L;
56 if (sizeof(longword) > 4)
60 longword = *long_ptr++;
61 if (((longword - lomagic) & himagic) != 0) {
62 const char *cp = (const char*) (long_ptr - 1);
75 static inline char *strcpy(char *dest, const char *source)
78 while ((*d++ = *source++) != '\0') {}