Antoine ([EMAIL PROTECTED]) scribbled:
> Hi,
> I can't seem to get any bites on the more appropriate lists I am on...

Have you tried linux-c-programming@vger.kernel.org ?

> 
> I am almost finished hacking libtiff into something we can use to make 
> tiff ATA2100 compliant files and am sure that the last hurdle is 
> understanding what the following means:
> 
> tif->tif_diroff = (TIFFSeekFile(tif, (toff_t) 0, SEEK_END)+1) &~ 1;
> 
> (from tif_dirwrite.c)
> 
> where
> 
> TIFFSeekFile is
> 
> #define       TIFFSeekFile(tif, off, whence) \ 
> ((*(tif)->tif_seekproc)((tif)->tif_clientdata,(toff_t)(off),whence))
> 
> basically all I need to know is what the &~ 1 does at the end of the 
> first line 

whitespace doesn't matter in C, this is taking the output of
TIFFSeekFile and and'ing (&) it with ~1 == 0xfffe .  The type of '1'
will be determined by the type of TIFFSeekFile.  The end result is that
the output of TIFFSeekFile will always be even.

> and what the effect of
> ((*(tif)->tif_seekproc)((tif)->tif_clientdata,(toff_t)(off),whence))
> is. It doesn't look to me much like a function call... but then again, I 
> only started really looking at c a week ago :-).

Sure looks like it to me.  grep through the source for 'tif_seekproc',
it'll be a member of a struct and should be a function pointer (this
should be in an include file).  Then look for some sort of an
initialization routine where 'tif_seekproc' is assigned a function
pointer.  The function it is assigned will be what is used when the
above macro 'TIFFSeekFile' is called.

hth,

Cooper.


--
gentoo-user@gentoo.org mailing list

Reply via email to