diff options
author | Carlos Martín Nieto <carlos@cmartin.tk> | 2011-09-05 23:38:56 +0400 |
---|---|---|
committer | Carlos Martín Nieto <carlos@cmartin.tk> | 2011-09-09 15:12:11 +0400 |
commit | c7c3051328f605255c485cc49f58d16c7556d8f2 (patch) | |
tree | 0a5b4088b9cb76708895c7d1d1027e2f5f6bfb84 /src | |
parent | b87600cb6b80678f1ef8ca994785a4ba733c2133 (diff) |
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>
Diffstat (limited to 'src')
-rw-r--r-- | src/buffer.c | 7 | ||||
-rw-r--r-- | src/buffer.h | 1 |
2 files changed, 8 insertions, 0 deletions
diff --git a/src/buffer.c b/src/buffer.c index 3cdc62f6d..e92b2ef9e 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 02266f51e..c394e2553 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) |