Subject: Re: [PATCH 1/3] Add an optional <mode> argument to commit/status -u|--untracked-files option

From: Marius Storm-Olsen <[email-masked]>
Date: Mon, 09 Jun 2008 08:54:31 +0200

Junio C Hamano said the following on 07.06.2008 03:55:
> Marius Storm-Olsen <[email-masked]> writes:
> 
>> diff --git a/builtin-commit.c b/builtin-commit.c
>> index b294c1f..1f4986b 100644
>> --- a/builtin-commit.c
>> +++ b/builtin-commit.c
>> @@ -102,7 +103,7 @@ static struct option builtin_commit_options[] = {
>>  	OPT_BOOLEAN('o', "only", &only, "commit only specified files"),
>>  	OPT_BOOLEAN('n', "no-verify", &no_verify, "bypass pre-commit hook"),
>>  	OPT_BOOLEAN(0, "amend", &amend, "amend previous commit"),
>> -	OPT_BOOLEAN('u', "untracked-files", &untracked_files, "show all untracked files"),
>> +	{ OPTION_STRING, 'u', "untracked-files", &untracked_files_arg, "mode", "show untracked files, optional modes: all, normal. (Default: all)", PARSE_OPT_OPTARG, NULL, (int)"all" },
> 
> Hmm.
> 
> $ make
> builtin-commit.c:106: error: initializer element is not constant
> builtin-commit.c:106: error: (near initialization for 'builtin_commit_options[18].defval')
> make: *** [builtin-commit.o] Error 1
 >
> I also have to wonder what the funny cast of (int)"all"  is doing.

Ops, obviously it should have been s@\(int\)@(intptr_t)@. Sorry about 
that, I'll resend the patch series.

(The option struct in parse_options.h uses intptr_t for the default 
value of an option, thus a normal const char * would make the compiler 
complain (verified with both Windows MinGW 3.4.5 and Linux GCC 4.1.2))

BTW, which compiler version are you using?

-- 
.marius [@trolltech.com]
'if you know what you're doing, it's not research'