2007-08-20 Jürg Billeter <j@bitron.ch>
+ * ccode/valaccodedeclaration.vala, ccode/valaccodemodifiers.vala,
+ gobject/valacodegenerator.vala: fix initialization of external
+ variables
+
+2007-08-20 Jürg Billeter <j@bitron.ch>
+
* vala/valafield.vala, gobject/valacodegenerator.vala,
gobject/valacodegeneratorclass.vala: support namespace fields and
public static class fields, fixes bug 464985
}
public override void write (CCodeWriter! writer) {
- if ((modifiers & CCodeModifiers.STATIC) == CCodeModifiers.STATIC) {
- // combined declaration and initialization for static variables
+ if ((modifiers & (CCodeModifiers.STATIC | CCodeModifiers.EXTERN)) != 0) {
+ // combined declaration and initialization for static and extern variables
writer.write_indent ();
- writer.write_string ("static ");
+ if ((modifiers & CCodeModifiers.STATIC) != 0) {
+ writer.write_string ("static ");
+ }
writer.write_string (type_name);
writer.write_string (" ");
}
public override void write_declaration (CCodeWriter! writer) {
- if ((modifiers & CCodeModifiers.STATIC) == CCodeModifiers.STATIC) {
+ if ((modifiers & (CCodeModifiers.STATIC | CCodeModifiers.EXTERN)) != 0) {
// no separate declaration for static variables
return;
}
/* valaccodemodifiers.vala
*
- * Copyright (C) 2006 Jürg Billeter, Raffaele Sandrini
+ * Copyright (C) 2006-2007 Jürg Billeter, Raffaele Sandrini
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
using GLib;
-public enum /* flags */ Vala.CCodeModifiers {
+[Flags]
+public enum Vala.CCodeModifiers {
NONE,
STATIC,
- REGISTER
+ REGISTER,
+ EXTERN
}
}
}
cdecl.add_declarator (var_decl);
+ cdecl.modifiers = CCodeModifiers.EXTERN;
source_type_member_declaration.append (cdecl);
lhs = new CCodeIdentifier (f.get_cname ());