From: Jeff King <peff@peff.net>
Date: Mon, 30 Jun 2014 17:01:51 +0000 (-0400)
Subject: strbuf: implement strbuf_strip_suffix
X-Git-Tag: v2.1.0-rc0~40^2~2
X-Git-Url: https://git.lorimer.id.au/gitweb.git/diff_plain/6dda4e60f2c3c309de6e3fe1b86a47846a86dabf

strbuf: implement strbuf_strip_suffix

You can almost get away with just calling "strip_suffix_mem"
on a strbuf's buf and len fields. But we also need to move
the NUL-terminator to satisfy strbuf's invariants. Let's
provide a convenience wrapper that handles this.

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
---

diff --git a/strbuf.h b/strbuf.h
index 39c14cfa38..1d768c1124 100644
--- a/strbuf.h
+++ b/strbuf.h
@@ -47,6 +47,15 @@ extern void strbuf_rtrim(struct strbuf *);
 extern void strbuf_ltrim(struct strbuf *);
 extern int strbuf_cmp(const struct strbuf *, const struct strbuf *);
 
+static inline int strbuf_strip_suffix(struct strbuf *sb, const char *suffix)
+{
+	if (strip_suffix_mem(sb->buf, &sb->len, suffix)) {
+		strbuf_setlen(sb, sb->len);
+		return 1;
+	} else
+		return 0;
+}
+
 /*
  * Split str (of length slen) at the specified terminator character.
  * Return a null-terminated array of pointers to strbuf objects