On Sun, Feb 25, 2024 at 6:27 AM René Scharfe <l.s.r@xxxxxx> wrote: > Replace the custom function is_in() for looking up a character in the > specification string with memchr(3) and sizeof. This is shorter, > simpler and allows NUL anywhere in the string, which may come in handy > if we ever want to support more character classes that contain it. > > Getting the string size using sizeof only works in a macro and with a > string constant, but that's exactly what we have and I don't see it > changing anytime soon. > > Signed-off-by: René Scharfe <l.s.r@xxxxxx> > --- > diff --git a/t/unit-tests/t-ctype.c b/t/unit-tests/t-ctype.c > @@ -1,23 +1,11 @@ > /* Macro to test a character type */ > #define TEST_CTYPE_FUNC(func, string) \ Taking into consideration the commit message warning about string constants, would it make sense to update the comment to mention that limitation? /* Test a character type. (Only use with string constants.) */ #define TEST_CTYPE_FUNC(func, string) \ > static void test_ctype_##func(void) { \ > for (int i = 0; i < 256; i++) { \ > - if (!check_int(func(i), ==, is_in(string, i))) \ > + int expect = !!memchr(string, i, sizeof(string) - 1); \ > + if (!check_int(func(i), ==, expect)) \ > test_msg(" i: 0x%02x", i); \ > } \ > if (!check(!func(EOF))) \