[gobject-introspection/wip/transformer: 7/13] [girparser] Cleanly pass through c:include



commit a4a060e4a6344612de9e08a76313a62f615f30fe
Author: Colin Walters <walters verbum org>
Date:   Wed Jul 21 18:55:24 2010 -0400

    [girparser] Cleanly pass through c:include

 girepository/girparser.c |   13 +++++++++++++
 1 files changed, 13 insertions(+), 0 deletions(-)
---
diff --git a/girepository/girparser.c b/girepository/girparser.c
index 8af0396..11576e9 100644
--- a/girepository/girparser.c
+++ b/girepository/girparser.c
@@ -47,6 +47,7 @@ typedef enum
   STATE_END,
   STATE_REPOSITORY,
   STATE_INCLUDE,
+  STATE_C_INCLUDE,
   STATE_PACKAGE,
   STATE_NAMESPACE, /* 5 */
   STATE_ENUM,
@@ -2734,6 +2735,11 @@ start_element_handler (GMarkupParseContext *context,
 				 attribute_names, attribute_values,
 				 ctx, error))
 	goto out;
+      else if (strcmp (element_name, "c:include") == 0)
+	{
+	  state_switch (ctx, STATE_C_INCLUDE);
+	  goto out;
+	}
       break;
 
     case 'm':
@@ -3033,6 +3039,13 @@ end_element_handler (GMarkupParseContext *context,
         }
       break;
 
+    case STATE_C_INCLUDE:
+      if (require_end_element (context, ctx, "c:include", element_name, error))
+	{
+          state_switch (ctx, STATE_REPOSITORY);
+        }
+      break;
+
     case STATE_PACKAGE:
       if (require_end_element (context, ctx, "package", element_name, error))
         {



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