[prev in list] [next in list] [prev in thread] [next in thread]
List: busybox
Subject: [RFC/PATCH v2 1/5] libbb: add str_isblank() macro
From: Bartosz Golaszewski <bartekgola () gmail ! com>
Date: 2015-08-21 14:23:39
Message-ID: 1440167023-31099-2-git-send-email-bartekgola () gmail ! com
[Download RAW message or body]
Add a wrapper around skip_whitespace() which evaluates to true if given
string contains only whitespace characters.
Signed-off-by: Bartosz Golaszewski <bartekgola@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
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic