diff options
author | dos-reis <gdr@axiomatics.org> | 2008-04-29 15:25:28 +0000 |
---|---|---|
committer | dos-reis <gdr@axiomatics.org> | 2008-04-29 15:25:28 +0000 |
commit | 7e465ce1b99903491c6132466808c9fa51ae500e (patch) | |
tree | 5f97fdd88cbada50122e5ef86c99d73157da8337 /src/lib/cfuns-c.c | |
parent | 3223409ab97b1a6a8e60d541b0c7b5b69c8b9a83 (diff) | |
download | open-axiom-7e465ce1b99903491c6132466808c9fa51ae500e.tar.gz |
Cleanup, part 2.
Diffstat (limited to 'src/lib/cfuns-c.c')
-rw-r--r-- | src/lib/cfuns-c.c | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/src/lib/cfuns-c.c b/src/lib/cfuns-c.c index d7eae316..4a1e596f 100644 --- a/src/lib/cfuns-c.c +++ b/src/lib/cfuns-c.c @@ -439,3 +439,30 @@ oa_system(const char* cmd) return system(cmd); } + + +/* Return the value of an environment variable. */ +OPENAXIOM_EXPORT char* +oa_getenv(const char* var) +{ +#ifdef __MINGW32__ +#define BUFSIZE 128 + char* buf = (char*) malloc(BUFSIZE); + int len = GetEnvironmentVariable(var, buf, BUFSIZE); + if (len == 0) { + free(buf); + return NULL; + } + else if (len > BUFSIZE) { + buf = (char*) realloc(len); + len = GetEnvironmentVariable(var, buf, len); + if (len == 0) { + free(buf); + return NULL; + } + } + return buf; +#else + return getenv(var); +#endif +} |