summaryrefslogtreecommitdiff
path: root/src/buffer.h
diff options
context:
space:
mode:
authornulltoken <emeric.fermas@gmail.com>2012-10-01 11:58:15 +0200
committernulltoken <emeric.fermas@gmail.com>2012-10-25 17:42:35 +0200
commit3a14d3e2bca4f1af7de978decda1c7ca74ffd3bf (patch)
treecf8e77e397586dad5eec5879afc0bbd1e33f93fa /src/buffer.h
parentfb39b3a54cfedd1e414dc86f6ff5f9af9190c97b (diff)
downloadlibgit2-3a14d3e2bca4f1af7de978decda1c7ca74ffd3bf.tar.gz
buf: introduce git_buf_splice()
Diffstat (limited to 'src/buffer.h')
-rw-r--r--src/buffer.h25
1 files changed, 25 insertions, 0 deletions
diff --git a/src/buffer.h b/src/buffer.h
index 2aae06c7c..a2896d486 100644
--- a/src/buffer.h
+++ b/src/buffer.h
@@ -158,4 +158,29 @@ void git_buf_unescape(git_buf *buf);
/* Write data as base64 encoded in buffer */
int git_buf_put_base64(git_buf *buf, const char *data, size_t len);
+/*
+ * Insert, remove or replace a portion of the buffer.
+ *
+ * @param buf The buffer to work with
+ *
+ * @param where The location in the buffer where the transformation
+ * should be applied.
+ *
+ * @param nb_to_remove The number of chars to be removed. 0 to not
+ * remove any character in the buffer.
+ *
+ * @param data A pointer to the data which should be inserted.
+ *
+ * @param nb_to_insert The number of chars to be inserted. 0 to not
+ * insert any character from the buffer.
+ *
+ * @return 0 or an error code.
+ */
+int git_buf_splice(
+ git_buf *buf,
+ size_t where,
+ size_t nb_to_remove,
+ const char *data,
+ size_t nb_to_insert);
+
#endif