Date: Sun, 06 Apr 2008 15:46:07 -0700 From: Bakul Shah <bakul@bitblocks.com> To: Doug Hardie <bc979@lafn.org> Cc: FreeBSD Stable <freebsd-stable@freebsd.org> Subject: Re: getenv in FreeBSD 7 Message-ID: <20080406224607.E50415B42@mail.bitblocks.com> In-Reply-To: Your message of "Sun, 06 Apr 2008 14:37:06 PDT." <1794897B-7A36-412A-8849-87F10268EBAE@lafn.org>
next in thread | previous in thread | raw e-mail | index | archive | help
On Sun, 06 Apr 2008 14:37:06 PDT Doug Hardie <bc979@lafn.org> wrote:
> Somewhere between FreeBSD 6.2 and 7.0 getenv has been changed to
> return a null if an environment variable is set but has no value. I
> don't find anything anywhere in the documentation/man pages on this.
> As a result, you cannot distinguish between a variable that is not set
> and one that is set to a value of "". Is this a bug or a feature
> change?
This is not what I see on 7.0 or -current (and it would not
be standard compliant). Try this under /bin/sh:
cat >x.c<<EOF
#include <stdlib.h>
#include <stdio.h>
int main(int c, char**v) {
char* a = getenv(v[1]);
printf("%s\n", a? a : "--null--");
return 0;
}
EOF
cc x.c
foo="" ./a.out foo # this should return a blank line
./a.out foo # this should return a line with --null--
If your system behaves differently may be you can attach a
simple test that shows the bug?
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20080406224607.E50415B42>
