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>
This commit is contained in:
Jeff King 2014-06-30 13:01:51 -04:00 коммит произвёл Junio C Hamano
Родитель 592ce20820
Коммит 6dda4e60f2
1 изменённых файлов: 9 добавлений и 0 удалений

Просмотреть файл

@ -47,6 +47,15 @@ extern void strbuf_rtrim(struct strbuf *);
extern void strbuf_ltrim(struct strbuf *); extern void strbuf_ltrim(struct strbuf *);
extern int strbuf_cmp(const struct strbuf *, const 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. * Split str (of length slen) at the specified terminator character.
* Return a null-terminated array of pointers to strbuf objects * Return a null-terminated array of pointers to strbuf objects