diff options
Diffstat (limited to 'src/userspace/mlibc/string/strlen.c')
-rw-r--r-- | src/userspace/mlibc/string/strlen.c | 47 |
1 files changed, 24 insertions, 23 deletions
diff --git a/src/userspace/mlibc/string/strlen.c b/src/userspace/mlibc/string/strlen.c index c8d9c4f..f652495 100644 --- a/src/userspace/mlibc/string/strlen.c +++ b/src/userspace/mlibc/string/strlen.c @@ -2,33 +2,34 @@ size_t strlen(const char *str) { - const char *char_ptr; - const unsigned long int *longword_ptr; - unsigned long int longword, himagic, lomagic; + const char *char_ptr; + const unsigned long int *longword_ptr; + unsigned long int longword, himagic, lomagic; - for (char_ptr = str; ((unsigned long int) char_ptr & (sizeof(longword) - 1)) != 0; ++char_ptr) - if (*char_ptr == '\0') - return char_ptr - str; + for (char_ptr = str; ((unsigned long int)char_ptr & (sizeof(longword) - 1)) != 0; + ++char_ptr) + if (*char_ptr == '\0') + return char_ptr - str; - longword_ptr = (unsigned long int *) char_ptr; + longword_ptr = (unsigned long int *)char_ptr; - himagic = 0x80808080L; - lomagic = 0x01010101L; + himagic = 0x80808080L; + lomagic = 0x01010101L; - for (;;) { - longword = *longword_ptr++; + for (;;) { + longword = *longword_ptr++; - if (((longword - lomagic) & himagic) != 0) { - const char *cp = (const char *) (longword_ptr - 1); + if (((longword - lomagic) & himagic) != 0) { + const char *cp = (const char *)(longword_ptr - 1); - if (cp[0] == 0) - return cp - str; - if (cp[1] == 0) - return cp - str + 1; - if (cp[2] == 0) - return cp - str + 2; - if (cp[3] == 0) - return cp - str + 3; - } - } + if (cp[0] == 0) + return cp - str; + if (cp[1] == 0) + return cp - str + 1; + if (cp[2] == 0) + return cp - str + 2; + if (cp[3] == 0) + return cp - str + 3; + } + } }
\ No newline at end of file |