From 1eb03e19fa31d98e8b7f83b38790e882c338fccd Mon Sep 17 00:00:00 2001 From: Daniel Pfeifer Date: Thu, 22 May 2014 20:07:21 +0200 Subject: [PATCH] libarchive: Add ReadDisk https://bugzilla.gnome.org/show_bug.cgi?id=668654 --- vapi/libarchive.vapi | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) diff --git a/vapi/libarchive.vapi b/vapi/libarchive.vapi index 3e00a682e..750e1184e 100644 --- a/vapi/libarchive.vapi +++ b/vapi/libarchive.vapi @@ -256,6 +256,37 @@ namespace Archive { public Result close (); } + [Compact] + [CCode (cname = "struct archive", free_function="archive_read_finish")] + public class ReadDisk : Read { + public ReadDisk (); + public Result set_symlink_logical (); + public Result set_symlink_physical (); + public Result set_symlink_hybrid (); + public Result entry_from_file (Entry entry, int fd, Posix.Stat stat); + public unowned string gname (Posix.gid_t gid); + public unowned string uname (Posix.uid_t uid); + public Result set_standard_lookup (); + + // HACK, they have no name in C. May not work correctly. + [CCode (instance_pos = 0, cname="void")] + public delegate unowned string GNameLookup (Posix.gid_t gid); + [CCode (instance_pos = 0, cname="void")] + public delegate unowned string UNameLookup (Posix.uid_t uid); + [CCode (instance_pos = 0, cname="void")] + public delegate void Cleanup (); + + public Result set_gname_lookup ( + GNameLookup lookup, + Cleanup? cleanup = null + ); + + public Result set_uname_lookup ( + UNameLookup lookup, + Cleanup? cleanup = null + ); + } + [CCode (cname = "struct archive", free_function="archive_write_finish")] public class Write : Archive { public Write (); -- 2.47.2