summaryrefslogtreecommitdiff
path: root/sys/src/ape/lib/bsd
diff options
context:
space:
mode:
authorcinap_lenrek <cinap_lenrek@gmx.de>2012-12-03 06:44:30 +0100
committercinap_lenrek <cinap_lenrek@gmx.de>2012-12-03 06:44:30 +0100
commit84c930a07894e30804469c32d84377b15868bfce (patch)
tree641b6adc9c4593d55810d1690f45e554d46f4d08 /sys/src/ape/lib/bsd
parenteb9de925c63990f6b19494698e4db1eb9682e46d (diff)
ape: fix putenv()
writing /env in putenv() doesnt work. exec will create new enviroment anyway. we have to modify environ array!
Diffstat (limited to 'sys/src/ape/lib/bsd')
-rw-r--r--sys/src/ape/lib/bsd/mkfile1
-rw-r--r--sys/src/ape/lib/bsd/putenv.c32
2 files changed, 0 insertions, 33 deletions
diff --git a/sys/src/ape/lib/bsd/mkfile b/sys/src/ape/lib/bsd/mkfile
index 44b4b05fb..3034e13a4 100644
--- a/sys/src/ape/lib/bsd/mkfile
+++ b/sys/src/ape/lib/bsd/mkfile
@@ -29,7 +29,6 @@ OFILES=\
ntohl.$O\
nptohl.$O\
popen.$O\
- putenv.$O\
rcmd.$O\
readv.$O\
rresvport.$O\
diff --git a/sys/src/ape/lib/bsd/putenv.c b/sys/src/ape/lib/bsd/putenv.c
deleted file mode 100644
index 63695ba76..000000000
--- a/sys/src/ape/lib/bsd/putenv.c
+++ /dev/null
@@ -1,32 +0,0 @@
-#include <sys/types.h>
-#include <unistd.h>
-#include <fcntl.h>
-#include <string.h>
-
-int
-putenv(char *s)
-{
- int f, n;
- char *value;
- char buf[300];
-
- value = strchr(s, '=');
- if (value) {
- n = value-s;
- if(n<=0 || n > sizeof(buf)-6)
- return -1;
- strcpy(buf, "/env/");
- strncpy(buf+5, s, n);
- buf[n+5] = 0;
- f = creat(buf, 0666);
- if(f < 0)
- return 1;
- value++;
- n = strlen(value);
- if(write(f, value, n) != n)
- return -1;
- close(f);
- return 0;
- } else
- return -1;
-}