From: Daniel Pfeifer Date: Thu, 22 May 2014 18:07:21 +0000 (+0200) Subject: libarchive: Add ReadDisk X-Git-Tag: 0.35.1~107 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=1eb03e19fa31d98e8b7f83b38790e882c338fccd;p=thirdparty%2Fvala.git libarchive: Add ReadDisk https://bugzilla.gnome.org/show_bug.cgi?id=668654 --- 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 ();