]> git.ipfire.org Git - thirdparty/vala.git/commitdiff
Support 'cheader_filename' attribute for fields and methods, fixes bug
authorJürg Billeter <j@bitron.ch>
Wed, 4 Jun 2008 14:41:34 +0000 (14:41 +0000)
committerJürg Billeter <juergbi@src.gnome.org>
Wed, 4 Jun 2008 14:41:34 +0000 (14:41 +0000)
2008-06-04  Jürg Billeter  <j@bitron.ch>

* vapigen/valagidlparser.vala:

Support 'cheader_filename' attribute for fields and methods,
fixes bug 533634

svn path=/trunk/; revision=1562

ChangeLog
vapigen/valagidlparser.vala

index 896129d0772a2f6930658c468ce8a1ad17628320..65318204621160c94dbdcf3ef3e27e2189d268a8 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,10 @@
+2008-06-04  Jürg Billeter  <j@bitron.ch>
+
+       * vapigen/valagidlparser.vala:
+
+       Support 'cheader_filename' attribute for fields and methods,
+       fixes bug 533634
+
 2008-06-04  Jürg Billeter  <j@bitron.ch>
 
        * gobject/valaccodeclassbinding.vala:
index 77cc0f73f63f122df7417bcab608f9c2c6e36d1b..f0f5196efe98c09b758ad71a27b802a413d8a11c 100644 (file)
@@ -1312,6 +1312,8 @@ public class Vala.GIdlParser : CodeVisitor {
                                                arg_type.value_owned = true;
                                                return_type.add_type_argument (arg_type);
                                        }
+                               } else if (nv[0] == "cheader_filename") {
+                                       m.add_cheader_filename (eval (nv[1]));
                                }
                        }
                }
@@ -1633,6 +1635,8 @@ public class Vala.GIdlParser : CodeVisitor {
                        return null;
                }
 
+               string cheader_filename = null;
+
                var attributes = get_attributes ("%s.%s".printf (current_data_type.get_cname (), node.name));
                if (attributes != null) {
                        foreach (string attr in attributes) {
@@ -1660,6 +1664,8 @@ public class Vala.GIdlParser : CodeVisitor {
                                                arg_type.value_owned = true;
                                                type.add_type_argument (arg_type);
                                        }
+                               } else if (nv[0] == "cheader_filename") {
+                                       cheader_filename = eval (nv[1]);
                                }
                        }
                }
@@ -1685,6 +1691,10 @@ public class Vala.GIdlParser : CodeVisitor {
                        field.set_cname (node.name);
                }
 
+               if (cheader_filename != null) {
+                       field.add_cheader_filename (cheader_filename);
+               }
+
                field.no_array_length = true;
 
                return field;