mirror of
https://github.com/ApfelTeeSaft/reactos.git
synced 2026-09-02 12:23:31 +00:00
- Moved strspn and strcspn to the string library.
svn path=/trunk/; revision=4878
This commit is contained in:
@@ -1,4 +1,4 @@
|
||||
# $Id: Makefile,v 1.3 2003/06/01 19:23:18 hbirr Exp $
|
||||
# $Id: Makefile,v 1.4 2003/06/09 20:23:06 hbirr Exp $
|
||||
|
||||
PATH_TO_TOP = ../..
|
||||
|
||||
@@ -29,12 +29,14 @@ TARGET_OBJECTS = \
|
||||
strchr.o \
|
||||
strcmp.o \
|
||||
strcpy.o \
|
||||
strcspn.o \
|
||||
strlen.o \
|
||||
strncat.o \
|
||||
strncmp.o \
|
||||
strncpy.o \
|
||||
strnlen.o \
|
||||
strrchr.o \
|
||||
strspn.o \
|
||||
wcscat.o \
|
||||
wcschr.o \
|
||||
wcscmp.o \
|
||||
|
||||
@@ -0,0 +1,26 @@
|
||||
/*
|
||||
* $Id: strcspn.c,v 1.1 2003/06/09 20:23:06 hbirr Exp $
|
||||
*/
|
||||
|
||||
#include <string.h>
|
||||
|
||||
size_t strcspn(const char *s1, const char *s2)
|
||||
{
|
||||
unsigned long char_map[8] = {0, 0, 0, 0, 0, 0, 0, 0};
|
||||
register unsigned char* str = (unsigned char*)s1;
|
||||
|
||||
while (*s2)
|
||||
{
|
||||
char_map[*(unsigned char*)s2 / 32] |= (1 << (*(unsigned char*)s2 % 32));
|
||||
s2++;
|
||||
}
|
||||
|
||||
while (*str)
|
||||
{
|
||||
if (char_map[*str / 32] & (1 << (*str % 32)))
|
||||
break;
|
||||
str++;
|
||||
}
|
||||
|
||||
return str - (unsigned char*)s1;
|
||||
}
|
||||
@@ -0,0 +1,25 @@
|
||||
/*
|
||||
* $Id: strspn.c,v 1.1 2003/06/09 20:23:06 hbirr Exp $
|
||||
*/
|
||||
|
||||
#include <string.h>
|
||||
|
||||
size_t strspn(const char *s1, const char *s2)
|
||||
{
|
||||
unsigned long char_map[8] = {0, 0, 0, 0, 0, 0, 0, 0};
|
||||
register unsigned char* str = (unsigned char*)s1;
|
||||
|
||||
while (*s2)
|
||||
{
|
||||
char_map[*(unsigned char*)s2 / 32] |= (1 << (*(unsigned char*)s2 % 32));
|
||||
s2++;
|
||||
}
|
||||
|
||||
while (*str)
|
||||
{
|
||||
if (!(char_map[*str / 32] & (1 << (*str % 32))))
|
||||
break;
|
||||
str++;
|
||||
}
|
||||
return str - (unsigned char*)s1;
|
||||
}
|
||||
Reference in New Issue
Block a user