strbuf: add strbuf_tolower function
authorJeff King <peff@peff.net>
Fri, 23 May 2014 20:03:47 +0000 (16:03 -0400)
committerJunio C Hamano <gitster@pobox.com>
Fri, 23 May 2014 21:09:58 +0000 (14:09 -0700)
This is a convenience wrapper to call tolower on each
character of the string.

This makes config's lowercase() function obsolete, though
note that because we have a strbuf, we are careful to
operate over the whole strbuf, rather than assuming that a
NUL is the end-of-string.

We could continue to offer a pure-string lowercase, but
there would be no callers (in most pure-string cases, we
actually duplicate and lowercase the duplicate, for which we
have the xstrdup_tolower wrapper).

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Documentation/technical/api-strbuf.txt
config.c
strbuf.c
strbuf.h
index 3350d97dda2408f92dc44c1e3216facc50257a50..8480f8902d96b55727b99e9bac9dc738f12c12ca 100644 (file)
@@ -125,6 +125,10 @@ Functions
 
        Strip whitespace from the end of a string.
 
+`strbuf_tolower`::
+
+       Lowercase each character in the buffer using `tolower`.
+
 `strbuf_cmp`::
 
        Compare two buffers. Returns an integer less than, equal to, or greater
index a30cb5c07db18a5ac16c1c98b6600c9fe6dc1b73..03ce5c6844705f94b17ff839d9610e4a30609fed 100644 (file)
--- a/config.c
+++ b/config.c
@@ -147,12 +147,6 @@ int git_config_include(const char *var, const char *value, void *data)
        return ret;
 }
 
-static void lowercase(char *p)
-{
-       for (; *p; p++)
-               *p = tolower(*p);
-}
-
 void git_config_push_parameter(const char *text)
 {
        struct strbuf env = STRBUF_INIT;
@@ -180,7 +174,7 @@ int git_config_parse_parameter(const char *text,
                strbuf_list_free(pair);
                return error("bogus config parameter: %s", text);
        }
-       lowercase(pair[0]->buf);
+       strbuf_tolower(pair[0]);
        if (fn(pair[0]->buf, pair[1] ? pair[1]->buf : NULL, data) < 0) {
                strbuf_list_free(pair);
                return -1;
index ee96dcfb816625436582833d812a7156513d5d39..1a673fc72ee4d8cf748c7519b5261126e2b096c2 100644 (file)
--- a/strbuf.c
+++ b/strbuf.c
@@ -106,6 +106,13 @@ void strbuf_ltrim(struct strbuf *sb)
        sb->buf[sb->len] = '\0';
 }
 
+void strbuf_tolower(struct strbuf *sb)
+{
+       char *p = sb->buf, *end = sb->buf + sb->len;
+       for (; p < end; p++)
+               *p = tolower(*p);
+}
+
 struct strbuf **strbuf_split_buf(const char *str, size_t slen,
                                 int terminator, int max)
 {
index 39c14cfa384c5154abd96899a7c02417295f8555..6b6f745e01c3eb0cfa5afd71365c6bfab4e78c4d 100644 (file)
--- a/strbuf.h
+++ b/strbuf.h
@@ -45,6 +45,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 void strbuf_tolower(struct strbuf *sb);
 extern int strbuf_cmp(const struct strbuf *, const struct strbuf *);
 
 /*