summaryrefslogtreecommitdiffstats
path: root/contrib/syslinux/syslinux-4.03/com32/lib/strspn.c
diff options
context:
space:
mode:
Diffstat (limited to 'contrib/syslinux/syslinux-4.03/com32/lib/strspn.c')
-rw-r--r--contrib/syslinux/syslinux-4.03/com32/lib/strspn.c60
1 files changed, 0 insertions, 60 deletions
diff --git a/contrib/syslinux/syslinux-4.03/com32/lib/strspn.c b/contrib/syslinux/syslinux-4.03/com32/lib/strspn.c
deleted file mode 100644
index 7a24820..0000000
--- a/contrib/syslinux/syslinux-4.03/com32/lib/strspn.c
+++ /dev/null
@@ -1,60 +0,0 @@
-/*
- * strspn, strcspn
- */
-
-#include <string.h>
-#include <stddef.h>
-#include <inttypes.h>
-#include <limits.h>
-
-#ifndef LONG_BIT
-#define LONG_BIT (CHAR_BIT*sizeof(long))
-#endif
-
-static void set_bit(unsigned long *bitmap, unsigned int bit)
-{
- bitmap[bit / LONG_BIT] |= 1UL << (bit % LONG_BIT);
-}
-
-static int test_bit(unsigned long *bitmap, unsigned int bit)
-{
- return (int)(bitmap[bit / LONG_BIT] >> (bit % LONG_BIT)) & 1;
-}
-
-static size_t strxspn(const char *s, const char *map, int parity)
-{
- unsigned long matchmap[((1 << CHAR_BIT) + LONG_BIT - 1) / LONG_BIT];
- size_t n = 0;
-
- /* Create bitmap */
- memset(matchmap, 0, sizeof matchmap);
- while (*map)
- set_bit(matchmap, (unsigned char)*map++);
-
- /* Make sure the null character never matches */
- if (parity)
- set_bit(matchmap, 0);
-
- /* Calculate span length */
- while (test_bit(matchmap, (unsigned char)*s++) ^ parity)
- n++;
-
- return n;
-}
-
-size_t strspn(const char *s, const char *accept)
-{
- return strxspn(s, accept, 0);
-}
-
-size_t strcspn(const char *s, const char *reject)
-{
- return strxspn(s, reject, 1);
-}
-
-char *strpbrk(const char *s, const char *accept)
-{
- const char *ss = s + strxspn(s, accept, 1);
-
- return *ss ? (char *)ss : NULL;
-}