[vala] vapigen: Support hidden attribute for enum values
- From: Jürg Billeter <juergbi src gnome org>
- To: svn-commits-list gnome org
- Cc:
- Subject: [vala] vapigen: Support hidden attribute for enum values
- Date: Fri, 13 Nov 2009 10:45:44 +0000 (UTC)
commit 6fbb9d07c97ba5da2dcc95a1ae8a4a3e840c893e
Author: Johann Prieur <johann prieur gmail com>
Date: Fri Nov 13 11:45:10 2009 +0100
vapigen: Support hidden attribute for enum values
vapigen/valagidlparser.vala | 32 ++++++++++++++++++++++++++++++--
1 files changed, 30 insertions(+), 2 deletions(-)
---
diff --git a/vapigen/valagidlparser.vala b/vapigen/valagidlparser.vala
index e2303bc..2e609a1 100644
--- a/vapigen/valagidlparser.vala
+++ b/vapigen/valagidlparser.vala
@@ -863,6 +863,21 @@ public class Vala.GIdlParser : CodeVisitor {
string common_prefix = null;
foreach (weak IdlNode value in en_node.values) {
+ var val_attributes = get_attributes (value.name);
+ bool is_hidden = false;
+ if (val_attributes != null) {
+ foreach (string attr in val_attributes) {
+ var nv = attr.split ("=", 2);
+ if (nv[0] == "hidden" && eval(nv[1]) == "1") {
+ is_hidden = true;
+ }
+ }
+ }
+
+ if (is_hidden) {
+ continue;
+ }
+
if (common_prefix == null) {
common_prefix = value.name;
while (common_prefix.len () > 0 && !common_prefix.has_suffix ("_")) {
@@ -919,8 +934,21 @@ public class Vala.GIdlParser : CodeVisitor {
en.set_cprefix (common_prefix);
foreach (weak IdlNode value2 in en_node.values) {
- var ev = new EnumValue (value2.name.offset (common_prefix.len ()));
- en.add_value (ev);
+ var val_attributes = get_attributes (value2.name);
+ bool is_hidden = false;
+ if (val_attributes != null) {
+ foreach (string attr in val_attributes) {
+ var nv = attr.split ("=", 2);
+ if (nv[0] == "hidden" && eval(nv[1]) == "1") {
+ is_hidden = true;
+ }
+ }
+ }
+
+ if (!is_hidden) {
+ var ev = new EnumValue (value2.name.offset (common_prefix.len ()));
+ en.add_value (ev);
+ }
}
if (is_errordomain) {
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]