summaryrefslogtreecommitdiffstats
path: root/mdk-stage1/dietlibc/lib/strlen.c
diff options
context:
space:
mode:
authorMystery Man <unknown@mandriva.org>2002-07-23 11:21:56 +0000
committerMystery Man <unknown@mandriva.org>2002-07-23 11:21:56 +0000
commit882ed9f801f347b87e162777b296d5be79b8b7ba (patch)
treeb3ee4e9e881f5bda8d243626aac2bea772f25e68 /mdk-stage1/dietlibc/lib/strlen.c
parent127a73d935d78af53d3dadd05d4636f6b717976d (diff)
downloaddrakx-882ed9f801f347b87e162777b296d5be79b8b7ba.tar
drakx-882ed9f801f347b87e162777b296d5be79b8b7ba.tar.gz
drakx-882ed9f801f347b87e162777b296d5be79b8b7ba.tar.bz2
drakx-882ed9f801f347b87e162777b296d5be79b8b7ba.tar.xz
drakx-882ed9f801f347b87e162777b296d5be79b8b7ba.zip
This commit was manufactured by cvs2svn to create tag 'V1_1_8_9mdk'.V1_1_8_9mdk
Diffstat (limited to 'mdk-stage1/dietlibc/lib/strlen.c')
-rw-r--r--mdk-stage1/dietlibc/lib/strlen.c47
1 files changed, 0 insertions, 47 deletions
diff --git a/mdk-stage1/dietlibc/lib/strlen.c b/mdk-stage1/dietlibc/lib/strlen.c
deleted file mode 100644
index 56c085dac..000000000
--- a/mdk-stage1/dietlibc/lib/strlen.c
+++ /dev/null
@@ -1,47 +0,0 @@
-#include <endian.h>
-#include "dietfeatures.h"
-#include <string.h>
-
-#ifdef WANT_SMALL_STRING_ROUTINES
-size_t strlen(const char *s) {
- register int i;
- if (!s) return 0;
- for (i=0; *s; ++s) ++i;
- return i;
-}
-#else
-static const unsigned long magic = 0x01010101;
-
-size_t strlen(const char *s)
-{
- const char *t = s;
- unsigned long word;
-
- if (!s) return 0;
-
- /* Byte compare up until word boundary */
- for (; ((unsigned long) t & 3); t++)
- if (!*t) return t - s;
-
- /* Word compare */
- do {
- word = *((unsigned long *) t); t += 4;
- word = (word - magic) &~ word;
- word &= (magic << 7);
- } while (word == 0);
-
-#if BYTE_ORDER == LITTLE_ENDIAN
- /* word & 0x80808080 == word */
- word = (word - 1) & (magic << 10);
- word += (word << 8) + (word << 16);
- t += word >> 26;
-#else
- if ((word & 0x80800000) == 0) {
- word <<= 16;
- t += 2;
- }
- if ((word & 0x80000000) == 0) t += 1;
-#endif
- return ((const char *) t) - 4 - s;
-}
-#endif