getenv() can't differentiate "defined but empty" and "undefined"

Prof Brian D Ripley
Wed, 29 Sep 1999 15:52:35 +0100 (BST)

On Wed, 29 Sep 1999, Martin Maechler wrote:

> getenv(<varname>)  currently returns  ""
> if the <varname> is undefined.
> However, if <varname> is defined but empty,
> getenv(<varname>) still only returns "".
> I think this is quite unfortunate  
> but consistent with the prototype.
> ---
> I'd propose to change the current behavior.
> Something which should be pretty back compatible would 
> for the first case (undefined environment variable)
> to return "" with an attribute "defined" set to FALSE
> i.e.  return(structure("", defined = FALSE))
> Does anyone see a problem with this approach ?

I think it should really be NULL if undefined: attributes which may or may
not be there are a nuisance.  The only problem I can see is in
system.gnw.r, whihc doe use nchar on getenv.

Small point: when do you want to change this? It is platform-specific code.

Brian D. Ripley,        
Professor of Applied Statistics,
University of Oxford,             Tel:  +44 1865 272861 (self)
1 South Parks Road,                     +44 1865 272860 (secr)
Oxford OX1 3TG, UK                Fax:  +44 1865 272595

r-devel mailing list -- Read
Send "info", "help", or "[un]subscribe"
(in the "body", not the subject !)  To: