Artifact
7c81a9e55c72ad608411ed1af54d42a9955761dc:
0000: 23 6c 61 6e 67 20 72 61 63 6b 65 74 2f 62 61 73 #lang racket/bas
0010: 65 0a 28 72 65 71 75 69 72 65 0a 20 66 66 69 2f e.(require. ffi/
0020: 75 6e 73 61 66 65 0a 20 22 62 61 73 65 2e 72 6b unsafe. "base.rk
0030: 74 22 29 0a 0a 28 64 65 66 69 6e 65 20 6c 69 62 t")..(define lib
0040: 63 64 0a 20 20 28 63 61 73 65 20 28 73 79 73 74 cd. (case (syst
0050: 65 6d 2d 74 79 70 65 20 27 6f 73 29 0a 20 20 20 em-type 'os).
0060: 20 5b 28 77 69 6e 64 6f 77 73 29 0a 20 20 20 20 [(windows).
0070: 20 28 66 66 69 2d 6c 69 62 20 22 63 64 22 29 5d (ffi-lib "cd")]
0080: 0a 20 20 20 20 5b 65 6c 73 65 0a 20 20 20 20 20 . [else.
0090: 28 66 66 69 2d 6c 69 62 20 22 6c 69 62 63 64 22 (ffi-lib "libcd"
00a0: 29 5d 29 29 0a 0a 3b 3b 20 7b 7b 7b 20 43 6f 6e )]))..;; {{{ Con
00b0: 74 65 78 74 20 74 79 70 65 73 0a 0a 28 64 65 66 text types..(def
00c0: 69 6e 65 20 63 6f 6e 74 65 78 74 3a 6d 65 74 61 ine context:meta
00d0: 66 69 6c 65 0a 20 20 28 28 67 65 74 2d 66 66 69 file. ((get-ffi
00e0: 2d 6f 62 6a 20 22 63 64 43 6f 6e 74 65 78 74 4d -obj "cdContextM
00f0: 65 74 61 66 69 6c 65 22 20 6c 69 62 63 64 20 28 etafile" libcd (
0100: 5f 66 75 6e 20 2d 3e 20 5b 63 6f 6e 74 65 78 74 _fun -> [context
0110: 20 3a 20 5f 63 6f 6e 74 65 78 74 5d 29 29 29 29 : _context]))))
0120: 0a 0a 28 70 72 6f 76 69 64 65 0a 20 63 6f 6e 74 ..(provide. cont
0130: 65 78 74 3a 6d 65 74 61 66 69 6c 65 29 0a 0a 3b ext:metafile)..;
0140: 3b 20 7d 7d 7d 0a ; }}}.