diff options
Diffstat (limited to 'src/syscall')
-rw-r--r-- | src/syscall/syscall_libc.go | 27 |
1 files changed, 6 insertions, 21 deletions
diff --git a/src/syscall/syscall_libc.go b/src/syscall/syscall_libc.go index 002c9dc3f..5c7017101 100644 --- a/src/syscall/syscall_libc.go +++ b/src/syscall/syscall_libc.go @@ -197,21 +197,12 @@ func Setenv(key, val string) (err error) { return EINVAL } } - keydata := cstring(key) - valdata := cstring(val) - errCode := libc_setenv(&keydata[0], &valdata[0], 1) - if errCode != 0 { - err = getErrno() - } + runtimeSetenv(key, val) return } func Unsetenv(key string) (err error) { - keydata := cstring(key) - errCode := libc_unsetenv(&keydata[0]) - if errCode != 0 { - err = getErrno() - } + runtimeUnsetenv(key) return } @@ -312,6 +303,10 @@ func splitSlice(p []byte) (buf *byte, len uintptr) { return slice.buf, slice.len } +// These two functions are provided by the runtime. +func runtimeSetenv(key, value string) +func runtimeUnsetenv(key string) + //export strlen func libc_strlen(ptr unsafe.Pointer) uintptr @@ -325,16 +320,6 @@ func libc_write(fd int32, buf *byte, count uint) int //export getenv func libc_getenv(name *byte) *byte -// int setenv(const char *name, const char *val, int replace); -// -//export setenv -func libc_setenv(name *byte, val *byte, replace int32) int32 - -// int unsetenv(const char *name); -// -//export unsetenv -func libc_unsetenv(name *byte) int32 - // ssize_t read(int fd, void *buf, size_t count); // //export read |