]> Cypherpunks repositories - gostls13.git/commitdiff
syscall: fix env routines for Plan 9
authorLucio De Re <lucio.dere@gmail.com>
Fri, 18 Nov 2011 18:36:06 +0000 (13:36 -0500)
committerRuss Cox <rsc@golang.org>
Fri, 18 Nov 2011 18:36:06 +0000 (13:36 -0500)
R=golang-dev
CC=ality, golang-dev, rsc
https://golang.org/cl/5364063

src/pkg/syscall/env_plan9.go

index 7a6ea90bf13a5a5db79753d3c5d301b50f075547..518573318efa59908192d70fae4b9f85972c3be0 100644 (file)
@@ -10,40 +10,40 @@ import "errors"
 
 func Getenv(key string) (value string, found bool) {
        if len(key) == 0 {
-               return "", EINVAL
+               return "", false
        }
-       f, e := Open("/env/" + key)
+       f, e := Open("/env/"+key, O_RDONLY)
        if e != nil {
-               return "", ENOENV
+               return "", false
        }
-       defer f.Close()
+       defer Close(f)
 
-       l, _ := f.Seek(0, 2)
-       f.Seek(0, 0)
+       l, _ := Seek(f, 0, 2)
+       Seek(f, 0, 0)
        buf := make([]byte, l)
-       n, e := f.Read(buf)
+       n, e := Read(f, buf)
        if e != nil {
-               return "", ENOENV
+               return "", false
        }
 
        if n > 0 && buf[n-1] == 0 {
                buf = buf[:n-1]
        }
-       return string(buf), nil
+       return string(buf), true
 }
 
 func Setenv(key, value string) error {
        if len(key) == 0 {
-               return EINVAL
+               return errors.New("bad arg in system call")
        }
 
-       f, e := Create("/env/" + key)
+       f, e := Create("/env/"+key, O_RDWR, 0666)
        if e != nil {
                return e
        }
-       defer f.Close()
+       defer Close(f)
 
-       _, e = f.Write([]byte(value))
+       _, e = Write(f, []byte(value))
        return nil
 }
 
@@ -54,13 +54,13 @@ func Clearenv() {
 func Environ() []string {
        env := make([]string, 0, 100)
 
-       f, e := Open("/env")
+       f, e := Open("/env", O_RDONLY)
        if e != nil {
                panic(e)
        }
-       defer f.Close()
+       defer Close(f)
 
-       names, e := f.Readdirnames(-1)
+       names, e := readdirnames(f)
        if e != nil {
                panic(e)
        }