X-Git-Url: https://git.tokkee.org/?a=blobdiff_plain;f=convert.c;h=3fea3e95091b5c49a7b38db381524f50436d11cf;hb=7b3bdbb335b6be938b4748e86a41357e51c97804;hp=27acce58bc4bec60a394f03db1f6e60e1e4cfc3e;hpb=a625740aae48c0f08916e564bc11f49542d4fb48;p=git.git diff --git a/convert.c b/convert.c index 27acce58b..3fea3e950 100644 --- a/convert.c +++ b/convert.c @@ -241,7 +241,7 @@ struct filter_params { const char *cmd; }; -static int filter_buffer(int fd, void *data) +static int filter_buffer(int in, int out, void *data) { /* * Spawn cmd and feed the buffer contents through its stdin. @@ -249,13 +249,15 @@ static int filter_buffer(int fd, void *data) struct child_process child_process; struct filter_params *params = (struct filter_params *)data; int write_err, status; - const char *argv[] = { params->cmd, NULL }; + const char *argv[] = { NULL, NULL }; + + argv[0] = params->cmd; memset(&child_process, 0, sizeof(child_process)); child_process.argv = argv; child_process.use_shell = 1; child_process.in = -1; - child_process.out = fd; + child_process.out = out; if (start_command(&child_process)) return error("cannot fork to run external filter %s", params->cmd); @@ -292,6 +294,7 @@ static int apply_filter(const char *path, const char *src, size_t len, memset(&async, 0, sizeof(async)); async.proc = filter_buffer; async.data = ¶ms; + async.out = -1; params.src = src; params.size = len; params.cmd = cmd;