summaryrefslogtreecommitdiff
path: root/sys/src/ape/lib/ap
diff options
context:
space:
mode:
authorcinap_lenrek <cinap_lenrek@gmx.de>2012-12-03 06:47:01 +0100
committercinap_lenrek <cinap_lenrek@gmx.de>2012-12-03 06:47:01 +0100
commitee251568fb06b829c60ee02b38f24a12b1964c5c (patch)
tree2e42a71b29a6dbd2c26fd17379e095e4cf6c8fb6 /sys/src/ape/lib/ap
parent84c930a07894e30804469c32d84377b15868bfce (diff)
ape: putenv, add file :)
Diffstat (limited to 'sys/src/ape/lib/ap')
-rw-r--r--sys/src/ape/lib/ap/gen/putenv.c24
1 files changed, 24 insertions, 0 deletions
diff --git a/sys/src/ape/lib/ap/gen/putenv.c b/sys/src/ape/lib/ap/gen/putenv.c
new file mode 100644
index 000000000..56a1184ba
--- /dev/null
+++ b/sys/src/ape/lib/ap/gen/putenv.c
@@ -0,0 +1,24 @@
+#include <stdlib.h>
+
+extern char **environ;
+
+int
+putenv(const char *str)
+{
+ char *s1, *s2, **e;
+ int n;
+
+ for(n = 0; s2 = environ[n]; n++)
+ for(s1 = str; *s1 == *s2; s1++, s2++)
+ if(*s1 == '\0' || *s1 == '='){
+ environ[n] = str;
+ return 0;
+ }
+ e = realloc(environ, (n+1) * sizeof(char*));
+ if(e == 0)
+ return -1;
+ environ = e;
+ e[n++] = str;
+ e[n] = 0;
+ return 0;
+}