Archive-Libarchive-FFI
view release on metacpan or search on metacpan
lib/Archive/Libarchive/FFI.pm view on Meta::CPAN
my $ret = $sub->($archive);
return if $ret eq '(Empty error message)';
return $ret;
};
}
_attach 'archive_read_new', undef, _ptr;
_attach 'archive_read_support_format_all', [ _ptr ], _int;
_attach 'archive_read_open1', [ _ptr ], _int;
_attach 'archive_read_open_filename', [ _ptr, _str, _int ], _int;
_attach 'archive_read_data_skip', [ _ptr ], _int;
_attach 'archive_read_close', [ _ptr ], _int;
_attach 'archive_read_append_filter', [ _ptr, _int ], _int;
_attach 'archive_read_append_filter_program', [ _ptr, _str ], _int;
_attach 'archive_read_support_format_by_code', [ _ptr, _int ], _int;
_attach 'archive_read_header_position', [ _ptr ], _int64;
_attach 'archive_read_set_filter_option', [ _ptr, _str, _str, _str ], _int;
_attach 'archive_read_set_format_option', [ _ptr, _str, _str, _str ], _int;
_attach 'archive_read_set_option', [ _ptr, _str, _str, _str ], _int;
_attach 'archive_read_set_options', [ _ptr, _str ], _int;
_attach 'archive_read_set_format', [ _ptr, _str, _str, _str ], _int;
_attach 'archive_read_next_header2', [ _ptr, _ptr ], _int;
_attach 'archive_read_extract', [ _ptr, _ptr, _int ], _int;
_attach 'archive_read_extract2', [ _ptr, _ptr, _ptr ], _int;
_attach 'archive_read_extract_set_skip_file', [ _ptr, _int64, _int64 ], _void;
if(archive_version_number() >= 3000000)
{
_attach 'archive_read_support_filter_program', [ _ptr, _str ], _int;
}
else
{
_attach ['archive_read_support_compression_program' => 'archive_read_support_filter_program'], [ _ptr, _str ], _int;
}
_attach 'archive_filter_code', [ _ptr, _int ], _int;
_attach 'archive_filter_count', [ _ptr ], _int;
_attach 'archive_filter_name', [ _ptr, _int ], _str;
_attach 'archive_filter_bytes', [ _ptr, _int ], _int64;
_attach 'archive_write_new', undef, _ptr;
_attach 'archive_write_add_filter', [ _ptr, _int ], _int;
_attach 'archive_write_add_filter_by_name', [ _ptr, _str ], _int;
_attach 'archive_write_set_format', [ _ptr, _int ], _int;
_attach 'archive_write_set_format_by_name', [ _ptr, _str ], _int;
_attach 'archive_write_open_filename', [ _ptr, _str ], _int;
_attach 'archive_write_header', [ _ptr, _ptr ], _int;
_attach 'archive_write_close', [ _ptr ], _int;
_attach 'archive_write_disk_new', undef, _ptr;
_attach 'archive_write_disk_set_options', [ _ptr, _int ], _int;
_attach 'archive_write_finish_entry', [ _ptr ], _int;
_attach 'archive_write_disk_set_standard_lookup', [ _ptr ], _int;
_attach 'archive_write_zip_set_compression_deflate', [ _ptr ], _int;
_attach 'archive_write_zip_set_compression_store', [ _ptr ], _int;
_attach 'archive_write_set_filter_option', [ _ptr, _str, _str, _str ], _int;
_attach 'archive_write_set_format_option', [ _ptr, _str, _str, _str ], _int;
_attach 'archive_write_set_option', [ _ptr, _str, _str, _str ], _int;
_attach 'archive_write_set_options', [ _ptr, _str ], _int;
_attach 'archive_write_set_skip_file', [ _ptr, _int64, _int64 ], _int;
_attach 'archive_write_disk_gid', [ _ptr, _str, _int64 ], _int64;
_attach 'archive_write_disk_set_skip_file', [ _ptr, _int64, _int64 ], _int;
_attach 'archive_write_disk_uid', [ _ptr, _str, _int64 ], _int64;
_attach 'archive_write_fail', [ _ptr ], _int;
_attach 'archive_write_get_bytes_in_last_block', [ _ptr ], _int;
_attach 'archive_write_get_bytes_per_block', [ _ptr ], _int;
_attach 'archive_write_set_bytes_in_last_block', [ _ptr, _int ], _int;
_attach 'archive_write_set_bytes_per_block', [ _ptr, _int ], _int;
if(archive_version_number() >= 3000000)
{
_attach 'archive_write_add_filter_program', [ _ptr, _str ], _int;
}
else
{
_attach ['archive_write_set_compression_program' => 'archive_write_add_filter_program'], [ _ptr, _str ], _int;
}
_attach 'archive_entry_clear', [ _ptr ], _void;
_attach 'archive_entry_clone', [ _ptr ], _ptr;
_attach 'archive_entry_free', [ _ptr ], _void;
_attach 'archive_entry_new', undef, _ptr;
_attach 'archive_entry_new2', [ _ptr ], _ptr;
_attach 'archive_entry_size', [ _ptr ], _int64;
_attach 'archive_entry_set_size', [ _ptr, _int64 ], _void;
_attach 'archive_entry_set_perm', [ _ptr, _int ], _void;
_attach 'archive_entry_set_filetype', [ _ptr, _int ], _void;
_attach 'archive_entry_set_mtime', [ _ptr, _time_t, _long ], _void;
_attach 'archive_entry_set_ctime', [ _ptr, _time_t, _long ], _void;
_attach 'archive_entry_set_atime', [ _ptr, _time_t, _long ], _void;
_attach 'archive_entry_set_birthtime', [ _ptr, _time_t, _long ], _void;
_attach 'archive_entry_atime_is_set', [ _ptr ], _int;
_attach 'archive_entry_atime', [ _ptr ], _time_t;
_attach 'archive_entry_atime_nsec', [ _ptr ], _long;
_attach 'archive_entry_birthtime_is_set', [ _ptr ], _int;
_attach 'archive_entry_birthtime', [ _ptr ], _time_t;
_attach 'archive_entry_birthtime_nsec', [ _ptr ], _long;
_attach 'archive_entry_ctime_is_set', [ _ptr ], _int;
_attach 'archive_entry_ctime', [ _ptr ], _time_t;
_attach 'archive_entry_ctime_nsec', [ _ptr ], _long;
_attach 'archive_entry_mtime_is_set', [ _ptr ], _int;
_attach 'archive_entry_mtime', [ _ptr ], _time_t;
_attach 'archive_entry_mtime_nsec', [ _ptr ], _long;
_attach 'archive_entry_dev_is_set', [ _ptr ], _int;
_attach 'archive_entry_dev', [ _ptr ], _dev_t;
_attach 'archive_entry_devmajor', [ _ptr ], _dev_t;
_attach 'archive_entry_devminor', [ _ptr ], _dev_t;
_attach 'archive_entry_fflags_text', [ _ptr ], _str;
_attach 'archive_entry_gid', [ _ptr ], _int64;
_attach 'archive_entry_rdev', [ _ptr ], _int64;
_attach 'archive_entry_rdevmajor', [ _ptr ], _int64;
_attach 'archive_entry_rdevminor', [ _ptr ], _int64;
_attach 'archive_entry_set_rdev', [ _ptr, _int64 ], _void;
_attach 'archive_entry_set_rdevmajor', [ _ptr, _int64 ], _void;
_attach 'archive_entry_set_rdevminor', [ _ptr, _int64 ], _void;
_attach 'archive_entry_filetype', [ _ptr ], _int;
_attach 'archive_entry_ino', [ _ptr ], _int64;
_attach 'archive_entry_ino_is_set', [ _ptr ], _int;
_attach 'archive_entry_mode', [ _ptr ], _int;
_attach 'archive_entry_nlink', [ _ptr ], _uint;
_attach 'archive_entry_perm', [ _ptr ], _int;
_attach 'archive_entry_set_dev', [ _ptr, _dev_t ], _void;
_attach 'archive_entry_set_devmajor', [ _ptr, _dev_t ], _void;
_attach 'archive_entry_set_devminor', [ _ptr, _dev_t ], _void;
_attach 'archive_entry_set_fflags', [ _ptr, _ulong, _ulong ], _void;
_attach 'archive_entry_set_gid', [ _ptr, _int64 ], _void;
_attach 'archive_entry_set_ino', [ _ptr, _int64 ], _void;
_attach 'archive_entry_set_link', [ _ptr, _str ], _void;
_attach 'archive_entry_set_mode', [ _ptr, _int ], _void;
_attach 'archive_entry_set_nlink', [ _ptr, _int ], _void;
_attach 'archive_entry_set_uid', [ _ptr, _int64 ], _void;
_attach 'archive_entry_size_is_set', [ _ptr ], _int;
_attach 'archive_entry_unset_atime', [ _ptr ], _void;
_attach 'archive_entry_unset_birthtime', [ _ptr ], _void;
_attach 'archive_entry_unset_ctime', [ _ptr ], _void;
_attach 'archive_entry_unset_mtime', [ _ptr ], _void;
_attach 'archive_entry_unset_size', [ _ptr ], _void;
_attach 'archive_entry_xattr_clear', [ _ptr ], _void;
_attach 'archive_entry_xattr_count', [ _ptr ], _int;
_attach 'archive_entry_xattr_reset', [ _ptr ], _int;
_attach 'archive_entry_uid', [ _ptr ], _int64;
_attach 'archive_entry_copy_sourcepath', [ _ptr, _str ], _void;
_attach 'archive_entry_acl', [ _ptr ], _ptr;
_attach 'archive_entry_acl_clear', [ _ptr ], _int;
_attach 'archive_entry_acl_reset', [ _ptr, _int ], _int;
_attach 'archive_entry_acl_text', [ _ptr, _int ], _str;
_attach 'archive_entry_acl_count', [ _ptr, _int ], _int;
_attach 'archive_entry_sparse_clear', [ _ptr ], _void;
_attach 'archive_entry_sparse_add_entry', [ _ptr, _int64, _int64 ], _void;
_attach 'archive_entry_sparse_count', [ _ptr ], _int;
_attach 'archive_entry_sparse_reset', [ _ptr ], _int;
if(archive_version_number() >= 3000000)
{
_attach 'archive_entry_acl_add_entry', [ _ptr, _int, _int, _int, _int, _str ], _int;
}
else
{
_attach_function [ 'archive_entry_acl_add_entry' => '_archive_entry_acl_add_entry' ], [ _ptr, _int, _int, _int, _int, _str ], _void, sub {
shift->(@_);
ARCHIVE_OK();
};
}
_attach 'archive_entry_linkresolver_free', [ _ptr ], _void;
_attach 'archive_entry_linkresolver_new', undef, _ptr;
_attach 'archive_entry_linkresolver_set_strategy', [ _ptr, _int ], _void;
_attach 'archive_read_disk_descend', [ _ptr ], _int;
_attach 'archive_read_disk_can_descend', [ _ptr ], _int;
_attach 'archive_read_disk_current_filesystem', [ _ptr ], _int;
_attach 'archive_read_disk_current_filesystem_is_synthetic', [ _ptr ], _int;
_attach 'archive_read_disk_current_filesystem_is_remote', [ _ptr ], _int;
_attach 'archive_read_disk_set_atime_restored', [ _ptr ], _int;
_attach 'archive_read_disk_open', [ _ptr, _str ], _int;
_attach 'archive_read_disk_gname', [ _ptr, _int64 ], _str;
_attach 'archive_read_disk_uname', [ _ptr, _int64 ], _str;
_attach 'archive_read_disk_new', undef, _ptr;
_attach 'archive_read_disk_set_behavior', [ _ptr, _int ], _int;
_attach 'archive_read_disk_set_standard_lookup', [ _ptr ], _int;
_attach 'archive_read_disk_set_symlink_hybrid', [ _ptr ], _int;
_attach 'archive_read_disk_set_symlink_logical', [ _ptr ], _int;
_attach 'archive_read_disk_set_symlink_physical', [ _ptr ], _int;
_attach 'archive_match_new', undef, _ptr;
_attach 'archive_match_free', [ _ptr ], _int;
_attach 'archive_match_excluded', [ _ptr, _ptr ], _int;
_attach 'archive_match_path_excluded', [ _ptr, _ptr ], _int;
_attach 'archive_match_time_excluded', [ _ptr, _ptr ], _int;
_attach 'archive_match_owner_excluded', [ _ptr, _ptr ], _int;
_attach 'archive_match_include_gid', [ _ptr, _int64 ], _int;
_attach 'archive_match_include_uid', [ _ptr, _int64 ], _int;
_attach 'archive_match_include_gname', [ _ptr, _str ], _int;
_attach 'archive_match_include_uname', [ _ptr, _str ], _int;
_attach 'archive_match_exclude_entry', [ _ptr, _int, _ptr ], _int;
_attach 'archive_match_exclude_pattern', [ _ptr, _str ], _int;
_attach 'archive_match_exclude_pattern_from_file', [ _ptr, _str, _int ], _int;
_attach 'archive_match_include_pattern', [ _ptr, _str ], _int;
_attach 'archive_match_include_pattern_from_file', [ _ptr, _str, _int ], _int;
_attach 'archive_match_include_file_time', [ _ptr, _int, _str ], _int;
_attach 'archive_match_include_time', [ _ptr, _int, _time_t, _long ], _int;
_attach 'archive_match_path_unmatched_inclusions', [ _ptr ], _int;
foreach my $type (qw( all bzip2 compress gzip grzip lrzip lzip lzma lzop none rpm uu xz ))
{
my $name = "archive_read_support_filter_$type";
eval {
attach_function $name, [ _ptr ], _int;
};
if($@)
{
my $real = "archive_read_support_compression_$type";
eval { attach_function [ $real => $name ], [ _ptr ], _int };
}
}
_attach "archive_read_support_format_$_", [ _ptr ], _int
for qw( 7zip ar cab cpio empty gnutar iso9660 lha mtree rar raw tar xar zip );
foreach my $type (qw( b64encode bzip2 compress grzip gzip lrzip lzip lzma lzop none uuencode xz ))
{
my $name = "archive_write_add_filter_$type";
eval {
attach_function $name, [ _ptr ], _int;
};
if($@)
{
my $real = "archive_write_set_compression_$type";
eval { attach_function [ $real => $name ], [ _ptr ], _int };
}
}
_attach "archive_write_set_format_$_", [ _ptr ], _int
for qw( 7zip ar_bsd ar_svr4 cpio cpio_newc gnutar iso9660 mtree mtree_classic
pax pax_restricted shar shar_dump ustar v7tar xar zip);
_attach_function 'archive_match_include_date', [ _ptr, _int, _str ], _int;
_attach_function 'archive_entry_sparse_next', [ _ptr, _ptr, _ptr ], _int, sub
{
my $offset = FFI::Raw::MemPtr->new_from_ptr(0);
my $length = FFI::Raw::MemPtr->new_from_ptr(0);
my $ret = $_[0]->($_[1], $offset, $length);
$_[2] = deref_int64_get($$offset);
$_[3] = deref_int64_get($$length);
return $ret;
};
_attach_function 'archive_match_path_unmatched_inclusions_next', [ _ptr, _ptr ], _int, sub
{
my $pattern = FFI::Raw::MemPtr->new_from_ptr(0);
( run in 1.682 second using v1.01-cache-2.11-cpan-5fbc6bb55f2 )