[vala] gidlparser: Special handling for some ambiguous cairo symbols



commit 4fcef86c97d81dc2c38ba62c11fef3b314253741
Author: Rico Tzschichholz <ricotz ubuntu com>
Date:   Mon Jul 18 12:47:34 2016 +0200

    gidlparser: Special handling for some ambiguous cairo symbols

 vapigen/valagidlparser.vala |   11 +++++++++++
 1 files changed, 11 insertions(+), 0 deletions(-)
---
diff --git a/vapigen/valagidlparser.vala b/vapigen/valagidlparser.vala
index f233019..0cb51c2 100644
--- a/vapigen/valagidlparser.vala
+++ b/vapigen/valagidlparser.vala
@@ -1896,6 +1896,17 @@ public class Vala.GIdlParser : CodeVisitor {
                        type.unresolved_symbol = new UnresolvedSymbol (new UnresolvedSymbol (null, "GLib"), 
"HashTable");
                } else if (type_node.tag == TypeTag.ERROR) {
                        type.unresolved_symbol = new UnresolvedSymbol (new UnresolvedSymbol (null, "GLib"), 
"Error");
+               } else if (type_node.unparsed.has_prefix ("cairo_")) {
+                       if (type_node.unparsed.has_prefix ("cairo_device_t")) {
+                               type.unresolved_symbol = new UnresolvedSymbol (new UnresolvedSymbol (null, 
"Cairo"), "Device");
+                       } else if (type_node.unparsed.has_prefix ("cairo_pattern_t")) {
+                               type.unresolved_symbol = new UnresolvedSymbol (new UnresolvedSymbol (null, 
"Cairo"), "Pattern");
+                       } else if (type_node.unparsed.has_prefix ("cairo_surface_t")) {
+                               type.unresolved_symbol = new UnresolvedSymbol (new UnresolvedSymbol (null, 
"Cairo"), "Surface");
+                       }
+                       if (type_node.unparsed.has_suffix ("**")) {
+                               direction = ParameterDirection.OUT;
+                       }
                } else if (type_node.is_interface) {
                        var n = type_node.@interface;
                        


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]