Apply filter list to a data buffer.
See git2/buffer.h
for background on git_buf
objects.
If the in
buffer holds data allocated by libgit2 (i.e. in->asize
is
not zero), then it will be overwritten when applying the filters. If
not, then it will be left untouched.
If there are no filters to apply (or filters
is NULL), then the out
buffer will reference the in
buffer data (with asize
set to zero)
instead of allocating data. This keeps allocations to a minimum, but
it means you have to be careful about freeing the in
data since out
may be pointing to it!
0 on success, an error code otherwise