Cloak/cmd/ck-client/external-main.go

24 lines
420 B
Go

//go:build external_main
// +build external_main
package main
import (
"os"
"C"
"unsafe"
)
//export external_main
func external_main(argc C.int, argv **C.char) {
var offset = unsafe.Sizeof(uintptr(0))
var go_argv []string
for i := 0; i < int(argc); i++ {
go_argv = append(go_argv, C.GoString(*argv))
argv = (**C.char)(unsafe.Pointer(uintptr(unsafe.Pointer(argv)) + offset))
}
os.Args = go_argv
main()
}