From fd2fb44f99f2f36d4d8c5e0253bbb644f933699e Mon Sep 17 00:00:00 2001 From: Stephan Sundermann Date: Tue, 8 Oct 2013 18:55:34 +0200 Subject: [PATCH] generator: readable&writable attribs to be backwards compat --- generator/FieldBase.cs | 4 ++++ generator/Parameters.cs | 9 +-------- generator/Parser.cs | 6 ++++++ 3 files changed, 11 insertions(+), 8 deletions(-) diff --git a/generator/FieldBase.cs b/generator/FieldBase.cs index 353c6c553..053e98aa9 100644 --- a/generator/FieldBase.cs +++ b/generator/FieldBase.cs @@ -42,12 +42,16 @@ namespace GtkSharp.Generation { protected virtual bool Readable { get { + if (Parser.GetVersion (elem.OwnerDocument.DocumentElement) <= 2) + return elem.GetAttribute ("readable") != "false"; return elem.HasAttribute ("readable") && elem.GetAttributeAsBoolean ("readable"); } } protected virtual bool Writable { get { + if (Parser.GetVersion (elem.OwnerDocument.DocumentElement) <= 2) + return elem.GetAttribute ("writeable") != "false"; return elem.HasAttribute ("writeable") && elem.GetAttributeAsBoolean ("writeable"); } } diff --git a/generator/Parameters.cs b/generator/Parameters.cs index c2c50dbd6..2ea48d260 100644 --- a/generator/Parameters.cs +++ b/generator/Parameters.cs @@ -53,7 +53,7 @@ namespace GtkSharp.Generation { private bool throws = false; public bool Throws { get { - if (ParserVersion <= 2) + if (Parser.GetVersion (elem.OwnerDocument.DocumentElement) <= 2) return true; if (!throws && elem.HasAttribute ("throws")) throws = elem.GetAttributeAsBoolean ("throws"); @@ -289,12 +289,5 @@ namespace GtkSharp.Generation { return String.Join (", ", result); } } - - private int ParserVersion { - get { - XmlElement root = elem.OwnerDocument.DocumentElement; - return root.HasAttribute ("parser_version") ? int.Parse (root.GetAttribute ("parser_version")) : 1; - } - } } } diff --git a/generator/Parser.cs b/generator/Parser.cs index 6b92b0aaf..b7bfa5f98 100644 --- a/generator/Parser.cs +++ b/generator/Parser.cs @@ -187,6 +187,12 @@ namespace GtkSharp.Generation { return result; } + internal static int GetVersion (XmlElement document_element) + { + XmlElement root = document_element; + return root.HasAttribute ("parser_version") ? int.Parse (root.GetAttribute ("parser_version")) : 1; + } + private IGeneratable ParseSymbol (XmlElement symbol) { string type = symbol.GetAttribute ("type");