From: Adam Simpkins Date: Sun, 06 Apr 2008 22:58:20 GMT Subject: Re: [PATCH 1/4] Add history graph API Message-ID: <20080406225819.GE5822@adamsimpkins.net> In-Reply-To: On Sun, Apr 06, 2008 at 11:15:58PM +0100, Johannes Schindelin wrote: > On Sun, 6 Apr 2008, Adam Simpkins wrote: > > On Sun, Apr 06, 2008 at 10:06:24PM +0100, Johannes Schindelin wrote: > > > On Sun, 6 Apr 2008, Adam Simpkins wrote: > > > > > > > +/* Defined in commit.h */ > > > > +struct commit; > > > > +/* Defined in strbuf.h */ > > > > +struct strbuf; > > > > > > You do not need those. > > > > I added them so that graph.h can be included without including any other > > header files first. They can be taken out if we assume that all users > > of graph.h will include commit.h and strbuf.h first. > > AFAICT you do not even need them then. Using "struct strbuf *" without > ever declaring struct strbuf before that is perfectly valid. Trying to compile the following test code with gcc 4.1.2 results in a warning. test.c: #include void test(struct strbuf *sb); int main(int argc, char **argv) { test(NULL); return 0; } $ gcc -c test.c test.c:3: warning: ‘struct strbuf’ declared inside parameter list test.c:3: warning: its scope is only this definition or declaration, which is probably not what you want -- Adam Simpkins adam@adamsimpkins.net