From 182b4eea73881c611a0f519576aa6ad2aa6799c2 Mon Sep 17 00:00:00 2001 From: tobi <31960611+tsmethurst@users.noreply.github.com> Date: Sat, 27 Nov 2021 15:26:58 +0100 Subject: Update dependencies (#333) --- vendor/modernc.org/libc/libc_unix.go | 48 ++++++++++++++++++++++++++++++++++-- 1 file changed, 46 insertions(+), 2 deletions(-) (limited to 'vendor/modernc.org/libc/libc_unix.go') diff --git a/vendor/modernc.org/libc/libc_unix.go b/vendor/modernc.org/libc/libc_unix.go index f311092e6..81cdc8ab2 100644 --- a/vendor/modernc.org/libc/libc_unix.go +++ b/vendor/modernc.org/libc/libc_unix.go @@ -2,15 +2,17 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. -//go:build linux || darwin || freebsd -// +build linux darwin freebsd +//go:build linux || darwin || freebsd || netbsd +// +build linux darwin freebsd netbsd package libc // import "modernc.org/libc" import ( + "io/ioutil" "os" gosignal "os/signal" "reflect" + "strings" "syscall" "unsafe" @@ -217,3 +219,45 @@ func Xgetresuid(t *TLS, ruid, euid, suid uintptr) int32 { func Xgetresgid(t *TLS, rgid, egid, sgid uintptr) int32 { panic(todo("")) } + +// FILE *tmpfile(void); +func Xtmpfile(t *TLS) uintptr { + f, err := ioutil.TempFile("", "tmpfile-") + if err != nil { + t.setErrno(err) + return 0 + } + + cf := newFile(t, int32(f.Fd())) + AtExit(func() { + nm := f.Name() + file(cf).close(t) + os.Remove(nm) + }) + + return cf +} + +// FILE *fdopen(int fd, const char *mode); +func Xfdopen(t *TLS, fd int32, mode uintptr) uintptr { + m := strings.ReplaceAll(GoString(mode), "b", "") + switch m { + case + "a", + "a+", + "r", + "r+", + "w", + "w+": + default: + t.setErrno(errno.EINVAL) + return 0 + } + + if p := newFile(t, fd); p != 0 { + return p + } + + t.setErrno(errno.EINVAL) + return 0 +} -- cgit v1.2.3