On Jul 31, 2013, at 23:50 , Marvin Humphrey <[email protected]> wrote:
> C blocks are a heinous hack that I wish we could do without. For now, they're > an essential safety valve for a few features that are too complex to > implement directly in the Clownfish header language, but a part of me would > like to have them undocumented in the initial release in the faint hope that > we could get away with removing them eventually. I anticipate that > supporting them will constrain our ability to evolve Clownfish. I would certainly be nice to get rid of C blocks, but I think every non-trivial Clownfish project will need them. The problem is that the order of declarations and definitions is important in header files and C blocks provide a straight-forward way guarantee this order. > I think the fix in this particular case is minimal. This ought to do it, > right? > > --- a/core/Lucy/Test/Store/TestFolderCommon.cfh > +++ b/core/Lucy/Test/Store/TestFolderCommon.cfh > @@ -17,7 +17,7 @@ > parcel TestLucy; > > __C__ > -typedef lucy_Folder* > +typedef struct lucy_Folder* > Lucy_TestFolderCommon_Set_Up_t(void); > typedef void > Lucy_TestFolderCommon_Tear_Down_t(void); This should work but I prefer the more general fix that I made in commit cb609f42. There might be other C blocks which could cause similar problems. Nick
