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 896129d..6531820 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,12 @@
 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:
        * gobject/valaccodegenerator.vala:
        * gobject/valaccodeinterfacebinding.vala:
index 77cc0f7..f0f5196 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;