ANSI C version from Chris
authorKeith Bostic <bostic@ucbvax.Berkeley.EDU>
Fri, 18 May 1990 01:44:16 +0000 (17:44 -0800)
committerKeith Bostic <bostic@ucbvax.Berkeley.EDU>
Fri, 18 May 1990 01:44:16 +0000 (17:44 -0800)
SCCS-vsn: lib/libc/string/strpbrk.c 5.6

usr/src/lib/libc/string/strpbrk.c

index f94ecb5..2acffcb 100644 (file)
  */
 
 #if defined(LIBC_SCCS) && !defined(lint)
  */
 
 #if defined(LIBC_SCCS) && !defined(lint)
-static char sccsid[] = "@(#)strpbrk.c  5.5 (Berkeley) %G%";
+static char sccsid[] = "@(#)strpbrk.c  5.6 (Berkeley) %G%";
 #endif /* LIBC_SCCS and not lint */
 
 #endif /* LIBC_SCCS and not lint */
 
+#include <string.h>
+#include <sys/stdc.h>
+
+/*
+ * Find the first occurrence in s1 of a character in s2 (excluding NUL).
+ */
 char *
 strpbrk(s1, s2)
 char *
 strpbrk(s1, s2)
-       register char *s1, *s2;
+       register const char *s1, *s2;
 {
 {
+       register const char *scanp;
        register int c, sc;
        register int c, sc;
-       register char *scanp;
 
 
-       for (; c = *s1; ++s1)
-               for (scanp = s2; sc = *scanp++;)
+       while ((c = *s1++) != 0) {
+               for (scanp = s2; (sc = *scanp++) != 0;)
                        if (sc == c)
                        if (sc == c)
-                               return(s1);
-       return(0);
+                               return ((char *)(s1 - 1));
+       }
+       return (NULL);
 }
 }