scc

simple c99 compiler
git clone git://git.simple-cc.org/scc
Log | Files | Refs | Submodules | README | LICENSE

commit 281fd80448d875367f4be096a00ebbc847a06c1b
parent 5a4639f2e13052cfd4ff099cf1fcee020af58a55
Author: Roberto E. Vargas Caballero <k0ga@shike2.net>
Date:   Wed, 26 Mar 2025 14:41:30 +0100

libc/string: Simplify strpbrk()

Strpbrk() is trivial if strcspn() is used.

Diffstat:
Msrc/libc/string/strpbrk.c | 14++------------
1 file changed, 2 insertions(+), 12 deletions(-)

diff --git a/src/libc/string/strpbrk.c b/src/libc/string/strpbrk.c @@ -5,16 +5,6 @@ char * strpbrk(const char *s1, const char *s2) { - const unsigned char *s = (const unsigned char *) s1; - const unsigned char *accept = (const unsigned char *) s2; - unsigned ch; - char map[__NUMCHARS] = {0}; - - while ((ch = *accept++) != 0) - map[ch] = 1; - - while ((ch = *s) != 0 && !map[ch]) - s++; - - return (ch == '\0') ? NULL : (char *) s; + s1 += strcspn(s1, s2); + return (*s1 != '\0') ? (char *) s1 : NULL; }