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

Bug#596089: unblock: anjuta/2.30.2.1-1



Package: release.debian.org
Severity: normal
User: release.debian.org@packages.debian.org
Usertags: freeze-exception

anjuta (2:2.30.2.1-1) unstable; urgency=low
 .
   * New upstream release.
   * Remove b0rked GConf schema in clean target. Closes: #577719.

The upstream changes are only bug fixes and translation updates:

        Anjuta 2.30.2.1 "Bye, bye Sourceforge.net" (21 June 2010) -- Johannes Schmid
        
        Bugs fixed:
        libanjuta: bgo#620664  - Drag and drop of multiple source files
        language-support-cpp-java: Support more vim modelines
        
        Anjuta 2.30.2 "Javascript isn't an island at all" (5 June 2010) -- Johannes Schmid
        
        Bugs fixed:
        language-support-cpp-java: bgo#618955  - Smart brace completion is no longer smart
        language-support-cpp-java: bgo#618314  - Anjuta crash on while editing
        message-view: Remove tab position preferences and give colors better defaults
        file-wizard: #616810 Error when creating new c source and header
        language-support-js: bgo#617734 - Load/Unload the plugin properly when a .js file is open
        document-manager: fixed bgo #616739 - doesn't open .ui files, neither in xml mode
        anjuta-tags: bgo #616780. Handle more cases.
        anjuta-tags: bgo #616780 - Wrong return type recognition
        anjuta: Add APR_UTILS to subversion CFLAGS and LIBS (bgo#617149)

The diff for non-{documentation,translation} files is attached. The
large changes in ctags-visitor.c are caused by it being autogenerated
from vala.

Cheers,
-- 
 .''`.
: :' :     “You would need to ask a lawyer if you don't know
`. `'       that a handshake of course makes a valid contract.”
  `-        --  J???rg Schilling
--- anjuta-2.30.1.0/libanjuta/anjuta-utils.c	2010-04-11 15:20:49.000000000 +0200
+++ anjuta-2.30.2.1/libanjuta/anjuta-utils.c	2010-06-21 19:47:10.000000000 +0200
@@ -2313,7 +2313,7 @@ anjuta_utils_drop_get_files (GtkSelectio
 
 	for (i = 0; uris[i] != NULL; i++)
 	{
-		GFile* file = g_file_new_for_commandline_arg (uris[0]);
+		GFile* file = g_file_new_for_uri (uris[i]);
 		files = g_slist_append(files, file);
 	}
 
--- anjuta-2.30.1.0/libanjuta/anjuta-version.h	2010-04-27 18:02:26.000000000 +0200
+++ anjuta-2.30.2.1/libanjuta/anjuta-version.h	2010-06-21 19:48:02.000000000 +0200
@@ -47,14 +47,14 @@
  *
  * Anjuta micro version component (e.g. 3 if %LIBANJUTA_VERSION is 1.2.3)
  */
-#define LIBANJUTA_MICRO_VERSION			(1)
+#define LIBANJUTA_MICRO_VERSION			(2)
 
 /**
  * LIBANJUTA_VERSION
  *
  * Anjuta version.
  */
-#define LIBANJUTA_VERSION					(2.30.1.0)
+#define LIBANJUTA_VERSION					(2.30.2.1)
 
 /**
  * LIBANJUTA_VERSION_S:
@@ -62,7 +62,7 @@
  * Anjuta version, encoded as a string, useful for printing and
  * concatenation.
  */
-#define LIBANJUTA_VERSION_S				"2.30.1.0"
+#define LIBANJUTA_VERSION_S				"2.30.2.1"
 
 /**
  * LIBANJUTA_VERSION_HEX:
--- anjuta-2.30.1.0/plugins/file-wizard/file.c	2010-04-11 15:20:49.000000000 +0200
+++ anjuta-2.30.2.1/plugins/file-wizard/file.c	2010-06-21 19:34:11.000000000 +0200
@@ -358,7 +358,7 @@ on_new_file_okbutton_clicked(GtkWidget *
 			if (file_list->next)
 			{
 				/* Save header file */
-				ianjuta_file_savable_save_as (IANJUTA_FILE_SAVABLE (teh), (GFile *)file_list->data, NULL);		
+				ianjuta_file_savable_save_as (IANJUTA_FILE_SAVABLE (teh), (GFile *)file_list->next->data, NULL);		
 			}		
 
 
--- anjuta-2.30.1.0/plugins/language-support-cpp-java/cpp-java-assist.c	2010-04-26 21:37:52.000000000 +0200
+++ anjuta-2.30.2.1/plugins/language-support-cpp-java/cpp-java-assist.c	2010-06-21 19:47:10.000000000 +0200
@@ -1440,13 +1440,7 @@ cpp_java_assist_finalize (GObject *objec
 	CppJavaAssist *assist = CPP_JAVA_ASSIST (object);
 	cpp_java_assist_uninstall (assist);
 	cpp_java_assist_clear_completion_cache (assist);
-#if 0
-	if (assist->priv->calltip_context)
-	{
-		g_free (assist->priv->calltip_context);
-		assist->priv->calltip_context = NULL;
-	}
-#endif
+	cpp_java_assist_clear_calltip_context (assist);
 	g_object_unref (assist->priv->cancel_calltip_file);
 	g_object_unref (assist->priv->cancel_calltip_project);
 	g_object_unref (assist->priv->cancel_calltip_system);
--- anjuta-2.30.1.0/plugins/language-support-cpp-java/plugin.c	2010-04-11 15:20:49.000000000 +0200
+++ anjuta-2.30.2.1/plugins/language-support-cpp-java/plugin.c	2010-06-21 19:34:11.000000000 +0200
@@ -507,7 +507,7 @@ parse_mode_line_vim (CppJavaPlugin *plug
 {
 	gchar **strv, **ptr;
 	
-	strv = g_strsplit (modeline, " ", -1);
+	strv = g_strsplit_set (modeline, " \t:", -1);
 	ptr = strv;
 	while (*ptr)
 	{
@@ -516,15 +516,15 @@ parse_mode_line_vim (CppJavaPlugin *plug
 		if (keyval[0])
 		{
 			g_strstrip (keyval[0]);
-      if (keyval[1])
-      {
-			  g_strstrip (keyval[1]);
-			  set_indentation_param_vim (plugin, g_strchug (keyval[0]),
-                                     g_strchug (keyval[1]));
-      }
-      else
-			  set_indentation_param_vim (plugin, g_strchug (keyval[0]),
-                                     NULL);        
+			if (keyval[1])
+			{
+				g_strstrip (keyval[1]);
+				set_indentation_param_vim (plugin, g_strchug (keyval[0]),
+				                           g_strchug (keyval[1]));
+			}
+			else
+				set_indentation_param_vim (plugin, g_strchug (keyval[0]),
+				                           NULL);        
 		}
 		g_strfreev (keyval);
 		ptr++;
@@ -549,18 +549,18 @@ extract_mode_line (const gchar *comment_
 		}
 	}
 	/* Search for vim-like modelines */
-	begin_modeline = strstr (comment_text, "vim:set");
+	begin_modeline = strstr (comment_text, "vim:");
 	if (begin_modeline)
 	{
-		begin_modeline += 7;
-		end_modeline = strstr (begin_modeline, ":");
+		begin_modeline += strlen ("vim:");
+		end_modeline = strstr (begin_modeline, "*/");
 		/* Check for escape characters */
 		while (end_modeline)
 		{
 			 if (!g_str_equal ((end_modeline - 1), "\\"))
 				break;
 			end_modeline++;
-			end_modeline = strstr (end_modeline, ":");
+			end_modeline = strstr (end_modeline, "*/");
 		}
 		if (end_modeline)
 		{
@@ -1498,31 +1498,27 @@ on_editor_char_inserted_cpp (IAnjutaEdit
 			/* If the previous char is a ' we don't have to autocomplete */
 			if (*prev_char != '\'')
 			{
-				
+				ianjuta_document_begin_undo_action (IANJUTA_DOCUMENT (editor), NULL);
 				ianjuta_iterable_next (iter, NULL);
 				switch (ch)
 				{
-					case '[': ianjuta_document_begin_undo_action (IANJUTA_DOCUMENT (editor), NULL);
+					case '[': 
 							  ianjuta_editor_insert (editor, iter,
 													 "]", 1, NULL);
-							  ianjuta_document_end_undo_action (IANJUTA_DOCUMENT (editor), NULL);
 							  break;
-					case '(': ianjuta_document_begin_undo_action (IANJUTA_DOCUMENT (editor), NULL);
+					case '(': 
 							  ianjuta_editor_insert (editor, iter,
 													 ")", 1, NULL);
-							  ianjuta_document_end_undo_action (IANJUTA_DOCUMENT (editor), NULL);
 							  break;
-					default: break;
+					default: 
+						       break;
 				}
-
-				ianjuta_document_begin_undo_action (IANJUTA_DOCUMENT (editor), NULL);
-				ianjuta_iterable_previous (iter, NULL);
 				ianjuta_editor_goto_position (editor, iter, NULL);
 				ianjuta_document_end_undo_action (IANJUTA_DOCUMENT (editor), NULL);
 			}
 			g_object_unref (previous);
 		}
-		else if (ch == ']' || ch == ')' || ch == '"' || ch == '\'')
+		else if (ch == '"' || ch == '\'')
 		{
 			gchar *prev_char;
 			IAnjutaIterable *previous;
@@ -1553,8 +1549,6 @@ on_editor_char_inserted_cpp (IAnjutaEdit
 					
 					ianjuta_document_begin_undo_action (IANJUTA_DOCUMENT (editor), NULL);
 					ianjuta_editor_insert (editor, iter, c, 1, NULL);
-
-					ianjuta_iterable_previous (iter, NULL);
 					ianjuta_editor_goto_position (editor, iter, NULL);
 					ianjuta_document_end_undo_action (IANJUTA_DOCUMENT (editor), NULL);	
 					
--- anjuta-2.30.1.0/plugins/message-view/anjuta-message-manager-plugin.ui	2010-04-11 15:20:49.000000000 +0200
+++ anjuta-2.30.2.1/plugins/message-view/anjuta-message-manager-plugin.ui	2010-06-21 19:34:11.000000000 +0200
@@ -1,110 +1,7 @@
-<?xml version="1.0"?>
+<?xml version="1.0" encoding="UTF-8"?>
 <interface>
   <requires lib="gtk+" version="2.16"/>
   <!-- interface-naming-policy toplevel-contextual -->
-  <object class="GtkAdjustment" id="adjustment1">
-    <property name="value">50</property>
-    <property name="lower">1</property>
-    <property name="upper">1000</property>
-    <property name="step_increment">1</property>
-    <property name="page_increment">10</property>
-  </object>
-  <object class="GtkAdjustment" id="adjustment2">
-    <property name="value">50</property>
-    <property name="lower">1</property>
-    <property name="upper">1000</property>
-    <property name="step_increment">1</property>
-    <property name="page_increment">10</property>
-  </object>
-  <object class="GtkListStore" id="model1">
-    <columns>
-      <!-- column-name gchararray -->
-      <column type="gchararray"/>
-    </columns>
-    <data>
-      <row>
-        <col id="0" translatable="yes">Top</col>
-      </row>
-      <row>
-        <col id="0" translatable="yes">Bottom</col>
-      </row>
-      <row>
-        <col id="0" translatable="yes">Left</col>
-      </row>
-      <row>
-        <col id="0" translatable="yes">Right</col>
-      </row>
-    </data>
-  </object>
-  <object class="GtkListStore" id="model2">
-    <columns>
-      <!-- column-name gchararray -->
-      <column type="gchararray"/>
-    </columns>
-    <data>
-      <row>
-        <col id="0" translatable="yes" comments="text style in editor">Underline-Plain</col>
-      </row>
-      <row>
-        <col id="0" translatable="yes" comments="text style in editor">Underline-Squiggle</col>
-      </row>
-      <row>
-        <col id="0" translatable="yes" comments="text style in editor, TT is for typewriter text">Underline-TT</col>
-      </row>
-      <row>
-        <col id="0" translatable="yes" comments="text style in editor">Diagonal</col>
-      </row>
-      <row>
-        <col id="0" translatable="yes" comments="text style in editor">Strike-Out</col>
-      </row>
-    </data>
-  </object>
-  <object class="GtkListStore" id="model3">
-    <columns>
-      <!-- column-name gchararray -->
-      <column type="gchararray"/>
-    </columns>
-    <data>
-      <row>
-        <col id="0" translatable="yes">Underline-Plain</col>
-      </row>
-      <row>
-        <col id="0" translatable="yes">Underline-Squiggle</col>
-      </row>
-      <row>
-        <col id="0" translatable="yes">Underline-TT</col>
-      </row>
-      <row>
-        <col id="0" translatable="yes">Diagonal</col>
-      </row>
-      <row>
-        <col id="0" translatable="yes">Strike-Out</col>
-      </row>
-    </data>
-  </object>
-  <object class="GtkListStore" id="model4">
-    <columns>
-      <!-- column-name gchararray -->
-      <column type="gchararray"/>
-    </columns>
-    <data>
-      <row>
-        <col id="0" translatable="yes">Underline-Plain</col>
-      </row>
-      <row>
-        <col id="0" translatable="yes">Underline-Squiggle</col>
-      </row>
-      <row>
-        <col id="0" translatable="yes">Underline-TT</col>
-      </row>
-      <row>
-        <col id="0" translatable="yes">Diagonal</col>
-      </row>
-      <row>
-        <col id="0" translatable="yes">Strike-Out</col>
-      </row>
-    </data>
-  </object>
   <object class="GtkWindow" id="preferences_dialog_messages">
     <property name="title" translatable="yes">window6</property>
     <child>
@@ -125,19 +22,6 @@
                 <property name="column_spacing">5</property>
                 <property name="row_spacing">5</property>
                 <child>
-                  <object class="GtkLabel" id="label138">
-                    <property name="visible">True</property>
-                    <property name="xalign">0</property>
-                    <property name="label" translatable="yes">Tab position:</property>
-                  </object>
-                  <packing>
-                    <property name="top_attach">3</property>
-                    <property name="bottom_attach">4</property>
-                    <property name="x_options">GTK_FILL</property>
-                    <property name="y_options"></property>
-                  </packing>
-                </child>
-                <child>
                   <object class="GtkSpinButton" id="preferences_spin:int:50:0:truncat.mesg.first">
                     <property name="can_focus">True</property>
                     <property name="adjustment">adjustment1</property>
@@ -207,23 +91,10 @@
                   </packing>
                 </child>
                 <child>
-                  <object class="GtkComboBox" id="preferences_combo:text:Top,Bottom,Left,Right:0:messages.tab.position">
-                    <property name="visible">True</property>
-                    <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
-                    <property name="model">model1</property>
-                    <child>
-                      <object class="GtkCellRendererText" id="renderer1"/>
-                      <attributes>
-                        <attribute name="text">0</attribute>
-                      </attributes>
-                    </child>
-                  </object>
-                  <packing>
-                    <property name="left_attach">1</property>
-                    <property name="right_attach">2</property>
-                    <property name="top_attach">3</property>
-                    <property name="bottom_attach">4</property>
-                  </packing>
+                  <placeholder/>
+                </child>
+                <child>
+                  <placeholder/>
                 </child>
                 <child>
                   <placeholder/>
@@ -382,7 +253,7 @@
                 <property name="column_spacing">5</property>
                 <property name="row_spacing">5</property>
                 <child>
-                  <object class="GtkColorButton" id="preferences_color:color:#E00000:0:messages.color.error">
+                  <object class="GtkColorButton" id="preferences_color:color:#FF0000:0:messages.color.error">
                     <property name="visible">True</property>
                     <property name="can_focus">True</property>
                     <property name="receives_default">False</property>
@@ -395,7 +266,7 @@
                   </packing>
                 </child>
                 <child>
-                  <object class="GtkColorButton" id="preferences_color:color:#F05000:0:messages.color.warning">
+                  <object class="GtkColorButton" id="preferences_color:color:#00FF00:0:messages.color.warning">
                     <property name="visible">True</property>
                     <property name="can_focus">True</property>
                     <property name="receives_default">False</property>
@@ -459,4 +330,107 @@
       </object>
     </child>
   </object>
+  <object class="GtkListStore" id="model4">
+    <columns>
+      <!-- column-name gchararray -->
+      <column type="gchararray"/>
+    </columns>
+    <data>
+      <row>
+        <col id="0" translatable="yes">Underline-Plain</col>
+      </row>
+      <row>
+        <col id="0" translatable="yes">Underline-Squiggle</col>
+      </row>
+      <row>
+        <col id="0" translatable="yes">Underline-TT</col>
+      </row>
+      <row>
+        <col id="0" translatable="yes">Diagonal</col>
+      </row>
+      <row>
+        <col id="0" translatable="yes">Strike-Out</col>
+      </row>
+    </data>
+  </object>
+  <object class="GtkListStore" id="model3">
+    <columns>
+      <!-- column-name gchararray -->
+      <column type="gchararray"/>
+    </columns>
+    <data>
+      <row>
+        <col id="0" translatable="yes">Underline-Plain</col>
+      </row>
+      <row>
+        <col id="0" translatable="yes">Underline-Squiggle</col>
+      </row>
+      <row>
+        <col id="0" translatable="yes">Underline-TT</col>
+      </row>
+      <row>
+        <col id="0" translatable="yes">Diagonal</col>
+      </row>
+      <row>
+        <col id="0" translatable="yes">Strike-Out</col>
+      </row>
+    </data>
+  </object>
+  <object class="GtkListStore" id="model2">
+    <columns>
+      <!-- column-name gchararray -->
+      <column type="gchararray"/>
+    </columns>
+    <data>
+      <row>
+        <col id="0" translatable="yes" comments="text style in editor">Underline-Plain</col>
+      </row>
+      <row>
+        <col id="0" translatable="yes" comments="text style in editor">Underline-Squiggle</col>
+      </row>
+      <row>
+        <col id="0" translatable="yes" comments="text style in editor, TT is for typewriter text">Underline-TT</col>
+      </row>
+      <row>
+        <col id="0" translatable="yes" comments="text style in editor">Diagonal</col>
+      </row>
+      <row>
+        <col id="0" translatable="yes" comments="text style in editor">Strike-Out</col>
+      </row>
+    </data>
+  </object>
+  <object class="GtkListStore" id="model1">
+    <columns>
+      <!-- column-name gchararray -->
+      <column type="gchararray"/>
+    </columns>
+    <data>
+      <row>
+        <col id="0" translatable="yes">Top</col>
+      </row>
+      <row>
+        <col id="0" translatable="yes">Bottom</col>
+      </row>
+      <row>
+        <col id="0" translatable="yes">Left</col>
+      </row>
+      <row>
+        <col id="0" translatable="yes">Right</col>
+      </row>
+    </data>
+  </object>
+  <object class="GtkAdjustment" id="adjustment2">
+    <property name="lower">1</property>
+    <property name="upper">1000</property>
+    <property name="value">50</property>
+    <property name="step_increment">1</property>
+    <property name="page_increment">10</property>
+  </object>
+  <object class="GtkAdjustment" id="adjustment1">
+    <property name="lower">1</property>
+    <property name="upper">1000</property>
+    <property name="value">50</property>
+    <property name="step_increment">1</property>
+    <property name="page_increment">10</property>
+  </object>
 </interface>
--- anjuta-2.30.1.0/plugins/symbol-db/anjuta-tags/c.c	2010-04-11 15:20:50.000000000 +0200
+++ anjuta-2.30.2.1/plugins/symbol-db/anjuta-tags/c.c	2010-06-21 19:34:11.000000000 +0200
@@ -48,7 +48,7 @@
 *   DATA DECLARATIONS
 */
 
-enum { NumTokens = 7 };
+enum { NumTokens = 15 };
 
 typedef enum eException {
 	ExceptionNone, ExceptionEOF, ExceptionFormattingError,
@@ -2135,9 +2135,28 @@ static void parseReturnType (statementIn
 		return;
 	
 	finding_tok = prevToken (st, 2);
-	
+		
 	if (finding_tok->type == TOKEN_DOUBLE_COLON)
-		lower_bound = 3;
+	{
+		/* get the total number of double colons */
+		int j;
+		int num_colons = 0;
+
+		/* we already are at 2nd token */
+		/* the +=2 means that colons are usually found at even places */
+		for (j = 2; j < NumTokens; j+=2)
+		{
+			tokenInfo *curr_tok;
+			curr_tok = prevToken (st, j);
+			if (curr_tok->type == TOKEN_DOUBLE_COLON)
+				num_colons++;
+			else
+				break;
+		}
+
+		/*printf ("FOUND colons %d\n", num_colons);*/
+		lower_bound = 2 * num_colons + 1;
+	}
 	else
 		lower_bound = 1;
 	
@@ -2169,7 +2188,8 @@ static void parseReturnType (statementIn
 				break;
 
 			case TOKEN_KEYWORD:
-				vStringPut (ReturnType, ' ');				
+				vStringPut (ReturnType, ' ');
+				
 			default:
 				vStringCat (ReturnType, curr_tok->name);
 				break;				
@@ -2188,6 +2208,7 @@ static void parseReturnType (statementIn
 	/*/
 	printf ("~~~~~ statement ---->\n");
 	ps (st);
+	printf ("NumTokens: %d\n", NumTokens);
 	printf ("FOUND ReturnType: %s\n", vStringValue (ReturnType));	
 	printf ("<~~~~~\n");
 	//*/
--- anjuta-2.30.1.0/plugins/symbol-db/anjuta-tags/ctags-visitor.c	2010-04-26 21:54:34.000000000 +0200
+++ anjuta-2.30.2.1/plugins/symbol-db/anjuta-tags/ctags-visitor.c	2010-06-21 19:49:14.000000000 +0200
@@ -114,6 +114,7 @@ CTagsEntry* ctags_entry_dup (const CTags
 void ctags_entry_free (CTagsEntry* self);
 void ctags_entry_copy (const CTagsEntry* self, CTagsEntry* dest);
 void ctags_entry_destroy (CTagsEntry* self);
+static void _vala_array_copy1 (char** self, char** dest);
 GType dummy_report_get_type (void);
 enum  {
 	DUMMY_REPORT_DUMMY_PROPERTY
@@ -154,10 +155,22 @@ static void ctags_visitor_real_visit_loc
 void ctags_visitor_parse_vala (CTagsVisitor* self, const char* filename, CTagsEntryMaker maker);
 void ctags_visitor_parse_genie (CTagsVisitor* self, const char* filename, CTagsEntryMaker maker);
 static void ctags_visitor_finalize (ValaCodeVisitor* obj);
+static void _vala_array_destroy (gpointer array, gint array_length, GDestroyNotify destroy_func);
+static void _vala_array_free (gpointer array, gint array_length, GDestroyNotify destroy_func);
 
 
 
+static void _vala_array_copy1 (char** self, char** dest) {
+	int i;
+	char* _tmp0_[2] = {0};
+	for (i = 0; i < 2; i++) {
+		dest[i] = g_strdup (self[i]);
+	}
+}
+
+
 void ctags_entry_copy (const CTagsEntry* self, CTagsEntry* dest) {
+	char* _tmp0_[2] = {0};
 	dest->line_number = self->line_number;
 	dest->name = g_strdup (self->name);
 	dest->kind_name = g_strdup (self->kind_name);
@@ -165,7 +178,7 @@ void ctags_entry_copy (const CTagsEntry*
 	dest->access = g_strdup (self->access);
 	dest->implementation = g_strdup (self->implementation);
 	dest->inheritance = g_strdup (self->inheritance);
-	memcpy (dest->scope, self->scope, 2 * sizeof (char*));
+	memcpy (dest->scope, (_vala_array_copy1 (self->scope, _tmp0_), _tmp0_), 2 * sizeof (char*));
 	dest->signature = g_strdup (self->signature);
 	dest->typeref = g_strdup (self->typeref);
 	dest->returntype = g_strdup (self->returntype);
@@ -178,6 +191,7 @@ void ctags_entry_destroy (CTagsEntry* se
 	_g_free0 (self->access);
 	_g_free0 (self->implementation);
 	_g_free0 (self->inheritance);
+	_vala_array_destroy (self->scope, 2, (GDestroyNotify) g_free);
 	_g_free0 (self->signature);
 	_g_free0 (self->typeref);
 	_g_free0 (self->returntype);
@@ -211,33 +225,33 @@ GType ctags_entry_get_type (void) {
 
 #line 39 "ctags-visitor.vala"
 static void dummy_report_real_warn (ValaReport* base, ValaSourceReference* source, const char* message) {
-#line 215 "ctags-visitor.c"
+#line 229 "ctags-visitor.c"
 	DummyReport * self;
 	self = (DummyReport*) base;
 #line 39 "ctags-visitor.vala"
 	g_return_if_fail (message != NULL);
-#line 220 "ctags-visitor.c"
+#line 234 "ctags-visitor.c"
 }
 
 
 #line 40 "ctags-visitor.vala"
 static void dummy_report_real_err (ValaReport* base, ValaSourceReference* source, const char* message) {
-#line 226 "ctags-visitor.c"
+#line 240 "ctags-visitor.c"
 	DummyReport * self;
 	self = (DummyReport*) base;
 #line 40 "ctags-visitor.vala"
 	g_return_if_fail (message != NULL);
-#line 231 "ctags-visitor.c"
+#line 245 "ctags-visitor.c"
 }
 
 
 #line 38 "ctags-visitor.vala"
 DummyReport* dummy_report_construct (GType object_type) {
-#line 237 "ctags-visitor.c"
+#line 251 "ctags-visitor.c"
 	DummyReport * self;
 #line 38 "ctags-visitor.vala"
 	self = (DummyReport*) vala_report_construct (object_type);
-#line 241 "ctags-visitor.c"
+#line 255 "ctags-visitor.c"
 	return self;
 }
 
@@ -246,7 +260,7 @@ DummyReport* dummy_report_construct (GTy
 DummyReport* dummy_report_new (void) {
 #line 38 "ctags-visitor.vala"
 	return dummy_report_construct (TYPE_DUMMY_REPORT);
-#line 250 "ctags-visitor.c"
+#line 264 "ctags-visitor.c"
 }
 
 
@@ -281,7 +295,7 @@ static void _g_list_free_ctags_entry_fre
 
 #line 50 "ctags-visitor.vala"
 CTagsVisitor* ctags_visitor_construct (GType object_type) {
-#line 285 "ctags-visitor.c"
+#line 299 "ctags-visitor.c"
 	CTagsVisitor* self;
 	ValaParser* _tmp0_;
 	ValaGenieParser* _tmp1_;
@@ -291,7 +305,7 @@ CTagsVisitor* ctags_visitor_construct (G
 	self->priv->vala_parser = (_tmp0_ = vala_parser_new (), _vala_code_visitor_unref0 (self->priv->vala_parser), _tmp0_);
 #line 52 "ctags-visitor.vala"
 	self->priv->genie_parser = (_tmp1_ = vala_genie_parser_new (), _vala_code_visitor_unref0 (self->priv->genie_parser), _tmp1_);
-#line 295 "ctags-visitor.c"
+#line 309 "ctags-visitor.c"
 	return self;
 }
 
@@ -300,57 +314,57 @@ CTagsVisitor* ctags_visitor_construct (G
 CTagsVisitor* ctags_visitor_new (void) {
 #line 50 "ctags-visitor.vala"
 	return ctags_visitor_construct (TYPE_CTAGS_VISITOR);
-#line 304 "ctags-visitor.c"
+#line 318 "ctags-visitor.c"
 }
 
 
 #line 55 "ctags-visitor.vala"
 static char* ctags_visitor_get_access (ValaSymbol* sym) {
-#line 310 "ctags-visitor.c"
+#line 324 "ctags-visitor.c"
 	char* result = NULL;
 #line 55 "ctags-visitor.vala"
 	g_return_val_if_fail (sym != NULL, NULL);
 #line 56 "ctags-visitor.vala"
 	switch (vala_symbol_get_access (sym)) {
-#line 316 "ctags-visitor.c"
+#line 330 "ctags-visitor.c"
 		case VALA_SYMBOL_ACCESSIBILITY_PRIVATE:
 		{
 			result = g_strdup ("private");
 #line 57 "ctags-visitor.vala"
 			return result;
-#line 322 "ctags-visitor.c"
+#line 336 "ctags-visitor.c"
 		}
 		case VALA_SYMBOL_ACCESSIBILITY_INTERNAL:
 		{
 			result = g_strdup ("internal");
 #line 58 "ctags-visitor.vala"
 			return result;
-#line 329 "ctags-visitor.c"
+#line 343 "ctags-visitor.c"
 		}
 		case VALA_SYMBOL_ACCESSIBILITY_PROTECTED:
 		{
 			result = g_strdup ("protected");
 #line 59 "ctags-visitor.vala"
 			return result;
-#line 336 "ctags-visitor.c"
+#line 350 "ctags-visitor.c"
 		}
 		case VALA_SYMBOL_ACCESSIBILITY_PUBLIC:
 		{
 			result = g_strdup ("public");
 #line 60 "ctags-visitor.vala"
 			return result;
-#line 343 "ctags-visitor.c"
+#line 357 "ctags-visitor.c"
 		}
 	}
 #line 62 "ctags-visitor.vala"
 	g_assert_not_reached ();
-#line 348 "ctags-visitor.c"
+#line 362 "ctags-visitor.c"
 }
 
 
 #line 64 "ctags-visitor.vala"
 static char* ctags_visitor_to_string (ValaIterable* seq, const char* sep) {
-#line 354 "ctags-visitor.c"
+#line 368 "ctags-visitor.c"
 	char* result = NULL;
 	GString* str;
 	gboolean first;
@@ -362,20 +376,20 @@ static char* ctags_visitor_to_string (Va
 	str = g_string_new ("");
 #line 66 "ctags-visitor.vala"
 	first = TRUE;
-#line 366 "ctags-visitor.c"
+#line 380 "ctags-visitor.c"
 	{
 		ValaIterator* _type_it;
 		_type_it = vala_iterable_iterator (seq);
 #line 67 "ctags-visitor.vala"
 		while (TRUE) {
-#line 372 "ctags-visitor.c"
+#line 386 "ctags-visitor.c"
 			ValaDataType* type;
 			char* _tmp0_;
 #line 67 "ctags-visitor.vala"
 			if (!vala_iterator_next (_type_it)) {
 #line 67 "ctags-visitor.vala"
 				break;
-#line 379 "ctags-visitor.c"
+#line 393 "ctags-visitor.c"
 			}
 #line 67 "ctags-visitor.vala"
 			type = (ValaDataType*) vala_iterator_get (_type_it);
@@ -383,15 +397,15 @@ static char* ctags_visitor_to_string (Va
 			if (first) {
 #line 69 "ctags-visitor.vala"
 				first = FALSE;
-#line 387 "ctags-visitor.c"
+#line 401 "ctags-visitor.c"
 			} else {
 #line 71 "ctags-visitor.vala"
 				g_string_append (str, sep);
-#line 391 "ctags-visitor.c"
+#line 405 "ctags-visitor.c"
 			}
 #line 73 "ctags-visitor.vala"
 			g_string_append (str, _tmp0_ = vala_data_type_to_qualified_string (type, NULL));
-#line 395 "ctags-visitor.c"
+#line 409 "ctags-visitor.c"
 			_g_free0 (_tmp0_);
 			_vala_code_node_unref0 (type);
 		}
@@ -401,7 +415,7 @@ static char* ctags_visitor_to_string (Va
 	_g_string_free0 (str);
 #line 75 "ctags-visitor.vala"
 	return result;
-#line 405 "ctags-visitor.c"
+#line 419 "ctags-visitor.c"
 }
 
 
@@ -418,7 +432,7 @@ static void _g_list_free_g_free (GList* 
 
 #line 77 "ctags-visitor.vala"
 static char* ctags_visitor_implementation (ValaSymbol* sym) {
-#line 422 "ctags-visitor.c"
+#line 436 "ctags-visitor.c"
 	char* result = NULL;
 	GList* list;
 	GString* ret;
@@ -429,7 +443,7 @@ static char* ctags_visitor_implementatio
 	list = NULL;
 #line 80 "ctags-visitor.vala"
 	if (VALA_IS_SIGNAL (sym)) {
-#line 433 "ctags-visitor.c"
+#line 447 "ctags-visitor.c"
 		ValaSignal* sig;
 #line 81 "ctags-visitor.vala"
 		sig = _vala_code_node_ref0 (VALA_SIGNAL (sym));
@@ -437,13 +451,13 @@ static char* ctags_visitor_implementatio
 		if (vala_signal_get_is_virtual (sig)) {
 #line 83 "ctags-visitor.vala"
 			list = g_list_append (list, g_strdup ("virtual"));
-#line 441 "ctags-visitor.c"
+#line 455 "ctags-visitor.c"
 		}
 		_vala_code_node_unref0 (sig);
 	} else {
 #line 84 "ctags-visitor.vala"
 		if (VALA_IS_CLASS (sym)) {
-#line 447 "ctags-visitor.c"
+#line 461 "ctags-visitor.c"
 			ValaClass* cls;
 #line 85 "ctags-visitor.vala"
 			cls = _vala_code_node_ref0 (VALA_CLASS (sym));
@@ -451,13 +465,13 @@ static char* ctags_visitor_implementatio
 			if (vala_class_get_is_abstract (cls)) {
 #line 87 "ctags-visitor.vala"
 				list = g_list_append (list, g_strdup ("abstract"));
-#line 455 "ctags-visitor.c"
+#line 469 "ctags-visitor.c"
 			}
 			_vala_code_node_unref0 (cls);
 		} else {
 #line 88 "ctags-visitor.vala"
 			if (VALA_IS_METHOD (sym)) {
-#line 461 "ctags-visitor.c"
+#line 475 "ctags-visitor.c"
 				ValaMethod* meth;
 #line 89 "ctags-visitor.vala"
 				meth = _vala_code_node_ref0 (VALA_METHOD (sym));
@@ -465,20 +479,20 @@ static char* ctags_visitor_implementatio
 				if (vala_method_get_is_abstract (meth)) {
 #line 91 "ctags-visitor.vala"
 					list = g_list_append (list, g_strdup ("abstract"));
-#line 469 "ctags-visitor.c"
+#line 483 "ctags-visitor.c"
 				} else {
 #line 92 "ctags-visitor.vala"
 					if (vala_method_get_is_virtual (meth)) {
 #line 93 "ctags-visitor.vala"
 						list = g_list_append (list, g_strdup ("virtual"));
-#line 475 "ctags-visitor.c"
+#line 489 "ctags-visitor.c"
 					}
 				}
 				_vala_code_node_unref0 (meth);
 			} else {
 #line 94 "ctags-visitor.vala"
 				if (VALA_IS_PROPERTY (sym)) {
-#line 482 "ctags-visitor.c"
+#line 496 "ctags-visitor.c"
 					ValaProperty* prop;
 #line 95 "ctags-visitor.vala"
 					prop = _vala_code_node_ref0 (VALA_PROPERTY (sym));
@@ -486,20 +500,20 @@ static char* ctags_visitor_implementatio
 					if (vala_property_get_is_abstract (prop)) {
 #line 97 "ctags-visitor.vala"
 						list = g_list_append (list, g_strdup ("abstract"));
-#line 490 "ctags-visitor.c"
+#line 504 "ctags-visitor.c"
 					} else {
 #line 98 "ctags-visitor.vala"
 						if (vala_property_get_is_virtual (prop)) {
 #line 99 "ctags-visitor.vala"
 							list = g_list_append (list, g_strdup ("virtual"));
-#line 496 "ctags-visitor.c"
+#line 510 "ctags-visitor.c"
 						}
 					}
 					_vala_code_node_unref0 (prop);
 				} else {
 #line 101 "ctags-visitor.vala"
 					g_return_val_if_reached (NULL);
-#line 503 "ctags-visitor.c"
+#line 517 "ctags-visitor.c"
 				}
 			}
 		}
@@ -508,32 +522,32 @@ static char* ctags_visitor_implementatio
 	ret = g_string_new ("");
 #line 104 "ctags-visitor.vala"
 	first = TRUE;
-#line 512 "ctags-visitor.c"
+#line 526 "ctags-visitor.c"
 	{
 		GList* str_collection;
 		GList* str_it;
 #line 105 "ctags-visitor.vala"
 		str_collection = list;
-#line 518 "ctags-visitor.c"
+#line 532 "ctags-visitor.c"
 		for (str_it = str_collection; str_it != NULL; str_it = str_it->next) {
 			char* str;
 #line 105 "ctags-visitor.vala"
 			str = g_strdup ((const char*) str_it->data);
-#line 523 "ctags-visitor.c"
+#line 537 "ctags-visitor.c"
 			{
 #line 106 "ctags-visitor.vala"
 				if (first) {
 #line 107 "ctags-visitor.vala"
 					first = FALSE;
-#line 529 "ctags-visitor.c"
+#line 543 "ctags-visitor.c"
 				} else {
 #line 109 "ctags-visitor.vala"
 					g_string_append (ret, ",");
-#line 533 "ctags-visitor.c"
+#line 547 "ctags-visitor.c"
 				}
 #line 111 "ctags-visitor.vala"
 				g_string_append (ret, str);
-#line 537 "ctags-visitor.c"
+#line 551 "ctags-visitor.c"
 				_g_free0 (str);
 			}
 		}
@@ -543,13 +557,13 @@ static char* ctags_visitor_implementatio
 	_g_string_free0 (ret);
 #line 113 "ctags-visitor.vala"
 	return result;
-#line 547 "ctags-visitor.c"
+#line 561 "ctags-visitor.c"
 }
 
 
 #line 115 "ctags-visitor.vala"
 static char* ctags_visitor_signature (ValaList* parameter) {
-#line 553 "ctags-visitor.c"
+#line 567 "ctags-visitor.c"
 	char* result = NULL;
 	GString* ret;
 	gboolean first;
@@ -559,19 +573,19 @@ static char* ctags_visitor_signature (Va
 	ret = g_string_new ("(");
 #line 117 "ctags-visitor.vala"
 	first = TRUE;
-#line 563 "ctags-visitor.c"
+#line 577 "ctags-visitor.c"
 	{
 		ValaIterator* _p_it;
 		_p_it = vala_iterable_iterator ((ValaIterable*) parameter);
 #line 118 "ctags-visitor.vala"
 		while (TRUE) {
-#line 569 "ctags-visitor.c"
+#line 583 "ctags-visitor.c"
 			ValaFormalParameter* p;
 #line 118 "ctags-visitor.vala"
 			if (!vala_iterator_next (_p_it)) {
 #line 118 "ctags-visitor.vala"
 				break;
-#line 575 "ctags-visitor.c"
+#line 589 "ctags-visitor.c"
 			}
 #line 118 "ctags-visitor.vala"
 			p = (ValaFormalParameter*) vala_iterator_get (_p_it);
@@ -579,28 +593,28 @@ static char* ctags_visitor_signature (Va
 			if (first) {
 #line 120 "ctags-visitor.vala"
 				first = FALSE;
-#line 583 "ctags-visitor.c"
+#line 597 "ctags-visitor.c"
 			} else {
 #line 122 "ctags-visitor.vala"
 				g_string_append (ret, ",");
-#line 587 "ctags-visitor.c"
+#line 601 "ctags-visitor.c"
 			}
 #line 124 "ctags-visitor.vala"
 			if (vala_formal_parameter_get_ellipsis (p)) {
 #line 125 "ctags-visitor.vala"
 				g_string_append (ret, "...");
-#line 593 "ctags-visitor.c"
+#line 607 "ctags-visitor.c"
 			} else {
 				char* _tmp0_;
 #line 127 "ctags-visitor.vala"
 				g_string_append (ret, _tmp0_ = vala_data_type_to_qualified_string (vala_formal_parameter_get_parameter_type (p), NULL));
-#line 598 "ctags-visitor.c"
+#line 612 "ctags-visitor.c"
 				_g_free0 (_tmp0_);
 #line 128 "ctags-visitor.vala"
 				g_string_append (ret, " ");
 #line 129 "ctags-visitor.vala"
 				g_string_append (ret, vala_symbol_get_name ((ValaSymbol*) p));
-#line 604 "ctags-visitor.c"
+#line 618 "ctags-visitor.c"
 			}
 			_vala_code_node_unref0 (p);
 		}
@@ -608,18 +622,18 @@ static char* ctags_visitor_signature (Va
 	}
 #line 132 "ctags-visitor.vala"
 	g_string_append (ret, ")");
-#line 612 "ctags-visitor.c"
+#line 626 "ctags-visitor.c"
 	result = g_strdup (ret->str);
 	_g_string_free0 (ret);
 #line 133 "ctags-visitor.vala"
 	return result;
-#line 617 "ctags-visitor.c"
+#line 631 "ctags-visitor.c"
 }
 
 
 #line 135 "ctags-visitor.vala"
 static void ctags_visitor_scope (ValaSymbol* s, char** scope, int scope_length1) {
-#line 623 "ctags-visitor.c"
+#line 637 "ctags-visitor.c"
 	ValaSymbol* par;
 	gboolean _tmp0_ = FALSE;
 #line 135 "ctags-visitor.vala"
@@ -630,50 +644,50 @@ static void ctags_visitor_scope (ValaSym
 	if (par != NULL) {
 #line 137 "ctags-visitor.vala"
 		_tmp0_ = vala_symbol_get_name (par) != NULL;
-#line 634 "ctags-visitor.c"
+#line 648 "ctags-visitor.c"
 	} else {
 #line 137 "ctags-visitor.vala"
 		_tmp0_ = FALSE;
-#line 638 "ctags-visitor.c"
+#line 652 "ctags-visitor.c"
 	}
 #line 137 "ctags-visitor.vala"
 	if (_tmp0_) {
-#line 642 "ctags-visitor.c"
+#line 656 "ctags-visitor.c"
 		char* _tmp4_;
 #line 138 "ctags-visitor.vala"
 		if (VALA_IS_CLASS (par)) {
-#line 646 "ctags-visitor.c"
+#line 660 "ctags-visitor.c"
 			char* _tmp1_;
 #line 139 "ctags-visitor.vala"
 			scope[0] = (_tmp1_ = g_strdup ("class"), _g_free0 (scope[0]), _tmp1_);
-#line 650 "ctags-visitor.c"
+#line 664 "ctags-visitor.c"
 		} else {
 #line 140 "ctags-visitor.vala"
 			if (VALA_IS_STRUCT (par)) {
-#line 654 "ctags-visitor.c"
+#line 668 "ctags-visitor.c"
 				char* _tmp2_;
 #line 141 "ctags-visitor.vala"
 				scope[0] = (_tmp2_ = g_strdup ("struct"), _g_free0 (scope[0]), _tmp2_);
-#line 658 "ctags-visitor.c"
+#line 672 "ctags-visitor.c"
 			} else {
 #line 142 "ctags-visitor.vala"
 				if (VALA_IS_INTERFACE (par)) {
-#line 662 "ctags-visitor.c"
+#line 676 "ctags-visitor.c"
 					char* _tmp3_;
 #line 143 "ctags-visitor.vala"
 					scope[0] = (_tmp3_ = g_strdup ("interface"), _g_free0 (scope[0]), _tmp3_);
-#line 666 "ctags-visitor.c"
+#line 680 "ctags-visitor.c"
 				} else {
 					_vala_code_node_unref0 (par);
 #line 145 "ctags-visitor.vala"
 					return;
-#line 671 "ctags-visitor.c"
+#line 685 "ctags-visitor.c"
 				}
 			}
 		}
 #line 146 "ctags-visitor.vala"
 		scope[1] = (_tmp4_ = g_strdup (vala_symbol_get_name (par)), _g_free0 (scope[1]), _tmp4_);
-#line 677 "ctags-visitor.c"
+#line 691 "ctags-visitor.c"
 	}
 	_vala_code_node_unref0 (par);
 }
@@ -681,14 +695,14 @@ static void ctags_visitor_scope (ValaSym
 
 #line 153 "ctags-visitor.vala"
 static void ctags_visitor_real_visit_source_file (ValaCodeVisitor* base, ValaSourceFile* source_file) {
-#line 685 "ctags-visitor.c"
+#line 699 "ctags-visitor.c"
 	CTagsVisitor * self;
 	self = (CTagsVisitor*) base;
 #line 153 "ctags-visitor.vala"
 	g_return_if_fail (source_file != NULL);
 #line 154 "ctags-visitor.vala"
 	vala_source_file_accept_children (source_file, (ValaCodeVisitor*) self);
-#line 692 "ctags-visitor.c"
+#line 706 "ctags-visitor.c"
 }
 
 
@@ -699,7 +713,7 @@ static gpointer _ctags_entry_dup0 (gpoin
 
 #line 157 "ctags-visitor.vala"
 static void ctags_visitor_real_visit_class (ValaCodeVisitor* base, ValaClass* cl) {
-#line 703 "ctags-visitor.c"
+#line 717 "ctags-visitor.c"
 	CTagsVisitor * self;
 	CTagsEntry entry = {0};
 	char* _tmp0_;
@@ -711,7 +725,7 @@ static void ctags_visitor_real_visit_cla
 	self = (CTagsVisitor*) base;
 #line 157 "ctags-visitor.vala"
 	g_return_if_fail (cl != NULL);
-#line 715 "ctags-visitor.c"
+#line 729 "ctags-visitor.c"
 	memset (&entry, 0, sizeof (CTagsEntry));
 #line 160 "ctags-visitor.vala"
 	entry.line_number = vala_source_reference_get_first_line (vala_code_node_get_source_reference ((ValaCodeNode*) cl));
@@ -727,7 +741,7 @@ static void ctags_visitor_real_visit_cla
 	entry.implementation = (_tmp3_ = ctags_visitor_implementation ((ValaSymbol*) cl), _g_free0 (entry.implementation), _tmp3_);
 #line 166 "ctags-visitor.vala"
 	entry.inheritance = (_tmp5_ = ctags_visitor_to_string ((ValaIterable*) (_tmp4_ = vala_class_get_base_types (cl)), ","), _g_free0 (entry.inheritance), _tmp5_);
-#line 731 "ctags-visitor.c"
+#line 745 "ctags-visitor.c"
 	_vala_collection_object_unref0 (_tmp4_);
 #line 167 "ctags-visitor.vala"
 	ctags_visitor_scope ((ValaSymbol*) cl, entry.scope, 2);
@@ -735,14 +749,14 @@ static void ctags_visitor_real_visit_cla
 	self->priv->taglist = g_list_append (self->priv->taglist, _ctags_entry_dup0 (&entry));
 #line 171 "ctags-visitor.vala"
 	vala_code_node_accept_children ((ValaCodeNode*) cl, (ValaCodeVisitor*) self);
-#line 739 "ctags-visitor.c"
+#line 753 "ctags-visitor.c"
 	ctags_entry_destroy (&entry);
 }
 
 
 #line 173 "ctags-visitor.vala"
 static void ctags_visitor_real_visit_struct (ValaCodeVisitor* base, ValaStruct* st) {
-#line 746 "ctags-visitor.c"
+#line 760 "ctags-visitor.c"
 	CTagsVisitor * self;
 	CTagsEntry entry = {0};
 	char* _tmp0_;
@@ -751,7 +765,7 @@ static void ctags_visitor_real_visit_str
 	self = (CTagsVisitor*) base;
 #line 173 "ctags-visitor.vala"
 	g_return_if_fail (st != NULL);
-#line 755 "ctags-visitor.c"
+#line 769 "ctags-visitor.c"
 	memset (&entry, 0, sizeof (CTagsEntry));
 #line 175 "ctags-visitor.vala"
 	entry.line_number = vala_source_reference_get_first_line (vala_code_node_get_source_reference ((ValaCodeNode*) st));
@@ -769,14 +783,14 @@ static void ctags_visitor_real_visit_str
 	self->priv->taglist = g_list_append (self->priv->taglist, _ctags_entry_dup0 (&entry));
 #line 184 "ctags-visitor.vala"
 	vala_code_node_accept_children ((ValaCodeNode*) st, (ValaCodeVisitor*) self);
-#line 773 "ctags-visitor.c"
+#line 787 "ctags-visitor.c"
 	ctags_entry_destroy (&entry);
 }
 
 
 #line 186 "ctags-visitor.vala"
 static void ctags_visitor_real_visit_interface (ValaCodeVisitor* base, ValaInterface* iface) {
-#line 780 "ctags-visitor.c"
+#line 794 "ctags-visitor.c"
 	CTagsVisitor * self;
 	CTagsEntry entry = {0};
 	char* _tmp0_;
@@ -787,7 +801,7 @@ static void ctags_visitor_real_visit_int
 	self = (CTagsVisitor*) base;
 #line 186 "ctags-visitor.vala"
 	g_return_if_fail (iface != NULL);
-#line 791 "ctags-visitor.c"
+#line 805 "ctags-visitor.c"
 	memset (&entry, 0, sizeof (CTagsEntry));
 #line 189 "ctags-visitor.vala"
 	entry.line_number = vala_source_reference_get_first_line (vala_code_node_get_source_reference ((ValaCodeNode*) iface));
@@ -801,7 +815,7 @@ static void ctags_visitor_real_visit_int
 	entry.access = (_tmp2_ = ctags_visitor_get_access ((ValaSymbol*) iface), _g_free0 (entry.access), _tmp2_);
 #line 194 "ctags-visitor.vala"
 	entry.inheritance = (_tmp4_ = ctags_visitor_to_string ((ValaIterable*) (_tmp3_ = vala_interface_get_prerequisites (iface)), ","), _g_free0 (entry.inheritance), _tmp4_);
-#line 805 "ctags-visitor.c"
+#line 819 "ctags-visitor.c"
 	_vala_collection_object_unref0 (_tmp3_);
 #line 195 "ctags-visitor.vala"
 	ctags_visitor_scope ((ValaSymbol*) iface, entry.scope, 2);
@@ -809,14 +823,14 @@ static void ctags_visitor_real_visit_int
 	self->priv->taglist = g_list_append (self->priv->taglist, _ctags_entry_dup0 (&entry));
 #line 199 "ctags-visitor.vala"
 	vala_code_node_accept_children ((ValaCodeNode*) iface, (ValaCodeVisitor*) self);
-#line 813 "ctags-visitor.c"
+#line 827 "ctags-visitor.c"
 	ctags_entry_destroy (&entry);
 }
 
 
 #line 202 "ctags-visitor.vala"
 static void ctags_visitor_real_visit_enum (ValaCodeVisitor* base, ValaEnum* en) {
-#line 820 "ctags-visitor.c"
+#line 834 "ctags-visitor.c"
 	CTagsVisitor * self;
 	CTagsEntry entry = {0};
 	char* _tmp0_;
@@ -825,7 +839,7 @@ static void ctags_visitor_real_visit_enu
 	self = (CTagsVisitor*) base;
 #line 202 "ctags-visitor.vala"
 	g_return_if_fail (en != NULL);
-#line 829 "ctags-visitor.c"
+#line 843 "ctags-visitor.c"
 	memset (&entry, 0, sizeof (CTagsEntry));
 #line 205 "ctags-visitor.vala"
 	entry.line_number = vala_source_reference_get_first_line (vala_code_node_get_source_reference ((ValaCodeNode*) en));
@@ -843,14 +857,14 @@ static void ctags_visitor_real_visit_enu
 	self->priv->taglist = g_list_append (self->priv->taglist, _ctags_entry_dup0 (&entry));
 #line 214 "ctags-visitor.vala"
 	vala_code_node_accept_children ((ValaCodeNode*) en, (ValaCodeVisitor*) self);
-#line 847 "ctags-visitor.c"
+#line 861 "ctags-visitor.c"
 	ctags_entry_destroy (&entry);
 }
 
 
 #line 216 "ctags-visitor.vala"
 static void ctags_visitor_real_visit_error_domain (ValaCodeVisitor* base, ValaErrorDomain* edomain) {
-#line 854 "ctags-visitor.c"
+#line 868 "ctags-visitor.c"
 	CTagsVisitor * self;
 	CTagsEntry entry = {0};
 	char* _tmp0_;
@@ -859,7 +873,7 @@ static void ctags_visitor_real_visit_err
 	self = (CTagsVisitor*) base;
 #line 216 "ctags-visitor.vala"
 	g_return_if_fail (edomain != NULL);
-#line 863 "ctags-visitor.c"
+#line 877 "ctags-visitor.c"
 	memset (&entry, 0, sizeof (CTagsEntry));
 #line 219 "ctags-visitor.vala"
 	entry.line_number = vala_source_reference_get_first_line (vala_code_node_get_source_reference ((ValaCodeNode*) edomain));
@@ -877,14 +891,14 @@ static void ctags_visitor_real_visit_err
 	self->priv->taglist = g_list_append (self->priv->taglist, _ctags_entry_dup0 (&entry));
 #line 228 "ctags-visitor.vala"
 	vala_code_node_accept_children ((ValaCodeNode*) edomain, (ValaCodeVisitor*) self);
-#line 881 "ctags-visitor.c"
+#line 895 "ctags-visitor.c"
 	ctags_entry_destroy (&entry);
 }
 
 
 #line 231 "ctags-visitor.vala"
 static void ctags_visitor_real_visit_enum_value (ValaCodeVisitor* base, ValaEnumValue* ev) {
-#line 888 "ctags-visitor.c"
+#line 902 "ctags-visitor.c"
 	CTagsVisitor * self;
 	CTagsEntry entry = {0};
 	char* _tmp0_;
@@ -893,7 +907,7 @@ static void ctags_visitor_real_visit_enu
 	self = (CTagsVisitor*) base;
 #line 231 "ctags-visitor.vala"
 	g_return_if_fail (ev != NULL);
-#line 897 "ctags-visitor.c"
+#line 911 "ctags-visitor.c"
 	memset (&entry, 0, sizeof (CTagsEntry));
 #line 234 "ctags-visitor.vala"
 	entry.line_number = vala_source_reference_get_first_line (vala_code_node_get_source_reference ((ValaCodeNode*) ev));
@@ -909,14 +923,14 @@ static void ctags_visitor_real_visit_enu
 	ctags_visitor_scope ((ValaSymbol*) ev, entry.scope, 2);
 #line 241 "ctags-visitor.vala"
 	self->priv->taglist = g_list_append (self->priv->taglist, _ctags_entry_dup0 (&entry));
-#line 913 "ctags-visitor.c"
+#line 927 "ctags-visitor.c"
 	ctags_entry_destroy (&entry);
 }
 
 
 #line 244 "ctags-visitor.vala"
 static void ctags_visitor_real_visit_error_code (ValaCodeVisitor* base, ValaErrorCode* ecode) {
-#line 920 "ctags-visitor.c"
+#line 934 "ctags-visitor.c"
 	CTagsVisitor * self;
 	CTagsEntry entry = {0};
 	char* _tmp0_;
@@ -925,7 +939,7 @@ static void ctags_visitor_real_visit_err
 	self = (CTagsVisitor*) base;
 #line 244 "ctags-visitor.vala"
 	g_return_if_fail (ecode != NULL);
-#line 929 "ctags-visitor.c"
+#line 943 "ctags-visitor.c"
 	memset (&entry, 0, sizeof (CTagsEntry));
 #line 248 "ctags-visitor.vala"
 	entry.name = (_tmp0_ = g_strdup (vala_symbol_get_name ((ValaSymbol*) ecode)), _g_free0 (entry.name), _tmp0_);
@@ -939,14 +953,14 @@ static void ctags_visitor_real_visit_err
 	ctags_visitor_scope ((ValaSymbol*) ecode, entry.scope, 2);
 #line 254 "ctags-visitor.vala"
 	self->priv->taglist = g_list_append (self->priv->taglist, _ctags_entry_dup0 (&entry));
-#line 943 "ctags-visitor.c"
+#line 957 "ctags-visitor.c"
 	ctags_entry_destroy (&entry);
 }
 
 
 #line 258 "ctags-visitor.vala"
 static void ctags_visitor_real_visit_delegate (ValaCodeVisitor* base, ValaDelegate* d) {
-#line 950 "ctags-visitor.c"
+#line 964 "ctags-visitor.c"
 	CTagsVisitor * self;
 	CTagsEntry entry = {0};
 	char* _tmp0_;
@@ -958,7 +972,7 @@ static void ctags_visitor_real_visit_del
 	self = (CTagsVisitor*) base;
 #line 258 "ctags-visitor.vala"
 	g_return_if_fail (d != NULL);
-#line 962 "ctags-visitor.c"
+#line 976 "ctags-visitor.c"
 	memset (&entry, 0, sizeof (CTagsEntry));
 #line 261 "ctags-visitor.vala"
 	entry.line_number = vala_source_reference_get_first_line (vala_code_node_get_source_reference ((ValaCodeNode*) d));
@@ -976,18 +990,18 @@ static void ctags_visitor_real_visit_del
 	entry.returntype = (_tmp3_ = vala_data_type_to_qualified_string (vala_delegate_get_return_type (d), NULL), _g_free0 (entry.returntype), _tmp3_);
 #line 268 "ctags-visitor.vala"
 	entry.signature = (_tmp5_ = ctags_visitor_signature (_tmp4_ = vala_delegate_get_parameters (d)), _g_free0 (entry.signature), _tmp5_);
-#line 980 "ctags-visitor.c"
+#line 994 "ctags-visitor.c"
 	_vala_collection_object_unref0 (_tmp4_);
 #line 270 "ctags-visitor.vala"
 	self->priv->taglist = g_list_append (self->priv->taglist, _ctags_entry_dup0 (&entry));
-#line 984 "ctags-visitor.c"
+#line 998 "ctags-visitor.c"
 	ctags_entry_destroy (&entry);
 }
 
 
 #line 273 "ctags-visitor.vala"
 static void ctags_visitor_real_visit_signal (ValaCodeVisitor* base, ValaSignal* sig) {
-#line 991 "ctags-visitor.c"
+#line 1005 "ctags-visitor.c"
 	CTagsVisitor * self;
 	CTagsEntry entry = {0};
 	char* _tmp0_;
@@ -1000,7 +1014,7 @@ static void ctags_visitor_real_visit_sig
 	self = (CTagsVisitor*) base;
 #line 273 "ctags-visitor.vala"
 	g_return_if_fail (sig != NULL);
-#line 1004 "ctags-visitor.c"
+#line 1018 "ctags-visitor.c"
 	memset (&entry, 0, sizeof (CTagsEntry));
 #line 276 "ctags-visitor.vala"
 	entry.line_number = vala_source_reference_get_first_line (vala_code_node_get_source_reference ((ValaCodeNode*) sig));
@@ -1020,18 +1034,18 @@ static void ctags_visitor_real_visit_sig
 	entry.returntype = (_tmp4_ = vala_data_type_to_qualified_string (vala_signal_get_return_type (sig), NULL), _g_free0 (entry.returntype), _tmp4_);
 #line 284 "ctags-visitor.vala"
 	entry.signature = (_tmp6_ = ctags_visitor_signature (_tmp5_ = vala_signal_get_parameters (sig)), _g_free0 (entry.signature), _tmp6_);
-#line 1024 "ctags-visitor.c"
+#line 1038 "ctags-visitor.c"
 	_vala_collection_object_unref0 (_tmp5_);
 #line 286 "ctags-visitor.vala"
 	self->priv->taglist = g_list_append (self->priv->taglist, _ctags_entry_dup0 (&entry));
-#line 1028 "ctags-visitor.c"
+#line 1042 "ctags-visitor.c"
 	ctags_entry_destroy (&entry);
 }
 
 
 #line 289 "ctags-visitor.vala"
 static void ctags_visitor_real_visit_field (ValaCodeVisitor* base, ValaField* f) {
-#line 1035 "ctags-visitor.c"
+#line 1049 "ctags-visitor.c"
 	CTagsVisitor * self;
 	CTagsEntry entry = {0};
 	char* _tmp0_;
@@ -1041,7 +1055,7 @@ static void ctags_visitor_real_visit_fie
 	self = (CTagsVisitor*) base;
 #line 289 "ctags-visitor.vala"
 	g_return_if_fail (f != NULL);
-#line 1045 "ctags-visitor.c"
+#line 1059 "ctags-visitor.c"
 	memset (&entry, 0, sizeof (CTagsEntry));
 #line 292 "ctags-visitor.vala"
 	entry.line_number = vala_source_reference_get_first_line (vala_code_node_get_source_reference ((ValaCodeNode*) f));
@@ -1059,14 +1073,14 @@ static void ctags_visitor_real_visit_fie
 	entry.typeref = (_tmp3_ = vala_data_type_to_qualified_string (vala_field_get_field_type (f), NULL), _g_free0 (entry.typeref), _tmp3_);
 #line 300 "ctags-visitor.vala"
 	self->priv->taglist = g_list_append (self->priv->taglist, _ctags_entry_dup0 (&entry));
-#line 1063 "ctags-visitor.c"
+#line 1077 "ctags-visitor.c"
 	ctags_entry_destroy (&entry);
 }
 
 
 #line 303 "ctags-visitor.vala"
 static void ctags_visitor_real_visit_constant (ValaCodeVisitor* base, ValaConstant* c) {
-#line 1070 "ctags-visitor.c"
+#line 1084 "ctags-visitor.c"
 	CTagsVisitor * self;
 	CTagsEntry entry = {0};
 	char* _tmp0_;
@@ -1076,7 +1090,7 @@ static void ctags_visitor_real_visit_con
 	self = (CTagsVisitor*) base;
 #line 303 "ctags-visitor.vala"
 	g_return_if_fail (c != NULL);
-#line 1080 "ctags-visitor.c"
+#line 1094 "ctags-visitor.c"
 	memset (&entry, 0, sizeof (CTagsEntry));
 #line 306 "ctags-visitor.vala"
 	entry.line_number = vala_source_reference_get_first_line (vala_code_node_get_source_reference ((ValaCodeNode*) c));
@@ -1094,14 +1108,14 @@ static void ctags_visitor_real_visit_con
 	entry.typeref = (_tmp3_ = vala_data_type_to_qualified_string (vala_constant_get_type_reference (c), NULL), _g_free0 (entry.typeref), _tmp3_);
 #line 314 "ctags-visitor.vala"
 	self->priv->taglist = g_list_append (self->priv->taglist, _ctags_entry_dup0 (&entry));
-#line 1098 "ctags-visitor.c"
+#line 1112 "ctags-visitor.c"
 	ctags_entry_destroy (&entry);
 }
 
 
 #line 317 "ctags-visitor.vala"
 static void ctags_visitor_real_visit_property (ValaCodeVisitor* base, ValaProperty* prop) {
-#line 1105 "ctags-visitor.c"
+#line 1119 "ctags-visitor.c"
 	CTagsVisitor * self;
 	CTagsEntry entry = {0};
 	char* _tmp0_;
@@ -1112,7 +1126,7 @@ static void ctags_visitor_real_visit_pro
 	self = (CTagsVisitor*) base;
 #line 317 "ctags-visitor.vala"
 	g_return_if_fail (prop != NULL);
-#line 1116 "ctags-visitor.c"
+#line 1130 "ctags-visitor.c"
 	memset (&entry, 0, sizeof (CTagsEntry));
 #line 320 "ctags-visitor.vala"
 	entry.line_number = vala_source_reference_get_first_line (vala_code_node_get_source_reference ((ValaCodeNode*) prop));
@@ -1132,14 +1146,14 @@ static void ctags_visitor_real_visit_pro
 	entry.typeref = (_tmp4_ = vala_data_type_to_qualified_string (vala_property_get_property_type (prop), NULL), _g_free0 (entry.typeref), _tmp4_);
 #line 329 "ctags-visitor.vala"
 	self->priv->taglist = g_list_append (self->priv->taglist, _ctags_entry_dup0 (&entry));
-#line 1136 "ctags-visitor.c"
+#line 1150 "ctags-visitor.c"
 	ctags_entry_destroy (&entry);
 }
 
 
 #line 333 "ctags-visitor.vala"
 static void ctags_visitor_real_visit_method (ValaCodeVisitor* base, ValaMethod* m) {
-#line 1143 "ctags-visitor.c"
+#line 1157 "ctags-visitor.c"
 	CTagsVisitor * self;
 	CTagsEntry entry = {0};
 	char* _tmp0_;
@@ -1152,7 +1166,7 @@ static void ctags_visitor_real_visit_met
 	self = (CTagsVisitor*) base;
 #line 333 "ctags-visitor.vala"
 	g_return_if_fail (m != NULL);
-#line 1156 "ctags-visitor.c"
+#line 1170 "ctags-visitor.c"
 	memset (&entry, 0, sizeof (CTagsEntry));
 #line 336 "ctags-visitor.vala"
 	entry.line_number = vala_source_reference_get_first_line (vala_code_node_get_source_reference ((ValaCodeNode*) m));
@@ -1172,18 +1186,18 @@ static void ctags_visitor_real_visit_met
 	entry.returntype = (_tmp4_ = vala_data_type_to_qualified_string (vala_method_get_return_type (m), NULL), _g_free0 (entry.returntype), _tmp4_);
 #line 344 "ctags-visitor.vala"
 	entry.signature = (_tmp6_ = ctags_visitor_signature (_tmp5_ = vala_method_get_parameters (m)), _g_free0 (entry.signature), _tmp6_);
-#line 1176 "ctags-visitor.c"
+#line 1190 "ctags-visitor.c"
 	_vala_collection_object_unref0 (_tmp5_);
 #line 346 "ctags-visitor.vala"
 	self->priv->taglist = g_list_append (self->priv->taglist, _ctags_entry_dup0 (&entry));
-#line 1180 "ctags-visitor.c"
+#line 1194 "ctags-visitor.c"
 	ctags_entry_destroy (&entry);
 }
 
 
 #line 350 "ctags-visitor.vala"
 static void ctags_visitor_real_visit_local_variable (ValaCodeVisitor* base, ValaLocalVariable* local) {
-#line 1187 "ctags-visitor.c"
+#line 1201 "ctags-visitor.c"
 	CTagsVisitor * self;
 	CTagsEntry entry = {0};
 	char* _tmp0_;
@@ -1192,7 +1206,7 @@ static void ctags_visitor_real_visit_loc
 	self = (CTagsVisitor*) base;
 #line 350 "ctags-visitor.vala"
 	g_return_if_fail (local != NULL);
-#line 1196 "ctags-visitor.c"
+#line 1210 "ctags-visitor.c"
 	memset (&entry, 0, sizeof (CTagsEntry));
 #line 353 "ctags-visitor.vala"
 	entry.line_number = vala_source_reference_get_first_line (vala_code_node_get_source_reference ((ValaCodeNode*) local));
@@ -1206,14 +1220,14 @@ static void ctags_visitor_real_visit_loc
 	entry.access = (_tmp2_ = ctags_visitor_get_access ((ValaSymbol*) local), _g_free0 (entry.access), _tmp2_);
 #line 359 "ctags-visitor.vala"
 	self->priv->taglist = g_list_append (self->priv->taglist, _ctags_entry_dup0 (&entry));
-#line 1210 "ctags-visitor.c"
+#line 1224 "ctags-visitor.c"
 	ctags_entry_destroy (&entry);
 }
 
 
 #line 363 "ctags-visitor.vala"
 void ctags_visitor_parse_vala (CTagsVisitor* self, const char* filename, CTagsEntryMaker maker) {
-#line 1217 "ctags-visitor.c"
+#line 1231 "ctags-visitor.c"
 	GList* _tmp0_;
 	ValaCodeContext* context;
 	DummyReport* _tmp1_;
@@ -1229,7 +1243,7 @@ void ctags_visitor_parse_vala (CTagsVisi
 	context = vala_code_context_new ();
 #line 369 "ctags-visitor.vala"
 	vala_code_context_set_report (context, (ValaReport*) (_tmp1_ = dummy_report_new ()));
-#line 1233 "ctags-visitor.c"
+#line 1247 "ctags-visitor.c"
 	_g_object_unref0 (_tmp1_);
 #line 370 "ctags-visitor.vala"
 	source_file = vala_source_file_new (context, filename, g_str_has_suffix (filename, "vapi"), NULL);
@@ -1241,22 +1255,22 @@ void ctags_visitor_parse_vala (CTagsVisi
 	vala_parser_parse (self->priv->vala_parser, context);
 #line 375 "ctags-visitor.vala"
 	vala_code_context_accept (context, (ValaCodeVisitor*) self);
-#line 1245 "ctags-visitor.c"
+#line 1259 "ctags-visitor.c"
 	{
 		GList* tagentry_collection;
 		GList* tagentry_it;
 #line 376 "ctags-visitor.vala"
 		tagentry_collection = self->priv->taglist;
-#line 1251 "ctags-visitor.c"
+#line 1265 "ctags-visitor.c"
 		for (tagentry_it = tagentry_collection; tagentry_it != NULL; tagentry_it = tagentry_it->next) {
 			CTagsEntry* tagentry;
 #line 376 "ctags-visitor.vala"
 			tagentry = _ctags_entry_dup0 ((CTagsEntry*) tagentry_it->data);
-#line 1256 "ctags-visitor.c"
+#line 1270 "ctags-visitor.c"
 			{
 #line 377 "ctags-visitor.vala"
 				maker (tagentry);
-#line 1260 "ctags-visitor.c"
+#line 1274 "ctags-visitor.c"
 				_ctags_entry_free0 (tagentry);
 			}
 		}
@@ -1265,7 +1279,7 @@ void ctags_visitor_parse_vala (CTagsVisi
 	self->priv->taglist = (_tmp2_ = NULL, __g_list_free_ctags_entry_free0 (self->priv->taglist), _tmp2_);
 #line 380 "ctags-visitor.vala"
 	vala_code_context_pop ();
-#line 1269 "ctags-visitor.c"
+#line 1283 "ctags-visitor.c"
 	_vala_code_context_unref0 (context);
 	_vala_source_file_unref0 (source_file);
 }
@@ -1273,7 +1287,7 @@ void ctags_visitor_parse_vala (CTagsVisi
 
 #line 382 "ctags-visitor.vala"
 void ctags_visitor_parse_genie (CTagsVisitor* self, const char* filename, CTagsEntryMaker maker) {
-#line 1277 "ctags-visitor.c"
+#line 1291 "ctags-visitor.c"
 	GList* _tmp0_;
 	ValaCodeContext* context;
 	DummyReport* _tmp1_;
@@ -1289,7 +1303,7 @@ void ctags_visitor_parse_genie (CTagsVis
 	context = vala_code_context_new ();
 #line 385 "ctags-visitor.vala"
 	vala_code_context_set_report (context, (ValaReport*) (_tmp1_ = dummy_report_new ()));
-#line 1293 "ctags-visitor.c"
+#line 1307 "ctags-visitor.c"
 	_g_object_unref0 (_tmp1_);
 #line 386 "ctags-visitor.vala"
 	source_file = vala_source_file_new (context, filename, FALSE, NULL);
@@ -1301,22 +1315,22 @@ void ctags_visitor_parse_genie (CTagsVis
 	vala_genie_parser_parse (self->priv->genie_parser, context);
 #line 391 "ctags-visitor.vala"
 	vala_code_context_accept (context, (ValaCodeVisitor*) self);
-#line 1305 "ctags-visitor.c"
+#line 1319 "ctags-visitor.c"
 	{
 		GList* tagentry_collection;
 		GList* tagentry_it;
 #line 392 "ctags-visitor.vala"
 		tagentry_collection = self->priv->taglist;
-#line 1311 "ctags-visitor.c"
+#line 1325 "ctags-visitor.c"
 		for (tagentry_it = tagentry_collection; tagentry_it != NULL; tagentry_it = tagentry_it->next) {
 			CTagsEntry* tagentry;
 #line 392 "ctags-visitor.vala"
 			tagentry = _ctags_entry_dup0 ((CTagsEntry*) tagentry_it->data);
-#line 1316 "ctags-visitor.c"
+#line 1330 "ctags-visitor.c"
 			{
 #line 393 "ctags-visitor.vala"
 				maker (tagentry);
-#line 1320 "ctags-visitor.c"
+#line 1334 "ctags-visitor.c"
 				_ctags_entry_free0 (tagentry);
 			}
 		}
@@ -1325,7 +1339,7 @@ void ctags_visitor_parse_genie (CTagsVis
 	self->priv->taglist = (_tmp2_ = NULL, __g_list_free_ctags_entry_free0 (self->priv->taglist), _tmp2_);
 #line 396 "ctags-visitor.vala"
 	vala_code_context_pop ();
-#line 1329 "ctags-visitor.c"
+#line 1343 "ctags-visitor.c"
 	_vala_code_context_unref0 (context);
 	_vala_source_file_unref0 (source_file);
 }
@@ -1380,5 +1394,23 @@ GType ctags_visitor_get_type (void) {
 }
 
 
+static void _vala_array_destroy (gpointer array, gint array_length, GDestroyNotify destroy_func) {
+	if ((array != NULL) && (destroy_func != NULL)) {
+		int i;
+		for (i = 0; i < array_length; i = i + 1) {
+			if (((gpointer*) array)[i] != NULL) {
+				destroy_func (((gpointer*) array)[i]);
+			}
+		}
+	}
+}
+
+
+static void _vala_array_free (gpointer array, gint array_length, GDestroyNotify destroy_func) {
+	_vala_array_destroy (array, array_length, destroy_func);
+	g_free (array);
+}
+
+
 
 

Reply to: