Re: [PATCH v4 12/17] strbuf: add strbuf_replace()

2014-01-30 Thread Eric Sunshine
On Thu, Jan 30, 2014 at 1:49 AM, Christian Couder
chrisc...@tuxfamily.org wrote:
 Signed-off-by: Christian Couder chrisc...@tuxfamily.org
 ---
 diff --git a/strbuf.c b/strbuf.c
 index 2124bb8..e45e513 100644
 --- a/strbuf.c
 +++ b/strbuf.c
 @@ -197,6 +197,13 @@ void strbuf_splice(struct strbuf *sb, size_t pos, size_t 
 len,
 strbuf_setlen(sb, sb-len + dlen - len);
  }

 +void strbuf_replace(struct strbuf *sb, const char *a, const char *b)
 +{
 +   char *ptr = strstr(sb-buf, a);

This could be 'const char *'.

 +   if (ptr)
 +   strbuf_splice(sb, ptr - sb-buf, strlen(a), b, strlen(b));
 +}
 +
  void strbuf_insert(struct strbuf *sb, size_t pos, const void *data, size_t 
 len)
  {
 strbuf_splice(sb, pos, 0, data, len);
 diff --git a/strbuf.h b/strbuf.h
 index 02bff3a..38faf70 100644
 --- a/strbuf.h
 +++ b/strbuf.h
 @@ -111,6 +111,9 @@ extern void strbuf_remove(struct strbuf *, size_t pos, 
 size_t len);
  extern void strbuf_splice(struct strbuf *, size_t pos, size_t len,
const void *, size_t);

 +/* first occurence of a replaced with b */
 +extern void strbuf_replace(struct strbuf *, const char *a, const char *b);

Updating Documentation/technical/api-strbuf.txt to mention this new
function would be appropriate.

  extern void strbuf_add_commented_lines(struct strbuf *out, const char *buf, 
 size_t size);

  extern void strbuf_add(struct strbuf *, const void *, size_t);
--
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 12/17] strbuf: add strbuf_replace()

2014-01-29 Thread Christian Couder
Signed-off-by: Christian Couder chrisc...@tuxfamily.org
---
 strbuf.c | 7 +++
 strbuf.h | 3 +++
 2 files changed, 10 insertions(+)

diff --git a/strbuf.c b/strbuf.c
index 2124bb8..e45e513 100644
--- a/strbuf.c
+++ b/strbuf.c
@@ -197,6 +197,13 @@ void strbuf_splice(struct strbuf *sb, size_t pos, size_t 
len,
strbuf_setlen(sb, sb-len + dlen - len);
 }
 
+void strbuf_replace(struct strbuf *sb, const char *a, const char *b)
+{
+   char *ptr = strstr(sb-buf, a);
+   if (ptr)
+   strbuf_splice(sb, ptr - sb-buf, strlen(a), b, strlen(b));
+}
+
 void strbuf_insert(struct strbuf *sb, size_t pos, const void *data, size_t len)
 {
strbuf_splice(sb, pos, 0, data, len);
diff --git a/strbuf.h b/strbuf.h
index 02bff3a..38faf70 100644
--- a/strbuf.h
+++ b/strbuf.h
@@ -111,6 +111,9 @@ extern void strbuf_remove(struct strbuf *, size_t pos, 
size_t len);
 extern void strbuf_splice(struct strbuf *, size_t pos, size_t len,
   const void *, size_t);
 
+/* first occurence of a replaced with b */
+extern void strbuf_replace(struct strbuf *, const char *a, const char *b);
+
 extern void strbuf_add_commented_lines(struct strbuf *out, const char *buf, 
size_t size);
 
 extern void strbuf_add(struct strbuf *, const void *, size_t);
-- 
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