From p.dalgaard at biostat.ku.dk  Wed May 18 23:42:41 2005
From: p.dalgaard at biostat.ku.dk (Peter Dalgaard)
Date: Wed May 18 23:42:49 2005
Subject: [Rd] R Include File Guards
In-Reply-To: <Pine.OSF.4.58.0505181524160.204610@odin.mdacc.tmc.edu>
References: <Pine.OSF.4.58.0505181524160.204610@odin.mdacc.tmc.edu>
Message-ID: <x2psvorz1q.fsf@turmalin.kubism.ku.dk>

Paul Roebuck <roebuck@odin.mdacc.tmc.edu> writes:

> R 2.1.0/src/include from 2005/04/18 download
> 
> Naming inconsistent for guards as well but that's pedantic.
> Simple convention:
>   file <foo.h>
>     #ifndef R_FOO_H
>   file <R_ext/bar.h>
>     #ifndef R_EXT_BAR_H
> 
> Missing guards:
> <IOStuff.h>
> <Internal.h>
> <Parse.h>
> <R_ext/GraphicsBase.h>
> <R_ext/GraphicsDevice.h>
> <R_ext/GraphicsEngine.h>
> <R_ext/R-ftp-http.h>
> <R_ext/libextern.h>
> 
> 
> Illegal Guards (leading underscore):
> <Rinternals.h>
> <R_ext/Error.h>
> <config.h.in>

Thanks. The ones outside R_ext, except Rinternals.h, are not part of the
API, so it is not a bug that there are no guards - could still be a
good idea to have them of course. libextern.h explicitly says that you
shouldn't disallow including it more than once. So the ones with real
problems would be

<R_ext/GraphicsBase.h>
<R_ext/GraphicsDevice.h>
<R_ext/GraphicsEngine.h>
<R_ext/R-ftp-http.h>

<Rinternals.h>
<R_ext/Error.h>

What's illegal about leading underscores, BTW?

-- 
   O__  ---- Peter Dalgaard             Blegdamsvej 3  
  c/ /'_ --- Dept. of Biostatistics     2200 Cph. N   
 (*) \(*) -- University of Copenhagen   Denmark      Ph: (+45) 35327918
~~~~~~~~~~ - (p.dalgaard@biostat.ku.dk)             FAX: (+45) 35327907


[Rd] R Include File Guards
Peter Dalgaard