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