From: "mar...@saepia.net" <mar...@saepia.net> Sent: Wednesday, 2 March 2016, 10:19 Subject: [Vala] How to properly define struct in manually written VAPI? I need to write VAPI for jansson JSON library. I have already started ( https://github.com/akheron/jansson/pull/273) and generally speaking it works fine but I have an issue with covering one struct.
In C code there's the following struct: #define JSON_ERROR_TEXT_LENGTH 160 #define JSON_ERROR_SOURCE_LENGTH 80 Bind as:[CCode (cname = "int", cprefix = "JSON_ERROR_", has_type_id = false)] public enum JsonErrorLengths { TEXT_LENGTH, SOURCE_LENGTH }See: https://wiki.gnome.org/Projects/Vala/LegacyBindings#Enums_and_Flags typedef struct { int line; int column; int position; char source[JSON_ERROR_SOURCE_LENGTH]; char text[JSON_ERROR_TEXT_LENGTH]; } json_error_t; Try binding as:[CCode( cname = "json_error_t", has_type_id = false )]public struct JsonError { public int line; public int column; public int position; public uint8 source[ JsonErrorLengths.SOURCE_LENGTH ]; public uint8 text[ JsonErrorLengths.TEXT_LENGTH ]; } or you could try using:[CCode (array_length_cexpr = "JSON_ERROR_SOURCE_LENGTH")]See: https://wiki.gnome.org/Projects/Vala/LegacyBindings#Arrays-1 I hope that helps, Al _______________________________________________ vala-list mailing list vala-list@gnome.org https://mail.gnome.org/mailman/listinfo/vala-list