From: Junio C Hamano Date: Thu, 31 Oct 2013 20:07:21 GMT Subject: Re: [PATCH 06/16] shortlog: add missing declaration Message-ID: In-Reply-To: Felipe Contreras writes: > On Thu, Oct 31, 2013 at 1:05 PM, Junio C Hamano wrote: >> Felipe Contreras writes: >> >>> Otherwise we would have to include commit.h. >> >> Was there a reason why commit.h is not included here, just like >> revision.h would include diff.h, so that users of shortlog.h do not >> have to worry about including commit.h themselves? > > Because you can't do: > > struct diff_options; > struct diff_options diffopt; > > The storage size is not known, but you can do: > > struct diff_options; > struct diff_options *diffopt; But so can you do struct diff_options *diffopt; without the declaration, no? That is: $ cat >x.c <<\EOF struct foo { struct bar *ptr; }; int foo_is_null(struct foo *foo) { return foo == 0; } EOF $ gcc -Wall -c x.c