[PATCH v4 4/4] mem: add memends_str() helper for symmetry
Cody P Schafer <[email protected]> Sat, 5 Sep 2015 21:21:06 -0400
| Newsgroups | org.ozlabs.lists.ccan |
|---|---|
| Message-ID | <[email protected]> |
Signed-off-by: Cody P Schafer <[email protected]> --- ccan/mem/mem.h | 17 +++++++++++++++++ ccan/mem/test/api.c | 6 +++++- 2 files changed, 22 insertions(+), 1 deletion(-) diff --git a/ccan/mem/mem.h b/ccan/mem/mem.h index 8d6bba9..1afe508 100644 --- a/ccan/mem/mem.h +++ b/ccan/mem/mem.h @@ -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 */ diff --git a/ccan/mem/test/api.c b/ccan/mem/test/api.c index 89b6acb..9ec226d 100644 --- a/ccan/mem/test/api.c +++ b/ccan/mem/test/api.c @@ -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(); -- 2.5.1 _______________________________________________ ccan mailing list [email protected] https://lists.ozlabs.org/listinfo/ccan