Commit c7c3051328f605255c485cc49f58d16c7556d8f2

Carlos Martín Nieto 2011-09-05T21:38:56

buffer: add git_buf_consume Moves the content after 'end' to the beginning of the buffer Signed-off-by: Carlos Martín Nieto <carlos@cmartin.tk>

diff --git a/src/buffer.c b/src/buffer.c
index 3cdc62f..e92b2ef 100644
--- a/src/buffer.c
+++ b/src/buffer.c
@@ -98,3 +98,10 @@ void git_buf_clear(git_buf *buf)
 {
 	buf->size = 0;
 }
+
+void git_buf_consume(git_buf *buf, const char *end)
+{
+	size_t consumed = end - buf->ptr;
+	memmove(buf->ptr, end, buf->size - consumed);
+	buf->size -= consumed;
+}
diff --git a/src/buffer.h b/src/buffer.h
index 02266f5..c394e25 100644
--- a/src/buffer.h
+++ b/src/buffer.h
@@ -19,6 +19,7 @@ void git_buf_printf(git_buf *buf, const char *format, ...) GIT_FORMAT_PRINTF(2, 
 const char *git_buf_cstr(git_buf *buf);
 void git_buf_free(git_buf *buf);
 void git_buf_clear(git_buf *buf);
+void git_buf_consume(git_buf *buf, const char *end);
 
 #define git_buf_PUTS(buf, str) git_buf_put(buf, str, sizeof(str) - 1)