/* The strpbrk function locates the first occurrence in the string pointed to by s1 of any character from the string pointed to by s2. */
char* strpbrk(const char *s1, const char *s2)
/* The strpbrk function locates the first occurrence in the string pointed to by s1 of any character from the string pointed to by s2. */
char* strpbrk(const char *s1, const char *s2)
{
  UINT8  bitmap[(((UCHAR_MAX + 1) / CHAR_BIT) + (CHAR_BIT - 1)) & ~7U];
  UINT8  bit;
  int    index;
  BuildBitmap (bitmap, s2, sizeof (bitmap) / sizeof (UINT64));
  for ( ; *s1 != '\0'; ++s1) {
    index = WHICH8 (*s1);
    bit   = WHICH_BIT (*s1);
    if ((bitmap[index] & bit) != 0) {
      return (char *)s1;
    }
  }
  return NULL;
}