On Sun, 06 Apr 2008 14:37:06 PDT Doug Hardie <[EMAIL PROTECTED]>  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?
_______________________________________________
[email protected] mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-stable
To unsubscribe, send any mail to "[EMAIL PROTECTED]"

Reply via email to