83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
|
# File 'ext/libarchive-0.1.1/ext/libarchive_writer.c', line 83
static VALUE rb_libarchive_writer_s_open_filename(VALUE self, VALUE v_filename, VALUE v_compression, VALUE v_format) {
const char *filename = NULL;
int compression, format;
const char *cmd = NULL;
Check_Type(v_filename, T_STRING);
if (RSTRING_LEN(v_filename) < 1) {
rb_raise(rb_eArchiveError, "Open writer failed: No such file or directory");
}
filename = RSTRING_PTR(v_filename);
if (T_STRING == TYPE(v_compression)) {
compression = -1;
cmd = RSTRING_PTR(v_compression);
} else {
compression = NUM2INT(v_compression);
}
format = NUM2INT(v_format);
return rb_libarchive_writer_s_open0(rb_libarchive_writer_s_open_filename0, (void *) filename, compression, format, cmd);
}
|