darwin: fix the C. function declarations (#9194)
parent
b64d781a20
commit
4d24cb0158
|
@ -6,46 +6,46 @@ module darwin
|
||||||
#flag -framework Cocoa
|
#flag -framework Cocoa
|
||||||
#flag -framework Carbon
|
#flag -framework Carbon
|
||||||
|
|
||||||
struct C.NSString { }
|
struct C.NSString {}
|
||||||
|
|
||||||
#include "@VROOT/vlib/darwin/darwin.m"
|
#include "@VROOT/vlib/darwin/darwin.m"
|
||||||
|
|
||||||
fn C.nsstring2(s string) voidptr
|
fn C.nsstring2(s string) voidptr
|
||||||
|
|
||||||
// macOS and iOS helpers
|
// macOS and iOS helpers
|
||||||
//pub fn nsstring(s string) *C.NSString {
|
// pub fn nsstring(s string) *C.NSString {
|
||||||
pub fn nsstring(s string) voidptr {
|
pub fn nsstring(s string) voidptr {
|
||||||
return C.nsstring2(s)
|
return C.nsstring2(s)
|
||||||
// println('ns $s len=$s.len')
|
// println('ns $s len=$s.len')
|
||||||
//# return [ [ NSString alloc ] initWithBytesNoCopy:s.str length:s.len
|
//# return [ [ NSString alloc ] initWithBytesNoCopy:s.str length:s.len
|
||||||
//# encoding:NSUTF8StringEncoding freeWhenDone: false];
|
//# encoding:NSUTF8StringEncoding freeWhenDone: false];
|
||||||
//return 0
|
// return 0
|
||||||
|
|
||||||
//ns := C.alloc_NSString()
|
// ns := C.alloc_NSString()
|
||||||
//return ns.initWithBytesNoCopy(s.str, length: s.len,
|
// return ns.initWithBytesNoCopy(s.str, length: s.len,
|
||||||
//encoding: NSUTF8StringEncoding, freeWhenDone: false)
|
// encoding: NSUTF8StringEncoding, freeWhenDone: false)
|
||||||
}
|
}
|
||||||
|
|
||||||
// returns absolute path to folder where your resources should / will reside
|
// returns absolute path to folder where your resources should / will reside
|
||||||
// for .app packages: .../my.app/Contents/Resources
|
// for .app packages: .../my.app/Contents/Resources
|
||||||
// for cli: .../parent_folder/Resources
|
// for cli: .../parent_folder/Resources
|
||||||
|
|
||||||
fn C.CFBundleCopyResourcesDirectoryURL() byteptr
|
fn C.CFBundleCopyResourcesDirectoryURL(bundle voidptr) byteptr
|
||||||
fn C.CFBundleGetMainBundle() voidptr
|
fn C.CFBundleGetMainBundle() voidptr
|
||||||
fn C.CFURLGetFileSystemRepresentation() int
|
fn C.CFURLGetFileSystemRepresentation(url byteptr, resolve_against_base bool, buffer byteptr, buffer_size int) int
|
||||||
fn C.CFRelease()
|
fn C.CFRelease(url byteptr)
|
||||||
|
|
||||||
pub fn resource_path() string {
|
pub fn resource_path() string {
|
||||||
|
|
||||||
main_bundle := C.CFBundleGetMainBundle()
|
main_bundle := C.CFBundleGetMainBundle()
|
||||||
resource_dir_url := C.CFBundleCopyResourcesDirectoryURL(main_bundle)
|
resource_dir_url := C.CFBundleCopyResourcesDirectoryURL(main_bundle)
|
||||||
if isnil(resource_dir_url) {
|
if isnil(resource_dir_url) {
|
||||||
panic('CFBundleCopyResourcesDirectoryURL failed')
|
panic('CFBundleCopyResourcesDirectoryURL failed')
|
||||||
}
|
}
|
||||||
buffer_size := 4096
|
buffer_size := 4096
|
||||||
mut buffer := malloc(buffer_size)
|
mut buffer := unsafe{ malloc(buffer_size) }
|
||||||
buffer[0] = 0
|
unsafe{ buffer[0] = 0 }
|
||||||
conv_result := C.CFURLGetFileSystemRepresentation(resource_dir_url, true, buffer, buffer_size)
|
conv_result := C.CFURLGetFileSystemRepresentation(resource_dir_url, true, buffer,
|
||||||
|
buffer_size)
|
||||||
if conv_result == 0 {
|
if conv_result == 0 {
|
||||||
panic('CFURLGetFileSystemRepresentation failed')
|
panic('CFURLGetFileSystemRepresentation failed')
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue