mirror of
https://github.com/rwinkhart/cmutton.git
synced 2026-09-03 15:47:36 -04:00
Use Pascal strings in place of null-termination; update documentation
This commit is contained in:
@@ -2,62 +2,68 @@ package main
|
||||
|
||||
/*
|
||||
#include <stdlib.h>
|
||||
typedef struct {
|
||||
char* data;
|
||||
int len;
|
||||
} PascalString;
|
||||
*/
|
||||
import "C"
|
||||
import (
|
||||
"github.com/rwinkhart/libmutton/global"
|
||||
)
|
||||
|
||||
// TODO Use a nil pointer for blank deviceIDs, not FSMisc (requires changes to libmutton)
|
||||
|
||||
// DirInit returns:
|
||||
// r0: oldDeviceID (FSMisc if none)
|
||||
// r0: err
|
||||
//
|
||||
// r1: err
|
||||
// r1: oldDeviceID (FSMisc if none)
|
||||
//
|
||||
//export DirInit
|
||||
func DirInit(preserveOldCfgDir bool) (*C.char, *C.char) {
|
||||
func DirInit(preserveOldCfgDir bool) (*C.char, C.PascalString) {
|
||||
oldDeviceID, err := global.DirInit(preserveOldCfgDir)
|
||||
if err != nil {
|
||||
return nil, C.CString(err.Error())
|
||||
return C.CString(err.Error()), C.PascalString{data: nil, len: 0}
|
||||
}
|
||||
return C.CString(oldDeviceID), nil
|
||||
return nil, getPascalString(oldDeviceID)
|
||||
}
|
||||
|
||||
// GetCurrentDeviceID returns:
|
||||
// r0: currentDeviceID (FSMisc if none)
|
||||
// r0: err
|
||||
//
|
||||
// r1: err
|
||||
// r1: currentDeviceID (FSMisc if none)
|
||||
//
|
||||
//export GetCurrentDeviceID
|
||||
func GetCurrentDeviceID() (*C.char, *C.char) {
|
||||
func GetCurrentDeviceID() (*C.char, C.PascalString) {
|
||||
currentDeviceID, err := global.GetCurrentDeviceID()
|
||||
if err != nil {
|
||||
return nil, C.CString(err.Error())
|
||||
return C.CString(err.Error()), C.PascalString{data: nil, len: 0}
|
||||
}
|
||||
return C.CString(currentDeviceID), nil
|
||||
return nil, getPascalString(currentDeviceID)
|
||||
}
|
||||
|
||||
// GetRealAgePath returns:
|
||||
// realAgePath
|
||||
//
|
||||
//export GetRealAgePath
|
||||
func GetRealAgePath(vanityPath *C.char) *C.char {
|
||||
return C.CString(global.GetRealAgePath(C.GoString(vanityPath)))
|
||||
func GetRealAgePath(vanityPath *C.char) C.PascalString {
|
||||
return getPascalString(global.GetRealAgePath(C.GoString(vanityPath)))
|
||||
}
|
||||
|
||||
// GetRealPath returns:
|
||||
// realPath
|
||||
//
|
||||
//export GetRealPath
|
||||
func GetRealPath(vanityPath *C.char) *C.char {
|
||||
return C.CString(global.GetRealPath(C.GoString(vanityPath)))
|
||||
func GetRealPath(vanityPath *C.char) C.PascalString {
|
||||
return getPascalString(global.GetRealPath(C.GoString(vanityPath)))
|
||||
}
|
||||
|
||||
// GetVanityPath returns:
|
||||
// vanityPath
|
||||
//
|
||||
//export GetVanityPath
|
||||
func GetVanityPath(realPath *C.char) *C.char {
|
||||
return C.CString(global.GetVanityPath(C.GoString(realPath)))
|
||||
func GetVanityPath(realPath *C.char) C.PascalString {
|
||||
return getPascalString(global.GetVanityPath(C.GoString(realPath)))
|
||||
}
|
||||
|
||||
func main() {}
|
||||
|
||||
Reference in New Issue
Block a user