Print

Print


On Thu, 17 Aug 2006, Peter W. Draper wrote:

> On Thu, 17 Aug 2006, David Berry wrote:
>
> > OK. I see that ndf.c has special code that translates NULL into DAT__ROOT.
> > So if ndfPlace was supplied with a "DAT__NOLOC" NULL (which should really
> > result in an error being reported) it will instead treat it like DAT__ROOT
> > and continue succesfully?
>
> I believe that's the case, the DAT__ROOT is never passed to HDS, just used
> in NDF for testing against.
>
> > Would it not be better to have a separate way of representing DAT__ROOT in
> > the C interface?
>
> Of the NDF library, maybe it's only used in one routine in HDS itself, but
> that would break backwards compatibility?

It seems reasonably that it should be possible to distinguish between
DAT__NOLOC and DAT__ROOT in C, but I suppose you are correct that any
existing code that uses NULL to represent DAT__ROOT would break if we now
reserved NULL exclusively for DAT__NOLOC.

Although I don't suppose there are very many places where this is done,
since the HDSLoc interface is still pretty new. If distinguishing between
DAT__NOLOC and DAT__ROOT in C is a "good thing", then maybe it would be
better to do it now whilst the backwards compatibility problem is still
hopefully small.

David