Archive-Peek-Libarchive

 view release on metacpan or  search on metacpan

Libarchive.xs  view on Meta::CPAN

}

void _close_file(struct archive* a) {
    archive_read_close(a);
    archive_read_free(a);
}
    
MODULE = Archive::Peek::Libarchive          PACKAGE = Archive::Peek::Libarchive

void _files(const char * filename)
PPCODE:
    struct archive *a;
    struct archive_entry *entry;
    int r;

    a = _open_file(filename);

    for (;;) {
        r = archive_read_next_header(a, &entry);
        if (r == ARCHIVE_EOF)
            break;
	if (r != ARCHIVE_OK)
            croak("%s", archive_error_string(a));
        if (archive_entry_filetype(entry) == AE_IFREG) {
            mXPUSHs(newSVpv(archive_entry_pathname(entry), 0));
        }
    }
    _close_file(a);

void _file(const char * archivename, const char * filename)
PPCODE:
    struct archive *a;
    struct archive_entry *entry;
    int r;
    const void *buffer;
    size_t size;
    off_t offset;
    SV* sv;
    SV* temp;

    a = _open_file(archivename);



( run in 1.129 second using v1.01-cache-2.11-cpan-71847e10f99 )