1 #include <stdlib.h> 2 #include <mbstring.h> 3 4 int isleadbyte(int byte); 5 6 /* 7 * not correct 8 * 9 * @implemented 10 */ 11 unsigned char * _mbspbrk(const unsigned char *s1, const unsigned char *s2) 12 { 13 const unsigned char* p; 14 15 while (*s1) 16 { 17 for (p = s2; *p; p += (isleadbyte(*p) ? 2 : 1)) 18 { 19 if (*p == *s1) 20 if (!isleadbyte(*p) || (*(p+1) == *(s1 + 1))) 21 return (unsigned char*)s1; 22 } 23 s1 += (isleadbyte(*s1) ? 2 : 1); 24 } 25 return NULL; 26 } 27