Commit 4ad51447 authored by Cody P Schafer's avatar Cody P Schafer Committed by David Gibson

mem: add memends_str() helper for symmetry

Signed-off-by: default avatarCody P Schafer <dev@codyps.com>
Signed-off-by: default avatarDavid Gibson <david@gibson.dropbear.id.au>
parent 2c20abc2
......@@ -183,4 +183,21 @@ static inline bool memends(const void *s, size_t s_len, const void *suffix, size
suffix, suffix_len) == 0);
}
/**
* memends_str - Does this byte array end with a string suffix?
* @a: byte array
* @al: length in bytes
* @s: string suffix
*
* Example:
* if (memends_str(somebytes, bytes_len, "It")) {
* printf("somebytes ends with with 'It'\n");
* }
*/
PURE_FUNCTION
static inline bool memends_str(const void *a, size_t al, const char *s)
{
return memends(a, al, s, strlen(s));
}
#endif /* CCAN_MEM_H */
......@@ -12,7 +12,7 @@ int main(void)
char scan2[] = "\0\0\0b";
/* This is how many tests you plan to run */
plan_tests(42);
plan_tests(46);
ok1(memmem(haystack1, sizeof(haystack1), needle1, 2) == haystack1);
ok1(memmem(haystack1, sizeof(haystack1), needle1, 3) == NULL);
......@@ -71,6 +71,10 @@ int main(void)
ok1(!memends(S("a\0bcdef"), S("a\0b")));
ok1(memends(S("a\0bcdef"), S("ef")));
ok1(memends_str(S("abcdef"), "abcdef"));
ok1(!memends_str(S("abcde\0f"), "d\0f"));
ok1(!memends_str(S("a\0bcdef"), "a"));
ok1(memends_str(S("a\0bcdef"), "ef"));
/* This exits depending on whether all tests passed */
return exit_status();
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment