]> git.ipfire.org Git - thirdparty/vala.git/commitdiff
libarchive: Add ReadDisk
authorDaniel Pfeifer <daniel@pfeifer-mail.de>
Thu, 22 May 2014 18:07:21 +0000 (20:07 +0200)
committerRico Tzschichholz <ricotz@ubuntu.com>
Sat, 8 Oct 2016 19:32:00 +0000 (21:32 +0200)
https://bugzilla.gnome.org/show_bug.cgi?id=668654

vapi/libarchive.vapi

index 3e00a682e4b3ea49b11c952ed95813dc59b793df..750e1184efe8edbb15da9e8a22e6f35d3e49c6fe 100644 (file)
@@ -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 ();