154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
|
# File 'ext/libarchive-0.1.1/ext/libarchive_reader.c', line 154
static VALUE rb_libarchive_reader_next_header(VALUE self) {
struct rb_libarchive_archive_container *p;
struct archive_entry *ae;
int r;
Data_Get_Struct(self, struct rb_libarchive_archive_container, p);
Check_Archive(p);
if (p->eof) {
return Qnil;
}
r = archive_read_next_header(p->ar, &ae);
if (r == ARCHIVE_EOF) {
p->eof = 1;
return Qnil;
} else if (r != ARCHIVE_OK) {
rb_raise(rb_eArchiveError, "Fetch entry failed: %s", archive_error_string(p->ar));
}
return rb_libarchive_entry_new(ae, 0);
}
|