From 28023be15ab1670a6166c2070a8234505ccc5e72 Mon Sep 17 00:00:00 2001 From: Asanka Herath Date: Tue, 1 Sep 2009 16:32:10 -0400 Subject: [PATCH] Add setenv() to libroken --- lib/roken/NTMakefile | 1 + lib/roken/setenv.c | 12 ++++++++++++ 2 files changed, 13 insertions(+) diff --git a/lib/roken/NTMakefile b/lib/roken/NTMakefile index 28e96c348..2f1ae6b38 100644 --- a/lib/roken/NTMakefile +++ b/lib/roken/NTMakefile @@ -80,6 +80,7 @@ libroken_la_OBJS = \ $(OBJ)\roken_gethostby.obj \ $(OBJ)\rtbl.obj \ $(OBJ)\sendmsg_w32.obj \ + $(OBJ)\setenv.obj \ $(OBJ)\setprogname.obj \ $(OBJ)\simple_exec_w32.obj \ $(OBJ)\sleep.obj \ diff --git a/lib/roken/setenv.c b/lib/roken/setenv.c index bce9bd752..403db67cf 100644 --- a/lib/roken/setenv.c +++ b/lib/roken/setenv.c @@ -47,6 +47,7 @@ ROKEN_LIB_FUNCTION int ROKEN_LIB_CALL setenv(const char *var, const char *val, int rewrite) { +#ifndef _WIN32 char *t; if (!rewrite && getenv(var) != 0) @@ -60,4 +61,15 @@ setenv(const char *var, const char *val, int rewrite) return 0; else return -1; +#else /* Win32 */ + char dummy[8]; + + if (!rewrite && GetEnvironmentVariable(var, dummy, sizeof(dummy)/sizeof(char)) != 0) + return 0; + + if (SetEnvironmentVariable(var, val) == 0) + return -1; + else + return 0; +#endif }