Commit aa993f76ca556b06194e7da0f56afcf30cb5ee5e

Edward Thomson 2021-09-13T11:40:38

buf: introduce `git_buf_truncate_at`

diff --git a/src/buffer.c b/src/buffer.c
index ab2a613..a57df12 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 7faa9fd..a356beb 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 */