From fad7e317eccac1495e4800355bb18a26c4a95697 Mon Sep 17 00:00:00 2001 From: Juerg Billeter Date: Sun, 2 Dec 2007 11:53:15 +0000 Subject: [PATCH] prevent conflicts in type macros 2007-12-02 Juerg Billeter * vala/valaclass.vala, vala/valainterface.vala: prevent conflicts in type macros svn path=/trunk/; revision=747 --- ChangeLog | 5 +++++ vala/valaclass.vala | 10 ++++++++++ vala/valainterface.vala | 10 ++++++++++ 3 files changed, 25 insertions(+) diff --git a/ChangeLog b/ChangeLog index f5240b1..336adad 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,10 @@ 2007-12-02 Jürg Billeter + * vala/valaclass.vala, vala/valainterface.vala: prevent conflicts in + type macros + +2007-12-02 Jürg Billeter + * vala/valadatatype.vala, vala/Makefile.am: rename TypeReference to DataType diff --git a/vala/valaclass.vala b/vala/valaclass.vala index 4da15e6..404fb1e 100644 --- a/vala/valaclass.vala +++ b/vala/valaclass.vala @@ -373,6 +373,16 @@ public class Vala.Class : Typesymbol { private string get_lower_case_csuffix () { if (lower_case_csuffix == null) { lower_case_csuffix = camel_case_to_lower_case (name); + + // remove underscores in some cases to avoid conflicts of type macros + if (lower_case_csuffix.has_prefix ("type_")) { + lower_case_csuffix = "type" + lower_case_csuffix.offset ("type_".len ()); + } else if (lower_case_csuffix.has_prefix ("is_")) { + lower_case_csuffix = "is" + lower_case_csuffix.offset ("is_".len ()); + } + if (lower_case_csuffix.has_suffix ("_class")) { + lower_case_csuffix = lower_case_csuffix.substring (0, lower_case_csuffix.len () - "_class".len ()) + "class"; + } } return lower_case_csuffix; } diff --git a/vala/valainterface.vala b/vala/valainterface.vala index 2287c08..b330ab3 100644 --- a/vala/valainterface.vala +++ b/vala/valainterface.vala @@ -215,6 +215,16 @@ public class Vala.Interface : Typesymbol { public string! get_lower_case_csuffix () { if (lower_case_csuffix == null) { lower_case_csuffix = camel_case_to_lower_case (name); + + // remove underscores in some cases to avoid conflicts of type macros + if (lower_case_csuffix.has_prefix ("type_")) { + lower_case_csuffix = "type" + lower_case_csuffix.offset ("type_".len ()); + } else if (lower_case_csuffix.has_prefix ("is_")) { + lower_case_csuffix = "is" + lower_case_csuffix.offset ("is_".len ()); + } + if (lower_case_csuffix.has_suffix ("_class")) { + lower_case_csuffix = lower_case_csuffix.substring (0, lower_case_csuffix.len () - "_class".len ()) + "class"; + } } return lower_case_csuffix; } -- 2.7.4