From aa993f76ca556b06194e7da0f56afcf30cb5ee5e Mon Sep 17 00:00:00 2001 From: Edward Thomson Date: Mon, 13 Sep 2021 11:40:38 -0400 Subject: buf: introduce `git_buf_truncate_at` --- src/buffer.c | 7 +++++++ src/buffer.h | 1 + 2 files changed, 8 insertions(+) diff --git a/src/buffer.c b/src/buffer.c index ab2a6139a..a57df1284 100644 --- a/src/buffer.c +++ b/src/buffer.c @@ -600,6 +600,13 @@ void git_buf_shorten(git_buf *buf, size_t amount) git_buf_clear(buf); } +void git_buf_truncate_at_char(git_buf *buf, char separator) +{ + ssize_t idx = git_buf_find(buf, separator); + if (idx >= 0) + git_buf_truncate(buf, (size_t)idx); +} + void git_buf_rtruncate_at_char(git_buf *buf, char separator) { ssize_t idx = git_buf_rfind_next(buf, separator); diff --git a/src/buffer.h b/src/buffer.h index 7faa9fdc8..a356bebea 100644 --- a/src/buffer.h +++ b/src/buffer.h @@ -171,6 +171,7 @@ void git_buf_consume_bytes(git_buf *buf, size_t len); void git_buf_consume(git_buf *buf, const char *end); void git_buf_truncate(git_buf *buf, size_t len); void git_buf_shorten(git_buf *buf, size_t amount); +void git_buf_truncate_at_char(git_buf *buf, char separator); void git_buf_rtruncate_at_char(git_buf *path, char separator); /** General join with separator */ -- cgit v1.2.1