Applied. However, it has no users...
On Tue, Aug 25, 2015 at 1:10 PM, Bartosz Golaszewski <[email protected]> wrote: > This function checks if given key can be found at the end of the string. > > Signed-off-by: Bartosz Golaszewski <[email protected]> > --- > include/libbb.h | 1 + > libbb/compare_string_array.c | 32 ++++++++++++++++++++++++++++++++ > 2 files changed, 33 insertions(+) > > diff --git a/include/libbb.h b/include/libbb.h > index abbd2c7..336fe65 100644 > --- a/include/libbb.h > +++ b/include/libbb.h > @@ -422,6 +422,7 @@ const char *bb_basename(const char *name) FAST_FUNC; > char *last_char_is(const char *s, int c) FAST_FUNC; > const char* endofname(const char *name) FAST_FUNC; > char *is_prefixed_with(const char *string, const char *key) FAST_FUNC; > +char *is_suffixed_with(const char *string, const char *key) FAST_FUNC; > > int ndelay_on(int fd) FAST_FUNC; > int ndelay_off(int fd) FAST_FUNC; > diff --git a/libbb/compare_string_array.c b/libbb/compare_string_array.c > index 901e61a..55a735e 100644 > --- a/libbb/compare_string_array.c > +++ b/libbb/compare_string_array.c > @@ -21,6 +21,24 @@ char* FAST_FUNC is_prefixed_with(const char *string, const > char *key) > return (char*)string; > } > > +/* > + * Return NULL if string is not suffixed with key. Return pointer to the > + * beginning of prefix key in string. If key is an empty string return > pointer > + * to the end of string. > + */ > +char* FAST_FUNC is_suffixed_with(const char *string, const char *key) > +{ > + size_t str_len = strlen(string), key_len = strlen(key); > + > + if (str_len >= key_len) { > + if (strcmp(string + str_len - key_len, key) == 0) { > + return (char*)key; > + } > + } > + > + return NULL; > +} > + > /* returns the array index of the string */ > /* (index of first match is returned, or -1) */ > int FAST_FUNC index_in_str_array(const char *const string_array[], const > char *key) > @@ -126,4 +144,18 @@ BBUNIT_DEFINE_TEST(is_prefixed_with) > BBUNIT_ENDTEST; > } > > +BBUNIT_DEFINE_TEST(is_suffixed_with) > +{ > + BBUNIT_ASSERT_STREQ("bar", is_suffixed_with("foo bar", "bar")); > + BBUNIT_ASSERT_STREQ("foo", is_suffixed_with("foo", "foo")); > + BBUNIT_ASSERT_STREQ("", is_suffixed_with("foo", "")); > + BBUNIT_ASSERT_STREQ("", is_suffixed_with("", "")); > + > + BBUNIT_ASSERT_NULL(is_suffixed_with("foo", "bar foo")); > + BBUNIT_ASSERT_NULL(is_suffixed_with("foo foo", "bar")); > + BBUNIT_ASSERT_NULL(is_suffixed_with("", "foo")); > + > + BBUNIT_ENDTEST; > +} > + > #endif /* ENABLE_UNIT_TEST */ > -- > 2.1.4 > > _______________________________________________ > busybox mailing list > [email protected] > http://lists.busybox.net/mailman/listinfo/busybox _______________________________________________ busybox mailing list [email protected] http://lists.busybox.net/mailman/listinfo/busybox
