summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRico Tzschichholz <ricotz@ubuntu.com>2018-04-15 18:36:25 +0200
committerRico Tzschichholz <ricotz@ubuntu.com>2018-04-15 18:37:40 +0200
commit9505405759acc20f1ed2f92aba853448b03e6799 (patch)
tree5ac853f868b27aafe249e3440639e659c7c8ff82
parentc3621d0f74783f29f4b58c2eb5d338dabf9428df (diff)
downloadvala-9505405759acc20f1ed2f92aba853448b03e6799.tar.gz
libarchive: Add "has_typedef = false" attributes to delegates as needed
https://bugzilla.gnome.org/show_bug.cgi?id=795079
-rw-r--r--vapi/libarchive.vapi13
1 files changed, 8 insertions, 5 deletions
diff --git a/vapi/libarchive.vapi b/vapi/libarchive.vapi
index 750e1184e..7cd5e302b 100644
--- a/vapi/libarchive.vapi
+++ b/vapi/libarchive.vapi
@@ -41,7 +41,8 @@ namespace Archive {
[CCode (cname="archive_close_callback")]
public delegate int CloseCallback (Archive archive);
- // In reality a "void (*_progress_func)(void *)" parameter without name.
+ // "void (*_progress_func)(void *)" function pointer without typedef.
+ [CCode (has_typedef = false)]
public delegate void ExtractProgressCallback ();
[CCode (cprefix="ARCHIVE_", cname="int", has_type_id = false)]
@@ -374,12 +375,14 @@ namespace Archive {
public Result set_options (ExtractFlags flags);
public Result set_standard_lookup ();
- // HACK, they have no name in C. May not work correctly.
- [CCode (instance_pos = 0, cname="gid_t")]
+ // "gid_t (*)(void *, const char *, gid_t)"
+ [CCode (has_typedef = false, instance_pos = 0)]
public delegate Posix.gid_t GroupLookup (string group, Posix.gid_t gid);
- [CCode (instance_pos = 0, cname="uid_t")]
+ // "uid_t (*)(void *, const char *, uid_t)"
+ [CCode (has_typedef = false, instance_pos = 0)]
public delegate Posix.uid_t UserLookup (string user, Posix.uid_t uid);
- [CCode (instance_pos = 0, cname="void")]
+ // "void (*)(void *)"
+ [CCode (has_typedef = false, instance_pos = 0)]
public delegate void Cleanup ();
public Result set_group_lookup (