Subject: Re: [PATCH] use child_process_init() to initialize struct child_process variables

From: René Scharfe <[email-masked]>
Date: Sun, 09 Nov 2014 14:49:58 +0100

Am 29.10.2014 um 18:21 schrieb Jeff King:
> On Tue, Oct 28, 2014 at 09:52:34PM +0100, René Scharfe wrote:
>> diff --git a/trailer.c b/trailer.c
>> index 8514566..7ff036c 100644
>> --- a/trailer.c
>> +++ b/trailer.c
>> @@ -237,7 +237,7 @@ static const char *apply_command(const char *command, const char *arg)
>>   		strbuf_replace(&cmd, TRAILER_ARG_STRING, arg);
>>   
>>   	argv[0] = cmd.buf;
>> -	memset(&cp, 0, sizeof(cp));
>> +	child_process_init(&cp);
>>   	cp.argv = argv;
>>   	cp.env = local_repo_env;
>>   	cp.no_stdin = 1;
> 
> I think this one can use CHILD_PROCESS_INIT in the declaration. I guess
> it is debatable whether that is actually preferable, but I tend to think
> it is cleaner and less error-prone.

Agreed, thanks.

-- >8 --
Subject: [PATCH] trailer: use CHILD_PROCESS_INIT in apply_command()

Initialize the struct child_process variable cp at declaration time.
This is shorter, saves a function call and prevents using the variable
before initialization by mistake.

Suggested-by: Jeff King <[email-masked]>
Signed-off-by: Rene Scharfe <[email-masked]>
---
 trailer.c | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/trailer.c b/trailer.c
index 7ff036c..6ae7865 100644
--- a/trailer.c
+++ b/trailer.c
@@ -228,7 +228,7 @@ static const char *apply_command(const char *command, const char *arg)
 {
 	struct strbuf cmd = STRBUF_INIT;
 	struct strbuf buf = STRBUF_INIT;
-	struct child_process cp;
+	struct child_process cp = CHILD_PROCESS_INIT;
 	const char *argv[] = {NULL, NULL};
 	const char *result;
 
@@ -237,7 +237,6 @@ static const char *apply_command(const char *command, const char *arg)
 		strbuf_replace(&cmd, TRAILER_ARG_STRING, arg);
 
 	argv[0] = cmd.buf;
-	child_process_init(&cp);
 	cp.argv = argv;
 	cp.env = local_repo_env;
 	cp.no_stdin = 1;
-- 
2.1.3