Add a wrapper around skip_whitespace() which evaluates to true if given string contains only whitespace characters.
Signed-off-by: Bartosz Golaszewski <bartekg...@gmail.com> --- include/libbb.h | 2 ++ libbb/skip_whitespace.c | 17 +++++++++++++++++ 2 files changed, 19 insertions(+) diff --git a/include/libbb.h b/include/libbb.h index 136d4fd..478c030 100644 --- a/include/libbb.h +++ b/include/libbb.h @@ -337,6 +337,8 @@ extern char *skip_whitespace(const char *) FAST_FUNC; extern char *skip_non_whitespace(const char *) FAST_FUNC; extern char *skip_dev_pfx(const char *tty_name) FAST_FUNC; +#define str_isblank(str) (*skip_whitespace(str) == '\0') + extern char *strrstr(const char *haystack, const char *needle) FAST_FUNC; //TODO: supply a pointer to char[11] buffer (avoid statics)? diff --git a/libbb/skip_whitespace.c b/libbb/skip_whitespace.c index b6cfbba..3df0fa9 100644 --- a/libbb/skip_whitespace.c +++ b/libbb/skip_whitespace.c @@ -37,3 +37,20 @@ char* FAST_FUNC skip_dev_pfx(const char *tty_name) tty_name += 5; return (char*)tty_name; } + +#if ENABLE_UNIT_TEST + +BBUNIT_DEFINE_TEST(str_isblank) +{ + BBUNIT_ASSERT_TRUE(str_isblank(" \t\t\n\v\f\r")); + BBUNIT_ASSERT_TRUE(str_isblank("")); + BBUNIT_ASSERT_TRUE(str_isblank(" ")); + BBUNIT_ASSERT_TRUE(str_isblank("\n\t ")); + + BBUNIT_ASSERT_FALSE(str_isblank(" \t\t e")); + BBUNIT_ASSERT_FALSE(str_isblank("ee ")); + + BBUNIT_ENDTEST; +} + +#endif /* ENABLE_UNIT_TEST */ -- 2.1.4 _______________________________________________ busybox mailing list busybox@busybox.net http://lists.busybox.net/mailman/listinfo/busybox