| // FILE * | |
| %{ | |
| #ifdef __cplusplus | |
| extern "C" { | |
| #endif | |
| /* Ruby 1.9 changed the file name of this header */ | |
| #ifdef HAVE_RUBY_IO_H | |
| #include "ruby/io.h" | |
| #else | |
| #include "rubyio.h" | |
| #endif | |
| #ifdef __cplusplus | |
| } | |
| #endif | |
| %} | |
| %typemap(in) FILE *READ { | |
| OpenFile *of; | |
| GetOpenFile($input, of); | |
| rb_io_check_readable(of); | |
| $1 = GetReadFile(of); | |
| rb_read_check($1); | |
| } | |
| %typemap(in) FILE *READ_NOCHECK { | |
| OpenFile *of; | |
| GetOpenFile($input, of); | |
| rb_io_check_readable(of); | |
| $1 = GetReadFile(of); | |
| } | |
| %typemap(in) FILE *WRITE { | |
| OpenFile *of; | |
| GetOpenFile($input, of); | |
| rb_io_check_writable(of); | |
| $1 = GetWriteFile(of); | |
| } |