1// FILE *
2%{
3#ifdef __cplusplus
4extern "C" {
5#endif
6
7// Ruby 1.9 changed the file name of this header
8#ifdef HAVE_RUBY_IO_H
9#include "ruby/io.h"
10#else
11#include "rubyio.h"
12#endif
13
14#ifdef __cplusplus
15}
16#endif
17%}
18
19%typemap(in) FILE *READ {
20    OpenFile *of;
21    GetOpenFile($input, of);
22    rb_io_check_readable(of);
23    $1 = GetReadFile(of);
24    rb_read_check($1);
25}
26
27%typemap(in) FILE *READ_NOCHECK {
28    OpenFile *of;
29    GetOpenFile($input, of);
30    rb_io_check_readable(of);
31    $1 = GetReadFile(of);
32}
33
34%typemap(in) FILE *WRITE {
35    OpenFile *of;
36    GetOpenFile($input, of);
37    rb_io_check_writable(of);
38    $1 = GetWriteFile(of);
39}
40