OSDN Git Service

strbuf: implement strbuf_strip_suffix
authorJeff King <peff@peff.net>
Mon, 30 Jun 2014 17:01:51 +0000 (13:01 -0400)
committerJunio C Hamano <gitster@pobox.com>
Mon, 30 Jun 2014 20:43:32 +0000 (13:43 -0700)
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>
strbuf.h

index 39c14cf..1d768c1 100644 (file)
--- 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