summaryrefslogtreecommitdiff
path: root/include/git2/blob.h
diff options
context:
space:
mode:
authorRussell Belfer <rb@github.com>2013-12-10 13:01:34 -0800
committerRussell Belfer <rb@github.com>2013-12-11 10:57:50 -0800
commit19853bdd97e006b6e4519bc352c3e8fd7586e9c3 (patch)
treed2bce1a704b97cf6b1f331797f0b968138dae0d7 /include/git2/blob.h
parent373cf6a932a64d1cbe5f5cd8333546dcc2ca0b92 (diff)
downloadlibgit2-19853bdd97e006b6e4519bc352c3e8fd7586e9c3.tar.gz
Update git_blob_create_fromchunks callback behavr
The callback to supply data chunks could return a negative value to stop creation of the blob, but we were neither using GIT_EUSER nor propagating the return value. This makes things use the new behavior of returning the negative value back to the user.
Diffstat (limited to 'include/git2/blob.h')
-rw-r--r--include/git2/blob.h43
1 files changed, 19 insertions, 24 deletions
diff --git a/include/git2/blob.h b/include/git2/blob.h
index dcab4fbe0..19ad4d949 100644
--- a/include/git2/blob.h
+++ b/include/git2/blob.h
@@ -159,37 +159,32 @@ typedef int (*git_blob_chunk_cb)(char *content, size_t max_length, void *payload
* Write a loose blob to the Object Database from a
* provider of chunks of data.
*
- * Provided the `hintpath` parameter is filled, its value
- * will help to determine what git filters should be applied
- * to the object before it can be placed to the object database.
+ * If the `hintpath` parameter is filled, it will be used to determine
+ * what git filters should be applied to the object before it is written
+ * to the object database.
*
+ * The implementation of the callback MUST respect the following rules:
*
- * The implementation of the callback has to respect the
- * following rules:
+ * - `content` must be filled by the callback. The maximum number of
+ * bytes that the buffer can accept per call is defined by the
+ * `max_length` parameter. Allocation and freeing of the buffer will
+ * be taken care of by libgit2.
*
- * - `content` will have to be filled by the consumer. The maximum number
- * of bytes that the buffer can accept per call is defined by the
- * `max_length` parameter. Allocation and freeing of the buffer will be taken
- * care of by the function.
+ * - The `callback` must return the number of bytes that have been
+ * written to the `content` buffer.
*
- * - The callback is expected to return the number of bytes
- * that `content` have been filled with.
- *
- * - When there is no more data to stream, the callback should
- * return 0. This will prevent it from being invoked anymore.
- *
- * - When an error occurs, the callback should return -1.
+ * - When there is no more data to stream, `callback` should return
+ * 0. This will prevent it from being invoked anymore.
*
+ * - If an error occurs, the callback should return a negative value.
+ * This value will be returned to the caller.
*
* @param id Return the id of the written blob
- *
- * @param repo repository where the blob will be written.
- * This repository can be bare or not.
- *
- * @param hintpath if not NULL, will help selecting the filters
- * to apply onto the content of the blob to be created.
- *
- * @return 0 or an error code
+ * @param repo Repository where the blob will be written.
+ * This repository can be bare or not.
+ * @param hintpath If not NULL, will be used to select data filters
+ * to apply onto the content of the blob to be created.
+ * @return 0 or error code (from either libgit2 or callback function)
*/
GIT_EXTERN(int) git_blob_create_fromchunks(
git_oid *id,