diff options
author | dos-reis <gdr@axiomatics.org> | 2009-09-30 00:36:47 +0000 |
---|---|---|
committer | dos-reis <gdr@axiomatics.org> | 2009-09-30 00:36:47 +0000 |
commit | 808c5e28c0e8bc7a397eb2ffd1e77ee7a53061a6 (patch) | |
tree | 0f75d1b6419a308c4bd90a71d841bbf91ce8b27e /src/lib/cfuns-c.c | |
parent | 9bef621350fff8de58a30cada7c1a64d76b778fb (diff) | |
download | open-axiom-808c5e28c0e8bc7a397eb2ffd1e77ee7a53061a6.tar.gz |
* driver/Makefile.in (open-axiom): Link against core runtime.
* driver/main.c (publish_systemdir): Rework.
* include/cfuns.h (oa_setenv): Declare.
* lib/cfuns-c.c (oa_setenv): Define.
Diffstat (limited to 'src/lib/cfuns-c.c')
-rw-r--r-- | src/lib/cfuns-c.c | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/src/lib/cfuns-c.c b/src/lib/cfuns-c.c index 63758092..7562874a 100644 --- a/src/lib/cfuns-c.c +++ b/src/lib/cfuns-c.c @@ -552,6 +552,25 @@ oa_getenv(const char* var) #endif } +/* Set the value of environment variable VAR to VAL. + Return 1 on success, and 0 otherwise. */ +OPENAXIOM_EXPORT int +oa_setenv(const char* var, const char* val) +{ +#ifdef __WIN32__ + return SetEnvironmentVariable(var, val); +#else + const int var_length = strlen(var); + const int val_length = strlen(val); + char* str = (char*) malloc(var_length + 1 + val_length + 1); + strcpy(str, var); + str[var_length] = '='; + strcpy(str + var_length + 1, val); + str[var_length + 1 + val_length] = '\0'; + return !putenv(str); +#endif +} + OPENAXIOM_EXPORT char* oa_getcwd(void) |