string-util: add strstrafter()
strstrafter() is like strstr() but returns a pointer to the first character *after* the found substring, not on the substring itself. Quite often this is what we actually want. Inspired by #27267 I think it makes sense to add a helper for this, to avoid the potentially fragile manual pointer increment afterwards.
This commit is contained in:
@@ -1247,4 +1247,21 @@ TEST(find_line_startswith) {
|
||||
assert_se(!find_line_startswith(emptystring, "x"));
|
||||
}
|
||||
|
||||
TEST(strstrafter) {
|
||||
static const char buffer[] = "abcdefghijklmnopqrstuvwxyz";
|
||||
|
||||
assert_se(!strstrafter(NULL, NULL));
|
||||
assert_se(!strstrafter("", NULL));
|
||||
assert_se(!strstrafter(NULL, ""));
|
||||
assert_se(streq_ptr(strstrafter("", ""), ""));
|
||||
|
||||
assert_se(strstrafter(buffer, "a") == buffer + 1);
|
||||
assert_se(strstrafter(buffer, "") == buffer);
|
||||
assert_se(strstrafter(buffer, "ab") == buffer + 2);
|
||||
assert_se(strstrafter(buffer, "cde") == buffer + 5);
|
||||
assert_se(strstrafter(buffer, "xyz") == strchr(buffer, 0));
|
||||
assert_se(strstrafter(buffer, buffer) == strchr(buffer, 0));
|
||||
assert_se(!strstrafter(buffer, "-"));
|
||||
}
|
||||
|
||||
DEFINE_TEST_MAIN(LOG_DEBUG);
|
||||
|
||||
Reference in New Issue
Block a user