fix missing protos for popen and backtrace_symbols

pull/2607/head
Nicolas Sauzede 2019-10-31 22:52:08 +01:00 committed by Alexander Medvednikov
parent e07d3c7827
commit 71450828bd
3 changed files with 8 additions and 7 deletions

View File

@ -54,7 +54,7 @@ pub fn print_backtrace_skipping_top_frames(skipframes int) {
cmd := 'addr2line -e $executable $addr'
// taken from os, to avoid depending on the os module inside builtin.v
f := byteptr(C.popen(cmd.str, 'r'))
f := C.popen(cmd.str, 'r')
if isnil(f) {
println(sframe) continue
}

View File

@ -14,11 +14,12 @@ fn C.sprintf(a ...voidptr) byteptr
fn C.strlen(s byteptr) int
fn C.isdigit(s byteptr) bool
// stdio.h
fn C.popen(c byteptr, t byteptr) voidptr
// <execinfo.h>
fn backtrace(a voidptr, b int) int
fn backtrace_symbols(voidptr, int) &byteptr
fn backtrace_symbols_fd(voidptr, int, int)
// <libproc.h>

View File

@ -282,7 +282,7 @@ pub fn (f File) close() {
}
// system starts the specified command, waits for it to complete, and returns its code.
fn popen(path string) *C.FILE {
fn vpopen(path string) *C.FILE {
$if windows {
mode := 'rb'
wpath := path.to_wide()
@ -313,7 +313,7 @@ fn posix_wait4_to_exit_status(waitret int) (int,bool) {
}
}
fn pclose(f *C.FILE) int {
fn vpclose(f *C.FILE) int {
$if windows {
return int( C._pclose(f) )
}
@ -333,7 +333,7 @@ pub:
// exec starts the specified command, waits for it to complete, and returns its output.
pub fn exec(cmd string) ?Result {
pcmd := '$cmd 2>&1'
f := popen(pcmd)
f := vpopen(pcmd)
if isnil(f) {
return error('exec("$cmd") failed')
}
@ -343,7 +343,7 @@ pub fn exec(cmd string) ?Result {
res += tos(buf, vstrlen(buf))
}
res = res.trim_space()
exit_code := pclose(f)
exit_code := vpclose(f)
//if exit_code != 0 {
//return error(res)
//}