Re: [PATCH v4 05/17] strbuf: add strbuf_isspace()

2014-01-30 Thread Eric Sunshine
On Thu, Jan 30, 2014 at 1:49 AM, Christian Couder
chrisc...@tuxfamily.org wrote:
 This helper function checks if a strbuf
 contains only space chars or not.

 Signed-off-by: Christian Couder chrisc...@tuxfamily.org
 ---
 diff --git a/strbuf.c b/strbuf.c
 index 83caf4a..2124bb8 100644
 --- a/strbuf.c
 +++ b/strbuf.c
 @@ -124,6 +124,13 @@ void strbuf_ltrim(struct strbuf *sb)
 sb-buf[sb-len] = '\0';
  }

 +int strbuf_isspace(struct strbuf *sb)
 +{
 +   char *b;
 +   for (b = sb-buf; *b  isspace(*b); b++);

Quoting from the strbuf documentation:

... strbufs may have embedded NULs. An strbuf is NUL
terminated for convenience, but no function in the
strbuf API actually relies on the string being free of
NULs.

So, the termination condition (*b) of this loop is questionable.
Looping from 0 to  sb-len makes more sense.

 +   return !*b;

Ditto for the return. This will incorrectly return 'true' if an
embedded NUL is encountered.

 +}
 +
  struct strbuf **strbuf_split_buf(const char *str, size_t slen,
  int terminator, int max)
  {
--
To unsubscribe from this list: send the line unsubscribe git in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[PATCH v4 05/17] strbuf: add strbuf_isspace()

2014-01-29 Thread Christian Couder
This helper function checks if a strbuf
contains only space chars or not.

Signed-off-by: Christian Couder chrisc...@tuxfamily.org
---
 strbuf.c | 7 +++
 strbuf.h | 1 +
 2 files changed, 8 insertions(+)

diff --git a/strbuf.c b/strbuf.c
index 83caf4a..2124bb8 100644
--- a/strbuf.c
+++ b/strbuf.c
@@ -124,6 +124,13 @@ void strbuf_ltrim(struct strbuf *sb)
sb-buf[sb-len] = '\0';
 }
 
+int strbuf_isspace(struct strbuf *sb)
+{
+   char *b;
+   for (b = sb-buf; *b  isspace(*b); b++);
+   return !*b;
+}
+
 struct strbuf **strbuf_split_buf(const char *str, size_t slen,
 int terminator, int max)
 {
diff --git a/strbuf.h b/strbuf.h
index 73e80ce..02bff3a 100644
--- a/strbuf.h
+++ b/strbuf.h
@@ -42,6 +42,7 @@ static inline void strbuf_setlen(struct strbuf *sb, size_t 
len) {
 extern void strbuf_trim(struct strbuf *);
 extern void strbuf_rtrim(struct strbuf *);
 extern void strbuf_ltrim(struct strbuf *);
+extern int strbuf_isspace(struct strbuf *);
 extern int strbuf_cmp(const struct strbuf *, const struct strbuf *);
 
 /*
-- 
1.8.5.2.201.gacc5987


--
To unsubscribe from this list: send the line unsubscribe git in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html