(use posix) (import foreign) #> #include #include static CFArrayRef ArrayCreateMutable(int len) { return CFArrayCreateMutable(NULL, len, &kCFTypeArrayCallBacks); } extern void fsevtCallback(FSEventStreamRef p0, void * info, size_t p1, char** p2, FSEventStreamEventFlags* p3, FSEventStreamEventId* p4); static FSEventStreamRef EventStreamCreateRelativeToDevice(FSEventStreamContext * context, dev_t dev, CFArrayRef paths, FSEventStreamEventId since, CFTimeInterval latency, FSEventStreamCreateFlags flags) { return FSEventStreamCreateRelativeToDevice(NULL, (FSEventStreamCallback) fsevtCallback, context, dev, paths, since, latency, flags); } static FSEventStreamRef EventStreamCreate(FSEventStreamContext * context, CFArrayRef paths, FSEventStreamEventId since, CFTimeInterval latency, FSEventStreamCreateFlags flags) { return FSEventStreamCreate(NULL, (FSEventStreamCallback) fsevtCallback, context, paths, since, latency, flags); } <# (define (absolute-path relpath #!key (relative-to (current-directory))) (when (not (absolute-pathname? relpath)) (normalize-pathname (make-absolute-pathname relative-to relpath)))) (define (displayln string) (display string) (newline)) (define path (absolute-path "./")) (define-foreign-type array-ref CFArrayRef) (define-foreign-variable x array-ref) (define blah (foreign-lambda array-ref ArrayCreateMutable int)) (displayln path)