1 /* basicdoclet.c generated by valac, the Vala compiler
2  * generated from basicdoclet.vala, do not modify */
3 
4 /* basicdoclet.vala
5  *
6  * Copyright (C) 2008-2012 Florian Brosch
7  *
8  * This library is free software; you can redistribute it and/or
9  * modify it under the terms of the GNU Lesser General Public
10  * License as published by the Free Software Foundation; either
11  * version 2.1 of the License, or (at your option) any later version.
12  *
13  * This library is distributed in the hope that it will be useful,
14  * but WITHOUT ANY WARRANTY; without even the implied warranty of
15  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
16  * Lesser General Public License for more details.
17  *
18  * You should have received a copy of the GNU Lesser General Public
19  * License along with this library; if not, write to the Free Software
20  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301  USA
21  *
22  * Author:
23  * 	Florian Brosch <flo.brosch@gmail.com>
24  */
25 
26 #include "valadoc.h"
27 #include <stdlib.h>
28 #include <string.h>
29 #include <glib.h>
30 #include <valagee.h>
31 #include <glib-object.h>
32 #include <glib/gstdio.h>
33 #include <stdio.h>
34 #include <vala.h>
35 
36 enum  {
37 	VALADOC_HTML_BASIC_DOCLET_0_PROPERTY,
38 	VALADOC_HTML_BASIC_DOCLET_LINKER_PROPERTY,
39 	VALADOC_HTML_BASIC_DOCLET_SETTINGS_PROPERTY,
40 	VALADOC_HTML_BASIC_DOCLET_WIKI_INDEX_NAME_PROPERTY,
41 	VALADOC_HTML_BASIC_DOCLET_NUM_PROPERTIES
42 };
43 static GParamSpec* valadoc_html_basic_doclet_properties[VALADOC_HTML_BASIC_DOCLET_NUM_PROPERTIES];
44 #define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL)))
45 #define _g_free0(var) (var = (g_free (var), NULL))
46 #define _valadoc_api_tree_unref0(var) ((var == NULL) ? NULL : (var = (valadoc_api_tree_unref (var), NULL)))
47 #define _valadoc_markup_writer_unref0(var) ((var == NULL) ? NULL : (var = (valadoc_markup_writer_unref (var), NULL)))
48 #define _vala_iterable_unref0(var) ((var == NULL) ? NULL : (var = (vala_iterable_unref (var), NULL)))
49 #define _vala_iterator_unref0(var) ((var == NULL) ? NULL : (var = (vala_iterator_unref (var), NULL)))
50 #define _g_regex_unref0(var) ((var == NULL) ? NULL : (var = (g_regex_unref (var), NULL)))
51 #define _fclose0(var) ((var == NULL) ? NULL : (var = (fclose (var), NULL)))
52 #define _vala_assert(expr, msg) if G_LIKELY (expr) ; else g_assertion_message_expr (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, msg);
53 #define _vala_return_if_fail(expr, msg) if G_LIKELY (expr) ; else { g_return_if_fail_warning (G_LOG_DOMAIN, G_STRFUNC, msg); return; }
54 #define _vala_return_val_if_fail(expr, msg, val) if G_LIKELY (expr) ; else { g_return_if_fail_warning (G_LOG_DOMAIN, G_STRFUNC, msg); return val; }
55 #define _vala_warn_if_fail(expr, msg) if G_LIKELY (expr) ; else g_warn_message (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, msg);
56 
57 struct _ValadocHtmlBasicDocletPrivate {
58 	ValadocHtmlLinkHelper* _linker;
59 	ValadocSettings* _settings;
60 	gchar* _wiki_index_name;
61 	guint html_id_counter;
62 };
63 
64 static gint ValadocHtmlBasicDoclet_private_offset;
65 static gpointer valadoc_html_basic_doclet_parent_class = NULL;
66 static ValadocApiNodeType* valadoc_html_basic_doclet_inheritable_members;
67 static gint valadoc_html_basic_doclet_inheritable_members_length1;
68 static ValadocApiNodeType* valadoc_html_basic_doclet_inheritable_members = NULL;
69 static gint valadoc_html_basic_doclet_inheritable_members_length1 = 0;
70 static gint _valadoc_html_basic_doclet_inheritable_members_size_ = 0;
71 static ValadocDocletIface * valadoc_html_basic_doclet_valadoc_doclet_parent_iface = NULL;
72 
73 #define VALADOC_HTML_BASIC_DOCLET_css_inline_navigation "navi_inline"
74 #define VALADOC_HTML_BASIC_DOCLET_css_package_index "package_index"
75 #define VALADOC_HTML_BASIC_DOCLET_css_brief_description "brief_description"
76 #define VALADOC_HTML_BASIC_DOCLET_css_description "description"
77 #define VALADOC_HTML_BASIC_DOCLET_css_known_list "known_nodes"
78 #define VALADOC_HTML_BASIC_DOCLET_css_leaf_brief_description "leaf_brief_description"
79 #define VALADOC_HTML_BASIC_DOCLET_css_leaf_code_definition "leaf_code_definition"
80 #define VALADOC_HTML_BASIC_DOCLET_css_box_headline_text "text"
81 #define VALADOC_HTML_BASIC_DOCLET_css_box_headline_toggle "toggle"
82 #define VALADOC_HTML_BASIC_DOCLET_css_box_headline "headline"
83 #define VALADOC_HTML_BASIC_DOCLET_css_box_content "content"
84 #define VALADOC_HTML_BASIC_DOCLET_css_box_column "column"
85 #define VALADOC_HTML_BASIC_DOCLET_css_box "box"
86 #define VALADOC_HTML_BASIC_DOCLET_css_namespace_note "namespace_note"
87 #define VALADOC_HTML_BASIC_DOCLET_css_package_note "package_note"
88 #define VALADOC_HTML_BASIC_DOCLET_css_site_header "site_header"
89 #define VALADOC_HTML_BASIC_DOCLET_css_navi "navi_main"
90 #define VALADOC_HTML_BASIC_DOCLET_css_navi_hr "navi_hr"
91 #define VALADOC_HTML_BASIC_DOCLET_css_errordomain_table_name "main_errordomain_table_name"
92 #define VALADOC_HTML_BASIC_DOCLET_css_errordomain_table_text "main_errordomain_table_text"
93 #define VALADOC_HTML_BASIC_DOCLET_css_errordomain_table "main_errordomain_table"
94 #define VALADOC_HTML_BASIC_DOCLET_css_enum_table_name "main_enum_table_name"
95 #define VALADOC_HTML_BASIC_DOCLET_css_enum_table_text "main_enum_table_text"
96 #define VALADOC_HTML_BASIC_DOCLET_css_enum_table "main_enum_table"
97 #define VALADOC_HTML_BASIC_DOCLET_css_diagram "main_diagram"
98 #define VALADOC_HTML_BASIC_DOCLET_css_see_list "main_see_list"
99 #define VALADOC_HTML_BASIC_DOCLET_css_wiki_table "main_table"
100 #define VALADOC_HTML_BASIC_DOCLET_css_notification_area "main_notification"
101 #define VALADOC_HTML_BASIC_DOCLET_css_source_sample "main_sourcesample"
102 #define VALADOC_HTML_BASIC_DOCLET_css_exception_table "main_parameter_table"
103 #define VALADOC_HTML_BASIC_DOCLET_css_parameter_table_text "main_parameter_table_text"
104 #define VALADOC_HTML_BASIC_DOCLET_css_parameter_table_name "main_parameter_table_name"
105 #define VALADOC_HTML_BASIC_DOCLET_css_parameter_table "main_parameter_table"
106 #define VALADOC_HTML_BASIC_DOCLET_css_title "main_title"
107 #define VALADOC_HTML_BASIC_DOCLET_css_other_type "main_other_type"
108 #define VALADOC_HTML_BASIC_DOCLET_css_basic_type "main_basic_type"
109 #define VALADOC_HTML_BASIC_DOCLET_css_keyword "main_keyword"
110 #define VALADOC_HTML_BASIC_DOCLET_css_optional_parameter "main_optional_parameter"
111 #define VALADOC_HTML_BASIC_DOCLET_css_code_definition "main_code_definition"
112 #define VALADOC_HTML_BASIC_DOCLET_css_headline_hr "main_hr"
113 #define VALADOC_HTML_BASIC_DOCLET_css_hr "main_hr"
114 #define VALADOC_HTML_BASIC_DOCLET_css_list_errdom "main_list_errdom"
115 #define VALADOC_HTML_BASIC_DOCLET_css_list_en "main_list_en"
116 #define VALADOC_HTML_BASIC_DOCLET_css_list_ns "main_list_ns"
117 #define VALADOC_HTML_BASIC_DOCLET_css_list_cl "main_list_cl"
118 #define VALADOC_HTML_BASIC_DOCLET_css_list_iface "main_list_iface"
119 #define VALADOC_HTML_BASIC_DOCLET_css_list_stru "main_list_stru"
120 #define VALADOC_HTML_BASIC_DOCLET_css_list_field "main_list_field"
121 #define VALADOC_HTML_BASIC_DOCLET_css_list_prop "main_list_prop"
122 #define VALADOC_HTML_BASIC_DOCLET_css_list_del "main_list_del"
123 #define VALADOC_HTML_BASIC_DOCLET_css_list_sig "main_list_sig"
124 #define VALADOC_HTML_BASIC_DOCLET_css_list_m "main_list_m"
125 #define VALADOC_HTML_BASIC_DOCLET_css_style_navigation "site_navigation"
126 #define VALADOC_HTML_BASIC_DOCLET_css_style_content "site_content"
127 #define VALADOC_HTML_BASIC_DOCLET_css_style_body "site_body"
128 #define VALADOC_HTML_BASIC_DOCLET_css_deprecated "deprecated"
129 static void valadoc_html_basic_doclet_real_process (ValadocHtmlBasicDoclet* self,
130                                              ValadocSettings* settings,
131                                              ValadocApiTree* tree,
132                                              ValadocErrorReporter* reporter);
133 static gchar* valadoc_html_basic_doclet_real_get_img_path_html (ValadocHtmlBasicDoclet* self,
134                                                          ValadocApiNode* element,
135                                                          const gchar* type);
136 static gchar* valadoc_html_basic_doclet_real_get_img_path (ValadocHtmlBasicDoclet* self,
137                                                     ValadocApiNode* element,
138                                                     const gchar* type);
139 static gchar* valadoc_html_basic_doclet_real_get_icon_directory (ValadocHtmlBasicDoclet* self);
140 static ValadocApiTypeSymbol* valadoc_html_basic_doclet_unpack_type_reference (ValadocHtmlBasicDoclet* self,
141                                                                        ValadocApiTypeReference* type_reference);
142 static void valadoc_html_basic_doclet_real_write_wiki_page (ValadocHtmlBasicDoclet* self,
143                                                      ValadocWikiPage* page,
144                                                      const gchar* contentp,
145                                                      const gchar* css_path,
146                                                      const gchar* js_path,
147                                                      const gchar* pkg_name);
148 static gboolean valadoc_html_basic_doclet_has_brief_description (ValadocHtmlBasicDoclet* self,
149                                                           ValadocApiNode* element);
150 static void valadoc_html_basic_doclet_write_brief_description (ValadocHtmlBasicDoclet* self,
151                                                         ValadocApiNode* element,
152                                                         ValadocApiNode* pos);
153 static void valadoc_html_basic_doclet_write_documentation (ValadocHtmlBasicDoclet* self,
154                                                     ValadocApiNode* element,
155                                                     ValadocApiNode* pos);
156 static void valadoc_html_basic_doclet_write_attributes (ValadocHtmlBasicDoclet* self,
157                                                  ValadocApiSymbol* element,
158                                                  ValadocApiNode* pos);
159 static void valadoc_html_basic_doclet_write_signature (ValadocHtmlBasicDoclet* self,
160                                                 ValadocApiNode* element,
161                                                 ValadocApiNode* pos);
162 static inline ValaArrayList* valadoc_html_basic_doclet_get_accessible_nodes_from_list (ValadocHtmlBasicDoclet* self,
163                                                                          ValaCollection* nodes);
164 static void valadoc_html_basic_doclet_write_known_symbols_note (ValadocHtmlBasicDoclet* self,
165                                                          ValaCollection* nodes2,
166                                                          ValadocApiNode* container,
167                                                          const gchar* headline);
168 static void valadoc_html_basic_doclet_write_inherited_symbols_note_for_class (ValadocHtmlBasicDoclet* self,
169                                                                        ValadocApiClass* cl,
170                                                                        ValadocApiNode* container);
171 static void valadoc_html_basic_doclet_write_inherited_symbols_note_for_interface (ValadocHtmlBasicDoclet* self,
172                                                                            ValadocApiInterface* iface,
173                                                                            ValadocApiNode* container);
174 static void valadoc_html_basic_doclet_write_inherited_symbols_note_for_struct (ValadocHtmlBasicDoclet* self,
175                                                                         ValadocApiStruct* str,
176                                                                         ValadocApiNode* container);
177 static inline gboolean valadoc_html_basic_doclet_has_visible_inheritable_children (ValadocHtmlBasicDoclet* self,
178                                                                      ValadocApiTypeSymbol* symbol);
179 static void valadoc_html_basic_doclet_write_inherited_members_headline (ValadocHtmlBasicDoclet* self);
180 static void valadoc_html_basic_doclet_write_inherited_symbols_note (ValadocHtmlBasicDoclet* self,
181                                                              ValadocApiTypeSymbol* symbol,
182                                                              const gchar* type,
183                                                              ValadocApiNode* container);
184 static void valadoc_html_basic_doclet_finalize (GObject * obj);
185 static GType valadoc_html_basic_doclet_get_type_once (void);
186 static void _vala_valadoc_html_basic_doclet_get_property (GObject * object,
187                                                    guint property_id,
188                                                    GValue * value,
189                                                    GParamSpec * pspec);
190 static void _vala_valadoc_html_basic_doclet_set_property (GObject * object,
191                                                    guint property_id,
192                                                    const GValue * value,
193                                                    GParamSpec * pspec);
194 static void _vala_array_destroy (gpointer array,
195                           gint array_length,
196                           GDestroyNotify destroy_func);
197 static void _vala_array_free (gpointer array,
198                        gint array_length,
199                        GDestroyNotify destroy_func);
200 
201 static inline gpointer
valadoc_html_basic_doclet_get_instance_private(ValadocHtmlBasicDoclet * self)202 valadoc_html_basic_doclet_get_instance_private (ValadocHtmlBasicDoclet* self)
203 {
204 	return G_STRUCT_MEMBER_P (self, ValadocHtmlBasicDoclet_private_offset);
205 }
206 
207 ValadocHtmlLinkHelper*
valadoc_html_basic_doclet_get_linker(ValadocHtmlBasicDoclet * self)208 valadoc_html_basic_doclet_get_linker (ValadocHtmlBasicDoclet* self)
209 {
210 	ValadocHtmlLinkHelper* result;
211 	ValadocHtmlLinkHelper* _tmp0_;
212 	g_return_val_if_fail (self != NULL, NULL);
213 	_tmp0_ = self->priv->_linker;
214 	result = _tmp0_;
215 	return result;
216 }
217 
218 static gpointer
_g_object_ref0(gpointer self)219 _g_object_ref0 (gpointer self)
220 {
221 	return self ? g_object_ref (self) : NULL;
222 }
223 
224 void
valadoc_html_basic_doclet_set_linker(ValadocHtmlBasicDoclet * self,ValadocHtmlLinkHelper * value)225 valadoc_html_basic_doclet_set_linker (ValadocHtmlBasicDoclet* self,
226                                       ValadocHtmlLinkHelper* value)
227 {
228 	ValadocHtmlLinkHelper* old_value;
229 	g_return_if_fail (self != NULL);
230 	old_value = valadoc_html_basic_doclet_get_linker (self);
231 	if (old_value != value) {
232 		ValadocHtmlLinkHelper* _tmp0_;
233 		_tmp0_ = _g_object_ref0 (value);
234 		_g_object_unref0 (self->priv->_linker);
235 		self->priv->_linker = _tmp0_;
236 		g_object_notify_by_pspec ((GObject *) self, valadoc_html_basic_doclet_properties[VALADOC_HTML_BASIC_DOCLET_LINKER_PROPERTY]);
237 	}
238 }
239 
240 ValadocSettings*
valadoc_html_basic_doclet_get_settings(ValadocHtmlBasicDoclet * self)241 valadoc_html_basic_doclet_get_settings (ValadocHtmlBasicDoclet* self)
242 {
243 	ValadocSettings* result;
244 	ValadocSettings* _tmp0_;
245 	g_return_val_if_fail (self != NULL, NULL);
246 	_tmp0_ = self->priv->_settings;
247 	result = _tmp0_;
248 	return result;
249 }
250 
251 void
valadoc_html_basic_doclet_set_settings(ValadocHtmlBasicDoclet * self,ValadocSettings * value)252 valadoc_html_basic_doclet_set_settings (ValadocHtmlBasicDoclet* self,
253                                         ValadocSettings* value)
254 {
255 	ValadocSettings* old_value;
256 	g_return_if_fail (self != NULL);
257 	old_value = valadoc_html_basic_doclet_get_settings (self);
258 	if (old_value != value) {
259 		ValadocSettings* _tmp0_;
260 		_tmp0_ = _g_object_ref0 (value);
261 		_g_object_unref0 (self->priv->_settings);
262 		self->priv->_settings = _tmp0_;
263 		g_object_notify_by_pspec ((GObject *) self, valadoc_html_basic_doclet_properties[VALADOC_HTML_BASIC_DOCLET_SETTINGS_PROPERTY]);
264 	}
265 }
266 
267 const gchar*
valadoc_html_basic_doclet_get_wiki_index_name(ValadocHtmlBasicDoclet * self)268 valadoc_html_basic_doclet_get_wiki_index_name (ValadocHtmlBasicDoclet* self)
269 {
270 	const gchar* result;
271 	const gchar* _tmp0_;
272 	g_return_val_if_fail (self != NULL, NULL);
273 	_tmp0_ = self->priv->_wiki_index_name;
274 	result = _tmp0_;
275 	return result;
276 }
277 
278 void
valadoc_html_basic_doclet_set_wiki_index_name(ValadocHtmlBasicDoclet * self,const gchar * value)279 valadoc_html_basic_doclet_set_wiki_index_name (ValadocHtmlBasicDoclet* self,
280                                                const gchar* value)
281 {
282 	gchar* old_value;
283 	g_return_if_fail (self != NULL);
284 	old_value = valadoc_html_basic_doclet_get_wiki_index_name (self);
285 	if (g_strcmp0 (value, old_value) != 0) {
286 		gchar* _tmp0_;
287 		_tmp0_ = g_strdup (value);
288 		_g_free0 (self->priv->_wiki_index_name);
289 		self->priv->_wiki_index_name = _tmp0_;
290 		g_object_notify_by_pspec ((GObject *) self, valadoc_html_basic_doclet_properties[VALADOC_HTML_BASIC_DOCLET_WIKI_INDEX_NAME_PROPERTY]);
291 	}
292 }
293 
294 static gpointer
_valadoc_api_tree_ref0(gpointer self)295 _valadoc_api_tree_ref0 (gpointer self)
296 {
297 	return self ? valadoc_api_tree_ref (self) : NULL;
298 }
299 
300 static void
valadoc_html_basic_doclet_real_process(ValadocHtmlBasicDoclet * self,ValadocSettings * settings,ValadocApiTree * tree,ValadocErrorReporter * reporter)301 valadoc_html_basic_doclet_real_process (ValadocHtmlBasicDoclet* self,
302                                         ValadocSettings* settings,
303                                         ValadocApiTree* tree,
304                                         ValadocErrorReporter* reporter)
305 {
306 	ValadocErrorReporter* _tmp0_;
307 	ValadocApiTree* _tmp1_;
308 	ValadocHtmlCssClassResolver* _tmp2_;
309 	ValadocHtmlLinkHelper* _tmp3_;
310 	ValadocHtmlLinkHelper* _tmp4_;
311 	ValadocHtmlLinkHelper* _tmp5_;
312 	ValadocHtmlCssClassResolver* _tmp6_;
313 	ValadocHtmlHtmlRenderer* _tmp7_;
314 	ValadocHtmlLinkHelper* _tmp8_;
315 	ValadocHtmlSimpleChartFactory* _tmp9_;
316 	g_return_if_fail (settings != NULL);
317 	g_return_if_fail (tree != NULL);
318 	g_return_if_fail (reporter != NULL);
319 	_tmp0_ = _g_object_ref0 (reporter);
320 	_g_object_unref0 (self->reporter);
321 	self->reporter = _tmp0_;
322 	valadoc_html_basic_doclet_set_settings (self, settings);
323 	_tmp1_ = _valadoc_api_tree_ref0 (tree);
324 	_valadoc_api_tree_unref0 (self->tree);
325 	self->tree = _tmp1_;
326 	_tmp2_ = valadoc_html_css_class_resolver_new ();
327 	_g_object_unref0 (self->cssresolver);
328 	self->cssresolver = _tmp2_;
329 	_tmp3_ = valadoc_html_link_helper_new ();
330 	_tmp4_ = _tmp3_;
331 	valadoc_html_basic_doclet_set_linker (self, _tmp4_);
332 	_g_object_unref0 (_tmp4_);
333 	_tmp5_ = self->priv->_linker;
334 	_tmp6_ = self->cssresolver;
335 	_tmp7_ = valadoc_html_html_renderer_new (settings, _tmp5_, _tmp6_);
336 	_g_object_unref0 (self->_renderer);
337 	self->_renderer = _tmp7_;
338 	_tmp8_ = self->priv->_linker;
339 	_tmp9_ = valadoc_html_simple_chart_factory_new (settings, _tmp8_);
340 	_g_object_unref0 (self->image_factory);
341 	self->image_factory = (ValadocChartsFactory*) _tmp9_;
342 }
343 
344 void
valadoc_html_basic_doclet_process(ValadocHtmlBasicDoclet * self,ValadocSettings * settings,ValadocApiTree * tree,ValadocErrorReporter * reporter)345 valadoc_html_basic_doclet_process (ValadocHtmlBasicDoclet* self,
346                                    ValadocSettings* settings,
347                                    ValadocApiTree* tree,
348                                    ValadocErrorReporter* reporter)
349 {
350 	g_return_if_fail (self != NULL);
351 	VALADOC_HTML_BASIC_DOCLET_GET_CLASS (self)->process (self, settings, tree, reporter);
352 }
353 
354 gchar*
valadoc_html_basic_doclet_get_link(ValadocHtmlBasicDoclet * self,ValadocApiNode * to,ValadocApiNode * from)355 valadoc_html_basic_doclet_get_link (ValadocHtmlBasicDoclet* self,
356                                     ValadocApiNode* to,
357                                     ValadocApiNode* from)
358 {
359 	ValadocHtmlLinkHelper* _tmp0_;
360 	ValadocSettings* _tmp1_;
361 	gchar* _tmp2_;
362 	gchar* result = NULL;
363 	g_return_val_if_fail (self != NULL, NULL);
364 	g_return_val_if_fail (to != NULL, NULL);
365 	g_return_val_if_fail (from != NULL, NULL);
366 	_tmp0_ = self->priv->_linker;
367 	_tmp1_ = self->priv->_settings;
368 	_tmp2_ = valadoc_html_link_helper_get_relative_link (_tmp0_, (ValadocDocumentation*) from, (ValadocDocumentation*) to, _tmp1_);
369 	result = _tmp2_;
370 	return result;
371 }
372 
373 static gchar*
valadoc_html_basic_doclet_real_get_img_path_html(ValadocHtmlBasicDoclet * self,ValadocApiNode * element,const gchar * type)374 valadoc_html_basic_doclet_real_get_img_path_html (ValadocHtmlBasicDoclet* self,
375                                                   ValadocApiNode* element,
376                                                   const gchar* type)
377 {
378 	gchar* _tmp0_;
379 	gchar* _tmp1_;
380 	gchar* _tmp2_;
381 	gchar* _tmp3_;
382 	gchar* _tmp4_;
383 	gchar* _tmp5_;
384 	gchar* _tmp6_;
385 	gchar* _tmp7_;
386 	gchar* result = NULL;
387 	g_return_val_if_fail (element != NULL, NULL);
388 	g_return_val_if_fail (type != NULL, NULL);
389 	_tmp0_ = valadoc_api_node_get_full_name (element);
390 	_tmp1_ = _tmp0_;
391 	_tmp2_ = g_strconcat (_tmp1_, ".", NULL);
392 	_tmp3_ = _tmp2_;
393 	_tmp4_ = g_strconcat (_tmp3_, type, NULL);
394 	_tmp5_ = _tmp4_;
395 	_tmp6_ = g_build_filename ("img", _tmp5_, NULL);
396 	_tmp7_ = _tmp6_;
397 	_g_free0 (_tmp5_);
398 	_g_free0 (_tmp3_);
399 	_g_free0 (_tmp1_);
400 	result = _tmp7_;
401 	return result;
402 }
403 
404 gchar*
valadoc_html_basic_doclet_get_img_path_html(ValadocHtmlBasicDoclet * self,ValadocApiNode * element,const gchar * type)405 valadoc_html_basic_doclet_get_img_path_html (ValadocHtmlBasicDoclet* self,
406                                              ValadocApiNode* element,
407                                              const gchar* type)
408 {
409 	g_return_val_if_fail (self != NULL, NULL);
410 	return VALADOC_HTML_BASIC_DOCLET_GET_CLASS (self)->get_img_path_html (self, element, type);
411 }
412 
413 static gchar*
valadoc_html_basic_doclet_real_get_img_path(ValadocHtmlBasicDoclet * self,ValadocApiNode * element,const gchar * type)414 valadoc_html_basic_doclet_real_get_img_path (ValadocHtmlBasicDoclet* self,
415                                              ValadocApiNode* element,
416                                              const gchar* type)
417 {
418 	ValadocSettings* _tmp0_;
419 	const gchar* _tmp1_;
420 	ValadocApiPackage* _tmp2_;
421 	ValadocApiPackage* _tmp3_;
422 	const gchar* _tmp4_;
423 	const gchar* _tmp5_;
424 	gchar* _tmp6_;
425 	gchar* _tmp7_;
426 	gchar* _tmp8_;
427 	gchar* _tmp9_;
428 	gchar* _tmp10_;
429 	gchar* _tmp11_;
430 	gchar* _tmp12_;
431 	gchar* _tmp13_;
432 	gchar* result = NULL;
433 	g_return_val_if_fail (element != NULL, NULL);
434 	g_return_val_if_fail (type != NULL, NULL);
435 	_tmp0_ = self->priv->_settings;
436 	_tmp1_ = _tmp0_->path;
437 	_tmp2_ = valadoc_documentation_get_package ((ValadocDocumentation*) element);
438 	_tmp3_ = _tmp2_;
439 	_tmp4_ = valadoc_api_node_get_name ((ValadocApiNode*) _tmp3_);
440 	_tmp5_ = _tmp4_;
441 	_tmp6_ = valadoc_api_node_get_full_name (element);
442 	_tmp7_ = _tmp6_;
443 	_tmp8_ = g_strconcat (_tmp7_, ".", NULL);
444 	_tmp9_ = _tmp8_;
445 	_tmp10_ = g_strconcat (_tmp9_, type, NULL);
446 	_tmp11_ = _tmp10_;
447 	_tmp12_ = g_build_filename (_tmp1_, _tmp5_, "img", _tmp11_, NULL);
448 	_tmp13_ = _tmp12_;
449 	_g_free0 (_tmp11_);
450 	_g_free0 (_tmp9_);
451 	_g_free0 (_tmp7_);
452 	result = _tmp13_;
453 	return result;
454 }
455 
456 gchar*
valadoc_html_basic_doclet_get_img_path(ValadocHtmlBasicDoclet * self,ValadocApiNode * element,const gchar * type)457 valadoc_html_basic_doclet_get_img_path (ValadocHtmlBasicDoclet* self,
458                                         ValadocApiNode* element,
459                                         const gchar* type)
460 {
461 	g_return_val_if_fail (self != NULL, NULL);
462 	return VALADOC_HTML_BASIC_DOCLET_GET_CLASS (self)->get_img_path (self, element, type);
463 }
464 
465 static gchar*
valadoc_html_basic_doclet_real_get_icon_directory(ValadocHtmlBasicDoclet * self)466 valadoc_html_basic_doclet_real_get_icon_directory (ValadocHtmlBasicDoclet* self)
467 {
468 	gchar* _tmp0_;
469 	gchar* result = NULL;
470 	_tmp0_ = g_strdup ("..");
471 	result = _tmp0_;
472 	return result;
473 }
474 
475 gchar*
valadoc_html_basic_doclet_get_icon_directory(ValadocHtmlBasicDoclet * self)476 valadoc_html_basic_doclet_get_icon_directory (ValadocHtmlBasicDoclet* self)
477 {
478 	g_return_val_if_fail (self != NULL, NULL);
479 	return VALADOC_HTML_BASIC_DOCLET_GET_CLASS (self)->get_icon_directory (self);
480 }
481 
482 static ValadocApiTypeSymbol*
valadoc_html_basic_doclet_unpack_type_reference(ValadocHtmlBasicDoclet * self,ValadocApiTypeReference * type_reference)483 valadoc_html_basic_doclet_unpack_type_reference (ValadocHtmlBasicDoclet* self,
484                                                  ValadocApiTypeReference* type_reference)
485 {
486 	ValadocApiItem* pos = NULL;
487 	ValadocApiItem* _tmp0_;
488 	ValadocApiTypeSymbol* result = NULL;
489 	g_return_val_if_fail (self != NULL, NULL);
490 	_tmp0_ = _g_object_ref0 ((ValadocApiItem*) type_reference);
491 	pos = _tmp0_;
492 	while (TRUE) {
493 		ValadocApiItem* _tmp1_;
494 		ValadocApiItem* _tmp2_;
495 		_tmp1_ = pos;
496 		if (!(_tmp1_ != NULL)) {
497 			break;
498 		}
499 		_tmp2_ = pos;
500 		if (VALADOC_API_IS_TYPEREFERENCE (_tmp2_)) {
501 			ValadocApiItem* _tmp3_;
502 			ValadocApiItem* _tmp4_;
503 			ValadocApiItem* _tmp5_;
504 			ValadocApiItem* _tmp6_;
505 			_tmp3_ = pos;
506 			_tmp4_ = valadoc_api_typereference_get_data_type (G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, VALADOC_API_TYPE_TYPEREFERENCE, ValadocApiTypeReference));
507 			_tmp5_ = _tmp4_;
508 			_tmp6_ = _g_object_ref0 (_tmp5_);
509 			_g_object_unref0 (pos);
510 			pos = _tmp6_;
511 		} else {
512 			ValadocApiItem* _tmp7_;
513 			_tmp7_ = pos;
514 			if (VALADOC_API_IS_ARRAY (_tmp7_)) {
515 				ValadocApiItem* _tmp8_;
516 				ValadocApiItem* _tmp9_;
517 				ValadocApiItem* _tmp10_;
518 				ValadocApiItem* _tmp11_;
519 				_tmp8_ = pos;
520 				_tmp9_ = valadoc_api_array_get_data_type (G_TYPE_CHECK_INSTANCE_CAST (_tmp8_, VALADOC_API_TYPE_ARRAY, ValadocApiArray));
521 				_tmp10_ = _tmp9_;
522 				_tmp11_ = _g_object_ref0 (_tmp10_);
523 				_g_object_unref0 (pos);
524 				pos = _tmp11_;
525 			} else {
526 				ValadocApiItem* _tmp12_;
527 				_tmp12_ = pos;
528 				if (VALADOC_API_IS_POINTER (_tmp12_)) {
529 					ValadocApiItem* _tmp13_;
530 					ValadocApiItem* _tmp14_;
531 					ValadocApiItem* _tmp15_;
532 					ValadocApiItem* _tmp16_;
533 					_tmp13_ = pos;
534 					_tmp14_ = valadoc_api_pointer_get_data_type (G_TYPE_CHECK_INSTANCE_CAST (_tmp13_, VALADOC_API_TYPE_POINTER, ValadocApiPointer));
535 					_tmp15_ = _tmp14_;
536 					_tmp16_ = _g_object_ref0 (_tmp15_);
537 					_g_object_unref0 (pos);
538 					pos = _tmp16_;
539 				} else {
540 					ValadocApiItem* _tmp17_;
541 					ValadocApiItem* _tmp18_;
542 					ValadocApiTypeSymbol* _tmp19_;
543 					_tmp17_ = pos;
544 					_vala_assert (VALADOC_API_IS_TYPESYMBOL (_tmp17_), "pos is TypeSymbol");
545 					_tmp18_ = pos;
546 					_tmp19_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_CAST (_tmp18_, VALADOC_API_TYPE_TYPESYMBOL, ValadocApiTypeSymbol));
547 					result = _tmp19_;
548 					_g_object_unref0 (pos);
549 					return result;
550 				}
551 			}
552 		}
553 	}
554 	result = NULL;
555 	_g_object_unref0 (pos);
556 	return result;
557 }
558 
559 void
valadoc_html_basic_doclet_write_navi_entry_html_template(ValadocHtmlBasicDoclet * self,const gchar * style,const gchar * content,gboolean is_deprecated)560 valadoc_html_basic_doclet_write_navi_entry_html_template (ValadocHtmlBasicDoclet* self,
561                                                           const gchar* style,
562                                                           const gchar* content,
563                                                           gboolean is_deprecated)
564 {
565 	ValadocHtmlMarkupWriter* _tmp0_;
566 	gchar* _tmp1_;
567 	gchar* _tmp2_;
568 	gchar** _tmp3_;
569 	gchar** _tmp4_;
570 	gint _tmp4__length1;
571 	ValadocHtmlMarkupWriter* _tmp13_;
572 	g_return_if_fail (self != NULL);
573 	g_return_if_fail (style != NULL);
574 	g_return_if_fail (content != NULL);
575 	_tmp0_ = self->writer;
576 	_tmp1_ = g_strdup ("class");
577 	_tmp2_ = g_strdup (style);
578 	_tmp3_ = g_new0 (gchar*, 2 + 1);
579 	_tmp3_[0] = _tmp1_;
580 	_tmp3_[1] = _tmp2_;
581 	_tmp4_ = _tmp3_;
582 	_tmp4__length1 = 2;
583 	valadoc_markup_writer_start_tag ((ValadocMarkupWriter*) _tmp0_, "li", _tmp4_, (gint) 2);
584 	_tmp4_ = (_vala_array_free (_tmp4_, _tmp4__length1, (GDestroyNotify) g_free), NULL);
585 	if (is_deprecated) {
586 		ValadocHtmlMarkupWriter* _tmp5_;
587 		gchar* _tmp6_;
588 		gchar* _tmp7_;
589 		gchar** _tmp8_;
590 		gchar** _tmp9_;
591 		gint _tmp9__length1;
592 		ValadocHtmlMarkupWriter* _tmp10_;
593 		ValadocHtmlMarkupWriter* _tmp11_;
594 		_tmp5_ = self->writer;
595 		_tmp6_ = g_strdup ("class");
596 		_tmp7_ = g_strdup (VALADOC_HTML_BASIC_DOCLET_css_deprecated);
597 		_tmp8_ = g_new0 (gchar*, 2 + 1);
598 		_tmp8_[0] = _tmp6_;
599 		_tmp8_[1] = _tmp7_;
600 		_tmp9_ = _tmp8_;
601 		_tmp9__length1 = 2;
602 		valadoc_markup_writer_start_tag ((ValadocMarkupWriter*) _tmp5_, "span", _tmp9_, (gint) 2);
603 		_tmp9_ = (_vala_array_free (_tmp9_, _tmp9__length1, (GDestroyNotify) g_free), NULL);
604 		_tmp10_ = self->writer;
605 		valadoc_markup_writer_text ((ValadocMarkupWriter*) _tmp10_, content);
606 		_tmp11_ = self->writer;
607 		valadoc_markup_writer_end_tag ((ValadocMarkupWriter*) _tmp11_, "span");
608 	} else {
609 		ValadocHtmlMarkupWriter* _tmp12_;
610 		_tmp12_ = self->writer;
611 		valadoc_markup_writer_text ((ValadocMarkupWriter*) _tmp12_, content);
612 	}
613 	_tmp13_ = self->writer;
614 	valadoc_markup_writer_end_tag ((ValadocMarkupWriter*) _tmp13_, "li");
615 }
616 
617 void
valadoc_html_basic_doclet_write_navi_entry_html_template_with_link(ValadocHtmlBasicDoclet * self,const gchar * style,const gchar * link,const gchar * content,gboolean is_deprecated)618 valadoc_html_basic_doclet_write_navi_entry_html_template_with_link (ValadocHtmlBasicDoclet* self,
619                                                                     const gchar* style,
620                                                                     const gchar* link,
621                                                                     const gchar* content,
622                                                                     gboolean is_deprecated)
623 {
624 	ValadocHtmlMarkupWriter* _tmp0_;
625 	gchar* _tmp1_;
626 	gchar* _tmp2_;
627 	gchar** _tmp3_;
628 	gchar** _tmp4_;
629 	gint _tmp4__length1;
630 	ValadocHtmlMarkupWriter* _tmp13_;
631 	g_return_if_fail (self != NULL);
632 	g_return_if_fail (style != NULL);
633 	g_return_if_fail (link != NULL);
634 	g_return_if_fail (content != NULL);
635 	_tmp0_ = self->writer;
636 	_tmp1_ = g_strdup ("class");
637 	_tmp2_ = g_strdup (style);
638 	_tmp3_ = g_new0 (gchar*, 2 + 1);
639 	_tmp3_[0] = _tmp1_;
640 	_tmp3_[1] = _tmp2_;
641 	_tmp4_ = _tmp3_;
642 	_tmp4__length1 = 2;
643 	valadoc_markup_writer_start_tag ((ValadocMarkupWriter*) _tmp0_, "li", _tmp4_, (gint) 2);
644 	_tmp4_ = (_vala_array_free (_tmp4_, _tmp4__length1, (GDestroyNotify) g_free), NULL);
645 	if (is_deprecated) {
646 		ValadocHtmlMarkupWriter* _tmp5_;
647 		gchar* _tmp6_;
648 		gchar* _tmp7_;
649 		gchar** _tmp8_;
650 		gchar** _tmp9_;
651 		gint _tmp9__length1;
652 		ValadocHtmlMarkupWriter* _tmp10_;
653 		ValadocHtmlMarkupWriter* _tmp11_;
654 		_tmp5_ = self->writer;
655 		_tmp6_ = g_strdup ("class");
656 		_tmp7_ = g_strdup (VALADOC_HTML_BASIC_DOCLET_css_deprecated);
657 		_tmp8_ = g_new0 (gchar*, 2 + 1);
658 		_tmp8_[0] = _tmp6_;
659 		_tmp8_[1] = _tmp7_;
660 		_tmp9_ = _tmp8_;
661 		_tmp9__length1 = 2;
662 		valadoc_markup_writer_start_tag ((ValadocMarkupWriter*) _tmp5_, "span", _tmp9_, (gint) 2);
663 		_tmp9_ = (_vala_array_free (_tmp9_, _tmp9__length1, (GDestroyNotify) g_free), NULL);
664 		_tmp10_ = self->writer;
665 		valadoc_html_markup_writer_link (_tmp10_, link, content, NULL);
666 		_tmp11_ = self->writer;
667 		valadoc_markup_writer_end_tag ((ValadocMarkupWriter*) _tmp11_, "span");
668 	} else {
669 		ValadocHtmlMarkupWriter* _tmp12_;
670 		_tmp12_ = self->writer;
671 		valadoc_html_markup_writer_link (_tmp12_, link, content, NULL);
672 	}
673 	_tmp13_ = self->writer;
674 	valadoc_markup_writer_end_tag ((ValadocMarkupWriter*) _tmp13_, "li");
675 }
676 
677 void
valadoc_html_basic_doclet_write_navi_entry(ValadocHtmlBasicDoclet * self,ValadocApiNode * element,ValadocApiNode * pos,const gchar * style,gboolean link,gboolean full_name)678 valadoc_html_basic_doclet_write_navi_entry (ValadocHtmlBasicDoclet* self,
679                                             ValadocApiNode* element,
680                                             ValadocApiNode* pos,
681                                             const gchar* style,
682                                             gboolean link,
683                                             gboolean full_name)
684 {
685 	gchar* name = NULL;
686 	gboolean _tmp0_ = FALSE;
687 	gboolean _tmp13_ = FALSE;
688 	gboolean is_deprecated = FALSE;
689 	g_return_if_fail (self != NULL);
690 	g_return_if_fail (element != NULL);
691 	g_return_if_fail (style != NULL);
692 	if (full_name == TRUE) {
693 		_tmp0_ = VALADOC_API_IS_NAMESPACE (element);
694 	} else {
695 		_tmp0_ = FALSE;
696 	}
697 	if (_tmp0_) {
698 		gchar* tmp = NULL;
699 		gchar* _tmp1_;
700 		const gchar* _tmp2_ = NULL;
701 		const gchar* _tmp3_;
702 		gchar* _tmp5_;
703 		_tmp1_ = valadoc_api_node_get_full_name (element);
704 		tmp = _tmp1_;
705 		_tmp3_ = tmp;
706 		if (_tmp3_ == NULL) {
707 			_tmp2_ = "Global Namespace";
708 		} else {
709 			const gchar* _tmp4_;
710 			_tmp4_ = tmp;
711 			_tmp2_ = _tmp4_;
712 		}
713 		_tmp5_ = g_strdup (_tmp2_);
714 		_g_free0 (name);
715 		name = _tmp5_;
716 		_g_free0 (tmp);
717 	} else {
718 		gchar* tmp = NULL;
719 		const gchar* _tmp6_;
720 		const gchar* _tmp7_;
721 		gchar* _tmp8_;
722 		const gchar* _tmp9_ = NULL;
723 		const gchar* _tmp10_;
724 		gchar* _tmp12_;
725 		_tmp6_ = valadoc_api_node_get_name (element);
726 		_tmp7_ = _tmp6_;
727 		_tmp8_ = g_strdup (_tmp7_);
728 		tmp = _tmp8_;
729 		_tmp10_ = tmp;
730 		if (_tmp10_ == NULL) {
731 			_tmp9_ = "Global Namespace";
732 		} else {
733 			const gchar* _tmp11_;
734 			_tmp11_ = tmp;
735 			_tmp9_ = _tmp11_;
736 		}
737 		_tmp12_ = g_strdup (_tmp9_);
738 		_g_free0 (name);
739 		name = _tmp12_;
740 		_g_free0 (tmp);
741 	}
742 	if (VALADOC_API_IS_SYMBOL (element)) {
743 		gboolean _tmp14_;
744 		gboolean _tmp15_;
745 		_tmp14_ = valadoc_api_symbol_get_is_deprecated (G_TYPE_CHECK_INSTANCE_CAST (element, VALADOC_API_TYPE_SYMBOL, ValadocApiSymbol));
746 		_tmp15_ = _tmp14_;
747 		_tmp13_ = _tmp15_;
748 	} else {
749 		_tmp13_ = FALSE;
750 	}
751 	is_deprecated = _tmp13_;
752 	if (link == TRUE) {
753 		gchar* _tmp16_;
754 		gchar* _tmp17_;
755 		const gchar* _tmp18_;
756 		_tmp16_ = valadoc_html_basic_doclet_get_link (self, element, pos);
757 		_tmp17_ = _tmp16_;
758 		_tmp18_ = name;
759 		valadoc_html_basic_doclet_write_navi_entry_html_template_with_link (self, style, _tmp17_, _tmp18_, is_deprecated);
760 		_g_free0 (_tmp17_);
761 	} else {
762 		const gchar* _tmp19_;
763 		_tmp19_ = name;
764 		valadoc_html_basic_doclet_write_navi_entry_html_template (self, style, _tmp19_, is_deprecated);
765 	}
766 	_g_free0 (name);
767 }
768 
769 void
valadoc_html_basic_doclet_write_wiki_pages(ValadocHtmlBasicDoclet * self,ValadocApiTree * tree,const gchar * css_path_wiki,const gchar * js_path_wiki,const gchar * contentp)770 valadoc_html_basic_doclet_write_wiki_pages (ValadocHtmlBasicDoclet* self,
771                                             ValadocApiTree* tree,
772                                             const gchar* css_path_wiki,
773                                             const gchar* js_path_wiki,
774                                             const gchar* contentp)
775 {
776 	ValadocWikiPageTree* _tmp0_;
777 	ValadocWikiPageTree* _tmp1_;
778 	ValadocWikiPageTree* _tmp2_;
779 	ValadocWikiPageTree* _tmp3_;
780 	ValaCollection* pages = NULL;
781 	ValadocWikiPageTree* _tmp4_;
782 	ValadocWikiPageTree* _tmp5_;
783 	ValaCollection* _tmp6_;
784 	ValaCollection* _tmp7_;
785 	gint _tmp8_;
786 	gint _tmp9_;
787 	gchar* _tmp10_;
788 	gchar* _tmp11_;
789 	g_return_if_fail (self != NULL);
790 	g_return_if_fail (tree != NULL);
791 	g_return_if_fail (css_path_wiki != NULL);
792 	g_return_if_fail (js_path_wiki != NULL);
793 	g_return_if_fail (contentp != NULL);
794 	_tmp0_ = valadoc_api_tree_get_wikitree (tree);
795 	_tmp1_ = _tmp0_;
796 	if (_tmp1_ == NULL) {
797 		return;
798 	}
799 	_tmp2_ = valadoc_api_tree_get_wikitree (tree);
800 	_tmp3_ = _tmp2_;
801 	if (_tmp3_ == NULL) {
802 		return;
803 	}
804 	_tmp4_ = valadoc_api_tree_get_wikitree (tree);
805 	_tmp5_ = _tmp4_;
806 	_tmp6_ = valadoc_wiki_page_tree_get_pages (_tmp5_);
807 	pages = _tmp6_;
808 	_tmp7_ = pages;
809 	_tmp8_ = vala_collection_get_size (_tmp7_);
810 	_tmp9_ = _tmp8_;
811 	if (_tmp9_ == 0) {
812 		_vala_iterable_unref0 (pages);
813 		return;
814 	}
815 	g_mkdir (contentp, 0777);
816 	_tmp10_ = g_build_filename (contentp, "img", NULL);
817 	_tmp11_ = _tmp10_;
818 	g_mkdir (_tmp11_, 0777);
819 	_g_free0 (_tmp11_);
820 	{
821 		ValaIterator* _page_it = NULL;
822 		ValaCollection* _tmp12_;
823 		ValaIterator* _tmp13_;
824 		_tmp12_ = pages;
825 		_tmp13_ = vala_iterable_iterator ((ValaIterable*) _tmp12_);
826 		_page_it = _tmp13_;
827 		while (TRUE) {
828 			ValaIterator* _tmp14_;
829 			ValadocWikiPage* page = NULL;
830 			ValaIterator* _tmp15_;
831 			gpointer _tmp16_;
832 			ValadocWikiPage* _tmp17_;
833 			const gchar* _tmp18_;
834 			const gchar* _tmp19_;
835 			const gchar* _tmp20_;
836 			_tmp14_ = _page_it;
837 			if (!vala_iterator_next (_tmp14_)) {
838 				break;
839 			}
840 			_tmp15_ = _page_it;
841 			_tmp16_ = vala_iterator_get (_tmp15_);
842 			page = (ValadocWikiPage*) _tmp16_;
843 			_tmp17_ = page;
844 			_tmp18_ = valadoc_wiki_page_get_name (_tmp17_);
845 			_tmp19_ = _tmp18_;
846 			_tmp20_ = self->priv->_wiki_index_name;
847 			if (g_strcmp0 (_tmp19_, _tmp20_) != 0) {
848 				ValadocWikiPage* _tmp21_;
849 				ValadocSettings* _tmp22_;
850 				const gchar* _tmp23_;
851 				_tmp21_ = page;
852 				_tmp22_ = self->priv->_settings;
853 				_tmp23_ = _tmp22_->pkg_name;
854 				valadoc_html_basic_doclet_write_wiki_page (self, _tmp21_, contentp, css_path_wiki, js_path_wiki, _tmp23_);
855 			}
856 			_g_object_unref0 (page);
857 		}
858 		_vala_iterator_unref0 (_page_it);
859 	}
860 	_vala_iterable_unref0 (pages);
861 }
862 
863 static glong
string_strnlen(gchar * str,glong maxlen)864 string_strnlen (gchar* str,
865                 glong maxlen)
866 {
867 	gchar* end = NULL;
868 	gchar* _tmp0_;
869 	gchar* _tmp1_;
870 	glong result = 0L;
871 	_tmp0_ = memchr (str, 0, (gsize) maxlen);
872 	end = _tmp0_;
873 	_tmp1_ = end;
874 	if (_tmp1_ == NULL) {
875 		result = maxlen;
876 		return result;
877 	} else {
878 		gchar* _tmp2_;
879 		_tmp2_ = end;
880 		result = (glong) (_tmp2_ - str);
881 		return result;
882 	}
883 }
884 
885 static gchar*
string_substring(const gchar * self,glong offset,glong len)886 string_substring (const gchar* self,
887                   glong offset,
888                   glong len)
889 {
890 	glong string_length = 0L;
891 	gboolean _tmp0_ = FALSE;
892 	gchar* _tmp3_;
893 	gchar* result = NULL;
894 	g_return_val_if_fail (self != NULL, NULL);
895 	if (offset >= ((glong) 0)) {
896 		_tmp0_ = len >= ((glong) 0);
897 	} else {
898 		_tmp0_ = FALSE;
899 	}
900 	if (_tmp0_) {
901 		string_length = string_strnlen ((gchar*) self, offset + len);
902 	} else {
903 		gint _tmp1_;
904 		gint _tmp2_;
905 		_tmp1_ = strlen (self);
906 		_tmp2_ = _tmp1_;
907 		string_length = (glong) _tmp2_;
908 	}
909 	if (offset < ((glong) 0)) {
910 		offset = string_length + offset;
911 		g_return_val_if_fail (offset >= ((glong) 0), NULL);
912 	} else {
913 		g_return_val_if_fail (offset <= string_length, NULL);
914 	}
915 	if (len < ((glong) 0)) {
916 		len = string_length - offset;
917 	}
918 	g_return_val_if_fail ((offset + len) <= string_length, NULL);
919 	_tmp3_ = g_strndup (((gchar*) self) + offset, (gsize) len);
920 	result = _tmp3_;
921 	return result;
922 }
923 
924 static gchar*
string_replace(const gchar * self,const gchar * old,const gchar * replacement)925 string_replace (const gchar* self,
926                 const gchar* old,
927                 const gchar* replacement)
928 {
929 	gboolean _tmp0_ = FALSE;
930 	gboolean _tmp1_ = FALSE;
931 	GError* _inner_error0_ = NULL;
932 	gchar* result = NULL;
933 	g_return_val_if_fail (self != NULL, NULL);
934 	g_return_val_if_fail (old != NULL, NULL);
935 	g_return_val_if_fail (replacement != NULL, NULL);
936 	if ((*((gchar*) self)) == '\0') {
937 		_tmp1_ = TRUE;
938 	} else {
939 		_tmp1_ = (*((gchar*) old)) == '\0';
940 	}
941 	if (_tmp1_) {
942 		_tmp0_ = TRUE;
943 	} else {
944 		_tmp0_ = g_strcmp0 (old, replacement) == 0;
945 	}
946 	if (_tmp0_) {
947 		gchar* _tmp2_;
948 		_tmp2_ = g_strdup (self);
949 		result = _tmp2_;
950 		return result;
951 	}
952 	{
953 		GRegex* regex = NULL;
954 		gchar* _tmp3_;
955 		gchar* _tmp4_;
956 		GRegex* _tmp5_;
957 		GRegex* _tmp6_;
958 		gchar* _tmp7_ = NULL;
959 		GRegex* _tmp8_;
960 		gchar* _tmp9_;
961 		gchar* _tmp10_;
962 		_tmp3_ = g_regex_escape_string (old, -1);
963 		_tmp4_ = _tmp3_;
964 		_tmp5_ = g_regex_new (_tmp4_, 0, 0, &_inner_error0_);
965 		_tmp6_ = _tmp5_;
966 		_g_free0 (_tmp4_);
967 		regex = _tmp6_;
968 		if (G_UNLIKELY (_inner_error0_ != NULL)) {
969 			_g_free0 (_tmp7_);
970 			_g_regex_unref0 (regex);
971 			if (_inner_error0_->domain == G_REGEX_ERROR) {
972 				goto __catch0_g_regex_error;
973 			}
974 			g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error0_->message, g_quark_to_string (_inner_error0_->domain), _inner_error0_->code);
975 			g_clear_error (&_inner_error0_);
976 			return NULL;
977 		}
978 		_tmp8_ = regex;
979 		_tmp9_ = g_regex_replace_literal (_tmp8_, self, (gssize) -1, 0, replacement, 0, &_inner_error0_);
980 		_tmp7_ = _tmp9_;
981 		if (G_UNLIKELY (_inner_error0_ != NULL)) {
982 			_g_free0 (_tmp7_);
983 			_g_regex_unref0 (regex);
984 			if (_inner_error0_->domain == G_REGEX_ERROR) {
985 				goto __catch0_g_regex_error;
986 			}
987 			g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error0_->message, g_quark_to_string (_inner_error0_->domain), _inner_error0_->code);
988 			g_clear_error (&_inner_error0_);
989 			return NULL;
990 		}
991 		_tmp10_ = _tmp7_;
992 		_tmp7_ = NULL;
993 		result = _tmp10_;
994 		_g_free0 (_tmp7_);
995 		_g_regex_unref0 (regex);
996 		return result;
997 	}
998 	goto __finally0;
999 	__catch0_g_regex_error:
1000 	{
1001 		g_clear_error (&_inner_error0_);
1002 		g_assert_not_reached ();
1003 	}
1004 	__finally0:
1005 	g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error0_->message, g_quark_to_string (_inner_error0_->domain), _inner_error0_->code);
1006 	g_clear_error (&_inner_error0_);
1007 	return NULL;
1008 }
1009 
1010 static void
valadoc_html_basic_doclet_real_write_wiki_page(ValadocHtmlBasicDoclet * self,ValadocWikiPage * page,const gchar * contentp,const gchar * css_path,const gchar * js_path,const gchar * pkg_name)1011 valadoc_html_basic_doclet_real_write_wiki_page (ValadocHtmlBasicDoclet* self,
1012                                                 ValadocWikiPage* page,
1013                                                 const gchar* contentp,
1014                                                 const gchar* css_path,
1015                                                 const gchar* js_path,
1016                                                 const gchar* pkg_name)
1017 {
1018 	FILE* file = NULL;
1019 	const gchar* _tmp0_;
1020 	const gchar* _tmp1_;
1021 	const gchar* _tmp2_;
1022 	const gchar* _tmp3_;
1023 	gint _tmp4_;
1024 	gint _tmp5_;
1025 	gchar* _tmp6_;
1026 	gchar* _tmp7_;
1027 	gchar* _tmp8_;
1028 	gchar* _tmp9_;
1029 	gchar* _tmp10_;
1030 	gchar* _tmp11_;
1031 	gchar* _tmp12_;
1032 	gchar* _tmp13_;
1033 	FILE* _tmp14_;
1034 	FILE* _tmp15_;
1035 	ValadocHtmlMarkupWriter* _tmp16_;
1036 	ValadocHtmlHtmlRenderer* _tmp17_;
1037 	ValadocHtmlMarkupWriter* _tmp18_;
1038 	ValadocHtmlHtmlRenderer* _tmp19_;
1039 	ValadocHtmlHtmlRenderer* _tmp20_;
1040 	ValadocContentPage* _tmp21_;
1041 	ValadocContentPage* _tmp22_;
1042 	g_return_if_fail (page != NULL);
1043 	g_return_if_fail (contentp != NULL);
1044 	g_return_if_fail (css_path != NULL);
1045 	g_return_if_fail (js_path != NULL);
1046 	g_return_if_fail (pkg_name != NULL);
1047 	_tmp0_ = valadoc_wiki_page_get_name (page);
1048 	_tmp1_ = _tmp0_;
1049 	_tmp2_ = valadoc_wiki_page_get_name (page);
1050 	_tmp3_ = _tmp2_;
1051 	_tmp4_ = strlen (_tmp3_);
1052 	_tmp5_ = _tmp4_;
1053 	_tmp6_ = string_substring (_tmp1_, (glong) 0, (glong) (_tmp5_ - 7));
1054 	_tmp7_ = _tmp6_;
1055 	_tmp8_ = string_replace (_tmp7_, "/", ".");
1056 	_tmp9_ = _tmp8_;
1057 	_tmp10_ = g_strconcat (_tmp9_, "htm", NULL);
1058 	_tmp11_ = _tmp10_;
1059 	_tmp12_ = g_build_filename (contentp, _tmp11_, NULL);
1060 	_tmp13_ = _tmp12_;
1061 	_tmp14_ = g_fopen (_tmp13_, "w");
1062 	_tmp15_ = _tmp14_;
1063 	_g_free0 (_tmp13_);
1064 	_g_free0 (_tmp11_);
1065 	_g_free0 (_tmp9_);
1066 	_g_free0 (_tmp7_);
1067 	file = _tmp15_;
1068 	_tmp16_ = valadoc_html_markup_writer_new (file, TRUE);
1069 	_valadoc_markup_writer_unref0 (self->writer);
1070 	self->writer = _tmp16_;
1071 	_tmp17_ = self->_renderer;
1072 	_tmp18_ = self->writer;
1073 	valadoc_html_html_renderer_set_writer (_tmp17_, _tmp18_);
1074 	valadoc_html_basic_doclet_write_file_header (self, css_path, js_path, pkg_name);
1075 	_tmp19_ = self->_renderer;
1076 	valadoc_html_html_renderer_set_container (_tmp19_, (ValadocDocumentation*) page);
1077 	_tmp20_ = self->_renderer;
1078 	_tmp21_ = valadoc_wiki_page_get_documentation (page);
1079 	_tmp22_ = _tmp21_;
1080 	valadoc_content_content_renderer_render ((ValadocContentContentRenderer*) _tmp20_, (ValadocContentContentElement*) _tmp22_);
1081 	valadoc_html_basic_doclet_write_file_footer (self);
1082 	_fclose0 (file);
1083 }
1084 
1085 void
valadoc_html_basic_doclet_write_wiki_page(ValadocHtmlBasicDoclet * self,ValadocWikiPage * page,const gchar * contentp,const gchar * css_path,const gchar * js_path,const gchar * pkg_name)1086 valadoc_html_basic_doclet_write_wiki_page (ValadocHtmlBasicDoclet* self,
1087                                            ValadocWikiPage* page,
1088                                            const gchar* contentp,
1089                                            const gchar* css_path,
1090                                            const gchar* js_path,
1091                                            const gchar* pkg_name)
1092 {
1093 	g_return_if_fail (self != NULL);
1094 	VALADOC_HTML_BASIC_DOCLET_GET_CLASS (self)->write_wiki_page (self, page, contentp, css_path, js_path, pkg_name);
1095 }
1096 
1097 void
valadoc_html_basic_doclet_write_navi_top_entry(ValadocHtmlBasicDoclet * self,ValadocApiNode * element,ValadocApiNode * parent)1098 valadoc_html_basic_doclet_write_navi_top_entry (ValadocHtmlBasicDoclet* self,
1099                                                 ValadocApiNode* element,
1100                                                 ValadocApiNode* parent)
1101 {
1102 	gchar* style = NULL;
1103 	ValadocHtmlCssClassResolver* _tmp0_;
1104 	gchar* _tmp1_;
1105 	ValadocHtmlMarkupWriter* _tmp2_;
1106 	gchar* _tmp3_;
1107 	gchar* _tmp4_;
1108 	gchar** _tmp5_;
1109 	gchar** _tmp6_;
1110 	gint _tmp6__length1;
1111 	gboolean _tmp7_ = FALSE;
1112 	ValadocHtmlMarkupWriter* _tmp10_;
1113 	ValadocHtmlMarkupWriter* _tmp11_;
1114 	gchar* _tmp12_;
1115 	gchar* _tmp13_;
1116 	gchar** _tmp14_;
1117 	gchar** _tmp15_;
1118 	gint _tmp15__length1;
1119 	g_return_if_fail (self != NULL);
1120 	g_return_if_fail (element != NULL);
1121 	_tmp0_ = self->cssresolver;
1122 	_tmp1_ = valadoc_html_css_class_resolver_resolve (_tmp0_, element);
1123 	style = _tmp1_;
1124 	_tmp2_ = self->writer;
1125 	_tmp3_ = g_strdup ("class");
1126 	_tmp4_ = g_strdup (VALADOC_HTML_BASIC_DOCLET_css_navi);
1127 	_tmp5_ = g_new0 (gchar*, 2 + 1);
1128 	_tmp5_[0] = _tmp3_;
1129 	_tmp5_[1] = _tmp4_;
1130 	_tmp6_ = _tmp5_;
1131 	_tmp6__length1 = 2;
1132 	valadoc_markup_writer_start_tag ((ValadocMarkupWriter*) _tmp2_, "ul", _tmp6_, (gint) 2);
1133 	_tmp6_ = (_vala_array_free (_tmp6_, _tmp6__length1, (GDestroyNotify) g_free), NULL);
1134 	if (element == parent) {
1135 		_tmp7_ = TRUE;
1136 	} else {
1137 		_tmp7_ = parent == NULL;
1138 	}
1139 	if (_tmp7_) {
1140 		const gchar* _tmp8_;
1141 		_tmp8_ = style;
1142 		valadoc_html_basic_doclet_write_navi_entry (self, element, parent, _tmp8_, FALSE, FALSE);
1143 	} else {
1144 		const gchar* _tmp9_;
1145 		_tmp9_ = style;
1146 		valadoc_html_basic_doclet_write_navi_entry (self, element, parent, _tmp9_, TRUE, FALSE);
1147 	}
1148 	_tmp10_ = self->writer;
1149 	valadoc_markup_writer_end_tag ((ValadocMarkupWriter*) _tmp10_, "ul");
1150 	_tmp11_ = self->writer;
1151 	_tmp12_ = g_strdup ("class");
1152 	_tmp13_ = g_strdup (VALADOC_HTML_BASIC_DOCLET_css_navi_hr);
1153 	_tmp14_ = g_new0 (gchar*, 2 + 1);
1154 	_tmp14_[0] = _tmp12_;
1155 	_tmp14_[1] = _tmp13_;
1156 	_tmp15_ = _tmp14_;
1157 	_tmp15__length1 = 2;
1158 	valadoc_markup_writer_simple_tag ((ValadocMarkupWriter*) _tmp11_, "hr", _tmp15_, (gint) 2);
1159 	_tmp15_ = (_vala_array_free (_tmp15_, _tmp15__length1, (GDestroyNotify) g_free), NULL);
1160 	_g_free0 (style);
1161 }
1162 
1163 void
valadoc_html_basic_doclet_write_top_element_template(ValadocHtmlBasicDoclet * self,const gchar * link)1164 valadoc_html_basic_doclet_write_top_element_template (ValadocHtmlBasicDoclet* self,
1165                                                       const gchar* link)
1166 {
1167 	ValadocHtmlMarkupWriter* _tmp0_;
1168 	gchar* _tmp1_;
1169 	gchar* _tmp2_;
1170 	gchar** _tmp3_;
1171 	gchar** _tmp4_;
1172 	gint _tmp4__length1;
1173 	ValadocHtmlMarkupWriter* _tmp5_;
1174 	gchar* _tmp6_;
1175 	gchar* _tmp7_;
1176 	gchar** _tmp8_;
1177 	gchar** _tmp9_;
1178 	gint _tmp9__length1;
1179 	ValadocHtmlMarkupWriter* _tmp10_;
1180 	ValadocHtmlMarkupWriter* _tmp11_;
1181 	ValadocHtmlMarkupWriter* _tmp12_;
1182 	ValadocHtmlMarkupWriter* _tmp13_;
1183 	gchar* _tmp14_;
1184 	gchar* _tmp15_;
1185 	gchar** _tmp16_;
1186 	gchar** _tmp17_;
1187 	gint _tmp17__length1;
1188 	g_return_if_fail (self != NULL);
1189 	g_return_if_fail (link != NULL);
1190 	_tmp0_ = self->writer;
1191 	_tmp1_ = g_strdup ("class");
1192 	_tmp2_ = g_strdup (VALADOC_HTML_BASIC_DOCLET_css_navi);
1193 	_tmp3_ = g_new0 (gchar*, 2 + 1);
1194 	_tmp3_[0] = _tmp1_;
1195 	_tmp3_[1] = _tmp2_;
1196 	_tmp4_ = _tmp3_;
1197 	_tmp4__length1 = 2;
1198 	valadoc_markup_writer_start_tag ((ValadocMarkupWriter*) _tmp0_, "ul", _tmp4_, (gint) 2);
1199 	_tmp4_ = (_vala_array_free (_tmp4_, _tmp4__length1, (GDestroyNotify) g_free), NULL);
1200 	_tmp5_ = self->writer;
1201 	_tmp6_ = g_strdup ("class");
1202 	_tmp7_ = g_strdup (VALADOC_HTML_BASIC_DOCLET_css_package_index);
1203 	_tmp8_ = g_new0 (gchar*, 2 + 1);
1204 	_tmp8_[0] = _tmp6_;
1205 	_tmp8_[1] = _tmp7_;
1206 	_tmp9_ = _tmp8_;
1207 	_tmp9__length1 = 2;
1208 	valadoc_markup_writer_start_tag ((ValadocMarkupWriter*) _tmp5_, "li", _tmp9_, (gint) 2);
1209 	_tmp9_ = (_vala_array_free (_tmp9_, _tmp9__length1, (GDestroyNotify) g_free), NULL);
1210 	_tmp10_ = self->writer;
1211 	valadoc_html_markup_writer_link (_tmp10_, link, "Packages", NULL);
1212 	_tmp11_ = self->writer;
1213 	valadoc_markup_writer_end_tag ((ValadocMarkupWriter*) _tmp11_, "li");
1214 	_tmp12_ = self->writer;
1215 	valadoc_markup_writer_end_tag ((ValadocMarkupWriter*) _tmp12_, "ul");
1216 	_tmp13_ = self->writer;
1217 	_tmp14_ = g_strdup ("class");
1218 	_tmp15_ = g_strdup (VALADOC_HTML_BASIC_DOCLET_css_navi_hr);
1219 	_tmp16_ = g_new0 (gchar*, 2 + 1);
1220 	_tmp16_[0] = _tmp14_;
1221 	_tmp16_[1] = _tmp15_;
1222 	_tmp17_ = _tmp16_;
1223 	_tmp17__length1 = 2;
1224 	valadoc_markup_writer_simple_tag ((ValadocMarkupWriter*) _tmp13_, "hr", _tmp17_, (gint) 2);
1225 	_tmp17_ = (_vala_array_free (_tmp17_, _tmp17__length1, (GDestroyNotify) g_free), NULL);
1226 }
1227 
1228 void
valadoc_html_basic_doclet_write_top_elements(ValadocHtmlBasicDoclet * self,ValadocApiNode * element,ValadocApiNode * parent)1229 valadoc_html_basic_doclet_write_top_elements (ValadocHtmlBasicDoclet* self,
1230                                               ValadocApiNode* element,
1231                                               ValadocApiNode* parent)
1232 {
1233 	ValaArrayList* lst = NULL;
1234 	GEqualFunc _tmp0_;
1235 	ValaArrayList* _tmp1_;
1236 	ValadocApiNode* pos = NULL;
1237 	ValadocApiNode* _tmp2_;
1238 	const gchar* _tmp3_;
1239 	g_return_if_fail (self != NULL);
1240 	g_return_if_fail (element != NULL);
1241 	_tmp0_ = g_direct_equal;
1242 	_tmp1_ = vala_array_list_new (VALADOC_API_TYPE_NODE, (GBoxedCopyFunc) g_object_ref, (GDestroyNotify) g_object_unref, _tmp0_);
1243 	lst = _tmp1_;
1244 	_tmp2_ = _g_object_ref0 (element);
1245 	pos = _tmp2_;
1246 	_tmp3_ = self->package_list_link;
1247 	valadoc_html_basic_doclet_write_top_element_template (self, _tmp3_);
1248 	while (TRUE) {
1249 		ValadocApiNode* _tmp4_;
1250 		ValaArrayList* _tmp5_;
1251 		ValadocApiNode* _tmp6_;
1252 		ValadocApiNode* _tmp7_;
1253 		ValadocApiItem* _tmp8_;
1254 		ValadocApiItem* _tmp9_;
1255 		ValadocApiNode* _tmp10_;
1256 		_tmp4_ = pos;
1257 		if (!(_tmp4_ != NULL)) {
1258 			break;
1259 		}
1260 		_tmp5_ = lst;
1261 		_tmp6_ = pos;
1262 		vala_collection_add ((ValaCollection*) _tmp5_, _tmp6_);
1263 		_tmp7_ = pos;
1264 		_tmp8_ = valadoc_api_item_get_parent ((ValadocApiItem*) _tmp7_);
1265 		_tmp9_ = _tmp8_;
1266 		_tmp10_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_CAST (_tmp9_, VALADOC_API_TYPE_NODE, ValadocApiNode));
1267 		_g_object_unref0 (pos);
1268 		pos = _tmp10_;
1269 	}
1270 	{
1271 		gint i = 0;
1272 		ValaArrayList* _tmp11_;
1273 		gint _tmp12_;
1274 		gint _tmp13_;
1275 		_tmp11_ = lst;
1276 		_tmp12_ = vala_collection_get_size ((ValaCollection*) _tmp11_);
1277 		_tmp13_ = _tmp12_;
1278 		i = _tmp13_ - 1;
1279 		{
1280 			gboolean _tmp14_ = FALSE;
1281 			_tmp14_ = TRUE;
1282 			while (TRUE) {
1283 				ValadocApiNode* el = NULL;
1284 				ValaArrayList* _tmp16_;
1285 				gpointer _tmp17_;
1286 				ValadocApiNode* _tmp18_;
1287 				const gchar* _tmp19_;
1288 				const gchar* _tmp20_;
1289 				if (!_tmp14_) {
1290 					gint _tmp15_;
1291 					_tmp15_ = i;
1292 					i = _tmp15_ - 1;
1293 				}
1294 				_tmp14_ = FALSE;
1295 				if (!(i >= 0)) {
1296 					break;
1297 				}
1298 				_tmp16_ = lst;
1299 				_tmp17_ = vala_list_get ((ValaList*) _tmp16_, i);
1300 				el = (ValadocApiNode*) _tmp17_;
1301 				_tmp18_ = el;
1302 				_tmp19_ = valadoc_api_node_get_name (_tmp18_);
1303 				_tmp20_ = _tmp19_;
1304 				if (_tmp20_ != NULL) {
1305 					ValadocApiNode* _tmp21_;
1306 					_tmp21_ = el;
1307 					valadoc_html_basic_doclet_write_navi_top_entry (self, _tmp21_, parent);
1308 				}
1309 				_g_object_unref0 (el);
1310 			}
1311 		}
1312 	}
1313 	_g_object_unref0 (pos);
1314 	_vala_iterable_unref0 (lst);
1315 }
1316 
1317 static gpointer
_vala_iterable_ref0(gpointer self)1318 _vala_iterable_ref0 (gpointer self)
1319 {
1320 	return self ? vala_iterable_ref (self) : NULL;
1321 }
1322 
1323 void
valadoc_html_basic_doclet_fetch_subnamespace_names(ValadocHtmlBasicDoclet * self,ValadocApiNode * node,ValaArrayList * namespaces)1324 valadoc_html_basic_doclet_fetch_subnamespace_names (ValadocHtmlBasicDoclet* self,
1325                                                     ValadocApiNode* node,
1326                                                     ValaArrayList* namespaces)
1327 {
1328 	ValaList* children = NULL;
1329 	ValaList* _tmp0_;
1330 	ValaList* _tmp1_;
1331 	g_return_if_fail (self != NULL);
1332 	g_return_if_fail (node != NULL);
1333 	g_return_if_fail (namespaces != NULL);
1334 	_tmp0_ = valadoc_api_node_get_children_by_type (node, VALADOC_API_NODE_TYPE_NAMESPACE, TRUE);
1335 	children = _tmp0_;
1336 	_tmp1_ = children;
1337 	vala_list_sort (_tmp1_, (GCompareDataFunc) valadoc_api_node_compare_to, NULL, NULL);
1338 	{
1339 		ValaList* _child_list = NULL;
1340 		ValaList* _tmp2_;
1341 		ValaList* _tmp3_;
1342 		gint _child_size = 0;
1343 		ValaList* _tmp4_;
1344 		gint _tmp5_;
1345 		gint _tmp6_;
1346 		gint _child_index = 0;
1347 		_tmp2_ = children;
1348 		_tmp3_ = _vala_iterable_ref0 (_tmp2_);
1349 		_child_list = _tmp3_;
1350 		_tmp4_ = _child_list;
1351 		_tmp5_ = vala_collection_get_size ((ValaCollection*) _tmp4_);
1352 		_tmp6_ = _tmp5_;
1353 		_child_size = _tmp6_;
1354 		_child_index = -1;
1355 		while (TRUE) {
1356 			gint _tmp7_;
1357 			gint _tmp8_;
1358 			ValadocApiNode* child = NULL;
1359 			ValaList* _tmp9_;
1360 			gpointer _tmp10_;
1361 			ValadocApiNode* _tmp11_;
1362 			ValadocApiNode* _tmp12_;
1363 			_child_index = _child_index + 1;
1364 			_tmp7_ = _child_index;
1365 			_tmp8_ = _child_size;
1366 			if (!(_tmp7_ < _tmp8_)) {
1367 				break;
1368 			}
1369 			_tmp9_ = _child_list;
1370 			_tmp10_ = vala_list_get (_tmp9_, _child_index);
1371 			child = (ValadocApiNode*) _tmp10_;
1372 			_tmp11_ = child;
1373 			vala_collection_add ((ValaCollection*) namespaces, G_TYPE_CHECK_INSTANCE_CAST (_tmp11_, VALADOC_API_TYPE_NAMESPACE, ValadocApiNamespace));
1374 			_tmp12_ = child;
1375 			valadoc_html_basic_doclet_fetch_subnamespace_names (self, _tmp12_, namespaces);
1376 			_g_object_unref0 (child);
1377 		}
1378 		_vala_iterable_unref0 (_child_list);
1379 	}
1380 	_vala_iterable_unref0 (children);
1381 }
1382 
1383 void
valadoc_html_basic_doclet_write_navi_package(ValadocHtmlBasicDoclet * self,ValadocApiPackage * package)1384 valadoc_html_basic_doclet_write_navi_package (ValadocHtmlBasicDoclet* self,
1385                                               ValadocApiPackage* package)
1386 {
1387 	ValaArrayList* ns_list = NULL;
1388 	GEqualFunc _tmp0_;
1389 	ValaArrayList* _tmp1_;
1390 	ValaArrayList* _tmp2_;
1391 	ValadocHtmlMarkupWriter* _tmp3_;
1392 	gchar* _tmp4_;
1393 	gchar* _tmp5_;
1394 	gchar** _tmp6_;
1395 	gchar** _tmp7_;
1396 	gint _tmp7__length1;
1397 	ValadocHtmlMarkupWriter* _tmp8_;
1398 	gchar* _tmp9_;
1399 	gchar* _tmp10_;
1400 	gchar** _tmp11_;
1401 	gchar** _tmp12_;
1402 	gint _tmp12__length1;
1403 	ValadocApiNamespace* globals = NULL;
1404 	ValadocApiNamespace* _tmp32_;
1405 	ValadocHtmlMarkupWriter* _tmp47_;
1406 	ValadocHtmlMarkupWriter* _tmp48_;
1407 	g_return_if_fail (self != NULL);
1408 	g_return_if_fail (package != NULL);
1409 	_tmp0_ = g_direct_equal;
1410 	_tmp1_ = vala_array_list_new (VALADOC_API_TYPE_NAMESPACE, (GBoxedCopyFunc) g_object_ref, (GDestroyNotify) g_object_unref, _tmp0_);
1411 	ns_list = _tmp1_;
1412 	_tmp2_ = ns_list;
1413 	valadoc_html_basic_doclet_fetch_subnamespace_names (self, (ValadocApiNode*) package, _tmp2_);
1414 	_tmp3_ = self->writer;
1415 	_tmp4_ = g_strdup ("class");
1416 	_tmp5_ = g_strdup (VALADOC_HTML_BASIC_DOCLET_css_style_navigation);
1417 	_tmp6_ = g_new0 (gchar*, 2 + 1);
1418 	_tmp6_[0] = _tmp4_;
1419 	_tmp6_[1] = _tmp5_;
1420 	_tmp7_ = _tmp6_;
1421 	_tmp7__length1 = 2;
1422 	valadoc_markup_writer_start_tag ((ValadocMarkupWriter*) _tmp3_, "div", _tmp7_, (gint) 2);
1423 	_tmp7_ = (_vala_array_free (_tmp7_, _tmp7__length1, (GDestroyNotify) g_free), NULL);
1424 	valadoc_html_basic_doclet_write_top_elements (self, (ValadocApiNode*) package, (ValadocApiNode*) package);
1425 	_tmp8_ = self->writer;
1426 	_tmp9_ = g_strdup ("class");
1427 	_tmp10_ = g_strdup (VALADOC_HTML_BASIC_DOCLET_css_navi);
1428 	_tmp11_ = g_new0 (gchar*, 2 + 1);
1429 	_tmp11_[0] = _tmp9_;
1430 	_tmp11_[1] = _tmp10_;
1431 	_tmp12_ = _tmp11_;
1432 	_tmp12__length1 = 2;
1433 	valadoc_markup_writer_start_tag ((ValadocMarkupWriter*) _tmp8_, "ul", _tmp12_, (gint) 2);
1434 	_tmp12_ = (_vala_array_free (_tmp12_, _tmp12__length1, (GDestroyNotify) g_free), NULL);
1435 	globals = NULL;
1436 	{
1437 		ValaArrayList* _ns_list = NULL;
1438 		ValaArrayList* _tmp13_;
1439 		ValaArrayList* _tmp14_;
1440 		gint _ns_size = 0;
1441 		ValaArrayList* _tmp15_;
1442 		gint _tmp16_;
1443 		gint _tmp17_;
1444 		gint _ns_index = 0;
1445 		_tmp13_ = ns_list;
1446 		_tmp14_ = _vala_iterable_ref0 (_tmp13_);
1447 		_ns_list = _tmp14_;
1448 		_tmp15_ = _ns_list;
1449 		_tmp16_ = vala_collection_get_size ((ValaCollection*) _tmp15_);
1450 		_tmp17_ = _tmp16_;
1451 		_ns_size = _tmp17_;
1452 		_ns_index = -1;
1453 		while (TRUE) {
1454 			gint _tmp18_;
1455 			gint _tmp19_;
1456 			ValadocApiNamespace* ns = NULL;
1457 			ValaArrayList* _tmp20_;
1458 			gpointer _tmp21_;
1459 			ValadocApiNamespace* _tmp22_;
1460 			const gchar* _tmp23_;
1461 			const gchar* _tmp24_;
1462 			_ns_index = _ns_index + 1;
1463 			_tmp18_ = _ns_index;
1464 			_tmp19_ = _ns_size;
1465 			if (!(_tmp18_ < _tmp19_)) {
1466 				break;
1467 			}
1468 			_tmp20_ = _ns_list;
1469 			_tmp21_ = vala_list_get ((ValaList*) _tmp20_, _ns_index);
1470 			ns = (ValadocApiNamespace*) _tmp21_;
1471 			_tmp22_ = ns;
1472 			_tmp23_ = valadoc_api_node_get_name ((ValadocApiNode*) _tmp22_);
1473 			_tmp24_ = _tmp23_;
1474 			if (_tmp24_ == NULL) {
1475 				ValadocApiNamespace* _tmp25_;
1476 				ValadocApiNamespace* _tmp26_;
1477 				_tmp25_ = ns;
1478 				_tmp26_ = _g_object_ref0 (_tmp25_);
1479 				_g_object_unref0 (globals);
1480 				globals = _tmp26_;
1481 			} else {
1482 				ValadocApiNamespace* _tmp27_;
1483 				ValadocHtmlCssClassResolver* _tmp28_;
1484 				ValadocApiNamespace* _tmp29_;
1485 				gchar* _tmp30_;
1486 				gchar* _tmp31_;
1487 				_tmp27_ = ns;
1488 				_tmp28_ = self->cssresolver;
1489 				_tmp29_ = ns;
1490 				_tmp30_ = valadoc_html_css_class_resolver_resolve (_tmp28_, (ValadocApiNode*) _tmp29_);
1491 				_tmp31_ = _tmp30_;
1492 				valadoc_html_basic_doclet_write_navi_entry (self, (ValadocApiNode*) _tmp27_, (ValadocApiNode*) package, _tmp31_, TRUE, TRUE);
1493 				_g_free0 (_tmp31_);
1494 			}
1495 			_g_object_unref0 (ns);
1496 		}
1497 		_vala_iterable_unref0 (_ns_list);
1498 	}
1499 	_tmp32_ = globals;
1500 	if (_tmp32_ != NULL) {
1501 		ValadocApiNamespace* _tmp33_;
1502 		ValadocApiNamespace* _tmp34_;
1503 		ValadocApiNamespace* _tmp35_;
1504 		ValadocApiNamespace* _tmp36_;
1505 		ValadocApiNamespace* _tmp37_;
1506 		ValadocApiNamespace* _tmp38_;
1507 		ValadocApiNamespace* _tmp39_;
1508 		ValadocApiNamespace* _tmp40_;
1509 		ValadocApiNamespace* _tmp41_;
1510 		ValadocApiNamespace* _tmp42_;
1511 		ValadocApiNamespace* _tmp43_;
1512 		ValadocApiNamespace* _tmp44_;
1513 		ValadocApiNamespace* _tmp45_;
1514 		ValadocApiNamespace* _tmp46_;
1515 		_tmp33_ = globals;
1516 		valadoc_html_basic_doclet_write_navi_children (self, (ValadocApiNode*) _tmp33_, VALADOC_API_NODE_TYPE_ERROR_CODE, (ValadocApiNode*) package);
1517 		_tmp34_ = globals;
1518 		valadoc_html_basic_doclet_write_navi_children (self, (ValadocApiNode*) _tmp34_, VALADOC_API_NODE_TYPE_ENUM_VALUE, (ValadocApiNode*) package);
1519 		_tmp35_ = globals;
1520 		valadoc_html_basic_doclet_write_navi_children (self, (ValadocApiNode*) _tmp35_, VALADOC_API_NODE_TYPE_ENUM, (ValadocApiNode*) package);
1521 		_tmp36_ = globals;
1522 		valadoc_html_basic_doclet_write_navi_children (self, (ValadocApiNode*) _tmp36_, VALADOC_API_NODE_TYPE_INTERFACE, (ValadocApiNode*) package);
1523 		_tmp37_ = globals;
1524 		valadoc_html_basic_doclet_write_navi_children (self, (ValadocApiNode*) _tmp37_, VALADOC_API_NODE_TYPE_CLASS, (ValadocApiNode*) package);
1525 		_tmp38_ = globals;
1526 		valadoc_html_basic_doclet_write_navi_children (self, (ValadocApiNode*) _tmp38_, VALADOC_API_NODE_TYPE_STRUCT, (ValadocApiNode*) package);
1527 		_tmp39_ = globals;
1528 		valadoc_html_basic_doclet_write_navi_children (self, (ValadocApiNode*) _tmp39_, VALADOC_API_NODE_TYPE_CONSTANT, (ValadocApiNode*) package);
1529 		_tmp40_ = globals;
1530 		valadoc_html_basic_doclet_write_navi_children (self, (ValadocApiNode*) _tmp40_, VALADOC_API_NODE_TYPE_PROPERTY, (ValadocApiNode*) package);
1531 		_tmp41_ = globals;
1532 		valadoc_html_basic_doclet_write_navi_children (self, (ValadocApiNode*) _tmp41_, VALADOC_API_NODE_TYPE_DELEGATE, (ValadocApiNode*) package);
1533 		_tmp42_ = globals;
1534 		valadoc_html_basic_doclet_write_navi_children (self, (ValadocApiNode*) _tmp42_, VALADOC_API_NODE_TYPE_STATIC_METHOD, (ValadocApiNode*) package);
1535 		_tmp43_ = globals;
1536 		valadoc_html_basic_doclet_write_navi_children (self, (ValadocApiNode*) _tmp43_, VALADOC_API_NODE_TYPE_CREATION_METHOD, (ValadocApiNode*) package);
1537 		_tmp44_ = globals;
1538 		valadoc_html_basic_doclet_write_navi_children (self, (ValadocApiNode*) _tmp44_, VALADOC_API_NODE_TYPE_METHOD, (ValadocApiNode*) package);
1539 		_tmp45_ = globals;
1540 		valadoc_html_basic_doclet_write_navi_children (self, (ValadocApiNode*) _tmp45_, VALADOC_API_NODE_TYPE_SIGNAL, (ValadocApiNode*) package);
1541 		_tmp46_ = globals;
1542 		valadoc_html_basic_doclet_write_navi_children (self, (ValadocApiNode*) _tmp46_, VALADOC_API_NODE_TYPE_FIELD, (ValadocApiNode*) package);
1543 	}
1544 	_tmp47_ = self->writer;
1545 	valadoc_markup_writer_end_tag ((ValadocMarkupWriter*) _tmp47_, "ul");
1546 	_tmp48_ = self->writer;
1547 	valadoc_markup_writer_end_tag ((ValadocMarkupWriter*) _tmp48_, "div");
1548 	_g_object_unref0 (globals);
1549 	_vala_iterable_unref0 (ns_list);
1550 }
1551 
1552 void
valadoc_html_basic_doclet_write_navi_symbol(ValadocHtmlBasicDoclet * self,ValadocApiNode * node)1553 valadoc_html_basic_doclet_write_navi_symbol (ValadocHtmlBasicDoclet* self,
1554                                              ValadocApiNode* node)
1555 {
1556 	ValadocHtmlMarkupWriter* _tmp0_;
1557 	gchar* _tmp1_;
1558 	gchar* _tmp2_;
1559 	gchar** _tmp3_;
1560 	gchar** _tmp4_;
1561 	gint _tmp4__length1;
1562 	ValadocHtmlMarkupWriter* _tmp5_;
1563 	g_return_if_fail (self != NULL);
1564 	g_return_if_fail (node != NULL);
1565 	_tmp0_ = self->writer;
1566 	_tmp1_ = g_strdup ("class");
1567 	_tmp2_ = g_strdup (VALADOC_HTML_BASIC_DOCLET_css_style_navigation);
1568 	_tmp3_ = g_new0 (gchar*, 2 + 1);
1569 	_tmp3_[0] = _tmp1_;
1570 	_tmp3_[1] = _tmp2_;
1571 	_tmp4_ = _tmp3_;
1572 	_tmp4__length1 = 2;
1573 	valadoc_markup_writer_start_tag ((ValadocMarkupWriter*) _tmp0_, "div", _tmp4_, (gint) 2);
1574 	_tmp4_ = (_vala_array_free (_tmp4_, _tmp4__length1, (GDestroyNotify) g_free), NULL);
1575 	valadoc_html_basic_doclet_write_top_elements (self, node, node);
1576 	valadoc_html_basic_doclet_write_navi_symbol_inline (self, node, node);
1577 	_tmp5_ = self->writer;
1578 	valadoc_markup_writer_end_tag ((ValadocMarkupWriter*) _tmp5_, "div");
1579 }
1580 
1581 void
valadoc_html_basic_doclet_write_navi_leaf_symbol(ValadocHtmlBasicDoclet * self,ValadocApiNode * node)1582 valadoc_html_basic_doclet_write_navi_leaf_symbol (ValadocHtmlBasicDoclet* self,
1583                                                   ValadocApiNode* node)
1584 {
1585 	ValadocHtmlMarkupWriter* _tmp0_;
1586 	gchar* _tmp1_;
1587 	gchar* _tmp2_;
1588 	gchar** _tmp3_;
1589 	gchar** _tmp4_;
1590 	gint _tmp4__length1;
1591 	ValadocApiItem* _tmp5_;
1592 	ValadocApiItem* _tmp6_;
1593 	ValadocApiItem* _tmp7_;
1594 	ValadocApiItem* _tmp8_;
1595 	ValadocHtmlMarkupWriter* _tmp9_;
1596 	g_return_if_fail (self != NULL);
1597 	g_return_if_fail (node != NULL);
1598 	_tmp0_ = self->writer;
1599 	_tmp1_ = g_strdup ("class");
1600 	_tmp2_ = g_strdup (VALADOC_HTML_BASIC_DOCLET_css_style_navigation);
1601 	_tmp3_ = g_new0 (gchar*, 2 + 1);
1602 	_tmp3_[0] = _tmp1_;
1603 	_tmp3_[1] = _tmp2_;
1604 	_tmp4_ = _tmp3_;
1605 	_tmp4__length1 = 2;
1606 	valadoc_markup_writer_start_tag ((ValadocMarkupWriter*) _tmp0_, "div", _tmp4_, (gint) 2);
1607 	_tmp4_ = (_vala_array_free (_tmp4_, _tmp4__length1, (GDestroyNotify) g_free), NULL);
1608 	_tmp5_ = valadoc_api_item_get_parent ((ValadocApiItem*) node);
1609 	_tmp6_ = _tmp5_;
1610 	valadoc_html_basic_doclet_write_top_elements (self, G_TYPE_CHECK_INSTANCE_CAST (_tmp6_, VALADOC_API_TYPE_NODE, ValadocApiNode), node);
1611 	_tmp7_ = valadoc_api_item_get_parent ((ValadocApiItem*) node);
1612 	_tmp8_ = _tmp7_;
1613 	valadoc_html_basic_doclet_write_navi_symbol_inline (self, G_TYPE_CHECK_INSTANCE_CAST (_tmp8_, VALADOC_API_TYPE_NODE, ValadocApiNode), node);
1614 	_tmp9_ = self->writer;
1615 	valadoc_markup_writer_end_tag ((ValadocMarkupWriter*) _tmp9_, "div");
1616 }
1617 
1618 void
valadoc_html_basic_doclet_write_navi_symbol_inline(ValadocHtmlBasicDoclet * self,ValadocApiNode * node,ValadocApiNode * parent)1619 valadoc_html_basic_doclet_write_navi_symbol_inline (ValadocHtmlBasicDoclet* self,
1620                                                     ValadocApiNode* node,
1621                                                     ValadocApiNode* parent)
1622 {
1623 	ValadocHtmlMarkupWriter* _tmp0_;
1624 	gchar* _tmp1_;
1625 	gchar* _tmp2_;
1626 	gchar** _tmp3_;
1627 	gchar** _tmp4_;
1628 	gint _tmp4__length1;
1629 	ValadocHtmlMarkupWriter* _tmp5_;
1630 	g_return_if_fail (self != NULL);
1631 	g_return_if_fail (node != NULL);
1632 	_tmp0_ = self->writer;
1633 	_tmp1_ = g_strdup ("class");
1634 	_tmp2_ = g_strdup (VALADOC_HTML_BASIC_DOCLET_css_navi);
1635 	_tmp3_ = g_new0 (gchar*, 2 + 1);
1636 	_tmp3_[0] = _tmp1_;
1637 	_tmp3_[1] = _tmp2_;
1638 	_tmp4_ = _tmp3_;
1639 	_tmp4__length1 = 2;
1640 	valadoc_markup_writer_start_tag ((ValadocMarkupWriter*) _tmp0_, "ul", _tmp4_, (gint) 2);
1641 	_tmp4_ = (_vala_array_free (_tmp4_, _tmp4__length1, (GDestroyNotify) g_free), NULL);
1642 	valadoc_html_basic_doclet_write_navi_children (self, node, VALADOC_API_NODE_TYPE_NAMESPACE, parent);
1643 	valadoc_html_basic_doclet_write_navi_children (self, node, VALADOC_API_NODE_TYPE_ERROR_CODE, parent);
1644 	valadoc_html_basic_doclet_write_navi_children (self, node, VALADOC_API_NODE_TYPE_ENUM_VALUE, parent);
1645 	valadoc_html_basic_doclet_write_navi_children (self, node, VALADOC_API_NODE_TYPE_ENUM, parent);
1646 	valadoc_html_basic_doclet_write_navi_children (self, node, VALADOC_API_NODE_TYPE_INTERFACE, parent);
1647 	valadoc_html_basic_doclet_write_navi_children (self, node, VALADOC_API_NODE_TYPE_CLASS, parent);
1648 	valadoc_html_basic_doclet_write_navi_children (self, node, VALADOC_API_NODE_TYPE_STRUCT, parent);
1649 	valadoc_html_basic_doclet_write_navi_children (self, node, VALADOC_API_NODE_TYPE_CONSTANT, parent);
1650 	valadoc_html_basic_doclet_write_navi_children (self, node, VALADOC_API_NODE_TYPE_PROPERTY, parent);
1651 	valadoc_html_basic_doclet_write_navi_children (self, node, VALADOC_API_NODE_TYPE_DELEGATE, parent);
1652 	valadoc_html_basic_doclet_write_navi_children (self, node, VALADOC_API_NODE_TYPE_STATIC_METHOD, parent);
1653 	valadoc_html_basic_doclet_write_navi_children (self, node, VALADOC_API_NODE_TYPE_CREATION_METHOD, parent);
1654 	valadoc_html_basic_doclet_write_navi_children (self, node, VALADOC_API_NODE_TYPE_METHOD, parent);
1655 	valadoc_html_basic_doclet_write_navi_children (self, node, VALADOC_API_NODE_TYPE_SIGNAL, parent);
1656 	valadoc_html_basic_doclet_write_navi_children (self, node, VALADOC_API_NODE_TYPE_FIELD, parent);
1657 	_tmp5_ = self->writer;
1658 	valadoc_markup_writer_end_tag ((ValadocMarkupWriter*) _tmp5_, "ul");
1659 }
1660 
1661 void
valadoc_html_basic_doclet_write_navi_children(ValadocHtmlBasicDoclet * self,ValadocApiNode * node,ValadocApiNodeType type,ValadocApiNode * parent)1662 valadoc_html_basic_doclet_write_navi_children (ValadocHtmlBasicDoclet* self,
1663                                                ValadocApiNode* node,
1664                                                ValadocApiNodeType type,
1665                                                ValadocApiNode* parent)
1666 {
1667 	ValaList* children = NULL;
1668 	ValaList* _tmp0_;
1669 	ValaList* _tmp1_;
1670 	g_return_if_fail (self != NULL);
1671 	g_return_if_fail (node != NULL);
1672 	_tmp0_ = valadoc_api_node_get_children_by_type (node, type, TRUE);
1673 	children = _tmp0_;
1674 	_tmp1_ = children;
1675 	vala_list_sort (_tmp1_, (GCompareDataFunc) valadoc_api_node_compare_to, NULL, NULL);
1676 	{
1677 		ValaList* _child_list = NULL;
1678 		ValaList* _tmp2_;
1679 		ValaList* _tmp3_;
1680 		gint _child_size = 0;
1681 		ValaList* _tmp4_;
1682 		gint _tmp5_;
1683 		gint _tmp6_;
1684 		gint _child_index = 0;
1685 		_tmp2_ = children;
1686 		_tmp3_ = _vala_iterable_ref0 (_tmp2_);
1687 		_child_list = _tmp3_;
1688 		_tmp4_ = _child_list;
1689 		_tmp5_ = vala_collection_get_size ((ValaCollection*) _tmp4_);
1690 		_tmp6_ = _tmp5_;
1691 		_child_size = _tmp6_;
1692 		_child_index = -1;
1693 		while (TRUE) {
1694 			gint _tmp7_;
1695 			gint _tmp8_;
1696 			ValadocApiNode* child = NULL;
1697 			ValaList* _tmp9_;
1698 			gpointer _tmp10_;
1699 			ValadocApiNode* _tmp11_;
1700 			ValadocHtmlCssClassResolver* _tmp12_;
1701 			ValadocApiNode* _tmp13_;
1702 			gchar* _tmp14_;
1703 			gchar* _tmp15_;
1704 			ValadocApiNode* _tmp16_;
1705 			_child_index = _child_index + 1;
1706 			_tmp7_ = _child_index;
1707 			_tmp8_ = _child_size;
1708 			if (!(_tmp7_ < _tmp8_)) {
1709 				break;
1710 			}
1711 			_tmp9_ = _child_list;
1712 			_tmp10_ = vala_list_get (_tmp9_, _child_index);
1713 			child = (ValadocApiNode*) _tmp10_;
1714 			_tmp11_ = child;
1715 			_tmp12_ = self->cssresolver;
1716 			_tmp13_ = child;
1717 			_tmp14_ = valadoc_html_css_class_resolver_resolve (_tmp12_, _tmp13_);
1718 			_tmp15_ = _tmp14_;
1719 			_tmp16_ = child;
1720 			valadoc_html_basic_doclet_write_navi_entry (self, _tmp11_, parent, _tmp15_, _tmp16_ != parent, FALSE);
1721 			_g_free0 (_tmp15_);
1722 			_g_object_unref0 (child);
1723 		}
1724 		_vala_iterable_unref0 (_child_list);
1725 	}
1726 	_vala_iterable_unref0 (children);
1727 }
1728 
1729 void
valadoc_html_basic_doclet_write_package_note(ValadocHtmlBasicDoclet * self,ValadocApiNode * element)1730 valadoc_html_basic_doclet_write_package_note (ValadocHtmlBasicDoclet* self,
1731                                               ValadocApiNode* element)
1732 {
1733 	gchar* package = NULL;
1734 	ValadocApiPackage* _tmp0_;
1735 	ValadocApiPackage* _tmp1_;
1736 	const gchar* _tmp2_;
1737 	const gchar* _tmp3_;
1738 	gchar* _tmp4_;
1739 	const gchar* _tmp5_;
1740 	ValadocHtmlMarkupWriter* _tmp6_;
1741 	gchar* _tmp7_;
1742 	gchar* _tmp8_;
1743 	gchar** _tmp9_;
1744 	gchar** _tmp10_;
1745 	gint _tmp10__length1;
1746 	ValadocHtmlMarkupWriter* _tmp11_;
1747 	ValadocMarkupWriter* _tmp12_;
1748 	ValadocMarkupWriter* _tmp13_;
1749 	ValadocHtmlMarkupWriter* _tmp14_;
1750 	ValadocMarkupWriter* _tmp15_;
1751 	gchar* _tmp16_;
1752 	ValadocApiPackage* _tmp17_;
1753 	ValadocApiPackage* _tmp18_;
1754 	gchar* _tmp19_;
1755 	gchar** _tmp20_;
1756 	gchar** _tmp21_;
1757 	gint _tmp21__length1;
1758 	ValadocMarkupWriter* _tmp22_;
1759 	const gchar* _tmp23_;
1760 	ValadocMarkupWriter* _tmp24_;
1761 	ValadocHtmlMarkupWriter* _tmp25_;
1762 	g_return_if_fail (self != NULL);
1763 	g_return_if_fail (element != NULL);
1764 	_tmp0_ = valadoc_documentation_get_package ((ValadocDocumentation*) element);
1765 	_tmp1_ = _tmp0_;
1766 	_tmp2_ = valadoc_api_node_get_name ((ValadocApiNode*) _tmp1_);
1767 	_tmp3_ = _tmp2_;
1768 	_tmp4_ = g_strdup (_tmp3_);
1769 	package = _tmp4_;
1770 	_tmp5_ = package;
1771 	if (_tmp5_ == NULL) {
1772 		_g_free0 (package);
1773 		return;
1774 	}
1775 	_tmp6_ = self->writer;
1776 	_tmp7_ = g_strdup ("class");
1777 	_tmp8_ = g_strdup (VALADOC_HTML_BASIC_DOCLET_css_package_note);
1778 	_tmp9_ = g_new0 (gchar*, 2 + 1);
1779 	_tmp9_[0] = _tmp7_;
1780 	_tmp9_[1] = _tmp8_;
1781 	_tmp10_ = _tmp9_;
1782 	_tmp10__length1 = 2;
1783 	valadoc_markup_writer_start_tag ((ValadocMarkupWriter*) _tmp6_, "div", _tmp10_, (gint) 2);
1784 	_tmp10_ = (_vala_array_free (_tmp10_, _tmp10__length1, (GDestroyNotify) g_free), NULL);
1785 	_tmp11_ = self->writer;
1786 	_tmp12_ = valadoc_markup_writer_start_tag ((ValadocMarkupWriter*) _tmp11_, "b", NULL, (gint) 0);
1787 	_tmp13_ = valadoc_markup_writer_text (_tmp12_, "Package:");
1788 	valadoc_markup_writer_end_tag (_tmp13_, "b");
1789 	_tmp14_ = self->writer;
1790 	_tmp15_ = valadoc_markup_writer_text ((ValadocMarkupWriter*) _tmp14_, " ");
1791 	_tmp16_ = g_strdup ("href");
1792 	_tmp17_ = valadoc_documentation_get_package ((ValadocDocumentation*) element);
1793 	_tmp18_ = _tmp17_;
1794 	_tmp19_ = valadoc_html_basic_doclet_get_link (self, (ValadocApiNode*) _tmp18_, element);
1795 	_tmp20_ = g_new0 (gchar*, 2 + 1);
1796 	_tmp20_[0] = _tmp16_;
1797 	_tmp20_[1] = _tmp19_;
1798 	_tmp21_ = _tmp20_;
1799 	_tmp21__length1 = 2;
1800 	_tmp22_ = valadoc_markup_writer_start_tag (_tmp15_, "a", _tmp21_, (gint) 2);
1801 	_tmp23_ = package;
1802 	_tmp24_ = valadoc_markup_writer_text (_tmp22_, _tmp23_);
1803 	valadoc_markup_writer_end_tag (_tmp24_, "a");
1804 	_tmp21_ = (_vala_array_free (_tmp21_, _tmp21__length1, (GDestroyNotify) g_free), NULL);
1805 	_tmp25_ = self->writer;
1806 	valadoc_markup_writer_end_tag ((ValadocMarkupWriter*) _tmp25_, "div");
1807 	_g_free0 (package);
1808 }
1809 
1810 void
valadoc_html_basic_doclet_write_namespace_note(ValadocHtmlBasicDoclet * self,ValadocApiNode * element)1811 valadoc_html_basic_doclet_write_namespace_note (ValadocHtmlBasicDoclet* self,
1812                                                 ValadocApiNode* element)
1813 {
1814 	ValadocApiNamespace* ns = NULL;
1815 	ValadocApiNamespace* _tmp0_;
1816 	ValadocApiNamespace* _tmp1_;
1817 	ValadocApiNamespace* _tmp2_;
1818 	ValadocApiNamespace* _tmp3_;
1819 	ValadocApiNamespace* _tmp4_;
1820 	const gchar* _tmp5_;
1821 	const gchar* _tmp6_;
1822 	ValadocHtmlMarkupWriter* _tmp7_;
1823 	gchar* _tmp8_;
1824 	gchar* _tmp9_;
1825 	gchar** _tmp10_;
1826 	gchar** _tmp11_;
1827 	gint _tmp11__length1;
1828 	ValadocHtmlMarkupWriter* _tmp12_;
1829 	ValadocMarkupWriter* _tmp13_;
1830 	ValadocMarkupWriter* _tmp14_;
1831 	ValadocHtmlMarkupWriter* _tmp15_;
1832 	ValadocMarkupWriter* _tmp16_;
1833 	gchar* _tmp17_;
1834 	ValadocApiNamespace* _tmp18_;
1835 	gchar* _tmp19_;
1836 	gchar** _tmp20_;
1837 	gchar** _tmp21_;
1838 	gint _tmp21__length1;
1839 	ValadocMarkupWriter* _tmp22_;
1840 	ValadocApiNamespace* _tmp23_;
1841 	gchar* _tmp24_;
1842 	gchar* _tmp25_;
1843 	ValadocMarkupWriter* _tmp26_;
1844 	ValadocHtmlMarkupWriter* _tmp27_;
1845 	g_return_if_fail (self != NULL);
1846 	g_return_if_fail (element != NULL);
1847 	_tmp0_ = valadoc_api_node_get_nspace (element);
1848 	_tmp1_ = _tmp0_;
1849 	_tmp2_ = _g_object_ref0 (_tmp1_);
1850 	ns = _tmp2_;
1851 	_tmp3_ = ns;
1852 	if (_tmp3_ == NULL) {
1853 		_g_object_unref0 (ns);
1854 		return;
1855 	}
1856 	_tmp4_ = ns;
1857 	_tmp5_ = valadoc_api_node_get_name ((ValadocApiNode*) _tmp4_);
1858 	_tmp6_ = _tmp5_;
1859 	if (_tmp6_ == NULL) {
1860 		_g_object_unref0 (ns);
1861 		return;
1862 	}
1863 	_tmp7_ = self->writer;
1864 	_tmp8_ = g_strdup ("class");
1865 	_tmp9_ = g_strdup (VALADOC_HTML_BASIC_DOCLET_css_namespace_note);
1866 	_tmp10_ = g_new0 (gchar*, 2 + 1);
1867 	_tmp10_[0] = _tmp8_;
1868 	_tmp10_[1] = _tmp9_;
1869 	_tmp11_ = _tmp10_;
1870 	_tmp11__length1 = 2;
1871 	valadoc_markup_writer_start_tag ((ValadocMarkupWriter*) _tmp7_, "div", _tmp11_, (gint) 2);
1872 	_tmp11_ = (_vala_array_free (_tmp11_, _tmp11__length1, (GDestroyNotify) g_free), NULL);
1873 	_tmp12_ = self->writer;
1874 	_tmp13_ = valadoc_markup_writer_start_tag ((ValadocMarkupWriter*) _tmp12_, "b", NULL, (gint) 0);
1875 	_tmp14_ = valadoc_markup_writer_text (_tmp13_, "Namespace:");
1876 	valadoc_markup_writer_end_tag (_tmp14_, "b");
1877 	_tmp15_ = self->writer;
1878 	_tmp16_ = valadoc_markup_writer_text ((ValadocMarkupWriter*) _tmp15_, " ");
1879 	_tmp17_ = g_strdup ("href");
1880 	_tmp18_ = ns;
1881 	_tmp19_ = valadoc_html_basic_doclet_get_link (self, (ValadocApiNode*) _tmp18_, element);
1882 	_tmp20_ = g_new0 (gchar*, 2 + 1);
1883 	_tmp20_[0] = _tmp17_;
1884 	_tmp20_[1] = _tmp19_;
1885 	_tmp21_ = _tmp20_;
1886 	_tmp21__length1 = 2;
1887 	_tmp22_ = valadoc_markup_writer_start_tag (_tmp16_, "a", _tmp21_, (gint) 2);
1888 	_tmp23_ = ns;
1889 	_tmp24_ = valadoc_api_node_get_full_name ((ValadocApiNode*) _tmp23_);
1890 	_tmp25_ = _tmp24_;
1891 	_tmp26_ = valadoc_markup_writer_text (_tmp22_, _tmp25_);
1892 	valadoc_markup_writer_end_tag (_tmp26_, "a");
1893 	_g_free0 (_tmp25_);
1894 	_tmp21_ = (_vala_array_free (_tmp21_, _tmp21__length1, (GDestroyNotify) g_free), NULL);
1895 	_tmp27_ = self->writer;
1896 	valadoc_markup_writer_end_tag ((ValadocMarkupWriter*) _tmp27_, "div");
1897 	_g_object_unref0 (ns);
1898 }
1899 
1900 static gboolean
valadoc_html_basic_doclet_has_brief_description(ValadocHtmlBasicDoclet * self,ValadocApiNode * element)1901 valadoc_html_basic_doclet_has_brief_description (ValadocHtmlBasicDoclet* self,
1902                                                  ValadocApiNode* element)
1903 {
1904 	ValadocContentComment* _tmp0_;
1905 	ValadocContentComment* _tmp1_;
1906 	gboolean result = FALSE;
1907 	g_return_val_if_fail (self != NULL, FALSE);
1908 	g_return_val_if_fail (element != NULL, FALSE);
1909 	_tmp0_ = valadoc_api_node_get_documentation (element);
1910 	_tmp1_ = _tmp0_;
1911 	result = _tmp1_ != NULL;
1912 	return result;
1913 }
1914 
1915 static void
valadoc_html_basic_doclet_write_brief_description(ValadocHtmlBasicDoclet * self,ValadocApiNode * element,ValadocApiNode * pos)1916 valadoc_html_basic_doclet_write_brief_description (ValadocHtmlBasicDoclet* self,
1917                                                    ValadocApiNode* element,
1918                                                    ValadocApiNode* pos)
1919 {
1920 	ValadocContentComment* doctree = NULL;
1921 	ValadocContentComment* _tmp0_;
1922 	ValadocContentComment* _tmp1_;
1923 	ValadocContentComment* _tmp2_;
1924 	ValadocContentComment* _tmp3_;
1925 	ValaList* description = NULL;
1926 	ValadocContentComment* _tmp4_;
1927 	ValaList* _tmp5_;
1928 	ValaList* _tmp6_;
1929 	ValaList* _tmp7_;
1930 	ValaList* _tmp8_;
1931 	gint _tmp9_;
1932 	gint _tmp10_;
1933 	g_return_if_fail (self != NULL);
1934 	g_return_if_fail (element != NULL);
1935 	_tmp0_ = valadoc_api_node_get_documentation (element);
1936 	_tmp1_ = _tmp0_;
1937 	_tmp2_ = _g_object_ref0 (_tmp1_);
1938 	doctree = _tmp2_;
1939 	_tmp3_ = doctree;
1940 	if (_tmp3_ == NULL) {
1941 		_g_object_unref0 (doctree);
1942 		return;
1943 	}
1944 	_tmp4_ = doctree;
1945 	_tmp5_ = valadoc_content_block_content_get_content ((ValadocContentBlockContent*) _tmp4_);
1946 	_tmp6_ = _tmp5_;
1947 	_tmp7_ = _vala_iterable_ref0 (_tmp6_);
1948 	description = _tmp7_;
1949 	_tmp8_ = description;
1950 	_tmp9_ = vala_collection_get_size ((ValaCollection*) _tmp8_);
1951 	_tmp10_ = _tmp9_;
1952 	if (_tmp10_ > 0) {
1953 		ValadocHtmlMarkupWriter* _tmp11_;
1954 		gchar* _tmp12_;
1955 		gchar* _tmp13_;
1956 		gchar** _tmp14_;
1957 		gchar** _tmp15_;
1958 		gint _tmp15__length1;
1959 		ValadocHtmlHtmlRenderer* _tmp16_;
1960 		ValadocHtmlHtmlRenderer* _tmp17_;
1961 		ValadocHtmlHtmlRenderer* _tmp18_;
1962 		ValaList* _tmp19_;
1963 		gpointer _tmp20_;
1964 		ValadocContentBlock* _tmp21_;
1965 		ValadocHtmlHtmlRenderer* _tmp22_;
1966 		ValadocHtmlMarkupWriter* _tmp23_;
1967 		_tmp11_ = self->writer;
1968 		_tmp12_ = g_strdup ("class");
1969 		_tmp13_ = g_strdup (VALADOC_HTML_BASIC_DOCLET_css_brief_description);
1970 		_tmp14_ = g_new0 (gchar*, 2 + 1);
1971 		_tmp14_[0] = _tmp12_;
1972 		_tmp14_[1] = _tmp13_;
1973 		_tmp15_ = _tmp14_;
1974 		_tmp15__length1 = 2;
1975 		valadoc_markup_writer_start_tag ((ValadocMarkupWriter*) _tmp11_, "span", _tmp15_, (gint) 2);
1976 		_tmp15_ = (_vala_array_free (_tmp15_, _tmp15__length1, (GDestroyNotify) g_free), NULL);
1977 		_tmp16_ = self->_renderer;
1978 		valadoc_html_html_renderer_set_container (_tmp16_, (ValadocDocumentation*) pos);
1979 		_tmp17_ = self->_renderer;
1980 		valadoc_html_html_renderer_set_owner (_tmp17_, (ValadocDocumentation*) element);
1981 		_tmp18_ = self->_renderer;
1982 		_tmp19_ = description;
1983 		_tmp20_ = vala_list_get (_tmp19_, 0);
1984 		_tmp21_ = (ValadocContentBlock*) _tmp20_;
1985 		valadoc_content_content_renderer_render_children ((ValadocContentContentRenderer*) _tmp18_, (ValadocContentContentElement*) _tmp21_);
1986 		_g_object_unref0 (_tmp21_);
1987 		_tmp22_ = self->_renderer;
1988 		valadoc_html_html_renderer_set_owner (_tmp22_, NULL);
1989 		_tmp23_ = self->writer;
1990 		valadoc_markup_writer_end_tag ((ValadocMarkupWriter*) _tmp23_, "span");
1991 	}
1992 	_vala_iterable_unref0 (description);
1993 	_g_object_unref0 (doctree);
1994 }
1995 
1996 static void
valadoc_html_basic_doclet_write_documentation(ValadocHtmlBasicDoclet * self,ValadocApiNode * element,ValadocApiNode * pos)1997 valadoc_html_basic_doclet_write_documentation (ValadocHtmlBasicDoclet* self,
1998                                                ValadocApiNode* element,
1999                                                ValadocApiNode* pos)
2000 {
2001 	ValadocContentComment* doctree = NULL;
2002 	ValadocContentComment* _tmp0_;
2003 	ValadocContentComment* _tmp1_;
2004 	ValadocContentComment* _tmp2_;
2005 	gboolean _tmp3_ = FALSE;
2006 	gboolean is_deprecated = FALSE;
2007 	gboolean _tmp6_ = FALSE;
2008 	ValadocContentComment* _tmp7_;
2009 	ValadocHtmlMarkupWriter* _tmp8_;
2010 	gchar* _tmp9_;
2011 	gchar* _tmp10_;
2012 	gchar** _tmp11_;
2013 	gchar** _tmp12_;
2014 	gint _tmp12__length1;
2015 	ValadocHtmlHtmlRenderer* _tmp13_;
2016 	ValadocContentComment* _tmp90_;
2017 	ValadocHtmlHtmlRenderer* _tmp94_;
2018 	ValadocHtmlMarkupWriter* _tmp95_;
2019 	g_return_if_fail (self != NULL);
2020 	g_return_if_fail (element != NULL);
2021 	_tmp0_ = valadoc_api_node_get_documentation (element);
2022 	_tmp1_ = _tmp0_;
2023 	_tmp2_ = _g_object_ref0 (_tmp1_);
2024 	doctree = _tmp2_;
2025 	if (VALADOC_API_IS_SYMBOL (element)) {
2026 		gboolean _tmp4_;
2027 		gboolean _tmp5_;
2028 		_tmp4_ = valadoc_api_symbol_get_is_deprecated (G_TYPE_CHECK_INSTANCE_CAST (element, VALADOC_API_TYPE_SYMBOL, ValadocApiSymbol));
2029 		_tmp5_ = _tmp4_;
2030 		_tmp3_ = _tmp5_;
2031 	} else {
2032 		_tmp3_ = FALSE;
2033 	}
2034 	is_deprecated = _tmp3_;
2035 	_tmp7_ = doctree;
2036 	if (_tmp7_ == NULL) {
2037 		_tmp6_ = !is_deprecated;
2038 	} else {
2039 		_tmp6_ = FALSE;
2040 	}
2041 	if (_tmp6_) {
2042 		_g_object_unref0 (doctree);
2043 		return;
2044 	}
2045 	_tmp8_ = self->writer;
2046 	_tmp9_ = g_strdup ("class");
2047 	_tmp10_ = g_strdup (VALADOC_HTML_BASIC_DOCLET_css_description);
2048 	_tmp11_ = g_new0 (gchar*, 2 + 1);
2049 	_tmp11_[0] = _tmp9_;
2050 	_tmp11_[1] = _tmp10_;
2051 	_tmp12_ = _tmp11_;
2052 	_tmp12__length1 = 2;
2053 	valadoc_markup_writer_start_tag ((ValadocMarkupWriter*) _tmp8_, "div", _tmp12_, (gint) 2);
2054 	_tmp12_ = (_vala_array_free (_tmp12_, _tmp12__length1, (GDestroyNotify) g_free), NULL);
2055 	_tmp13_ = self->_renderer;
2056 	valadoc_html_html_renderer_set_owner (_tmp13_, (ValadocDocumentation*) element);
2057 	if (is_deprecated) {
2058 		ValadocApiSymbol* symbol = NULL;
2059 		ValadocApiSymbol* _tmp14_;
2060 		ValadocApiAttribute* version = NULL;
2061 		ValadocApiAttribute* deprecated = NULL;
2062 		gchar* replacement = NULL;
2063 		gchar* since = NULL;
2064 		ValadocApiSymbol* _tmp15_;
2065 		ValadocApiAttribute* _tmp16_;
2066 		ValadocApiAttribute* _tmp17_;
2067 		ValadocHtmlMarkupWriter* _tmp37_;
2068 		ValadocHtmlMarkupWriter* _tmp38_;
2069 		ValadocHtmlMarkupWriter* _tmp39_;
2070 		ValadocHtmlMarkupWriter* _tmp40_;
2071 		ValadocHtmlMarkupWriter* _tmp41_;
2072 		const gchar* _tmp42_;
2073 		const gchar* _tmp43_;
2074 		gchar* _tmp44_;
2075 		gchar* _tmp45_;
2076 		const gchar* _tmp46_;
2077 		ValadocHtmlMarkupWriter* _tmp51_;
2078 		gboolean _tmp52_ = FALSE;
2079 		const gchar* _tmp53_;
2080 		ValadocHtmlMarkupWriter* _tmp89_;
2081 		_tmp14_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_CAST (element, VALADOC_API_TYPE_SYMBOL, ValadocApiSymbol));
2082 		symbol = _tmp14_;
2083 		_tmp15_ = symbol;
2084 		_tmp16_ = valadoc_api_symbol_get_attribute (_tmp15_, "Version");
2085 		_g_object_unref0 (version);
2086 		version = _tmp16_;
2087 		_tmp17_ = version;
2088 		if (_tmp17_ != NULL) {
2089 			ValadocApiAttribute* _tmp18_;
2090 			ValaCodeNode* _tmp19_;
2091 			ValaCodeNode* _tmp20_;
2092 			gchar* _tmp21_;
2093 			ValadocApiAttribute* _tmp22_;
2094 			ValaCodeNode* _tmp23_;
2095 			ValaCodeNode* _tmp24_;
2096 			gchar* _tmp25_;
2097 			_tmp18_ = version;
2098 			_tmp19_ = valadoc_api_item_get_data ((ValadocApiItem*) _tmp18_);
2099 			_tmp20_ = _tmp19_;
2100 			_tmp21_ = vala_attribute_get_string (G_TYPE_CHECK_INSTANCE_CAST (_tmp20_, VALA_TYPE_ATTRIBUTE, ValaAttribute), "replacement", NULL);
2101 			_g_free0 (replacement);
2102 			replacement = _tmp21_;
2103 			_tmp22_ = version;
2104 			_tmp23_ = valadoc_api_item_get_data ((ValadocApiItem*) _tmp22_);
2105 			_tmp24_ = _tmp23_;
2106 			_tmp25_ = vala_attribute_get_string (G_TYPE_CHECK_INSTANCE_CAST (_tmp24_, VALA_TYPE_ATTRIBUTE, ValaAttribute), "deprecated_since", NULL);
2107 			_g_free0 (since);
2108 			since = _tmp25_;
2109 		} else {
2110 			ValadocApiSymbol* _tmp26_;
2111 			ValadocApiAttribute* _tmp27_;
2112 			ValadocApiAttribute* _tmp28_;
2113 			_tmp26_ = symbol;
2114 			_tmp27_ = valadoc_api_symbol_get_attribute (_tmp26_, "Deprecated");
2115 			_g_object_unref0 (deprecated);
2116 			deprecated = _tmp27_;
2117 			_tmp28_ = deprecated;
2118 			if (_tmp28_ != NULL) {
2119 				ValadocApiAttribute* _tmp29_;
2120 				ValaCodeNode* _tmp30_;
2121 				ValaCodeNode* _tmp31_;
2122 				gchar* _tmp32_;
2123 				ValadocApiAttribute* _tmp33_;
2124 				ValaCodeNode* _tmp34_;
2125 				ValaCodeNode* _tmp35_;
2126 				gchar* _tmp36_;
2127 				_tmp29_ = deprecated;
2128 				_tmp30_ = valadoc_api_item_get_data ((ValadocApiItem*) _tmp29_);
2129 				_tmp31_ = _tmp30_;
2130 				_tmp32_ = vala_attribute_get_string (G_TYPE_CHECK_INSTANCE_CAST (_tmp31_, VALA_TYPE_ATTRIBUTE, ValaAttribute), "replacement", NULL);
2131 				_g_free0 (replacement);
2132 				replacement = _tmp32_;
2133 				_tmp33_ = deprecated;
2134 				_tmp34_ = valadoc_api_item_get_data ((ValadocApiItem*) _tmp33_);
2135 				_tmp35_ = _tmp34_;
2136 				_tmp36_ = vala_attribute_get_string (G_TYPE_CHECK_INSTANCE_CAST (_tmp35_, VALA_TYPE_ATTRIBUTE, ValaAttribute), "version", NULL);
2137 				_g_free0 (since);
2138 				since = _tmp36_;
2139 			} else {
2140 				g_assert_not_reached ();
2141 			}
2142 		}
2143 		_tmp37_ = self->writer;
2144 		valadoc_markup_writer_start_tag ((ValadocMarkupWriter*) _tmp37_, "p", NULL, (gint) 0);
2145 		_tmp38_ = self->writer;
2146 		valadoc_markup_writer_start_tag ((ValadocMarkupWriter*) _tmp38_, "b", NULL, (gint) 0);
2147 		_tmp39_ = self->writer;
2148 		valadoc_markup_writer_text ((ValadocMarkupWriter*) _tmp39_, "Warning:");
2149 		_tmp40_ = self->writer;
2150 		valadoc_markup_writer_end_tag ((ValadocMarkupWriter*) _tmp40_, "b");
2151 		_tmp41_ = self->writer;
2152 		_tmp42_ = valadoc_api_node_get_name (element);
2153 		_tmp43_ = _tmp42_;
2154 		_tmp44_ = g_strdup_printf (" %s is deprecated", _tmp43_);
2155 		_tmp45_ = _tmp44_;
2156 		valadoc_markup_writer_text ((ValadocMarkupWriter*) _tmp41_, _tmp45_);
2157 		_g_free0 (_tmp45_);
2158 		_tmp46_ = since;
2159 		if (_tmp46_ != NULL) {
2160 			ValadocHtmlMarkupWriter* _tmp47_;
2161 			const gchar* _tmp48_;
2162 			gchar* _tmp49_;
2163 			gchar* _tmp50_;
2164 			_tmp47_ = self->writer;
2165 			_tmp48_ = since;
2166 			_tmp49_ = g_strdup_printf (" since %s", _tmp48_);
2167 			_tmp50_ = _tmp49_;
2168 			valadoc_markup_writer_text ((ValadocMarkupWriter*) _tmp47_, _tmp50_);
2169 			_g_free0 (_tmp50_);
2170 		}
2171 		_tmp51_ = self->writer;
2172 		valadoc_markup_writer_text ((ValadocMarkupWriter*) _tmp51_, ".");
2173 		_tmp53_ = replacement;
2174 		if (_tmp53_ != NULL) {
2175 			const gchar* _tmp54_;
2176 			gint _tmp55_;
2177 			gint _tmp56_;
2178 			_tmp54_ = replacement;
2179 			_tmp55_ = strlen (_tmp54_);
2180 			_tmp56_ = _tmp55_;
2181 			_tmp52_ = _tmp56_ > 2;
2182 		} else {
2183 			_tmp52_ = FALSE;
2184 		}
2185 		if (_tmp52_) {
2186 			ValadocApiNode* replacement_node = NULL;
2187 			ValadocApiTree* _tmp57_;
2188 			const gchar* _tmp58_;
2189 			const gchar* _tmp59_;
2190 			gint _tmp60_;
2191 			gint _tmp61_;
2192 			gchar* _tmp62_;
2193 			gchar* _tmp63_;
2194 			ValadocApiNode* _tmp64_;
2195 			ValadocApiNode* _tmp65_;
2196 			ValadocHtmlMarkupWriter* _tmp66_;
2197 			ValadocApiNode* _tmp67_;
2198 			ValadocHtmlMarkupWriter* _tmp88_;
2199 			_tmp57_ = self->tree;
2200 			_tmp58_ = replacement;
2201 			_tmp59_ = replacement;
2202 			_tmp60_ = strlen (_tmp59_);
2203 			_tmp61_ = _tmp60_;
2204 			_tmp62_ = string_substring (_tmp58_, (glong) 1, (glong) (_tmp61_ - 2));
2205 			_tmp63_ = _tmp62_;
2206 			_tmp64_ = valadoc_api_tree_search_symbol_str (_tmp57_, pos, _tmp63_);
2207 			_tmp65_ = _tmp64_;
2208 			_g_free0 (_tmp63_);
2209 			replacement_node = _tmp65_;
2210 			_tmp66_ = self->writer;
2211 			valadoc_markup_writer_text ((ValadocMarkupWriter*) _tmp66_, " Use ");
2212 			_tmp67_ = replacement_node;
2213 			if (_tmp67_ == NULL) {
2214 				ValadocHtmlMarkupWriter* _tmp68_;
2215 				const gchar* _tmp69_;
2216 				_tmp68_ = self->writer;
2217 				_tmp69_ = replacement;
2218 				valadoc_markup_writer_text ((ValadocMarkupWriter*) _tmp68_, _tmp69_);
2219 			} else {
2220 				gchar* link = NULL;
2221 				ValadocApiNode* _tmp70_;
2222 				gchar* _tmp71_;
2223 				const gchar* _tmp72_;
2224 				_tmp70_ = replacement_node;
2225 				_tmp71_ = valadoc_html_basic_doclet_get_link (self, _tmp70_, pos);
2226 				link = _tmp71_;
2227 				_tmp72_ = link;
2228 				if (_tmp72_ != NULL) {
2229 					gchar* css = NULL;
2230 					ValadocHtmlCssClassResolver* _tmp73_;
2231 					ValadocApiNode* _tmp74_;
2232 					gchar* _tmp75_;
2233 					ValadocHtmlMarkupWriter* _tmp76_;
2234 					const gchar* _tmp77_;
2235 					ValadocApiNode* _tmp78_;
2236 					gchar* _tmp79_;
2237 					gchar* _tmp80_;
2238 					const gchar* _tmp81_;
2239 					_tmp73_ = self->cssresolver;
2240 					_tmp74_ = replacement_node;
2241 					_tmp75_ = valadoc_html_css_class_resolver_resolve (_tmp73_, _tmp74_);
2242 					css = _tmp75_;
2243 					_tmp76_ = self->writer;
2244 					_tmp77_ = link;
2245 					_tmp78_ = replacement_node;
2246 					_tmp79_ = valadoc_api_node_get_full_name (_tmp78_);
2247 					_tmp80_ = _tmp79_;
2248 					_tmp81_ = css;
2249 					valadoc_html_markup_writer_link (_tmp76_, _tmp77_, _tmp80_, _tmp81_);
2250 					_g_free0 (_tmp80_);
2251 					_g_free0 (css);
2252 				} else {
2253 					ValadocHtmlMarkupWriter* _tmp82_;
2254 					ValadocMarkupWriter* _tmp83_;
2255 					ValadocApiNode* _tmp84_;
2256 					gchar* _tmp85_;
2257 					gchar* _tmp86_;
2258 					ValadocMarkupWriter* _tmp87_;
2259 					_tmp82_ = self->writer;
2260 					_tmp83_ = valadoc_markup_writer_start_tag ((ValadocMarkupWriter*) _tmp82_, "code", NULL, (gint) 0);
2261 					_tmp84_ = replacement_node;
2262 					_tmp85_ = valadoc_api_node_get_full_name (_tmp84_);
2263 					_tmp86_ = _tmp85_;
2264 					_tmp87_ = valadoc_markup_writer_text (_tmp83_, _tmp86_);
2265 					valadoc_markup_writer_end_tag (_tmp87_, "code");
2266 					_g_free0 (_tmp86_);
2267 				}
2268 				_g_free0 (link);
2269 			}
2270 			_tmp88_ = self->writer;
2271 			valadoc_markup_writer_text ((ValadocMarkupWriter*) _tmp88_, ".");
2272 			_g_object_unref0 (replacement_node);
2273 		}
2274 		_tmp89_ = self->writer;
2275 		valadoc_markup_writer_end_tag ((ValadocMarkupWriter*) _tmp89_, "p");
2276 		_g_free0 (since);
2277 		_g_free0 (replacement);
2278 		_g_object_unref0 (deprecated);
2279 		_g_object_unref0 (version);
2280 		_g_object_unref0 (symbol);
2281 	}
2282 	_tmp90_ = doctree;
2283 	if (_tmp90_ != NULL) {
2284 		ValadocHtmlHtmlRenderer* _tmp91_;
2285 		ValadocHtmlHtmlRenderer* _tmp92_;
2286 		ValadocContentComment* _tmp93_;
2287 		_tmp91_ = self->_renderer;
2288 		valadoc_html_html_renderer_set_container (_tmp91_, (ValadocDocumentation*) pos);
2289 		_tmp92_ = self->_renderer;
2290 		_tmp93_ = doctree;
2291 		valadoc_content_content_renderer_render ((ValadocContentContentRenderer*) _tmp92_, (ValadocContentContentElement*) _tmp93_);
2292 	}
2293 	_tmp94_ = self->_renderer;
2294 	valadoc_html_html_renderer_set_owner (_tmp94_, NULL);
2295 	_tmp95_ = self->writer;
2296 	valadoc_markup_writer_end_tag ((ValadocMarkupWriter*) _tmp95_, "div");
2297 	_g_object_unref0 (doctree);
2298 }
2299 
2300 static void
valadoc_html_basic_doclet_write_attributes(ValadocHtmlBasicDoclet * self,ValadocApiSymbol * element,ValadocApiNode * pos)2301 valadoc_html_basic_doclet_write_attributes (ValadocHtmlBasicDoclet* self,
2302                                             ValadocApiSymbol* element,
2303                                             ValadocApiNode* pos)
2304 {
2305 	ValadocHtmlMarkupWriter* _tmp0_;
2306 	ValadocHtmlHtmlRenderer* _tmp1_;
2307 	ValadocHtmlMarkupWriter* _tmp14_;
2308 	g_return_if_fail (self != NULL);
2309 	g_return_if_fail (element != NULL);
2310 	_tmp0_ = self->writer;
2311 	valadoc_markup_writer_set_wrap ((ValadocMarkupWriter*) _tmp0_, FALSE);
2312 	_tmp1_ = self->_renderer;
2313 	valadoc_html_html_renderer_set_container (_tmp1_, (ValadocDocumentation*) pos);
2314 	{
2315 		ValaIterator* _att_it = NULL;
2316 		ValaCollection* _tmp2_;
2317 		ValaCollection* _tmp3_;
2318 		ValaIterator* _tmp4_;
2319 		ValaIterator* _tmp5_;
2320 		_tmp2_ = valadoc_api_symbol_get_attributes (element);
2321 		_tmp3_ = _tmp2_;
2322 		_tmp4_ = vala_iterable_iterator ((ValaIterable*) _tmp3_);
2323 		_tmp5_ = _tmp4_;
2324 		_vala_iterable_unref0 (_tmp3_);
2325 		_att_it = _tmp5_;
2326 		while (TRUE) {
2327 			ValaIterator* _tmp6_;
2328 			ValadocApiAttribute* att = NULL;
2329 			ValaIterator* _tmp7_;
2330 			gpointer _tmp8_;
2331 			ValadocHtmlHtmlRenderer* _tmp9_;
2332 			ValadocApiAttribute* _tmp10_;
2333 			ValadocContentInline* _tmp11_;
2334 			ValadocContentInline* _tmp12_;
2335 			ValadocHtmlMarkupWriter* _tmp13_;
2336 			_tmp6_ = _att_it;
2337 			if (!vala_iterator_next (_tmp6_)) {
2338 				break;
2339 			}
2340 			_tmp7_ = _att_it;
2341 			_tmp8_ = vala_iterator_get (_tmp7_);
2342 			att = (ValadocApiAttribute*) _tmp8_;
2343 			_tmp9_ = self->_renderer;
2344 			_tmp10_ = att;
2345 			_tmp11_ = valadoc_api_item_get_signature ((ValadocApiItem*) _tmp10_);
2346 			_tmp12_ = _tmp11_;
2347 			valadoc_content_content_renderer_render ((ValadocContentContentRenderer*) _tmp9_, (ValadocContentContentElement*) _tmp12_);
2348 			_tmp13_ = self->writer;
2349 			valadoc_markup_writer_simple_tag ((ValadocMarkupWriter*) _tmp13_, "br", NULL, (gint) 0);
2350 			_g_object_unref0 (att);
2351 		}
2352 		_vala_iterator_unref0 (_att_it);
2353 	}
2354 	_tmp14_ = self->writer;
2355 	valadoc_markup_writer_set_wrap ((ValadocMarkupWriter*) _tmp14_, TRUE);
2356 }
2357 
2358 static void
valadoc_html_basic_doclet_write_signature(ValadocHtmlBasicDoclet * self,ValadocApiNode * element,ValadocApiNode * pos)2359 valadoc_html_basic_doclet_write_signature (ValadocHtmlBasicDoclet* self,
2360                                            ValadocApiNode* element,
2361                                            ValadocApiNode* pos)
2362 {
2363 	ValadocHtmlMarkupWriter* _tmp0_;
2364 	ValadocHtmlHtmlRenderer* _tmp1_;
2365 	ValadocHtmlHtmlRenderer* _tmp2_;
2366 	ValadocContentInline* _tmp3_;
2367 	ValadocContentInline* _tmp4_;
2368 	ValadocHtmlMarkupWriter* _tmp5_;
2369 	g_return_if_fail (self != NULL);
2370 	g_return_if_fail (element != NULL);
2371 	_tmp0_ = self->writer;
2372 	valadoc_markup_writer_set_wrap ((ValadocMarkupWriter*) _tmp0_, FALSE);
2373 	_tmp1_ = self->_renderer;
2374 	valadoc_html_html_renderer_set_container (_tmp1_, (ValadocDocumentation*) pos);
2375 	_tmp2_ = self->_renderer;
2376 	_tmp3_ = valadoc_api_item_get_signature ((ValadocApiItem*) element);
2377 	_tmp4_ = _tmp3_;
2378 	valadoc_content_content_renderer_render ((ValadocContentContentRenderer*) _tmp2_, (ValadocContentContentElement*) _tmp4_);
2379 	_tmp5_ = self->writer;
2380 	valadoc_markup_writer_set_wrap ((ValadocMarkupWriter*) _tmp5_, TRUE);
2381 }
2382 
2383 gboolean
valadoc_html_basic_doclet_is_internal_node(ValadocHtmlBasicDoclet * self,ValadocApiNode * node)2384 valadoc_html_basic_doclet_is_internal_node (ValadocHtmlBasicDoclet* self,
2385                                             ValadocApiNode* node)
2386 {
2387 	gboolean _tmp0_ = FALSE;
2388 	gboolean _tmp1_ = FALSE;
2389 	gboolean _tmp2_ = FALSE;
2390 	gboolean _tmp3_ = FALSE;
2391 	gboolean _tmp4_ = FALSE;
2392 	gboolean _tmp5_ = FALSE;
2393 	gboolean _tmp6_ = FALSE;
2394 	gboolean _tmp7_ = FALSE;
2395 	gboolean result = FALSE;
2396 	g_return_val_if_fail (self != NULL, FALSE);
2397 	g_return_val_if_fail (node != NULL, FALSE);
2398 	if (VALADOC_API_IS_PACKAGE (node)) {
2399 		_tmp7_ = TRUE;
2400 	} else {
2401 		_tmp7_ = VALADOC_API_IS_NAMESPACE (node);
2402 	}
2403 	if (_tmp7_) {
2404 		_tmp6_ = TRUE;
2405 	} else {
2406 		_tmp6_ = VALADOC_API_IS_INTERFACE (node);
2407 	}
2408 	if (_tmp6_) {
2409 		_tmp5_ = TRUE;
2410 	} else {
2411 		_tmp5_ = VALADOC_API_IS_CLASS (node);
2412 	}
2413 	if (_tmp5_) {
2414 		_tmp4_ = TRUE;
2415 	} else {
2416 		_tmp4_ = VALADOC_API_IS_STRUCT (node);
2417 	}
2418 	if (_tmp4_) {
2419 		_tmp3_ = TRUE;
2420 	} else {
2421 		_tmp3_ = VALADOC_API_IS_ENUM (node);
2422 	}
2423 	if (_tmp3_) {
2424 		_tmp2_ = TRUE;
2425 	} else {
2426 		_tmp2_ = VALADOC_API_IS_ENUM_VALUE (node);
2427 	}
2428 	if (_tmp2_) {
2429 		_tmp1_ = TRUE;
2430 	} else {
2431 		_tmp1_ = VALADOC_API_IS_ERROR_DOMAIN (node);
2432 	}
2433 	if (_tmp1_) {
2434 		_tmp0_ = TRUE;
2435 	} else {
2436 		_tmp0_ = VALADOC_API_IS_ERROR_CODE (node);
2437 	}
2438 	result = _tmp0_;
2439 	return result;
2440 }
2441 
2442 void
valadoc_html_basic_doclet_write_navi_packages_inline(ValadocHtmlBasicDoclet * self,ValadocApiTree * tree)2443 valadoc_html_basic_doclet_write_navi_packages_inline (ValadocHtmlBasicDoclet* self,
2444                                                       ValadocApiTree* tree)
2445 {
2446 	ValadocHtmlMarkupWriter* _tmp0_;
2447 	gchar* _tmp1_;
2448 	gchar* _tmp2_;
2449 	gchar** _tmp3_;
2450 	gchar** _tmp4_;
2451 	gint _tmp4__length1;
2452 	ValadocHtmlMarkupWriter* _tmp43_;
2453 	g_return_if_fail (self != NULL);
2454 	g_return_if_fail (tree != NULL);
2455 	_tmp0_ = self->writer;
2456 	_tmp1_ = g_strdup ("class");
2457 	_tmp2_ = g_strdup (VALADOC_HTML_BASIC_DOCLET_css_navi);
2458 	_tmp3_ = g_new0 (gchar*, 2 + 1);
2459 	_tmp3_[0] = _tmp1_;
2460 	_tmp3_[1] = _tmp2_;
2461 	_tmp4_ = _tmp3_;
2462 	_tmp4__length1 = 2;
2463 	valadoc_markup_writer_start_tag ((ValadocMarkupWriter*) _tmp0_, "ul", _tmp4_, (gint) 2);
2464 	_tmp4_ = (_vala_array_free (_tmp4_, _tmp4__length1, (GDestroyNotify) g_free), NULL);
2465 	{
2466 		ValaIterator* _pkg_it = NULL;
2467 		ValaCollection* _tmp5_;
2468 		ValaCollection* _tmp6_;
2469 		ValaIterator* _tmp7_;
2470 		ValaIterator* _tmp8_;
2471 		_tmp5_ = valadoc_api_tree_get_package_list (tree);
2472 		_tmp6_ = _tmp5_;
2473 		_tmp7_ = vala_iterable_iterator ((ValaIterable*) _tmp6_);
2474 		_tmp8_ = _tmp7_;
2475 		_vala_iterable_unref0 (_tmp6_);
2476 		_pkg_it = _tmp8_;
2477 		while (TRUE) {
2478 			ValaIterator* _tmp9_;
2479 			ValadocApiPackage* pkg = NULL;
2480 			ValaIterator* _tmp10_;
2481 			gpointer _tmp11_;
2482 			ValadocApiPackage* _tmp12_;
2483 			ValadocSettings* _tmp13_;
2484 			_tmp9_ = _pkg_it;
2485 			if (!vala_iterator_next (_tmp9_)) {
2486 				break;
2487 			}
2488 			_tmp10_ = _pkg_it;
2489 			_tmp11_ = vala_iterator_get (_tmp10_);
2490 			pkg = (ValadocApiPackage*) _tmp11_;
2491 			_tmp12_ = pkg;
2492 			_tmp13_ = self->priv->_settings;
2493 			if (valadoc_api_node_is_browsable ((ValadocApiNode*) _tmp12_, _tmp13_)) {
2494 				ValadocHtmlMarkupWriter* _tmp14_;
2495 				gchar* _tmp15_;
2496 				ValadocHtmlCssClassResolver* _tmp16_;
2497 				ValadocApiPackage* _tmp17_;
2498 				gchar* _tmp18_;
2499 				gchar** _tmp19_;
2500 				gchar** _tmp20_;
2501 				gint _tmp20__length1;
2502 				ValadocHtmlMarkupWriter* _tmp21_;
2503 				ValadocHtmlLinkHelper* _tmp22_;
2504 				ValadocApiPackage* _tmp23_;
2505 				ValadocSettings* _tmp24_;
2506 				gchar* _tmp25_;
2507 				gchar* _tmp26_;
2508 				ValadocApiPackage* _tmp27_;
2509 				const gchar* _tmp28_;
2510 				const gchar* _tmp29_;
2511 				ValadocHtmlMarkupWriter* _tmp30_;
2512 				_tmp14_ = self->writer;
2513 				_tmp15_ = g_strdup ("class");
2514 				_tmp16_ = self->cssresolver;
2515 				_tmp17_ = pkg;
2516 				_tmp18_ = valadoc_html_css_class_resolver_resolve (_tmp16_, (ValadocApiNode*) _tmp17_);
2517 				_tmp19_ = g_new0 (gchar*, 2 + 1);
2518 				_tmp19_[0] = _tmp15_;
2519 				_tmp19_[1] = _tmp18_;
2520 				_tmp20_ = _tmp19_;
2521 				_tmp20__length1 = 2;
2522 				valadoc_markup_writer_start_tag ((ValadocMarkupWriter*) _tmp14_, "li", _tmp20_, (gint) 2);
2523 				_tmp20_ = (_vala_array_free (_tmp20_, _tmp20__length1, (GDestroyNotify) g_free), NULL);
2524 				_tmp21_ = self->writer;
2525 				_tmp22_ = self->priv->_linker;
2526 				_tmp23_ = pkg;
2527 				_tmp24_ = self->priv->_settings;
2528 				_tmp25_ = valadoc_html_link_helper_get_package_link (_tmp22_, _tmp23_, _tmp24_);
2529 				_tmp26_ = _tmp25_;
2530 				_tmp27_ = pkg;
2531 				_tmp28_ = valadoc_api_node_get_name ((ValadocApiNode*) _tmp27_);
2532 				_tmp29_ = _tmp28_;
2533 				valadoc_html_markup_writer_link (_tmp21_, _tmp26_, _tmp29_, NULL);
2534 				_g_free0 (_tmp26_);
2535 				_tmp30_ = self->writer;
2536 				valadoc_markup_writer_end_tag ((ValadocMarkupWriter*) _tmp30_, "li");
2537 			} else {
2538 				ValadocHtmlMarkupWriter* _tmp31_;
2539 				gchar* _tmp32_;
2540 				ValadocHtmlCssClassResolver* _tmp33_;
2541 				ValadocApiPackage* _tmp34_;
2542 				gchar* _tmp35_;
2543 				gchar** _tmp36_;
2544 				gchar** _tmp37_;
2545 				gint _tmp37__length1;
2546 				ValadocHtmlMarkupWriter* _tmp38_;
2547 				ValadocApiPackage* _tmp39_;
2548 				const gchar* _tmp40_;
2549 				const gchar* _tmp41_;
2550 				ValadocHtmlMarkupWriter* _tmp42_;
2551 				_tmp31_ = self->writer;
2552 				_tmp32_ = g_strdup ("class");
2553 				_tmp33_ = self->cssresolver;
2554 				_tmp34_ = pkg;
2555 				_tmp35_ = valadoc_html_css_class_resolver_resolve (_tmp33_, (ValadocApiNode*) _tmp34_);
2556 				_tmp36_ = g_new0 (gchar*, 2 + 1);
2557 				_tmp36_[0] = _tmp32_;
2558 				_tmp36_[1] = _tmp35_;
2559 				_tmp37_ = _tmp36_;
2560 				_tmp37__length1 = 2;
2561 				valadoc_markup_writer_start_tag ((ValadocMarkupWriter*) _tmp31_, "li", _tmp37_, (gint) 2);
2562 				_tmp37_ = (_vala_array_free (_tmp37_, _tmp37__length1, (GDestroyNotify) g_free), NULL);
2563 				_tmp38_ = self->writer;
2564 				_tmp39_ = pkg;
2565 				_tmp40_ = valadoc_api_node_get_name ((ValadocApiNode*) _tmp39_);
2566 				_tmp41_ = _tmp40_;
2567 				valadoc_markup_writer_text ((ValadocMarkupWriter*) _tmp38_, _tmp41_);
2568 				_tmp42_ = self->writer;
2569 				valadoc_markup_writer_end_tag ((ValadocMarkupWriter*) _tmp42_, "li");
2570 			}
2571 			_g_object_unref0 (pkg);
2572 		}
2573 		_vala_iterator_unref0 (_pkg_it);
2574 	}
2575 	_tmp43_ = self->writer;
2576 	valadoc_markup_writer_end_tag ((ValadocMarkupWriter*) _tmp43_, "ul");
2577 }
2578 
2579 void
valadoc_html_basic_doclet_write_navi_packages(ValadocHtmlBasicDoclet * self,ValadocApiTree * tree)2580 valadoc_html_basic_doclet_write_navi_packages (ValadocHtmlBasicDoclet* self,
2581                                                ValadocApiTree* tree)
2582 {
2583 	ValadocHtmlMarkupWriter* _tmp0_;
2584 	gchar* _tmp1_;
2585 	gchar* _tmp2_;
2586 	gchar** _tmp3_;
2587 	gchar** _tmp4_;
2588 	gint _tmp4__length1;
2589 	ValadocHtmlMarkupWriter* _tmp5_;
2590 	g_return_if_fail (self != NULL);
2591 	g_return_if_fail (tree != NULL);
2592 	_tmp0_ = self->writer;
2593 	_tmp1_ = g_strdup ("class");
2594 	_tmp2_ = g_strdup (VALADOC_HTML_BASIC_DOCLET_css_style_navigation);
2595 	_tmp3_ = g_new0 (gchar*, 2 + 1);
2596 	_tmp3_[0] = _tmp1_;
2597 	_tmp3_[1] = _tmp2_;
2598 	_tmp4_ = _tmp3_;
2599 	_tmp4__length1 = 2;
2600 	valadoc_markup_writer_start_tag ((ValadocMarkupWriter*) _tmp0_, "div", _tmp4_, (gint) 2);
2601 	_tmp4_ = (_vala_array_free (_tmp4_, _tmp4__length1, (GDestroyNotify) g_free), NULL);
2602 	valadoc_html_basic_doclet_write_navi_packages_inline (self, tree);
2603 	_tmp5_ = self->writer;
2604 	valadoc_markup_writer_end_tag ((ValadocMarkupWriter*) _tmp5_, "div");
2605 }
2606 
2607 void
valadoc_html_basic_doclet_write_package_index_content(ValadocHtmlBasicDoclet * self,ValadocApiTree * tree)2608 valadoc_html_basic_doclet_write_package_index_content (ValadocHtmlBasicDoclet* self,
2609                                                        ValadocApiTree* tree)
2610 {
2611 	ValadocHtmlMarkupWriter* _tmp0_;
2612 	gchar* _tmp1_;
2613 	gchar* _tmp2_;
2614 	gchar** _tmp3_;
2615 	gchar** _tmp4_;
2616 	gint _tmp4__length1;
2617 	ValadocHtmlMarkupWriter* _tmp5_;
2618 	gchar* _tmp6_;
2619 	gchar* _tmp7_;
2620 	gchar** _tmp8_;
2621 	gchar** _tmp9_;
2622 	gint _tmp9__length1;
2623 	ValadocMarkupWriter* _tmp10_;
2624 	ValadocMarkupWriter* _tmp11_;
2625 	ValadocHtmlMarkupWriter* _tmp12_;
2626 	gchar* _tmp13_;
2627 	gchar* _tmp14_;
2628 	gchar** _tmp15_;
2629 	gchar** _tmp16_;
2630 	gint _tmp16__length1;
2631 	ValadocWikiPage* _tmp17_ = NULL;
2632 	ValadocWikiPageTree* _tmp18_;
2633 	ValadocWikiPageTree* _tmp19_;
2634 	ValadocWikiPage* wikiindex = NULL;
2635 	ValadocWikiPage* _tmp24_;
2636 	ValadocWikiPage* _tmp25_;
2637 	ValadocHtmlMarkupWriter* _tmp32_;
2638 	gchar* _tmp33_;
2639 	gchar* _tmp34_;
2640 	gchar** _tmp35_;
2641 	gchar** _tmp36_;
2642 	gint _tmp36__length1;
2643 	ValadocMarkupWriter* _tmp37_;
2644 	ValadocMarkupWriter* _tmp38_;
2645 	ValadocHtmlMarkupWriter* _tmp39_;
2646 	gchar* _tmp40_;
2647 	gchar* _tmp41_;
2648 	gchar** _tmp42_;
2649 	gchar** _tmp43_;
2650 	gint _tmp43__length1;
2651 	ValadocMarkupWriter* _tmp44_;
2652 	ValadocMarkupWriter* _tmp45_;
2653 	ValadocHtmlMarkupWriter* _tmp46_;
2654 	g_return_if_fail (self != NULL);
2655 	g_return_if_fail (tree != NULL);
2656 	_tmp0_ = self->writer;
2657 	_tmp1_ = g_strdup ("class");
2658 	_tmp2_ = g_strdup (VALADOC_HTML_BASIC_DOCLET_css_style_content);
2659 	_tmp3_ = g_new0 (gchar*, 2 + 1);
2660 	_tmp3_[0] = _tmp1_;
2661 	_tmp3_[1] = _tmp2_;
2662 	_tmp4_ = _tmp3_;
2663 	_tmp4__length1 = 2;
2664 	valadoc_markup_writer_start_tag ((ValadocMarkupWriter*) _tmp0_, "div", _tmp4_, (gint) 2);
2665 	_tmp4_ = (_vala_array_free (_tmp4_, _tmp4__length1, (GDestroyNotify) g_free), NULL);
2666 	_tmp5_ = self->writer;
2667 	_tmp6_ = g_strdup ("class");
2668 	_tmp7_ = g_strdup (VALADOC_HTML_BASIC_DOCLET_css_title);
2669 	_tmp8_ = g_new0 (gchar*, 2 + 1);
2670 	_tmp8_[0] = _tmp6_;
2671 	_tmp8_[1] = _tmp7_;
2672 	_tmp9_ = _tmp8_;
2673 	_tmp9__length1 = 2;
2674 	_tmp10_ = valadoc_markup_writer_start_tag ((ValadocMarkupWriter*) _tmp5_, "h1", _tmp9_, (gint) 2);
2675 	_tmp11_ = valadoc_markup_writer_text (_tmp10_, "Packages:");
2676 	valadoc_markup_writer_end_tag (_tmp11_, "h1");
2677 	_tmp9_ = (_vala_array_free (_tmp9_, _tmp9__length1, (GDestroyNotify) g_free), NULL);
2678 	_tmp12_ = self->writer;
2679 	_tmp13_ = g_strdup ("class");
2680 	_tmp14_ = g_strdup (VALADOC_HTML_BASIC_DOCLET_css_headline_hr);
2681 	_tmp15_ = g_new0 (gchar*, 2 + 1);
2682 	_tmp15_[0] = _tmp13_;
2683 	_tmp15_[1] = _tmp14_;
2684 	_tmp16_ = _tmp15_;
2685 	_tmp16__length1 = 2;
2686 	valadoc_markup_writer_simple_tag ((ValadocMarkupWriter*) _tmp12_, "hr", _tmp16_, (gint) 2);
2687 	_tmp16_ = (_vala_array_free (_tmp16_, _tmp16__length1, (GDestroyNotify) g_free), NULL);
2688 	_tmp18_ = valadoc_api_tree_get_wikitree (tree);
2689 	_tmp19_ = _tmp18_;
2690 	if (_tmp19_ == NULL) {
2691 		_g_object_unref0 (_tmp17_);
2692 		_tmp17_ = NULL;
2693 	} else {
2694 		ValadocWikiPageTree* _tmp20_;
2695 		ValadocWikiPageTree* _tmp21_;
2696 		const gchar* _tmp22_;
2697 		ValadocWikiPage* _tmp23_;
2698 		_tmp20_ = valadoc_api_tree_get_wikitree (tree);
2699 		_tmp21_ = _tmp20_;
2700 		_tmp22_ = self->priv->_wiki_index_name;
2701 		_tmp23_ = valadoc_wiki_page_tree_search (_tmp21_, _tmp22_);
2702 		_g_object_unref0 (_tmp17_);
2703 		_tmp17_ = _tmp23_;
2704 	}
2705 	_tmp24_ = _g_object_ref0 (_tmp17_);
2706 	wikiindex = _tmp24_;
2707 	_tmp25_ = wikiindex;
2708 	if (_tmp25_ != NULL) {
2709 		ValadocHtmlHtmlRenderer* _tmp26_;
2710 		ValadocWikiPage* _tmp27_;
2711 		ValadocHtmlHtmlRenderer* _tmp28_;
2712 		ValadocWikiPage* _tmp29_;
2713 		ValadocContentPage* _tmp30_;
2714 		ValadocContentPage* _tmp31_;
2715 		_tmp26_ = self->_renderer;
2716 		_tmp27_ = wikiindex;
2717 		valadoc_html_html_renderer_set_container (_tmp26_, (ValadocDocumentation*) _tmp27_);
2718 		_tmp28_ = self->_renderer;
2719 		_tmp29_ = wikiindex;
2720 		_tmp30_ = valadoc_wiki_page_get_documentation (_tmp29_);
2721 		_tmp31_ = _tmp30_;
2722 		valadoc_content_content_renderer_render ((ValadocContentContentRenderer*) _tmp28_, (ValadocContentContentElement*) _tmp31_);
2723 	}
2724 	_tmp32_ = self->writer;
2725 	_tmp33_ = g_strdup ("class");
2726 	_tmp34_ = g_strdup (VALADOC_HTML_BASIC_DOCLET_css_title);
2727 	_tmp35_ = g_new0 (gchar*, 2 + 1);
2728 	_tmp35_[0] = _tmp33_;
2729 	_tmp35_[1] = _tmp34_;
2730 	_tmp36_ = _tmp35_;
2731 	_tmp36__length1 = 2;
2732 	_tmp37_ = valadoc_markup_writer_start_tag ((ValadocMarkupWriter*) _tmp32_, "h2", _tmp36_, (gint) 2);
2733 	_tmp38_ = valadoc_markup_writer_text (_tmp37_, "Content:");
2734 	valadoc_markup_writer_end_tag (_tmp38_, "h2");
2735 	_tmp36_ = (_vala_array_free (_tmp36_, _tmp36__length1, (GDestroyNotify) g_free), NULL);
2736 	_tmp39_ = self->writer;
2737 	_tmp40_ = g_strdup ("class");
2738 	_tmp41_ = g_strdup (VALADOC_HTML_BASIC_DOCLET_css_title);
2739 	_tmp42_ = g_new0 (gchar*, 2 + 1);
2740 	_tmp42_[0] = _tmp40_;
2741 	_tmp42_[1] = _tmp41_;
2742 	_tmp43_ = _tmp42_;
2743 	_tmp43__length1 = 2;
2744 	_tmp44_ = valadoc_markup_writer_start_tag ((ValadocMarkupWriter*) _tmp39_, "h3", _tmp43_, (gint) 2);
2745 	_tmp45_ = valadoc_markup_writer_text (_tmp44_, "Packages:");
2746 	valadoc_markup_writer_end_tag (_tmp45_, "h3");
2747 	_tmp43_ = (_vala_array_free (_tmp43_, _tmp43__length1, (GDestroyNotify) g_free), NULL);
2748 	valadoc_html_basic_doclet_write_navi_packages_inline (self, tree);
2749 	_tmp46_ = self->writer;
2750 	valadoc_markup_writer_end_tag ((ValadocMarkupWriter*) _tmp46_, "div");
2751 	_g_object_unref0 (wikiindex);
2752 	_g_object_unref0 (_tmp17_);
2753 }
2754 
2755 static inline ValaArrayList*
valadoc_html_basic_doclet_get_accessible_nodes_from_list(ValadocHtmlBasicDoclet * self,ValaCollection * nodes)2756 valadoc_html_basic_doclet_get_accessible_nodes_from_list (ValadocHtmlBasicDoclet* self,
2757                                                           ValaCollection* nodes)
2758 {
2759 	ValaArrayList* list = NULL;
2760 	GEqualFunc _tmp0_;
2761 	ValaArrayList* _tmp1_;
2762 	ValaArrayList* result = NULL;
2763 	g_return_val_if_fail (self != NULL, NULL);
2764 	g_return_val_if_fail (nodes != NULL, NULL);
2765 	_tmp0_ = g_direct_equal;
2766 	_tmp1_ = vala_array_list_new (VALADOC_API_TYPE_NODE, (GBoxedCopyFunc) g_object_ref, (GDestroyNotify) g_object_unref, _tmp0_);
2767 	list = _tmp1_;
2768 	{
2769 		ValaIterator* _node_it = NULL;
2770 		ValaIterator* _tmp2_;
2771 		_tmp2_ = vala_iterable_iterator ((ValaIterable*) nodes);
2772 		_node_it = _tmp2_;
2773 		while (TRUE) {
2774 			ValaIterator* _tmp3_;
2775 			ValadocApiNode* node = NULL;
2776 			ValaIterator* _tmp4_;
2777 			gpointer _tmp5_;
2778 			ValadocApiNode* _tmp6_;
2779 			ValadocSettings* _tmp7_;
2780 			_tmp3_ = _node_it;
2781 			if (!vala_iterator_next (_tmp3_)) {
2782 				break;
2783 			}
2784 			_tmp4_ = _node_it;
2785 			_tmp5_ = vala_iterator_get (_tmp4_);
2786 			node = (ValadocApiNode*) _tmp5_;
2787 			_tmp6_ = node;
2788 			_tmp7_ = self->priv->_settings;
2789 			if (valadoc_api_node_is_browsable (_tmp6_, _tmp7_)) {
2790 				ValaArrayList* _tmp8_;
2791 				ValadocApiNode* _tmp9_;
2792 				_tmp8_ = list;
2793 				_tmp9_ = node;
2794 				vala_collection_add ((ValaCollection*) _tmp8_, _tmp9_);
2795 			}
2796 			_g_object_unref0 (node);
2797 		}
2798 		_vala_iterator_unref0 (_node_it);
2799 	}
2800 	result = list;
2801 	return result;
2802 }
2803 
2804 static void
valadoc_html_basic_doclet_write_known_symbols_note(ValadocHtmlBasicDoclet * self,ValaCollection * nodes2,ValadocApiNode * container,const gchar * headline)2805 valadoc_html_basic_doclet_write_known_symbols_note (ValadocHtmlBasicDoclet* self,
2806                                                     ValaCollection* nodes2,
2807                                                     ValadocApiNode* container,
2808                                                     const gchar* headline)
2809 {
2810 	ValaArrayList* nodes = NULL;
2811 	ValaArrayList* _tmp0_;
2812 	ValaArrayList* _tmp1_;
2813 	gint _tmp2_;
2814 	gint _tmp3_;
2815 	ValaArrayList* _tmp4_;
2816 	gchar* html_id = NULL;
2817 	gchar* _tmp5_;
2818 	gchar* _tmp6_;
2819 	gchar* _tmp7_;
2820 	gchar* _tmp8_;
2821 	guint _tmp9_;
2822 	ValadocHtmlMarkupWriter* _tmp10_;
2823 	gchar* _tmp11_;
2824 	gchar* _tmp12_;
2825 	gchar** _tmp13_;
2826 	gchar** _tmp14_;
2827 	gint _tmp14__length1;
2828 	ValadocHtmlMarkupWriter* _tmp15_;
2829 	gchar* _tmp16_;
2830 	gchar* _tmp17_;
2831 	gchar* _tmp18_;
2832 	const gchar* _tmp19_;
2833 	gchar* _tmp20_;
2834 	gchar** _tmp21_;
2835 	gchar** _tmp22_;
2836 	gint _tmp22__length1;
2837 	ValadocMarkupWriter* _tmp23_;
2838 	ValadocMarkupWriter* _tmp24_;
2839 	gint* list_sizes = NULL;
2840 	gint* _tmp25_;
2841 	gint list_sizes_length1;
2842 	gint _list_sizes_size_;
2843 	gint* _tmp26_;
2844 	gint _tmp26__length1;
2845 	ValaArrayList* _tmp27_;
2846 	gint _tmp28_;
2847 	gint _tmp29_;
2848 	gint* _tmp30_;
2849 	gint _tmp30__length1;
2850 	gint* _tmp31_;
2851 	gint _tmp31__length1;
2852 	gint _tmp32_;
2853 	gint* _tmp33_;
2854 	gint _tmp33__length1;
2855 	gint* _tmp34_;
2856 	gint _tmp34__length1;
2857 	gint _tmp35_;
2858 	gint* _tmp36_;
2859 	gint _tmp36__length1;
2860 	gint* _tmp37_;
2861 	gint _tmp37__length1;
2862 	gint _tmp38_;
2863 	gint* _tmp39_;
2864 	gint _tmp39__length1;
2865 	gint* _tmp40_;
2866 	gint _tmp40__length1;
2867 	gint _tmp41_;
2868 	ValadocHtmlMarkupWriter* _tmp42_;
2869 	gchar* _tmp43_;
2870 	gchar* _tmp44_;
2871 	gchar* _tmp45_;
2872 	const gchar* _tmp46_;
2873 	gchar* _tmp47_;
2874 	gchar** _tmp48_;
2875 	gchar** _tmp49_;
2876 	gint _tmp49__length1;
2877 	ValaIterator* iter = NULL;
2878 	ValaArrayList* _tmp50_;
2879 	ValaIterator* _tmp51_;
2880 	ValadocHtmlMarkupWriter* _tmp95_;
2881 	ValadocHtmlMarkupWriter* _tmp96_;
2882 	g_return_if_fail (self != NULL);
2883 	g_return_if_fail (nodes2 != NULL);
2884 	g_return_if_fail (container != NULL);
2885 	g_return_if_fail (headline != NULL);
2886 	_tmp0_ = valadoc_html_basic_doclet_get_accessible_nodes_from_list (self, nodes2);
2887 	nodes = _tmp0_;
2888 	_tmp1_ = nodes;
2889 	_tmp2_ = vala_collection_get_size ((ValaCollection*) _tmp1_);
2890 	_tmp3_ = _tmp2_;
2891 	if (_tmp3_ == 0) {
2892 		_vala_iterable_unref0 (nodes);
2893 		return;
2894 	}
2895 	_tmp4_ = nodes;
2896 	vala_list_sort ((ValaList*) _tmp4_, (GCompareDataFunc) valadoc_api_node_compare_to, NULL, NULL);
2897 	_tmp5_ = g_strdup_printf ("%u", self->priv->html_id_counter);
2898 	_tmp6_ = _tmp5_;
2899 	_tmp7_ = g_strconcat ("box-content-", _tmp6_, NULL);
2900 	_tmp8_ = _tmp7_;
2901 	_g_free0 (_tmp6_);
2902 	html_id = _tmp8_;
2903 	_tmp9_ = self->priv->html_id_counter;
2904 	self->priv->html_id_counter = _tmp9_ + 1;
2905 	_tmp10_ = self->writer;
2906 	_tmp11_ = g_strdup ("class");
2907 	_tmp12_ = g_strdup (VALADOC_HTML_BASIC_DOCLET_css_box);
2908 	_tmp13_ = g_new0 (gchar*, 2 + 1);
2909 	_tmp13_[0] = _tmp11_;
2910 	_tmp13_[1] = _tmp12_;
2911 	_tmp14_ = _tmp13_;
2912 	_tmp14__length1 = 2;
2913 	valadoc_markup_writer_start_tag ((ValadocMarkupWriter*) _tmp10_, "div", _tmp14_, (gint) 2);
2914 	_tmp14_ = (_vala_array_free (_tmp14_, _tmp14__length1, (GDestroyNotify) g_free), NULL);
2915 	_tmp15_ = self->writer;
2916 	_tmp16_ = g_strdup ("class");
2917 	_tmp17_ = g_strdup (VALADOC_HTML_BASIC_DOCLET_css_box_headline);
2918 	_tmp18_ = g_strdup ("onclick");
2919 	_tmp19_ = html_id;
2920 	_tmp20_ = g_strdup_printf ("toggle_box (this, '%s')", _tmp19_);
2921 	_tmp21_ = g_new0 (gchar*, 4 + 1);
2922 	_tmp21_[0] = _tmp16_;
2923 	_tmp21_[1] = _tmp17_;
2924 	_tmp21_[2] = _tmp18_;
2925 	_tmp21_[3] = _tmp20_;
2926 	_tmp22_ = _tmp21_;
2927 	_tmp22__length1 = 4;
2928 	_tmp23_ = valadoc_markup_writer_start_tag ((ValadocMarkupWriter*) _tmp15_, "div", _tmp22_, (gint) 4);
2929 	_tmp24_ = valadoc_markup_writer_text (_tmp23_, headline);
2930 	valadoc_markup_writer_end_tag (_tmp24_, "div");
2931 	_tmp22_ = (_vala_array_free (_tmp22_, _tmp22__length1, (GDestroyNotify) g_free), NULL);
2932 	_tmp25_ = g_new0 (gint, 3);
2933 	_tmp25_[0] = 0;
2934 	_tmp25_[1] = 0;
2935 	_tmp25_[2] = 0;
2936 	list_sizes = _tmp25_;
2937 	list_sizes_length1 = 3;
2938 	_list_sizes_size_ = list_sizes_length1;
2939 	_tmp26_ = list_sizes;
2940 	_tmp26__length1 = list_sizes_length1;
2941 	_tmp27_ = nodes;
2942 	_tmp28_ = vala_collection_get_size ((ValaCollection*) _tmp27_);
2943 	_tmp29_ = _tmp28_;
2944 	_tmp26_[0] = _tmp29_;
2945 	_tmp30_ = list_sizes;
2946 	_tmp30__length1 = list_sizes_length1;
2947 	_tmp31_ = list_sizes;
2948 	_tmp31__length1 = list_sizes_length1;
2949 	_tmp32_ = _tmp31_[0];
2950 	_tmp30_[2] = _tmp32_ / 3;
2951 	_tmp33_ = list_sizes;
2952 	_tmp33__length1 = list_sizes_length1;
2953 	_tmp34_ = list_sizes;
2954 	_tmp34__length1 = list_sizes_length1;
2955 	_tmp35_ = _tmp34_[2];
2956 	_tmp33_[0] -= _tmp35_;
2957 	_tmp36_ = list_sizes;
2958 	_tmp36__length1 = list_sizes_length1;
2959 	_tmp37_ = list_sizes;
2960 	_tmp37__length1 = list_sizes_length1;
2961 	_tmp38_ = _tmp37_[0];
2962 	_tmp36_[1] = _tmp38_ / 2;
2963 	_tmp39_ = list_sizes;
2964 	_tmp39__length1 = list_sizes_length1;
2965 	_tmp40_ = list_sizes;
2966 	_tmp40__length1 = list_sizes_length1;
2967 	_tmp41_ = _tmp40_[1];
2968 	_tmp39_[0] -= _tmp41_;
2969 	_tmp42_ = self->writer;
2970 	_tmp43_ = g_strdup ("class");
2971 	_tmp44_ = g_strdup (VALADOC_HTML_BASIC_DOCLET_css_box_content);
2972 	_tmp45_ = g_strdup ("id");
2973 	_tmp46_ = html_id;
2974 	_tmp47_ = g_strdup (_tmp46_);
2975 	_tmp48_ = g_new0 (gchar*, 4 + 1);
2976 	_tmp48_[0] = _tmp43_;
2977 	_tmp48_[1] = _tmp44_;
2978 	_tmp48_[2] = _tmp45_;
2979 	_tmp48_[3] = _tmp47_;
2980 	_tmp49_ = _tmp48_;
2981 	_tmp49__length1 = 4;
2982 	valadoc_markup_writer_start_tag ((ValadocMarkupWriter*) _tmp42_, "div", _tmp49_, (gint) 4);
2983 	_tmp49_ = (_vala_array_free (_tmp49_, _tmp49__length1, (GDestroyNotify) g_free), NULL);
2984 	_tmp50_ = nodes;
2985 	_tmp51_ = vala_iterable_iterator ((ValaIterable*) _tmp50_);
2986 	iter = _tmp51_;
2987 	{
2988 		gint i = 0;
2989 		i = 0;
2990 		{
2991 			gboolean _tmp52_ = FALSE;
2992 			_tmp52_ = TRUE;
2993 			while (TRUE) {
2994 				gint* _tmp54_;
2995 				gint _tmp54__length1;
2996 				ValadocHtmlMarkupWriter* _tmp55_;
2997 				gchar* _tmp56_;
2998 				gchar* _tmp57_;
2999 				gchar** _tmp58_;
3000 				gchar** _tmp59_;
3001 				gint _tmp59__length1;
3002 				ValadocHtmlMarkupWriter* _tmp60_;
3003 				gchar* _tmp61_;
3004 				gchar* _tmp62_;
3005 				gchar** _tmp63_;
3006 				gchar** _tmp64_;
3007 				gint _tmp64__length1;
3008 				ValadocHtmlMarkupWriter* _tmp93_;
3009 				ValadocHtmlMarkupWriter* _tmp94_;
3010 				if (!_tmp52_) {
3011 					gint _tmp53_;
3012 					_tmp53_ = i;
3013 					i = _tmp53_ + 1;
3014 				}
3015 				_tmp52_ = FALSE;
3016 				_tmp54_ = list_sizes;
3017 				_tmp54__length1 = list_sizes_length1;
3018 				if (!(i < _tmp54__length1)) {
3019 					break;
3020 				}
3021 				_tmp55_ = self->writer;
3022 				_tmp56_ = g_strdup ("class");
3023 				_tmp57_ = g_strdup (VALADOC_HTML_BASIC_DOCLET_css_box_column);
3024 				_tmp58_ = g_new0 (gchar*, 2 + 1);
3025 				_tmp58_[0] = _tmp56_;
3026 				_tmp58_[1] = _tmp57_;
3027 				_tmp59_ = _tmp58_;
3028 				_tmp59__length1 = 2;
3029 				valadoc_markup_writer_start_tag ((ValadocMarkupWriter*) _tmp55_, "div", _tmp59_, (gint) 2);
3030 				_tmp59_ = (_vala_array_free (_tmp59_, _tmp59__length1, (GDestroyNotify) g_free), NULL);
3031 				_tmp60_ = self->writer;
3032 				_tmp61_ = g_strdup ("class");
3033 				_tmp62_ = g_strdup (VALADOC_HTML_BASIC_DOCLET_css_inline_navigation);
3034 				_tmp63_ = g_new0 (gchar*, 2 + 1);
3035 				_tmp63_[0] = _tmp61_;
3036 				_tmp63_[1] = _tmp62_;
3037 				_tmp64_ = _tmp63_;
3038 				_tmp64__length1 = 2;
3039 				valadoc_markup_writer_start_tag ((ValadocMarkupWriter*) _tmp60_, "ul", _tmp64_, (gint) 2);
3040 				_tmp64_ = (_vala_array_free (_tmp64_, _tmp64__length1, (GDestroyNotify) g_free), NULL);
3041 				{
3042 					gint p = 0;
3043 					p = 0;
3044 					{
3045 						gboolean _tmp65_ = FALSE;
3046 						_tmp65_ = TRUE;
3047 						while (TRUE) {
3048 							gboolean _tmp67_ = FALSE;
3049 							gint* _tmp68_;
3050 							gint _tmp68__length1;
3051 							gint _tmp69_;
3052 							ValadocApiNode* node = NULL;
3053 							ValaIterator* _tmp71_;
3054 							gpointer _tmp72_;
3055 							ValadocHtmlMarkupWriter* _tmp73_;
3056 							gchar* _tmp74_;
3057 							ValadocHtmlCssClassResolver* _tmp75_;
3058 							ValadocApiNode* _tmp76_;
3059 							gchar* _tmp77_;
3060 							gchar** _tmp78_;
3061 							gchar** _tmp79_;
3062 							gint _tmp79__length1;
3063 							gchar* link = NULL;
3064 							ValadocApiNode* _tmp80_;
3065 							gchar* _tmp81_;
3066 							const gchar* _tmp82_;
3067 							ValadocHtmlMarkupWriter* _tmp92_;
3068 							if (!_tmp65_) {
3069 								gint _tmp66_;
3070 								_tmp66_ = p;
3071 								p = _tmp66_ + 1;
3072 							}
3073 							_tmp65_ = FALSE;
3074 							_tmp68_ = list_sizes;
3075 							_tmp68__length1 = list_sizes_length1;
3076 							_tmp69_ = _tmp68_[i];
3077 							if (p < _tmp69_) {
3078 								ValaIterator* _tmp70_;
3079 								_tmp70_ = iter;
3080 								_tmp67_ = vala_iterator_next (_tmp70_);
3081 							} else {
3082 								_tmp67_ = FALSE;
3083 							}
3084 							if (!_tmp67_) {
3085 								break;
3086 							}
3087 							_tmp71_ = iter;
3088 							_tmp72_ = vala_iterator_get (_tmp71_);
3089 							node = (ValadocApiNode*) _tmp72_;
3090 							_tmp73_ = self->writer;
3091 							_tmp74_ = g_strdup ("class");
3092 							_tmp75_ = self->cssresolver;
3093 							_tmp76_ = node;
3094 							_tmp77_ = valadoc_html_css_class_resolver_resolve (_tmp75_, _tmp76_);
3095 							_tmp78_ = g_new0 (gchar*, 2 + 1);
3096 							_tmp78_[0] = _tmp74_;
3097 							_tmp78_[1] = _tmp77_;
3098 							_tmp79_ = _tmp78_;
3099 							_tmp79__length1 = 2;
3100 							valadoc_markup_writer_start_tag ((ValadocMarkupWriter*) _tmp73_, "li", _tmp79_, (gint) 2);
3101 							_tmp79_ = (_vala_array_free (_tmp79_, _tmp79__length1, (GDestroyNotify) g_free), NULL);
3102 							_tmp80_ = node;
3103 							_tmp81_ = valadoc_html_basic_doclet_get_link (self, _tmp80_, container);
3104 							link = _tmp81_;
3105 							_tmp82_ = link;
3106 							if (_tmp82_ == NULL) {
3107 								ValadocHtmlMarkupWriter* _tmp83_;
3108 								ValadocApiNode* _tmp84_;
3109 								const gchar* _tmp85_;
3110 								const gchar* _tmp86_;
3111 								_tmp83_ = self->writer;
3112 								_tmp84_ = node;
3113 								_tmp85_ = valadoc_api_node_get_name (_tmp84_);
3114 								_tmp86_ = _tmp85_;
3115 								valadoc_markup_writer_text ((ValadocMarkupWriter*) _tmp83_, _tmp86_);
3116 							} else {
3117 								ValadocHtmlMarkupWriter* _tmp87_;
3118 								const gchar* _tmp88_;
3119 								ValadocApiNode* _tmp89_;
3120 								const gchar* _tmp90_;
3121 								const gchar* _tmp91_;
3122 								_tmp87_ = self->writer;
3123 								_tmp88_ = link;
3124 								_tmp89_ = node;
3125 								_tmp90_ = valadoc_api_node_get_name (_tmp89_);
3126 								_tmp91_ = _tmp90_;
3127 								valadoc_html_markup_writer_link (_tmp87_, _tmp88_, _tmp91_, NULL);
3128 							}
3129 							_tmp92_ = self->writer;
3130 							valadoc_markup_writer_end_tag ((ValadocMarkupWriter*) _tmp92_, "li");
3131 							_g_free0 (link);
3132 							_g_object_unref0 (node);
3133 						}
3134 					}
3135 				}
3136 				_tmp93_ = self->writer;
3137 				valadoc_markup_writer_end_tag ((ValadocMarkupWriter*) _tmp93_, "ul");
3138 				_tmp94_ = self->writer;
3139 				valadoc_markup_writer_end_tag ((ValadocMarkupWriter*) _tmp94_, "div");
3140 			}
3141 		}
3142 	}
3143 	_tmp95_ = self->writer;
3144 	valadoc_markup_writer_end_tag ((ValadocMarkupWriter*) _tmp95_, "div");
3145 	_tmp96_ = self->writer;
3146 	valadoc_markup_writer_end_tag ((ValadocMarkupWriter*) _tmp96_, "div");
3147 	_vala_iterator_unref0 (iter);
3148 	list_sizes = (g_free (list_sizes), NULL);
3149 	_g_free0 (html_id);
3150 	_vala_iterable_unref0 (nodes);
3151 }
3152 
3153 void
valadoc_html_basic_doclet_write_symbol_content(ValadocHtmlBasicDoclet * self,ValadocApiNode * node)3154 valadoc_html_basic_doclet_write_symbol_content (ValadocHtmlBasicDoclet* self,
3155                                                 ValadocApiNode* node)
3156 {
3157 	ValadocHtmlMarkupWriter* _tmp0_;
3158 	gchar* _tmp1_;
3159 	gchar* _tmp2_;
3160 	gchar** _tmp3_;
3161 	gchar** _tmp4_;
3162 	gint _tmp4__length1;
3163 	ValadocHtmlMarkupWriter* _tmp5_;
3164 	gchar* _tmp6_;
3165 	gchar* _tmp7_;
3166 	gchar** _tmp8_;
3167 	gchar** _tmp9_;
3168 	gint _tmp9__length1;
3169 	ValadocMarkupWriter* _tmp10_;
3170 	const gchar* _tmp11_;
3171 	const gchar* _tmp12_;
3172 	ValadocMarkupWriter* _tmp13_;
3173 	ValadocHtmlMarkupWriter* _tmp14_;
3174 	gchar* _tmp15_;
3175 	gchar* _tmp16_;
3176 	gchar** _tmp17_;
3177 	gchar** _tmp18_;
3178 	gint _tmp18__length1;
3179 	ValadocHtmlMarkupWriter* _tmp19_;
3180 	gchar* _tmp20_;
3181 	gchar* _tmp21_;
3182 	gchar** _tmp22_;
3183 	gchar** _tmp23_;
3184 	gint _tmp23__length1;
3185 	ValadocMarkupWriter* _tmp24_;
3186 	ValadocMarkupWriter* _tmp25_;
3187 	ValadocHtmlMarkupWriter* _tmp26_;
3188 	gchar* _tmp27_;
3189 	gchar* _tmp28_;
3190 	gchar** _tmp29_;
3191 	gchar** _tmp30_;
3192 	gint _tmp30__length1;
3193 	ValadocHtmlMarkupWriter* _tmp31_;
3194 	ValadocApiItem* _tmp55_;
3195 	ValadocApiItem* _tmp56_;
3196 	gboolean _tmp58_ = FALSE;
3197 	gboolean _tmp59_ = FALSE;
3198 	ValadocHtmlMarkupWriter* _tmp70_;
3199 	g_return_if_fail (self != NULL);
3200 	g_return_if_fail (node != NULL);
3201 	_tmp0_ = self->writer;
3202 	_tmp1_ = g_strdup ("class");
3203 	_tmp2_ = g_strdup (VALADOC_HTML_BASIC_DOCLET_css_style_content);
3204 	_tmp3_ = g_new0 (gchar*, 2 + 1);
3205 	_tmp3_[0] = _tmp1_;
3206 	_tmp3_[1] = _tmp2_;
3207 	_tmp4_ = _tmp3_;
3208 	_tmp4__length1 = 2;
3209 	valadoc_markup_writer_start_tag ((ValadocMarkupWriter*) _tmp0_, "div", _tmp4_, (gint) 2);
3210 	_tmp4_ = (_vala_array_free (_tmp4_, _tmp4__length1, (GDestroyNotify) g_free), NULL);
3211 	_tmp5_ = self->writer;
3212 	_tmp6_ = g_strdup ("class");
3213 	_tmp7_ = g_strdup (VALADOC_HTML_BASIC_DOCLET_css_title);
3214 	_tmp8_ = g_new0 (gchar*, 2 + 1);
3215 	_tmp8_[0] = _tmp6_;
3216 	_tmp8_[1] = _tmp7_;
3217 	_tmp9_ = _tmp8_;
3218 	_tmp9__length1 = 2;
3219 	_tmp10_ = valadoc_markup_writer_start_tag ((ValadocMarkupWriter*) _tmp5_, "h1", _tmp9_, (gint) 2);
3220 	_tmp11_ = valadoc_api_node_get_name (node);
3221 	_tmp12_ = _tmp11_;
3222 	_tmp13_ = valadoc_markup_writer_text (_tmp10_, _tmp12_);
3223 	valadoc_markup_writer_end_tag (_tmp13_, "h1");
3224 	_tmp9_ = (_vala_array_free (_tmp9_, _tmp9__length1, (GDestroyNotify) g_free), NULL);
3225 	_tmp14_ = self->writer;
3226 	_tmp15_ = g_strdup ("class");
3227 	_tmp16_ = g_strdup (VALADOC_HTML_BASIC_DOCLET_css_headline_hr);
3228 	_tmp17_ = g_new0 (gchar*, 2 + 1);
3229 	_tmp17_[0] = _tmp15_;
3230 	_tmp17_[1] = _tmp16_;
3231 	_tmp18_ = _tmp17_;
3232 	_tmp18__length1 = 2;
3233 	valadoc_markup_writer_simple_tag ((ValadocMarkupWriter*) _tmp14_, "hr", _tmp18_, (gint) 2);
3234 	_tmp18_ = (_vala_array_free (_tmp18_, _tmp18__length1, (GDestroyNotify) g_free), NULL);
3235 	valadoc_html_basic_doclet_write_image_block (self, node);
3236 	_tmp19_ = self->writer;
3237 	_tmp20_ = g_strdup ("class");
3238 	_tmp21_ = g_strdup (VALADOC_HTML_BASIC_DOCLET_css_title);
3239 	_tmp22_ = g_new0 (gchar*, 2 + 1);
3240 	_tmp22_[0] = _tmp20_;
3241 	_tmp22_[1] = _tmp21_;
3242 	_tmp23_ = _tmp22_;
3243 	_tmp23__length1 = 2;
3244 	_tmp24_ = valadoc_markup_writer_start_tag ((ValadocMarkupWriter*) _tmp19_, "h2", _tmp23_, (gint) 2);
3245 	_tmp25_ = valadoc_markup_writer_text (_tmp24_, "Description:");
3246 	valadoc_markup_writer_end_tag (_tmp25_, "h2");
3247 	_tmp23_ = (_vala_array_free (_tmp23_, _tmp23__length1, (GDestroyNotify) g_free), NULL);
3248 	_tmp26_ = self->writer;
3249 	_tmp27_ = g_strdup ("class");
3250 	_tmp28_ = g_strdup (VALADOC_HTML_BASIC_DOCLET_css_code_definition);
3251 	_tmp29_ = g_new0 (gchar*, 2 + 1);
3252 	_tmp29_[0] = _tmp27_;
3253 	_tmp29_[1] = _tmp28_;
3254 	_tmp30_ = _tmp29_;
3255 	_tmp30__length1 = 2;
3256 	valadoc_markup_writer_start_tag ((ValadocMarkupWriter*) _tmp26_, "div", _tmp30_, (gint) 2);
3257 	_tmp30_ = (_vala_array_free (_tmp30_, _tmp30__length1, (GDestroyNotify) g_free), NULL);
3258 	if (VALADOC_API_IS_SYMBOL (node)) {
3259 		valadoc_html_basic_doclet_write_attributes (self, G_TYPE_CHECK_INSTANCE_CAST (node, VALADOC_API_TYPE_SYMBOL, ValadocApiSymbol), node);
3260 	}
3261 	valadoc_html_basic_doclet_write_signature (self, node, node);
3262 	_tmp31_ = self->writer;
3263 	valadoc_markup_writer_end_tag ((ValadocMarkupWriter*) _tmp31_, "div");
3264 	valadoc_html_basic_doclet_write_documentation (self, node, node);
3265 	if (VALADOC_API_IS_CLASS (node)) {
3266 		ValadocApiClass* cl = NULL;
3267 		ValadocApiClass* _tmp32_;
3268 		ValadocApiClass* _tmp33_;
3269 		ValaCollection* _tmp34_;
3270 		ValaCollection* _tmp35_;
3271 		ValadocApiClass* _tmp36_;
3272 		ValadocApiClass* _tmp37_;
3273 		ValaCollection* _tmp38_;
3274 		ValaCollection* _tmp39_;
3275 		ValadocApiClass* _tmp40_;
3276 		_tmp32_ = _g_object_ref0 (VALADOC_API_IS_CLASS (node) ? ((ValadocApiClass*) node) : NULL);
3277 		cl = _tmp32_;
3278 		_tmp33_ = cl;
3279 		_tmp34_ = valadoc_api_class_get_known_child_classes (_tmp33_);
3280 		_tmp35_ = _tmp34_;
3281 		_tmp36_ = cl;
3282 		valadoc_html_basic_doclet_write_known_symbols_note (self, _tmp35_, (ValadocApiNode*) _tmp36_, "All known sub-classes:");
3283 		_vala_iterable_unref0 (_tmp35_);
3284 		_tmp37_ = cl;
3285 		_tmp38_ = valadoc_api_class_get_known_derived_interfaces (_tmp37_);
3286 		_tmp39_ = _tmp38_;
3287 		_tmp40_ = cl;
3288 		valadoc_html_basic_doclet_write_known_symbols_note (self, _tmp39_, (ValadocApiNode*) _tmp40_, "Required by:");
3289 		_vala_iterable_unref0 (_tmp39_);
3290 		_g_object_unref0 (cl);
3291 	} else {
3292 		if (VALADOC_API_IS_INTERFACE (node)) {
3293 			ValadocApiInterface* iface = NULL;
3294 			ValadocApiInterface* _tmp41_;
3295 			ValadocApiInterface* _tmp42_;
3296 			ValaCollection* _tmp43_;
3297 			ValaCollection* _tmp44_;
3298 			ValadocApiInterface* _tmp45_;
3299 			ValadocApiInterface* _tmp46_;
3300 			ValaCollection* _tmp47_;
3301 			ValaCollection* _tmp48_;
3302 			ValadocApiInterface* _tmp49_;
3303 			_tmp41_ = _g_object_ref0 (VALADOC_API_IS_INTERFACE (node) ? ((ValadocApiInterface*) node) : NULL);
3304 			iface = _tmp41_;
3305 			_tmp42_ = iface;
3306 			_tmp43_ = valadoc_api_interface_get_known_implementations (_tmp42_);
3307 			_tmp44_ = _tmp43_;
3308 			_tmp45_ = iface;
3309 			valadoc_html_basic_doclet_write_known_symbols_note (self, _tmp44_, (ValadocApiNode*) _tmp45_, "All known implementing classes:");
3310 			_vala_iterable_unref0 (_tmp44_);
3311 			_tmp46_ = iface;
3312 			_tmp47_ = valadoc_api_interface_get_known_related_interfaces (_tmp46_);
3313 			_tmp48_ = _tmp47_;
3314 			_tmp49_ = iface;
3315 			valadoc_html_basic_doclet_write_known_symbols_note (self, _tmp48_, (ValadocApiNode*) _tmp49_, "All known sub-interfaces:");
3316 			_vala_iterable_unref0 (_tmp48_);
3317 			_g_object_unref0 (iface);
3318 		} else {
3319 			if (VALADOC_API_IS_STRUCT (node)) {
3320 				ValadocApiStruct* stru = NULL;
3321 				ValadocApiStruct* _tmp50_;
3322 				ValadocApiStruct* _tmp51_;
3323 				ValaCollection* _tmp52_;
3324 				ValaCollection* _tmp53_;
3325 				ValadocApiStruct* _tmp54_;
3326 				_tmp50_ = _g_object_ref0 (VALADOC_API_IS_STRUCT (node) ? ((ValadocApiStruct*) node) : NULL);
3327 				stru = _tmp50_;
3328 				_tmp51_ = stru;
3329 				_tmp52_ = valadoc_api_struct_get_known_child_structs (_tmp51_);
3330 				_tmp53_ = _tmp52_;
3331 				_tmp54_ = stru;
3332 				valadoc_html_basic_doclet_write_known_symbols_note (self, _tmp53_, (ValadocApiNode*) _tmp54_, "All known sub-structs:");
3333 				_vala_iterable_unref0 (_tmp53_);
3334 				_g_object_unref0 (stru);
3335 			}
3336 		}
3337 	}
3338 	_tmp55_ = valadoc_api_item_get_parent ((ValadocApiItem*) node);
3339 	_tmp56_ = _tmp55_;
3340 	if (VALADOC_API_IS_NAMESPACE (_tmp56_)) {
3341 		ValadocHtmlMarkupWriter* _tmp57_;
3342 		_tmp57_ = self->writer;
3343 		valadoc_markup_writer_simple_tag ((ValadocMarkupWriter*) _tmp57_, "br", NULL, (gint) 0);
3344 		valadoc_html_basic_doclet_write_namespace_note (self, node);
3345 		valadoc_html_basic_doclet_write_package_note (self, node);
3346 	}
3347 	if (VALADOC_API_IS_METHOD (node)) {
3348 		_tmp59_ = TRUE;
3349 	} else {
3350 		_tmp59_ = VALADOC_API_IS_DELEGATE (node);
3351 	}
3352 	if (_tmp59_) {
3353 		_tmp58_ = TRUE;
3354 	} else {
3355 		_tmp58_ = VALADOC_API_IS_SIGNAL (node);
3356 	}
3357 	if (!_tmp58_) {
3358 		ValadocApiNodeType* _tmp60_;
3359 		ValadocApiNodeType* _tmp61_;
3360 		gint _tmp61__length1;
3361 		gboolean _tmp62_;
3362 		_tmp60_ = g_new0 (ValadocApiNodeType, 13);
3363 		_tmp60_[0] = VALADOC_API_NODE_TYPE_ERROR_CODE;
3364 		_tmp60_[1] = VALADOC_API_NODE_TYPE_ENUM_VALUE;
3365 		_tmp60_[2] = VALADOC_API_NODE_TYPE_CREATION_METHOD;
3366 		_tmp60_[3] = VALADOC_API_NODE_TYPE_STATIC_METHOD;
3367 		_tmp60_[4] = VALADOC_API_NODE_TYPE_CLASS;
3368 		_tmp60_[5] = VALADOC_API_NODE_TYPE_STRUCT;
3369 		_tmp60_[6] = VALADOC_API_NODE_TYPE_ENUM;
3370 		_tmp60_[7] = VALADOC_API_NODE_TYPE_DELEGATE;
3371 		_tmp60_[8] = VALADOC_API_NODE_TYPE_METHOD;
3372 		_tmp60_[9] = VALADOC_API_NODE_TYPE_SIGNAL;
3373 		_tmp60_[10] = VALADOC_API_NODE_TYPE_PROPERTY;
3374 		_tmp60_[11] = VALADOC_API_NODE_TYPE_FIELD;
3375 		_tmp60_[12] = VALADOC_API_NODE_TYPE_CONSTANT;
3376 		_tmp61_ = _tmp60_;
3377 		_tmp61__length1 = 13;
3378 		_tmp62_ = valadoc_api_node_has_children (node, _tmp61_, (gint) 13);
3379 		_tmp61_ = (g_free (_tmp61_), NULL);
3380 		if (_tmp62_) {
3381 			ValadocHtmlMarkupWriter* _tmp63_;
3382 			gchar* _tmp64_;
3383 			gchar* _tmp65_;
3384 			gchar** _tmp66_;
3385 			gchar** _tmp67_;
3386 			gint _tmp67__length1;
3387 			ValadocMarkupWriter* _tmp68_;
3388 			ValadocMarkupWriter* _tmp69_;
3389 			_tmp63_ = self->writer;
3390 			_tmp64_ = g_strdup ("class");
3391 			_tmp65_ = g_strdup (VALADOC_HTML_BASIC_DOCLET_css_title);
3392 			_tmp66_ = g_new0 (gchar*, 2 + 1);
3393 			_tmp66_[0] = _tmp64_;
3394 			_tmp66_[1] = _tmp65_;
3395 			_tmp67_ = _tmp66_;
3396 			_tmp67__length1 = 2;
3397 			_tmp68_ = valadoc_markup_writer_start_tag ((ValadocMarkupWriter*) _tmp63_, "h2", _tmp67_, (gint) 2);
3398 			_tmp69_ = valadoc_markup_writer_text (_tmp68_, "Content:");
3399 			valadoc_markup_writer_end_tag (_tmp69_, "h2");
3400 			_tmp67_ = (_vala_array_free (_tmp67_, _tmp67__length1, (GDestroyNotify) g_free), NULL);
3401 			valadoc_html_basic_doclet_write_children (self, node, VALADOC_API_NODE_TYPE_ERROR_CODE, "Error codes", node);
3402 			valadoc_html_basic_doclet_write_children (self, node, VALADOC_API_NODE_TYPE_ENUM_VALUE, "Enum values", node);
3403 			valadoc_html_basic_doclet_write_children (self, node, VALADOC_API_NODE_TYPE_CLASS, "Classes", node);
3404 			valadoc_html_basic_doclet_write_children (self, node, VALADOC_API_NODE_TYPE_STRUCT, "Structs", node);
3405 			valadoc_html_basic_doclet_write_children (self, node, VALADOC_API_NODE_TYPE_ENUM, "Enums", node);
3406 			valadoc_html_basic_doclet_write_children (self, node, VALADOC_API_NODE_TYPE_CONSTANT, "Constants", node);
3407 			valadoc_html_basic_doclet_write_children (self, node, VALADOC_API_NODE_TYPE_PROPERTY, "Properties", node);
3408 			valadoc_html_basic_doclet_write_children (self, node, VALADOC_API_NODE_TYPE_DELEGATE, "Delegates", node);
3409 			valadoc_html_basic_doclet_write_children (self, node, VALADOC_API_NODE_TYPE_STATIC_METHOD, "Static methods", node);
3410 			valadoc_html_basic_doclet_write_children (self, node, VALADOC_API_NODE_TYPE_CREATION_METHOD, "Creation methods", node);
3411 			valadoc_html_basic_doclet_write_children (self, node, VALADOC_API_NODE_TYPE_METHOD, "Methods", node);
3412 			valadoc_html_basic_doclet_write_children (self, node, VALADOC_API_NODE_TYPE_SIGNAL, "Signals", node);
3413 			valadoc_html_basic_doclet_write_children (self, node, VALADOC_API_NODE_TYPE_FIELD, "Fields", node);
3414 		}
3415 	}
3416 	if (VALADOC_API_IS_CLASS (node)) {
3417 		valadoc_html_basic_doclet_write_inherited_symbols_note_for_class (self, G_TYPE_CHECK_INSTANCE_CAST (node, VALADOC_API_TYPE_CLASS, ValadocApiClass), node);
3418 	} else {
3419 		if (VALADOC_API_IS_INTERFACE (node)) {
3420 			valadoc_html_basic_doclet_write_inherited_symbols_note_for_interface (self, G_TYPE_CHECK_INSTANCE_CAST (node, VALADOC_API_TYPE_INTERFACE, ValadocApiInterface), node);
3421 		} else {
3422 			if (VALADOC_API_IS_STRUCT (node)) {
3423 				valadoc_html_basic_doclet_write_inherited_symbols_note_for_struct (self, G_TYPE_CHECK_INSTANCE_CAST (node, VALADOC_API_TYPE_STRUCT, ValadocApiStruct), node);
3424 			}
3425 		}
3426 	}
3427 	_tmp70_ = self->writer;
3428 	valadoc_markup_writer_end_tag ((ValadocMarkupWriter*) _tmp70_, "div");
3429 }
3430 
3431 static inline gboolean
valadoc_html_basic_doclet_has_visible_inheritable_children(ValadocHtmlBasicDoclet * self,ValadocApiTypeSymbol * symbol)3432 valadoc_html_basic_doclet_has_visible_inheritable_children (ValadocHtmlBasicDoclet* self,
3433                                                             ValadocApiTypeSymbol* symbol)
3434 {
3435 	ValadocApiNodeType* _tmp0_;
3436 	gint _tmp0__length1;
3437 	ValadocSettings* _tmp1_;
3438 	gboolean result = FALSE;
3439 	g_return_val_if_fail (self != NULL, FALSE);
3440 	g_return_val_if_fail (symbol != NULL, FALSE);
3441 	_tmp0_ = valadoc_html_basic_doclet_inheritable_members;
3442 	_tmp0__length1 = valadoc_html_basic_doclet_inheritable_members_length1;
3443 	_tmp1_ = self->priv->_settings;
3444 	result = valadoc_api_node_has_visible_children_by_types ((ValadocApiNode*) symbol, _tmp0_, (gint) _tmp0__length1, _tmp1_);
3445 	return result;
3446 }
3447 
3448 static void
valadoc_html_basic_doclet_write_inherited_members_headline(ValadocHtmlBasicDoclet * self)3449 valadoc_html_basic_doclet_write_inherited_members_headline (ValadocHtmlBasicDoclet* self)
3450 {
3451 	ValadocHtmlMarkupWriter* _tmp0_;
3452 	gchar* _tmp1_;
3453 	gchar* _tmp2_;
3454 	gchar** _tmp3_;
3455 	gchar** _tmp4_;
3456 	gint _tmp4__length1;
3457 	ValadocMarkupWriter* _tmp5_;
3458 	ValadocMarkupWriter* _tmp6_;
3459 	g_return_if_fail (self != NULL);
3460 	_tmp0_ = self->writer;
3461 	_tmp1_ = g_strdup ("class");
3462 	_tmp2_ = g_strdup (VALADOC_HTML_BASIC_DOCLET_css_title);
3463 	_tmp3_ = g_new0 (gchar*, 2 + 1);
3464 	_tmp3_[0] = _tmp1_;
3465 	_tmp3_[1] = _tmp2_;
3466 	_tmp4_ = _tmp3_;
3467 	_tmp4__length1 = 2;
3468 	_tmp5_ = valadoc_markup_writer_start_tag ((ValadocMarkupWriter*) _tmp0_, "h3", _tmp4_, (gint) 2);
3469 	_tmp6_ = valadoc_markup_writer_text (_tmp5_, "Inherited Members:");
3470 	valadoc_markup_writer_end_tag (_tmp6_, "h3");
3471 	_tmp4_ = (_vala_array_free (_tmp4_, _tmp4__length1, (GDestroyNotify) g_free), NULL);
3472 }
3473 
3474 static void
valadoc_html_basic_doclet_write_inherited_symbols_note_for_class(ValadocHtmlBasicDoclet * self,ValadocApiClass * cl,ValadocApiNode * container)3475 valadoc_html_basic_doclet_write_inherited_symbols_note_for_class (ValadocHtmlBasicDoclet* self,
3476                                                                   ValadocApiClass* cl,
3477                                                                   ValadocApiNode* container)
3478 {
3479 	gboolean headline_printed = FALSE;
3480 	ValadocApiClass* base_class = NULL;
3481 	ValadocApiTypeReference* _tmp0_;
3482 	ValadocApiTypeReference* _tmp1_;
3483 	ValadocApiTypeSymbol* _tmp2_;
3484 	ValadocApiClass* _tmp3_;
3485 	ValaCollection* printed_interfaces = NULL;
3486 	GEqualFunc _tmp13_;
3487 	ValaArrayList* _tmp14_;
3488 	g_return_if_fail (self != NULL);
3489 	g_return_if_fail (cl != NULL);
3490 	g_return_if_fail (container != NULL);
3491 	headline_printed = FALSE;
3492 	_tmp0_ = valadoc_api_class_get_base_type (cl);
3493 	_tmp1_ = _tmp0_;
3494 	_tmp2_ = valadoc_html_basic_doclet_unpack_type_reference (self, _tmp1_);
3495 	_tmp3_ = VALADOC_API_IS_CLASS (_tmp2_) ? ((ValadocApiClass*) _tmp2_) : NULL;
3496 	if (_tmp3_ == NULL) {
3497 		_g_object_unref0 (_tmp2_);
3498 	}
3499 	base_class = _tmp3_;
3500 	while (TRUE) {
3501 		ValadocApiClass* _tmp4_;
3502 		gboolean _tmp5_ = FALSE;
3503 		ValadocApiClass* _tmp7_;
3504 		ValadocApiClass* _tmp8_;
3505 		ValadocApiTypeReference* _tmp9_;
3506 		ValadocApiTypeReference* _tmp10_;
3507 		ValadocApiTypeSymbol* _tmp11_;
3508 		ValadocApiClass* _tmp12_;
3509 		_tmp4_ = base_class;
3510 		if (!(_tmp4_ != NULL)) {
3511 			break;
3512 		}
3513 		if (!headline_printed) {
3514 			ValadocApiClass* _tmp6_;
3515 			_tmp6_ = base_class;
3516 			_tmp5_ = valadoc_html_basic_doclet_has_visible_inheritable_children (self, (ValadocApiTypeSymbol*) _tmp6_);
3517 		} else {
3518 			_tmp5_ = FALSE;
3519 		}
3520 		if (_tmp5_) {
3521 			valadoc_html_basic_doclet_write_inherited_members_headline (self);
3522 			headline_printed = TRUE;
3523 		}
3524 		_tmp7_ = base_class;
3525 		valadoc_html_basic_doclet_write_inherited_symbols_note (self, (ValadocApiTypeSymbol*) _tmp7_, "class", container);
3526 		_tmp8_ = base_class;
3527 		_tmp9_ = valadoc_api_class_get_base_type (_tmp8_);
3528 		_tmp10_ = _tmp9_;
3529 		_tmp11_ = valadoc_html_basic_doclet_unpack_type_reference (self, _tmp10_);
3530 		_tmp12_ = VALADOC_API_IS_CLASS (_tmp11_) ? ((ValadocApiClass*) _tmp11_) : NULL;
3531 		if (_tmp12_ == NULL) {
3532 			_g_object_unref0 (_tmp11_);
3533 		}
3534 		_g_object_unref0 (base_class);
3535 		base_class = _tmp12_;
3536 	}
3537 	_tmp13_ = g_direct_equal;
3538 	_tmp14_ = vala_array_list_new (VALADOC_API_TYPE_INTERFACE, (GBoxedCopyFunc) g_object_ref, (GDestroyNotify) g_object_unref, _tmp13_);
3539 	printed_interfaces = (ValaCollection*) _tmp14_;
3540 	{
3541 		ValaIterator* _iface_ref_it = NULL;
3542 		ValaCollection* _tmp15_;
3543 		ValaCollection* _tmp16_;
3544 		ValaIterator* _tmp17_;
3545 		ValaIterator* _tmp18_;
3546 		_tmp15_ = valadoc_api_class_get_full_implemented_interface_list (cl);
3547 		_tmp16_ = _tmp15_;
3548 		_tmp17_ = vala_iterable_iterator ((ValaIterable*) _tmp16_);
3549 		_tmp18_ = _tmp17_;
3550 		_vala_iterable_unref0 (_tmp16_);
3551 		_iface_ref_it = _tmp18_;
3552 		while (TRUE) {
3553 			ValaIterator* _tmp19_;
3554 			ValadocApiTypeReference* iface_ref = NULL;
3555 			ValaIterator* _tmp20_;
3556 			gpointer _tmp21_;
3557 			ValadocApiInterface* iface = NULL;
3558 			ValadocApiTypeReference* _tmp22_;
3559 			ValadocApiTypeSymbol* _tmp23_;
3560 			gboolean _tmp24_ = FALSE;
3561 			ValadocApiInterface* _tmp28_;
3562 			ValaCollection* _tmp29_;
3563 			ValadocApiInterface* _tmp30_;
3564 			_tmp19_ = _iface_ref_it;
3565 			if (!vala_iterator_next (_tmp19_)) {
3566 				break;
3567 			}
3568 			_tmp20_ = _iface_ref_it;
3569 			_tmp21_ = vala_iterator_get (_tmp20_);
3570 			iface_ref = (ValadocApiTypeReference*) _tmp21_;
3571 			_tmp22_ = iface_ref;
3572 			_tmp23_ = valadoc_html_basic_doclet_unpack_type_reference (self, _tmp22_);
3573 			iface = G_TYPE_CHECK_INSTANCE_CAST (_tmp23_, VALADOC_API_TYPE_INTERFACE, ValadocApiInterface);
3574 			if (!headline_printed) {
3575 				ValadocApiInterface* _tmp25_;
3576 				_tmp25_ = iface;
3577 				_tmp24_ = valadoc_html_basic_doclet_has_visible_inheritable_children (self, (ValadocApiTypeSymbol*) _tmp25_);
3578 			} else {
3579 				_tmp24_ = FALSE;
3580 			}
3581 			if (_tmp24_) {
3582 				valadoc_html_basic_doclet_write_inherited_members_headline (self);
3583 				headline_printed = TRUE;
3584 			} else {
3585 				ValaCollection* _tmp26_;
3586 				ValadocApiInterface* _tmp27_;
3587 				_tmp26_ = printed_interfaces;
3588 				_tmp27_ = iface;
3589 				if (vala_collection_contains (_tmp26_, _tmp27_)) {
3590 					_g_object_unref0 (iface);
3591 					_g_object_unref0 (iface_ref);
3592 					continue;
3593 				}
3594 			}
3595 			_tmp28_ = iface;
3596 			valadoc_html_basic_doclet_write_inherited_symbols_note (self, (ValadocApiTypeSymbol*) _tmp28_, "interface", container);
3597 			_tmp29_ = printed_interfaces;
3598 			_tmp30_ = iface;
3599 			vala_collection_add (_tmp29_, _tmp30_);
3600 			_g_object_unref0 (iface);
3601 			_g_object_unref0 (iface_ref);
3602 		}
3603 		_vala_iterator_unref0 (_iface_ref_it);
3604 	}
3605 	_vala_iterable_unref0 (printed_interfaces);
3606 	_g_object_unref0 (base_class);
3607 }
3608 
3609 static void
valadoc_html_basic_doclet_write_inherited_symbols_note_for_interface(ValadocHtmlBasicDoclet * self,ValadocApiInterface * iface,ValadocApiNode * container)3610 valadoc_html_basic_doclet_write_inherited_symbols_note_for_interface (ValadocHtmlBasicDoclet* self,
3611                                                                       ValadocApiInterface* iface,
3612                                                                       ValadocApiNode* container)
3613 {
3614 	gboolean headline_printed = FALSE;
3615 	ValadocApiClass* base_class = NULL;
3616 	ValadocApiTypeReference* _tmp0_;
3617 	ValadocApiTypeReference* _tmp1_;
3618 	ValadocApiTypeSymbol* _tmp2_;
3619 	ValadocApiClass* _tmp3_;
3620 	ValaCollection* printed_interfaces = NULL;
3621 	GEqualFunc _tmp13_;
3622 	ValaArrayList* _tmp14_;
3623 	g_return_if_fail (self != NULL);
3624 	g_return_if_fail (iface != NULL);
3625 	g_return_if_fail (container != NULL);
3626 	headline_printed = FALSE;
3627 	_tmp0_ = valadoc_api_interface_get_base_type (iface);
3628 	_tmp1_ = _tmp0_;
3629 	_tmp2_ = valadoc_html_basic_doclet_unpack_type_reference (self, _tmp1_);
3630 	_tmp3_ = VALADOC_API_IS_CLASS (_tmp2_) ? ((ValadocApiClass*) _tmp2_) : NULL;
3631 	if (_tmp3_ == NULL) {
3632 		_g_object_unref0 (_tmp2_);
3633 	}
3634 	base_class = _tmp3_;
3635 	while (TRUE) {
3636 		ValadocApiClass* _tmp4_;
3637 		gboolean _tmp5_ = FALSE;
3638 		ValadocApiClass* _tmp7_;
3639 		ValadocApiClass* _tmp8_;
3640 		ValadocApiTypeReference* _tmp9_;
3641 		ValadocApiTypeReference* _tmp10_;
3642 		ValadocApiTypeSymbol* _tmp11_;
3643 		ValadocApiClass* _tmp12_;
3644 		_tmp4_ = base_class;
3645 		if (!(_tmp4_ != NULL)) {
3646 			break;
3647 		}
3648 		if (!headline_printed) {
3649 			ValadocApiClass* _tmp6_;
3650 			_tmp6_ = base_class;
3651 			_tmp5_ = valadoc_html_basic_doclet_has_visible_inheritable_children (self, (ValadocApiTypeSymbol*) _tmp6_);
3652 		} else {
3653 			_tmp5_ = FALSE;
3654 		}
3655 		if (_tmp5_) {
3656 			valadoc_html_basic_doclet_write_inherited_members_headline (self);
3657 			headline_printed = TRUE;
3658 		}
3659 		_tmp7_ = base_class;
3660 		valadoc_html_basic_doclet_write_inherited_symbols_note (self, (ValadocApiTypeSymbol*) _tmp7_, "class", container);
3661 		_tmp8_ = base_class;
3662 		_tmp9_ = valadoc_api_class_get_base_type (_tmp8_);
3663 		_tmp10_ = _tmp9_;
3664 		_tmp11_ = valadoc_html_basic_doclet_unpack_type_reference (self, _tmp10_);
3665 		_tmp12_ = VALADOC_API_IS_CLASS (_tmp11_) ? ((ValadocApiClass*) _tmp11_) : NULL;
3666 		if (_tmp12_ == NULL) {
3667 			_g_object_unref0 (_tmp11_);
3668 		}
3669 		_g_object_unref0 (base_class);
3670 		base_class = _tmp12_;
3671 	}
3672 	_tmp13_ = g_direct_equal;
3673 	_tmp14_ = vala_array_list_new (VALADOC_API_TYPE_INTERFACE, (GBoxedCopyFunc) g_object_ref, (GDestroyNotify) g_object_unref, _tmp13_);
3674 	printed_interfaces = (ValaCollection*) _tmp14_;
3675 	{
3676 		ValaIterator* _pre_ref_it = NULL;
3677 		ValaCollection* _tmp15_;
3678 		ValaCollection* _tmp16_;
3679 		ValaIterator* _tmp17_;
3680 		ValaIterator* _tmp18_;
3681 		_tmp15_ = valadoc_api_interface_get_full_implemented_interface_list (iface);
3682 		_tmp16_ = _tmp15_;
3683 		_tmp17_ = vala_iterable_iterator ((ValaIterable*) _tmp16_);
3684 		_tmp18_ = _tmp17_;
3685 		_vala_iterable_unref0 (_tmp16_);
3686 		_pre_ref_it = _tmp18_;
3687 		while (TRUE) {
3688 			ValaIterator* _tmp19_;
3689 			ValadocApiTypeReference* pre_ref = NULL;
3690 			ValaIterator* _tmp20_;
3691 			gpointer _tmp21_;
3692 			ValadocApiInterface* pre = NULL;
3693 			ValadocApiTypeReference* _tmp22_;
3694 			ValadocApiTypeSymbol* _tmp23_;
3695 			gboolean _tmp24_ = FALSE;
3696 			ValadocApiInterface* _tmp28_;
3697 			ValaCollection* _tmp29_;
3698 			ValadocApiInterface* _tmp30_;
3699 			_tmp19_ = _pre_ref_it;
3700 			if (!vala_iterator_next (_tmp19_)) {
3701 				break;
3702 			}
3703 			_tmp20_ = _pre_ref_it;
3704 			_tmp21_ = vala_iterator_get (_tmp20_);
3705 			pre_ref = (ValadocApiTypeReference*) _tmp21_;
3706 			_tmp22_ = pre_ref;
3707 			_tmp23_ = valadoc_html_basic_doclet_unpack_type_reference (self, _tmp22_);
3708 			pre = G_TYPE_CHECK_INSTANCE_CAST (_tmp23_, VALADOC_API_TYPE_INTERFACE, ValadocApiInterface);
3709 			if (!headline_printed) {
3710 				ValadocApiInterface* _tmp25_;
3711 				_tmp25_ = pre;
3712 				_tmp24_ = valadoc_html_basic_doclet_has_visible_inheritable_children (self, (ValadocApiTypeSymbol*) _tmp25_);
3713 			} else {
3714 				_tmp24_ = FALSE;
3715 			}
3716 			if (_tmp24_) {
3717 				valadoc_html_basic_doclet_write_inherited_members_headline (self);
3718 				headline_printed = TRUE;
3719 			} else {
3720 				ValaCollection* _tmp26_;
3721 				ValadocApiInterface* _tmp27_;
3722 				_tmp26_ = printed_interfaces;
3723 				_tmp27_ = pre;
3724 				if (vala_collection_contains (_tmp26_, _tmp27_)) {
3725 					_g_object_unref0 (pre);
3726 					_g_object_unref0 (pre_ref);
3727 					continue;
3728 				}
3729 			}
3730 			_tmp28_ = pre;
3731 			valadoc_html_basic_doclet_write_inherited_symbols_note (self, (ValadocApiTypeSymbol*) _tmp28_, "interface", container);
3732 			_tmp29_ = printed_interfaces;
3733 			_tmp30_ = pre;
3734 			vala_collection_add (_tmp29_, _tmp30_);
3735 			_g_object_unref0 (pre);
3736 			_g_object_unref0 (pre_ref);
3737 		}
3738 		_vala_iterator_unref0 (_pre_ref_it);
3739 	}
3740 	_vala_iterable_unref0 (printed_interfaces);
3741 	_g_object_unref0 (base_class);
3742 }
3743 
3744 static void
valadoc_html_basic_doclet_write_inherited_symbols_note_for_struct(ValadocHtmlBasicDoclet * self,ValadocApiStruct * str,ValadocApiNode * container)3745 valadoc_html_basic_doclet_write_inherited_symbols_note_for_struct (ValadocHtmlBasicDoclet* self,
3746                                                                    ValadocApiStruct* str,
3747                                                                    ValadocApiNode* container)
3748 {
3749 	ValadocApiStruct* base_struct = NULL;
3750 	ValadocApiTypeReference* _tmp0_;
3751 	ValadocApiTypeReference* _tmp1_;
3752 	ValadocApiTypeSymbol* _tmp2_;
3753 	ValadocApiStruct* _tmp3_;
3754 	gboolean _tmp4_ = FALSE;
3755 	ValadocApiStruct* _tmp5_;
3756 	g_return_if_fail (self != NULL);
3757 	g_return_if_fail (str != NULL);
3758 	g_return_if_fail (container != NULL);
3759 	_tmp0_ = valadoc_api_struct_get_base_type (str);
3760 	_tmp1_ = _tmp0_;
3761 	_tmp2_ = valadoc_html_basic_doclet_unpack_type_reference (self, _tmp1_);
3762 	_tmp3_ = VALADOC_API_IS_STRUCT (_tmp2_) ? ((ValadocApiStruct*) _tmp2_) : NULL;
3763 	if (_tmp3_ == NULL) {
3764 		_g_object_unref0 (_tmp2_);
3765 	}
3766 	base_struct = _tmp3_;
3767 	_tmp5_ = base_struct;
3768 	if (_tmp5_ != NULL) {
3769 		ValadocApiStruct* _tmp6_;
3770 		_tmp6_ = base_struct;
3771 		_tmp4_ = valadoc_html_basic_doclet_has_visible_inheritable_children (self, (ValadocApiTypeSymbol*) _tmp6_);
3772 	} else {
3773 		_tmp4_ = FALSE;
3774 	}
3775 	if (_tmp4_) {
3776 		ValadocApiStruct* _tmp7_;
3777 		valadoc_html_basic_doclet_write_inherited_members_headline (self);
3778 		_tmp7_ = base_struct;
3779 		valadoc_html_basic_doclet_write_inherited_symbols_note (self, (ValadocApiTypeSymbol*) _tmp7_, "struct", container);
3780 	}
3781 	_g_object_unref0 (base_struct);
3782 }
3783 
3784 static void
valadoc_html_basic_doclet_write_inherited_symbols_note(ValadocHtmlBasicDoclet * self,ValadocApiTypeSymbol * symbol,const gchar * type,ValadocApiNode * container)3785 valadoc_html_basic_doclet_write_inherited_symbols_note (ValadocHtmlBasicDoclet* self,
3786                                                         ValadocApiTypeSymbol* symbol,
3787                                                         const gchar* type,
3788                                                         ValadocApiNode* container)
3789 {
3790 	ValadocApiNodeType* _tmp0_;
3791 	gint _tmp0__length1;
3792 	ValaList* _tmp1_;
3793 	ValaList* _tmp2_;
3794 	gchar* _tmp3_;
3795 	gchar* _tmp4_;
3796 	gchar* _tmp5_;
3797 	gchar* _tmp6_;
3798 	g_return_if_fail (self != NULL);
3799 	g_return_if_fail (symbol != NULL);
3800 	g_return_if_fail (type != NULL);
3801 	g_return_if_fail (container != NULL);
3802 	_tmp0_ = valadoc_html_basic_doclet_inheritable_members;
3803 	_tmp0__length1 = valadoc_html_basic_doclet_inheritable_members_length1;
3804 	_tmp1_ = valadoc_api_node_get_children_by_types ((ValadocApiNode*) symbol, _tmp0_, (gint) _tmp0__length1, FALSE);
3805 	_tmp2_ = _tmp1_;
3806 	_tmp3_ = valadoc_api_node_get_full_name ((ValadocApiNode*) symbol);
3807 	_tmp4_ = _tmp3_;
3808 	_tmp5_ = g_strdup_printf ("All known members inherited from %s %s", type, _tmp4_);
3809 	_tmp6_ = _tmp5_;
3810 	valadoc_html_basic_doclet_write_known_symbols_note (self, (ValaCollection*) _tmp2_, container, _tmp6_);
3811 	_g_free0 (_tmp6_);
3812 	_g_free0 (_tmp4_);
3813 	_vala_iterable_unref0 (_tmp2_);
3814 }
3815 
3816 void
valadoc_html_basic_doclet_write_child_namespaces(ValadocHtmlBasicDoclet * self,ValadocApiNode * node,ValadocApiNode * parent)3817 valadoc_html_basic_doclet_write_child_namespaces (ValadocHtmlBasicDoclet* self,
3818                                                   ValadocApiNode* node,
3819                                                   ValadocApiNode* parent)
3820 {
3821 	ValaArrayList* namespaces = NULL;
3822 	GEqualFunc _tmp0_;
3823 	ValaArrayList* _tmp1_;
3824 	ValaArrayList* _tmp2_;
3825 	ValaArrayList* _tmp3_;
3826 	gint _tmp4_;
3827 	gint _tmp5_;
3828 	ValaArrayList* _tmp6_;
3829 	gint _tmp7_;
3830 	gint _tmp8_;
3831 	gboolean _tmp15_ = FALSE;
3832 	gboolean with_childs = FALSE;
3833 	ValadocHtmlMarkupWriter* _tmp16_;
3834 	gchar* _tmp17_;
3835 	gchar* _tmp18_;
3836 	gchar** _tmp19_;
3837 	gchar** _tmp20_;
3838 	gint _tmp20__length1;
3839 	ValadocMarkupWriter* _tmp21_;
3840 	ValadocMarkupWriter* _tmp22_;
3841 	ValadocHtmlMarkupWriter* _tmp23_;
3842 	gchar* _tmp24_;
3843 	gchar* _tmp25_;
3844 	gchar** _tmp26_;
3845 	gchar** _tmp27_;
3846 	gint _tmp27__length1;
3847 	ValadocHtmlMarkupWriter* _tmp67_;
3848 	g_return_if_fail (self != NULL);
3849 	g_return_if_fail (node != NULL);
3850 	_tmp0_ = g_direct_equal;
3851 	_tmp1_ = vala_array_list_new (VALADOC_API_TYPE_NAMESPACE, (GBoxedCopyFunc) g_object_ref, (GDestroyNotify) g_object_unref, _tmp0_);
3852 	namespaces = _tmp1_;
3853 	_tmp2_ = namespaces;
3854 	valadoc_html_basic_doclet_fetch_subnamespace_names (self, node, _tmp2_);
3855 	_tmp3_ = namespaces;
3856 	_tmp4_ = vala_collection_get_size ((ValaCollection*) _tmp3_);
3857 	_tmp5_ = _tmp4_;
3858 	if (_tmp5_ == 0) {
3859 		_vala_iterable_unref0 (namespaces);
3860 		return;
3861 	}
3862 	_tmp6_ = namespaces;
3863 	_tmp7_ = vala_collection_get_size ((ValaCollection*) _tmp6_);
3864 	_tmp8_ = _tmp7_;
3865 	if (_tmp8_ == 1) {
3866 		ValaArrayList* _tmp9_;
3867 		gpointer _tmp10_;
3868 		ValadocApiNamespace* _tmp11_;
3869 		const gchar* _tmp12_;
3870 		const gchar* _tmp13_;
3871 		gboolean _tmp14_;
3872 		_tmp9_ = namespaces;
3873 		_tmp10_ = vala_list_get ((ValaList*) _tmp9_, 0);
3874 		_tmp11_ = (ValadocApiNamespace*) _tmp10_;
3875 		_tmp12_ = valadoc_api_node_get_name ((ValadocApiNode*) _tmp11_);
3876 		_tmp13_ = _tmp12_;
3877 		_tmp14_ = _tmp13_ == NULL;
3878 		_g_object_unref0 (_tmp11_);
3879 		if (_tmp14_) {
3880 			_vala_iterable_unref0 (namespaces);
3881 			return;
3882 		}
3883 	}
3884 	if (parent != NULL) {
3885 		_tmp15_ = VALADOC_API_IS_PACKAGE (parent);
3886 	} else {
3887 		_tmp15_ = FALSE;
3888 	}
3889 	with_childs = _tmp15_;
3890 	_tmp16_ = self->writer;
3891 	_tmp17_ = g_strdup ("class");
3892 	_tmp18_ = g_strdup (VALADOC_HTML_BASIC_DOCLET_css_title);
3893 	_tmp19_ = g_new0 (gchar*, 2 + 1);
3894 	_tmp19_[0] = _tmp17_;
3895 	_tmp19_[1] = _tmp18_;
3896 	_tmp20_ = _tmp19_;
3897 	_tmp20__length1 = 2;
3898 	_tmp21_ = valadoc_markup_writer_start_tag ((ValadocMarkupWriter*) _tmp16_, "h3", _tmp20_, (gint) 2);
3899 	_tmp22_ = valadoc_markup_writer_text (_tmp21_, "Namespaces:");
3900 	valadoc_markup_writer_end_tag (_tmp22_, "h3");
3901 	_tmp20_ = (_vala_array_free (_tmp20_, _tmp20__length1, (GDestroyNotify) g_free), NULL);
3902 	_tmp23_ = self->writer;
3903 	_tmp24_ = g_strdup ("class");
3904 	_tmp25_ = g_strdup (VALADOC_HTML_BASIC_DOCLET_css_inline_navigation);
3905 	_tmp26_ = g_new0 (gchar*, 2 + 1);
3906 	_tmp26_[0] = _tmp24_;
3907 	_tmp26_[1] = _tmp25_;
3908 	_tmp27_ = _tmp26_;
3909 	_tmp27__length1 = 2;
3910 	valadoc_markup_writer_start_tag ((ValadocMarkupWriter*) _tmp23_, "ul", _tmp27_, (gint) 2);
3911 	_tmp27_ = (_vala_array_free (_tmp27_, _tmp27__length1, (GDestroyNotify) g_free), NULL);
3912 	{
3913 		ValaArrayList* _child_list = NULL;
3914 		ValaArrayList* _tmp28_;
3915 		ValaArrayList* _tmp29_;
3916 		gint _child_size = 0;
3917 		ValaArrayList* _tmp30_;
3918 		gint _tmp31_;
3919 		gint _tmp32_;
3920 		gint _child_index = 0;
3921 		_tmp28_ = namespaces;
3922 		_tmp29_ = _vala_iterable_ref0 (_tmp28_);
3923 		_child_list = _tmp29_;
3924 		_tmp30_ = _child_list;
3925 		_tmp31_ = vala_collection_get_size ((ValaCollection*) _tmp30_);
3926 		_tmp32_ = _tmp31_;
3927 		_child_size = _tmp32_;
3928 		_child_index = -1;
3929 		while (TRUE) {
3930 			gint _tmp33_;
3931 			gint _tmp34_;
3932 			ValadocApiNamespace* child = NULL;
3933 			ValaArrayList* _tmp35_;
3934 			gpointer _tmp36_;
3935 			ValadocApiNamespace* _tmp37_;
3936 			const gchar* _tmp38_;
3937 			const gchar* _tmp39_;
3938 			_child_index = _child_index + 1;
3939 			_tmp33_ = _child_index;
3940 			_tmp34_ = _child_size;
3941 			if (!(_tmp33_ < _tmp34_)) {
3942 				break;
3943 			}
3944 			_tmp35_ = _child_list;
3945 			_tmp36_ = vala_list_get ((ValaList*) _tmp35_, _child_index);
3946 			child = (ValadocApiNamespace*) _tmp36_;
3947 			_tmp37_ = child;
3948 			_tmp38_ = valadoc_api_node_get_name ((ValadocApiNode*) _tmp37_);
3949 			_tmp39_ = _tmp38_;
3950 			if (_tmp39_ != NULL) {
3951 				ValadocHtmlMarkupWriter* _tmp40_;
3952 				gchar* _tmp41_;
3953 				ValadocHtmlCssClassResolver* _tmp42_;
3954 				ValadocApiNamespace* _tmp43_;
3955 				gchar* _tmp44_;
3956 				gchar** _tmp45_;
3957 				gchar** _tmp46_;
3958 				gint _tmp46__length1;
3959 				ValadocHtmlMarkupWriter* _tmp47_;
3960 				ValadocApiNamespace* _tmp48_;
3961 				gchar* _tmp49_;
3962 				gchar* _tmp50_;
3963 				ValadocApiNamespace* _tmp51_;
3964 				const gchar* _tmp52_;
3965 				const gchar* _tmp53_;
3966 				ValadocApiNamespace* _tmp54_;
3967 				ValadocHtmlMarkupWriter* _tmp57_;
3968 				_tmp40_ = self->writer;
3969 				_tmp41_ = g_strdup ("class");
3970 				_tmp42_ = self->cssresolver;
3971 				_tmp43_ = child;
3972 				_tmp44_ = valadoc_html_css_class_resolver_resolve (_tmp42_, (ValadocApiNode*) _tmp43_);
3973 				_tmp45_ = g_new0 (gchar*, 2 + 1);
3974 				_tmp45_[0] = _tmp41_;
3975 				_tmp45_[1] = _tmp44_;
3976 				_tmp46_ = _tmp45_;
3977 				_tmp46__length1 = 2;
3978 				valadoc_markup_writer_start_tag ((ValadocMarkupWriter*) _tmp40_, "li", _tmp46_, (gint) 2);
3979 				_tmp46_ = (_vala_array_free (_tmp46_, _tmp46__length1, (GDestroyNotify) g_free), NULL);
3980 				_tmp47_ = self->writer;
3981 				_tmp48_ = child;
3982 				_tmp49_ = valadoc_html_basic_doclet_get_link (self, (ValadocApiNode*) _tmp48_, parent);
3983 				_tmp50_ = _tmp49_;
3984 				_tmp51_ = child;
3985 				_tmp52_ = valadoc_api_node_get_name ((ValadocApiNode*) _tmp51_);
3986 				_tmp53_ = _tmp52_;
3987 				valadoc_html_markup_writer_link (_tmp47_, _tmp50_, _tmp53_, NULL);
3988 				_g_free0 (_tmp50_);
3989 				_tmp54_ = child;
3990 				if (valadoc_html_basic_doclet_has_brief_description (self, (ValadocApiNode*) _tmp54_)) {
3991 					ValadocHtmlMarkupWriter* _tmp55_;
3992 					ValadocApiNamespace* _tmp56_;
3993 					_tmp55_ = self->writer;
3994 					valadoc_markup_writer_text ((ValadocMarkupWriter*) _tmp55_, " - ");
3995 					_tmp56_ = child;
3996 					valadoc_html_basic_doclet_write_brief_description (self, (ValadocApiNode*) _tmp56_, parent);
3997 				}
3998 				_tmp57_ = self->writer;
3999 				valadoc_markup_writer_end_tag ((ValadocMarkupWriter*) _tmp57_, "li");
4000 				if (with_childs == TRUE) {
4001 					ValadocApiNamespace* _tmp58_;
4002 					ValadocApiNamespace* _tmp59_;
4003 					ValadocApiNamespace* _tmp60_;
4004 					ValadocApiNamespace* _tmp61_;
4005 					ValadocApiNamespace* _tmp62_;
4006 					ValadocApiNamespace* _tmp63_;
4007 					ValadocApiNamespace* _tmp64_;
4008 					ValadocApiNamespace* _tmp65_;
4009 					ValadocApiNamespace* _tmp66_;
4010 					_tmp58_ = child;
4011 					valadoc_html_basic_doclet_write_children (self, (ValadocApiNode*) _tmp58_, VALADOC_API_NODE_TYPE_INTERFACE, "Interfaces", parent);
4012 					_tmp59_ = child;
4013 					valadoc_html_basic_doclet_write_children (self, (ValadocApiNode*) _tmp59_, VALADOC_API_NODE_TYPE_CLASS, "Classes", parent);
4014 					_tmp60_ = child;
4015 					valadoc_html_basic_doclet_write_children (self, (ValadocApiNode*) _tmp60_, VALADOC_API_NODE_TYPE_STRUCT, "Structs", parent);
4016 					_tmp61_ = child;
4017 					valadoc_html_basic_doclet_write_children (self, (ValadocApiNode*) _tmp61_, VALADOC_API_NODE_TYPE_ENUM, "Enums", parent);
4018 					_tmp62_ = child;
4019 					valadoc_html_basic_doclet_write_children (self, (ValadocApiNode*) _tmp62_, VALADOC_API_NODE_TYPE_ERROR_DOMAIN, "Error domains", parent);
4020 					_tmp63_ = child;
4021 					valadoc_html_basic_doclet_write_children (self, (ValadocApiNode*) _tmp63_, VALADOC_API_NODE_TYPE_CONSTANT, "Constants", parent);
4022 					_tmp64_ = child;
4023 					valadoc_html_basic_doclet_write_children (self, (ValadocApiNode*) _tmp64_, VALADOC_API_NODE_TYPE_DELEGATE, "Delegates", parent);
4024 					_tmp65_ = child;
4025 					valadoc_html_basic_doclet_write_children (self, (ValadocApiNode*) _tmp65_, VALADOC_API_NODE_TYPE_METHOD, "Methods", parent);
4026 					_tmp66_ = child;
4027 					valadoc_html_basic_doclet_write_children (self, (ValadocApiNode*) _tmp66_, VALADOC_API_NODE_TYPE_FIELD, "Fields", parent);
4028 				}
4029 			}
4030 			_g_object_unref0 (child);
4031 		}
4032 		_vala_iterable_unref0 (_child_list);
4033 	}
4034 	_tmp67_ = self->writer;
4035 	valadoc_markup_writer_end_tag ((ValadocMarkupWriter*) _tmp67_, "ul");
4036 	_vala_iterable_unref0 (namespaces);
4037 }
4038 
4039 void
valadoc_html_basic_doclet_write_child_dependencies(ValadocHtmlBasicDoclet * self,ValadocApiPackage * package,ValadocApiNode * parent)4040 valadoc_html_basic_doclet_write_child_dependencies (ValadocHtmlBasicDoclet* self,
4041                                                     ValadocApiPackage* package,
4042                                                     ValadocApiNode* parent)
4043 {
4044 	ValaCollection* deps = NULL;
4045 	ValaCollection* _tmp0_;
4046 	ValaCollection* _tmp1_;
4047 	gint _tmp2_;
4048 	gint _tmp3_;
4049 	ValadocHtmlMarkupWriter* _tmp4_;
4050 	gchar* _tmp5_;
4051 	gchar* _tmp6_;
4052 	gchar** _tmp7_;
4053 	gchar** _tmp8_;
4054 	gint _tmp8__length1;
4055 	ValadocMarkupWriter* _tmp9_;
4056 	ValadocMarkupWriter* _tmp10_;
4057 	ValadocHtmlMarkupWriter* _tmp11_;
4058 	gchar* _tmp12_;
4059 	gchar* _tmp13_;
4060 	gchar** _tmp14_;
4061 	gchar** _tmp15_;
4062 	gint _tmp15__length1;
4063 	ValadocHtmlMarkupWriter* _tmp56_;
4064 	g_return_if_fail (self != NULL);
4065 	g_return_if_fail (package != NULL);
4066 	_tmp0_ = valadoc_api_package_get_full_dependency_list (package);
4067 	deps = _tmp0_;
4068 	_tmp1_ = deps;
4069 	_tmp2_ = vala_collection_get_size (_tmp1_);
4070 	_tmp3_ = _tmp2_;
4071 	if (_tmp3_ == 0) {
4072 		_vala_iterable_unref0 (deps);
4073 		return;
4074 	}
4075 	_tmp4_ = self->writer;
4076 	_tmp5_ = g_strdup ("class");
4077 	_tmp6_ = g_strdup (VALADOC_HTML_BASIC_DOCLET_css_title);
4078 	_tmp7_ = g_new0 (gchar*, 2 + 1);
4079 	_tmp7_[0] = _tmp5_;
4080 	_tmp7_[1] = _tmp6_;
4081 	_tmp8_ = _tmp7_;
4082 	_tmp8__length1 = 2;
4083 	_tmp9_ = valadoc_markup_writer_start_tag ((ValadocMarkupWriter*) _tmp4_, "h2", _tmp8_, (gint) 2);
4084 	_tmp10_ = valadoc_markup_writer_text (_tmp9_, "Dependencies:");
4085 	valadoc_markup_writer_end_tag (_tmp10_, "h2");
4086 	_tmp8_ = (_vala_array_free (_tmp8_, _tmp8__length1, (GDestroyNotify) g_free), NULL);
4087 	_tmp11_ = self->writer;
4088 	_tmp12_ = g_strdup ("class");
4089 	_tmp13_ = g_strdup (VALADOC_HTML_BASIC_DOCLET_css_inline_navigation);
4090 	_tmp14_ = g_new0 (gchar*, 2 + 1);
4091 	_tmp14_[0] = _tmp12_;
4092 	_tmp14_[1] = _tmp13_;
4093 	_tmp15_ = _tmp14_;
4094 	_tmp15__length1 = 2;
4095 	valadoc_markup_writer_start_tag ((ValadocMarkupWriter*) _tmp11_, "ul", _tmp15_, (gint) 2);
4096 	_tmp15_ = (_vala_array_free (_tmp15_, _tmp15__length1, (GDestroyNotify) g_free), NULL);
4097 	{
4098 		ValaIterator* _p_it = NULL;
4099 		ValaCollection* _tmp16_;
4100 		ValaIterator* _tmp17_;
4101 		_tmp16_ = deps;
4102 		_tmp17_ = vala_iterable_iterator ((ValaIterable*) _tmp16_);
4103 		_p_it = _tmp17_;
4104 		while (TRUE) {
4105 			ValaIterator* _tmp18_;
4106 			ValadocApiPackage* p = NULL;
4107 			ValaIterator* _tmp19_;
4108 			gpointer _tmp20_;
4109 			gchar* link = NULL;
4110 			ValadocApiPackage* _tmp21_;
4111 			gchar* _tmp22_;
4112 			const gchar* _tmp23_;
4113 			_tmp18_ = _p_it;
4114 			if (!vala_iterator_next (_tmp18_)) {
4115 				break;
4116 			}
4117 			_tmp19_ = _p_it;
4118 			_tmp20_ = vala_iterator_get (_tmp19_);
4119 			p = (ValadocApiPackage*) _tmp20_;
4120 			_tmp21_ = p;
4121 			_tmp22_ = valadoc_html_basic_doclet_get_link (self, (ValadocApiNode*) _tmp21_, parent);
4122 			link = _tmp22_;
4123 			_tmp23_ = link;
4124 			if (_tmp23_ == NULL) {
4125 				ValadocHtmlMarkupWriter* _tmp24_;
4126 				gchar* _tmp25_;
4127 				ValadocHtmlCssClassResolver* _tmp26_;
4128 				ValadocApiPackage* _tmp27_;
4129 				gchar* _tmp28_;
4130 				gchar* _tmp29_;
4131 				ValadocApiPackage* _tmp30_;
4132 				const gchar* _tmp31_;
4133 				const gchar* _tmp32_;
4134 				gchar* _tmp33_;
4135 				gchar** _tmp34_;
4136 				gchar** _tmp35_;
4137 				gint _tmp35__length1;
4138 				ValadocMarkupWriter* _tmp36_;
4139 				ValadocApiPackage* _tmp37_;
4140 				const gchar* _tmp38_;
4141 				const gchar* _tmp39_;
4142 				ValadocMarkupWriter* _tmp40_;
4143 				_tmp24_ = self->writer;
4144 				_tmp25_ = g_strdup ("class");
4145 				_tmp26_ = self->cssresolver;
4146 				_tmp27_ = p;
4147 				_tmp28_ = valadoc_html_css_class_resolver_resolve (_tmp26_, (ValadocApiNode*) _tmp27_);
4148 				_tmp29_ = g_strdup ("id");
4149 				_tmp30_ = p;
4150 				_tmp31_ = valadoc_api_node_get_name ((ValadocApiNode*) _tmp30_);
4151 				_tmp32_ = _tmp31_;
4152 				_tmp33_ = g_strdup (_tmp32_);
4153 				_tmp34_ = g_new0 (gchar*, 4 + 1);
4154 				_tmp34_[0] = _tmp25_;
4155 				_tmp34_[1] = _tmp28_;
4156 				_tmp34_[2] = _tmp29_;
4157 				_tmp34_[3] = _tmp33_;
4158 				_tmp35_ = _tmp34_;
4159 				_tmp35__length1 = 4;
4160 				_tmp36_ = valadoc_markup_writer_start_tag ((ValadocMarkupWriter*) _tmp24_, "li", _tmp35_, (gint) 4);
4161 				_tmp37_ = p;
4162 				_tmp38_ = valadoc_api_node_get_name ((ValadocApiNode*) _tmp37_);
4163 				_tmp39_ = _tmp38_;
4164 				_tmp40_ = valadoc_markup_writer_text (_tmp36_, _tmp39_);
4165 				valadoc_markup_writer_end_tag (_tmp40_, "li");
4166 				_tmp35_ = (_vala_array_free (_tmp35_, _tmp35__length1, (GDestroyNotify) g_free), NULL);
4167 			} else {
4168 				ValadocHtmlMarkupWriter* _tmp41_;
4169 				gchar* _tmp42_;
4170 				ValadocHtmlCssClassResolver* _tmp43_;
4171 				ValadocApiPackage* _tmp44_;
4172 				gchar* _tmp45_;
4173 				gchar** _tmp46_;
4174 				gchar** _tmp47_;
4175 				gint _tmp47__length1;
4176 				ValadocHtmlMarkupWriter* _tmp48_;
4177 				ValadocApiPackage* _tmp49_;
4178 				gchar* _tmp50_;
4179 				gchar* _tmp51_;
4180 				ValadocApiPackage* _tmp52_;
4181 				const gchar* _tmp53_;
4182 				const gchar* _tmp54_;
4183 				ValadocHtmlMarkupWriter* _tmp55_;
4184 				_tmp41_ = self->writer;
4185 				_tmp42_ = g_strdup ("class");
4186 				_tmp43_ = self->cssresolver;
4187 				_tmp44_ = p;
4188 				_tmp45_ = valadoc_html_css_class_resolver_resolve (_tmp43_, (ValadocApiNode*) _tmp44_);
4189 				_tmp46_ = g_new0 (gchar*, 2 + 1);
4190 				_tmp46_[0] = _tmp42_;
4191 				_tmp46_[1] = _tmp45_;
4192 				_tmp47_ = _tmp46_;
4193 				_tmp47__length1 = 2;
4194 				valadoc_markup_writer_start_tag ((ValadocMarkupWriter*) _tmp41_, "li", _tmp47_, (gint) 2);
4195 				_tmp47_ = (_vala_array_free (_tmp47_, _tmp47__length1, (GDestroyNotify) g_free), NULL);
4196 				_tmp48_ = self->writer;
4197 				_tmp49_ = p;
4198 				_tmp50_ = valadoc_html_basic_doclet_get_link (self, (ValadocApiNode*) _tmp49_, parent);
4199 				_tmp51_ = _tmp50_;
4200 				_tmp52_ = p;
4201 				_tmp53_ = valadoc_api_node_get_name ((ValadocApiNode*) _tmp52_);
4202 				_tmp54_ = _tmp53_;
4203 				valadoc_html_markup_writer_link (_tmp48_, _tmp51_, _tmp54_, NULL);
4204 				_g_free0 (_tmp51_);
4205 				_tmp55_ = self->writer;
4206 				valadoc_markup_writer_end_tag ((ValadocMarkupWriter*) _tmp55_, "li");
4207 			}
4208 			_g_free0 (link);
4209 			_g_object_unref0 (p);
4210 		}
4211 		_vala_iterator_unref0 (_p_it);
4212 	}
4213 	_tmp56_ = self->writer;
4214 	valadoc_markup_writer_end_tag ((ValadocMarkupWriter*) _tmp56_, "ul");
4215 	_vala_iterable_unref0 (deps);
4216 }
4217 
4218 void
valadoc_html_basic_doclet_write_children(ValadocHtmlBasicDoclet * self,ValadocApiNode * node,ValadocApiNodeType type,const gchar * type_string,ValadocApiNode * container)4219 valadoc_html_basic_doclet_write_children (ValadocHtmlBasicDoclet* self,
4220                                           ValadocApiNode* node,
4221                                           ValadocApiNodeType type,
4222                                           const gchar* type_string,
4223                                           ValadocApiNode* container)
4224 {
4225 	ValaList* children = NULL;
4226 	ValaList* _tmp0_;
4227 	ValaList* _tmp1_;
4228 	gint _tmp2_;
4229 	gint _tmp3_;
4230 	g_return_if_fail (self != NULL);
4231 	g_return_if_fail (node != NULL);
4232 	g_return_if_fail (type_string != NULL);
4233 	_tmp0_ = valadoc_api_node_get_children_by_type (node, type, TRUE);
4234 	children = _tmp0_;
4235 	_tmp1_ = children;
4236 	_tmp2_ = vala_collection_get_size ((ValaCollection*) _tmp1_);
4237 	_tmp3_ = _tmp2_;
4238 	if (_tmp3_ > 0) {
4239 		gboolean _tmp4_ = FALSE;
4240 		ValadocHtmlMarkupWriter* _tmp6_;
4241 		gchar* _tmp7_;
4242 		gchar* _tmp8_;
4243 		gchar** _tmp9_;
4244 		gchar** _tmp10_;
4245 		gint _tmp10__length1;
4246 		ValadocMarkupWriter* _tmp11_;
4247 		ValadocMarkupWriter* _tmp12_;
4248 		ValadocMarkupWriter* _tmp13_;
4249 		ValadocHtmlMarkupWriter* _tmp14_;
4250 		gchar* _tmp15_;
4251 		gchar* _tmp16_;
4252 		gchar** _tmp17_;
4253 		gchar** _tmp18_;
4254 		gint _tmp18__length1;
4255 		ValadocHtmlMarkupWriter* _tmp91_;
4256 		if (VALADOC_API_IS_STRUCT (node)) {
4257 			_tmp4_ = type == VALADOC_API_NODE_TYPE_FIELD;
4258 		} else {
4259 			_tmp4_ = FALSE;
4260 		}
4261 		if (!_tmp4_) {
4262 			ValaList* _tmp5_;
4263 			_tmp5_ = children;
4264 			vala_list_sort (_tmp5_, (GCompareDataFunc) valadoc_api_node_compare_to, NULL, NULL);
4265 		}
4266 		_tmp6_ = self->writer;
4267 		_tmp7_ = g_strdup ("class");
4268 		_tmp8_ = g_strdup (VALADOC_HTML_BASIC_DOCLET_css_title);
4269 		_tmp9_ = g_new0 (gchar*, 2 + 1);
4270 		_tmp9_[0] = _tmp7_;
4271 		_tmp9_[1] = _tmp8_;
4272 		_tmp10_ = _tmp9_;
4273 		_tmp10__length1 = 2;
4274 		_tmp11_ = valadoc_markup_writer_start_tag ((ValadocMarkupWriter*) _tmp6_, "h3", _tmp10_, (gint) 2);
4275 		_tmp12_ = valadoc_markup_writer_text (_tmp11_, type_string);
4276 		_tmp13_ = valadoc_markup_writer_text (_tmp12_, ":");
4277 		valadoc_markup_writer_end_tag (_tmp13_, "h3");
4278 		_tmp10_ = (_vala_array_free (_tmp10_, _tmp10__length1, (GDestroyNotify) g_free), NULL);
4279 		_tmp14_ = self->writer;
4280 		_tmp15_ = g_strdup ("class");
4281 		_tmp16_ = g_strdup (VALADOC_HTML_BASIC_DOCLET_css_inline_navigation);
4282 		_tmp17_ = g_new0 (gchar*, 2 + 1);
4283 		_tmp17_[0] = _tmp15_;
4284 		_tmp17_[1] = _tmp16_;
4285 		_tmp18_ = _tmp17_;
4286 		_tmp18__length1 = 2;
4287 		valadoc_markup_writer_start_tag ((ValadocMarkupWriter*) _tmp14_, "ul", _tmp18_, (gint) 2);
4288 		_tmp18_ = (_vala_array_free (_tmp18_, _tmp18__length1, (GDestroyNotify) g_free), NULL);
4289 		{
4290 			ValaList* _child_list = NULL;
4291 			ValaList* _tmp19_;
4292 			ValaList* _tmp20_;
4293 			gint _child_size = 0;
4294 			ValaList* _tmp21_;
4295 			gint _tmp22_;
4296 			gint _tmp23_;
4297 			gint _child_index = 0;
4298 			_tmp19_ = children;
4299 			_tmp20_ = _vala_iterable_ref0 (_tmp19_);
4300 			_child_list = _tmp20_;
4301 			_tmp21_ = _child_list;
4302 			_tmp22_ = vala_collection_get_size ((ValaCollection*) _tmp21_);
4303 			_tmp23_ = _tmp22_;
4304 			_child_size = _tmp23_;
4305 			_child_index = -1;
4306 			while (TRUE) {
4307 				gint _tmp24_;
4308 				gint _tmp25_;
4309 				ValadocApiNode* child = NULL;
4310 				ValaList* _tmp26_;
4311 				gpointer _tmp27_;
4312 				ValadocHtmlMarkupWriter* _tmp28_;
4313 				gchar* _tmp29_;
4314 				ValadocHtmlCssClassResolver* _tmp30_;
4315 				ValadocApiNode* _tmp31_;
4316 				gchar* _tmp32_;
4317 				gchar** _tmp33_;
4318 				gchar** _tmp34_;
4319 				gint _tmp34__length1;
4320 				ValadocApiNode* _tmp35_;
4321 				ValadocHtmlMarkupWriter* _tmp90_;
4322 				_child_index = _child_index + 1;
4323 				_tmp24_ = _child_index;
4324 				_tmp25_ = _child_size;
4325 				if (!(_tmp24_ < _tmp25_)) {
4326 					break;
4327 				}
4328 				_tmp26_ = _child_list;
4329 				_tmp27_ = vala_list_get (_tmp26_, _child_index);
4330 				child = (ValadocApiNode*) _tmp27_;
4331 				_tmp28_ = self->writer;
4332 				_tmp29_ = g_strdup ("class");
4333 				_tmp30_ = self->cssresolver;
4334 				_tmp31_ = child;
4335 				_tmp32_ = valadoc_html_css_class_resolver_resolve (_tmp30_, _tmp31_);
4336 				_tmp33_ = g_new0 (gchar*, 2 + 1);
4337 				_tmp33_[0] = _tmp29_;
4338 				_tmp33_[1] = _tmp32_;
4339 				_tmp34_ = _tmp33_;
4340 				_tmp34__length1 = 2;
4341 				valadoc_markup_writer_start_tag ((ValadocMarkupWriter*) _tmp28_, "li", _tmp34_, (gint) 2);
4342 				_tmp34_ = (_vala_array_free (_tmp34_, _tmp34__length1, (GDestroyNotify) g_free), NULL);
4343 				_tmp35_ = child;
4344 				if (valadoc_html_basic_doclet_is_internal_node (self, _tmp35_)) {
4345 					gboolean _tmp36_ = FALSE;
4346 					ValadocApiNode* _tmp37_;
4347 					ValadocApiNode* _tmp61_;
4348 					_tmp37_ = child;
4349 					if (VALADOC_API_IS_SYMBOL (_tmp37_)) {
4350 						ValadocApiNode* _tmp38_;
4351 						gboolean _tmp39_;
4352 						gboolean _tmp40_;
4353 						_tmp38_ = child;
4354 						_tmp39_ = valadoc_api_symbol_get_is_deprecated (G_TYPE_CHECK_INSTANCE_CAST (_tmp38_, VALADOC_API_TYPE_SYMBOL, ValadocApiSymbol));
4355 						_tmp40_ = _tmp39_;
4356 						_tmp36_ = _tmp40_;
4357 					} else {
4358 						_tmp36_ = FALSE;
4359 					}
4360 					if (_tmp36_) {
4361 						ValadocHtmlMarkupWriter* _tmp41_;
4362 						gchar* _tmp42_;
4363 						gchar* _tmp43_;
4364 						gchar** _tmp44_;
4365 						gchar** _tmp45_;
4366 						gint _tmp45__length1;
4367 						ValadocHtmlMarkupWriter* _tmp46_;
4368 						ValadocApiNode* _tmp47_;
4369 						gchar* _tmp48_;
4370 						gchar* _tmp49_;
4371 						ValadocApiNode* _tmp50_;
4372 						const gchar* _tmp51_;
4373 						const gchar* _tmp52_;
4374 						ValadocHtmlMarkupWriter* _tmp53_;
4375 						_tmp41_ = self->writer;
4376 						_tmp42_ = g_strdup ("class");
4377 						_tmp43_ = g_strdup (VALADOC_HTML_BASIC_DOCLET_css_deprecated);
4378 						_tmp44_ = g_new0 (gchar*, 2 + 1);
4379 						_tmp44_[0] = _tmp42_;
4380 						_tmp44_[1] = _tmp43_;
4381 						_tmp45_ = _tmp44_;
4382 						_tmp45__length1 = 2;
4383 						valadoc_markup_writer_start_tag ((ValadocMarkupWriter*) _tmp41_, "span", _tmp45_, (gint) 2);
4384 						_tmp45_ = (_vala_array_free (_tmp45_, _tmp45__length1, (GDestroyNotify) g_free), NULL);
4385 						_tmp46_ = self->writer;
4386 						_tmp47_ = child;
4387 						_tmp48_ = valadoc_html_basic_doclet_get_link (self, _tmp47_, container);
4388 						_tmp49_ = _tmp48_;
4389 						_tmp50_ = child;
4390 						_tmp51_ = valadoc_api_node_get_name (_tmp50_);
4391 						_tmp52_ = _tmp51_;
4392 						valadoc_html_markup_writer_link (_tmp46_, _tmp49_, _tmp52_, NULL);
4393 						_g_free0 (_tmp49_);
4394 						_tmp53_ = self->writer;
4395 						valadoc_markup_writer_end_tag ((ValadocMarkupWriter*) _tmp53_, "span");
4396 					} else {
4397 						ValadocHtmlMarkupWriter* _tmp54_;
4398 						ValadocApiNode* _tmp55_;
4399 						gchar* _tmp56_;
4400 						gchar* _tmp57_;
4401 						ValadocApiNode* _tmp58_;
4402 						const gchar* _tmp59_;
4403 						const gchar* _tmp60_;
4404 						_tmp54_ = self->writer;
4405 						_tmp55_ = child;
4406 						_tmp56_ = valadoc_html_basic_doclet_get_link (self, _tmp55_, container);
4407 						_tmp57_ = _tmp56_;
4408 						_tmp58_ = child;
4409 						_tmp59_ = valadoc_api_node_get_name (_tmp58_);
4410 						_tmp60_ = _tmp59_;
4411 						valadoc_html_markup_writer_link (_tmp54_, _tmp57_, _tmp60_, NULL);
4412 						_g_free0 (_tmp57_);
4413 					}
4414 					_tmp61_ = child;
4415 					if (valadoc_html_basic_doclet_has_brief_description (self, _tmp61_)) {
4416 						ValadocHtmlMarkupWriter* _tmp62_;
4417 						ValadocApiNode* _tmp63_;
4418 						_tmp62_ = self->writer;
4419 						valadoc_markup_writer_text ((ValadocMarkupWriter*) _tmp62_, " - ");
4420 						_tmp63_ = child;
4421 						valadoc_html_basic_doclet_write_brief_description (self, _tmp63_, container);
4422 					}
4423 				} else {
4424 					ValadocHtmlMarkupWriter* _tmp64_;
4425 					gchar* _tmp65_;
4426 					gchar* _tmp66_;
4427 					gchar** _tmp67_;
4428 					gchar** _tmp68_;
4429 					gint _tmp68__length1;
4430 					gboolean _tmp69_ = FALSE;
4431 					ValadocApiNode* _tmp70_;
4432 					ValadocHtmlMarkupWriter* _tmp82_;
4433 					ValadocHtmlMarkupWriter* _tmp83_;
4434 					gchar* _tmp84_;
4435 					gchar* _tmp85_;
4436 					gchar** _tmp86_;
4437 					gchar** _tmp87_;
4438 					gint _tmp87__length1;
4439 					ValadocApiNode* _tmp88_;
4440 					ValadocHtmlMarkupWriter* _tmp89_;
4441 					_tmp64_ = self->writer;
4442 					_tmp65_ = g_strdup ("class");
4443 					_tmp66_ = g_strdup (VALADOC_HTML_BASIC_DOCLET_css_leaf_code_definition);
4444 					_tmp67_ = g_new0 (gchar*, 2 + 1);
4445 					_tmp67_[0] = _tmp65_;
4446 					_tmp67_[1] = _tmp66_;
4447 					_tmp68_ = _tmp67_;
4448 					_tmp68__length1 = 2;
4449 					valadoc_markup_writer_start_tag ((ValadocMarkupWriter*) _tmp64_, "span", _tmp68_, (gint) 2);
4450 					_tmp68_ = (_vala_array_free (_tmp68_, _tmp68__length1, (GDestroyNotify) g_free), NULL);
4451 					_tmp70_ = child;
4452 					if (VALADOC_API_IS_SYMBOL (_tmp70_)) {
4453 						ValadocApiNode* _tmp71_;
4454 						gboolean _tmp72_;
4455 						gboolean _tmp73_;
4456 						_tmp71_ = child;
4457 						_tmp72_ = valadoc_api_symbol_get_is_deprecated (G_TYPE_CHECK_INSTANCE_CAST (_tmp71_, VALADOC_API_TYPE_SYMBOL, ValadocApiSymbol));
4458 						_tmp73_ = _tmp72_;
4459 						_tmp69_ = _tmp73_;
4460 					} else {
4461 						_tmp69_ = FALSE;
4462 					}
4463 					if (_tmp69_) {
4464 						ValadocHtmlMarkupWriter* _tmp74_;
4465 						gchar* _tmp75_;
4466 						gchar* _tmp76_;
4467 						gchar** _tmp77_;
4468 						gchar** _tmp78_;
4469 						gint _tmp78__length1;
4470 						ValadocApiNode* _tmp79_;
4471 						ValadocHtmlMarkupWriter* _tmp80_;
4472 						_tmp74_ = self->writer;
4473 						_tmp75_ = g_strdup ("class");
4474 						_tmp76_ = g_strdup (VALADOC_HTML_BASIC_DOCLET_css_deprecated);
4475 						_tmp77_ = g_new0 (gchar*, 2 + 1);
4476 						_tmp77_[0] = _tmp75_;
4477 						_tmp77_[1] = _tmp76_;
4478 						_tmp78_ = _tmp77_;
4479 						_tmp78__length1 = 2;
4480 						valadoc_markup_writer_start_tag ((ValadocMarkupWriter*) _tmp74_, "span", _tmp78_, (gint) 2);
4481 						_tmp78_ = (_vala_array_free (_tmp78_, _tmp78__length1, (GDestroyNotify) g_free), NULL);
4482 						_tmp79_ = child;
4483 						valadoc_html_basic_doclet_write_signature (self, _tmp79_, container);
4484 						_tmp80_ = self->writer;
4485 						valadoc_markup_writer_end_tag ((ValadocMarkupWriter*) _tmp80_, "span");
4486 					} else {
4487 						ValadocApiNode* _tmp81_;
4488 						_tmp81_ = child;
4489 						valadoc_html_basic_doclet_write_signature (self, _tmp81_, container);
4490 					}
4491 					_tmp82_ = self->writer;
4492 					valadoc_markup_writer_end_tag ((ValadocMarkupWriter*) _tmp82_, "span");
4493 					_tmp83_ = self->writer;
4494 					_tmp84_ = g_strdup ("class");
4495 					_tmp85_ = g_strdup (VALADOC_HTML_BASIC_DOCLET_css_leaf_brief_description);
4496 					_tmp86_ = g_new0 (gchar*, 2 + 1);
4497 					_tmp86_[0] = _tmp84_;
4498 					_tmp86_[1] = _tmp85_;
4499 					_tmp87_ = _tmp86_;
4500 					_tmp87__length1 = 2;
4501 					valadoc_markup_writer_start_tag ((ValadocMarkupWriter*) _tmp83_, "div", _tmp87_, (gint) 2);
4502 					_tmp87_ = (_vala_array_free (_tmp87_, _tmp87__length1, (GDestroyNotify) g_free), NULL);
4503 					_tmp88_ = child;
4504 					valadoc_html_basic_doclet_write_brief_description (self, _tmp88_, container);
4505 					_tmp89_ = self->writer;
4506 					valadoc_markup_writer_end_tag ((ValadocMarkupWriter*) _tmp89_, "div");
4507 				}
4508 				_tmp90_ = self->writer;
4509 				valadoc_markup_writer_end_tag ((ValadocMarkupWriter*) _tmp90_, "li");
4510 				_g_object_unref0 (child);
4511 			}
4512 			_vala_iterable_unref0 (_child_list);
4513 		}
4514 		_tmp91_ = self->writer;
4515 		valadoc_markup_writer_end_tag ((ValadocMarkupWriter*) _tmp91_, "ul");
4516 	}
4517 	_vala_iterable_unref0 (children);
4518 }
4519 
4520 void
valadoc_html_basic_doclet_write_image_block(ValadocHtmlBasicDoclet * self,ValadocApiNode * element)4521 valadoc_html_basic_doclet_write_image_block (ValadocHtmlBasicDoclet* self,
4522                                              ValadocApiNode* element)
4523 {
4524 	gboolean _tmp0_ = FALSE;
4525 	gboolean _tmp1_ = FALSE;
4526 	g_return_if_fail (self != NULL);
4527 	g_return_if_fail (element != NULL);
4528 	if (VALADOC_API_IS_CLASS (element)) {
4529 		_tmp1_ = TRUE;
4530 	} else {
4531 		_tmp1_ = VALADOC_API_IS_INTERFACE (element);
4532 	}
4533 	if (_tmp1_) {
4534 		_tmp0_ = TRUE;
4535 	} else {
4536 		_tmp0_ = VALADOC_API_IS_STRUCT (element);
4537 	}
4538 	if (_tmp0_) {
4539 		const gchar* _tmp2_ = NULL;
4540 		ValadocSettings* _tmp3_;
4541 		const gchar* format = NULL;
4542 		ValadocChartsHierarchy* chart = NULL;
4543 		ValadocChartsFactory* _tmp4_;
4544 		ValadocChartsHierarchy* _tmp5_;
4545 		ValadocChartsHierarchy* _tmp6_;
4546 		const gchar* _tmp7_;
4547 		gchar* _tmp8_;
4548 		gchar* _tmp9_;
4549 		const gchar* _tmp10_;
4550 		ValadocHtmlMarkupWriter* _tmp11_;
4551 		gchar* _tmp12_;
4552 		gchar* _tmp13_;
4553 		gchar** _tmp14_;
4554 		gchar** _tmp15_;
4555 		gint _tmp15__length1;
4556 		ValadocMarkupWriter* _tmp16_;
4557 		ValadocMarkupWriter* _tmp17_;
4558 		ValadocHtmlMarkupWriter* _tmp18_;
4559 		gchar* _tmp19_;
4560 		gchar* _tmp20_;
4561 		gchar* _tmp21_;
4562 		gchar* _tmp22_;
4563 		gchar* _tmp23_;
4564 		gchar* _tmp24_;
4565 		gchar* _tmp25_;
4566 		const gchar* _tmp26_;
4567 		const gchar* _tmp27_;
4568 		gchar* _tmp28_;
4569 		gchar* _tmp29_;
4570 		const gchar* _tmp30_;
4571 		gchar* _tmp31_;
4572 		gchar** _tmp32_;
4573 		gchar** _tmp33_;
4574 		gint _tmp33__length1;
4575 		ValadocHtmlMarkupWriter* _tmp34_;
4576 		ValadocChartsHierarchy* _tmp35_;
4577 		_tmp3_ = self->priv->_settings;
4578 		if (_tmp3_->use_svg_images) {
4579 			_tmp2_ = "svg";
4580 		} else {
4581 			_tmp2_ = "png";
4582 		}
4583 		format = _tmp2_;
4584 		_tmp4_ = self->image_factory;
4585 		_tmp5_ = valadoc_charts_hierarchy_new (_tmp4_, element);
4586 		chart = _tmp5_;
4587 		_tmp6_ = chart;
4588 		_tmp7_ = format;
4589 		_tmp8_ = valadoc_html_basic_doclet_get_img_path (self, element, _tmp7_);
4590 		_tmp9_ = _tmp8_;
4591 		_tmp10_ = format;
4592 		valadoc_charts_chart_save ((ValadocChartsChart*) _tmp6_, _tmp9_, _tmp10_);
4593 		_g_free0 (_tmp9_);
4594 		_tmp11_ = self->writer;
4595 		_tmp12_ = g_strdup ("class");
4596 		_tmp13_ = g_strdup (VALADOC_HTML_BASIC_DOCLET_css_title);
4597 		_tmp14_ = g_new0 (gchar*, 2 + 1);
4598 		_tmp14_[0] = _tmp12_;
4599 		_tmp14_[1] = _tmp13_;
4600 		_tmp15_ = _tmp14_;
4601 		_tmp15__length1 = 2;
4602 		_tmp16_ = valadoc_markup_writer_start_tag ((ValadocMarkupWriter*) _tmp11_, "h2", _tmp15_, (gint) 2);
4603 		_tmp17_ = valadoc_markup_writer_text (_tmp16_, "Object Hierarchy:");
4604 		valadoc_markup_writer_end_tag (_tmp17_, "h2");
4605 		_tmp15_ = (_vala_array_free (_tmp15_, _tmp15__length1, (GDestroyNotify) g_free), NULL);
4606 		_tmp18_ = self->writer;
4607 		_tmp19_ = g_strdup ("class");
4608 		_tmp20_ = g_strdup (VALADOC_HTML_BASIC_DOCLET_css_diagram);
4609 		_tmp21_ = g_strdup ("usemap");
4610 		_tmp22_ = valadoc_api_node_get_full_name (element);
4611 		_tmp23_ = _tmp22_;
4612 		_tmp24_ = g_strconcat ("#", _tmp23_, NULL);
4613 		_tmp25_ = g_strdup ("alt");
4614 		_tmp26_ = valadoc_api_node_get_name (element);
4615 		_tmp27_ = _tmp26_;
4616 		_tmp28_ = g_strdup_printf ("Object hierarchy for %s", _tmp27_);
4617 		_tmp29_ = g_strdup ("src");
4618 		_tmp30_ = format;
4619 		_tmp31_ = valadoc_html_basic_doclet_get_img_path_html (self, element, _tmp30_);
4620 		_tmp32_ = g_new0 (gchar*, 8 + 1);
4621 		_tmp32_[0] = _tmp19_;
4622 		_tmp32_[1] = _tmp20_;
4623 		_tmp32_[2] = _tmp21_;
4624 		_tmp32_[3] = _tmp24_;
4625 		_tmp32_[4] = _tmp25_;
4626 		_tmp32_[5] = _tmp28_;
4627 		_tmp32_[6] = _tmp29_;
4628 		_tmp32_[7] = _tmp31_;
4629 		_tmp33_ = _tmp32_;
4630 		_tmp33__length1 = 8;
4631 		valadoc_markup_writer_simple_tag ((ValadocMarkupWriter*) _tmp18_, "img", _tmp33_, (gint) 8);
4632 		_tmp33_ = (_vala_array_free (_tmp33_, _tmp33__length1, (GDestroyNotify) g_free), NULL);
4633 		_g_free0 (_tmp23_);
4634 		_tmp34_ = self->writer;
4635 		_tmp35_ = chart;
4636 		valadoc_html_markup_writer_add_usemap (_tmp34_, (ValadocChartsChart*) _tmp35_);
4637 		_g_object_unref0 (chart);
4638 	}
4639 }
4640 
4641 void
valadoc_html_basic_doclet_write_namespace_content(ValadocHtmlBasicDoclet * self,ValadocApiNamespace * node,ValadocApiNode * parent)4642 valadoc_html_basic_doclet_write_namespace_content (ValadocHtmlBasicDoclet* self,
4643                                                    ValadocApiNamespace* node,
4644                                                    ValadocApiNode* parent)
4645 {
4646 	ValadocHtmlMarkupWriter* _tmp0_;
4647 	gchar* _tmp1_;
4648 	gchar* _tmp2_;
4649 	gchar** _tmp3_;
4650 	gchar** _tmp4_;
4651 	gint _tmp4__length1;
4652 	gchar* _tmp5_ = NULL;
4653 	const gchar* _tmp6_;
4654 	const gchar* _tmp7_;
4655 	ValadocHtmlMarkupWriter* _tmp10_;
4656 	gchar* _tmp11_;
4657 	gchar* _tmp12_;
4658 	gchar** _tmp13_;
4659 	gchar** _tmp14_;
4660 	gint _tmp14__length1;
4661 	ValadocMarkupWriter* _tmp15_;
4662 	ValadocMarkupWriter* _tmp16_;
4663 	ValadocHtmlMarkupWriter* _tmp17_;
4664 	gchar* _tmp18_;
4665 	gchar* _tmp19_;
4666 	gchar** _tmp20_;
4667 	gchar** _tmp21_;
4668 	gint _tmp21__length1;
4669 	ValadocHtmlMarkupWriter* _tmp22_;
4670 	gchar* _tmp23_;
4671 	gchar* _tmp24_;
4672 	gchar** _tmp25_;
4673 	gchar** _tmp26_;
4674 	gint _tmp26__length1;
4675 	ValadocMarkupWriter* _tmp27_;
4676 	ValadocMarkupWriter* _tmp28_;
4677 	ValadocHtmlMarkupWriter* _tmp29_;
4678 	gchar* _tmp30_;
4679 	gchar* _tmp31_;
4680 	gchar** _tmp32_;
4681 	gchar** _tmp33_;
4682 	gint _tmp33__length1;
4683 	ValadocMarkupWriter* _tmp34_;
4684 	ValadocMarkupWriter* _tmp35_;
4685 	const gchar* _tmp36_;
4686 	const gchar* _tmp37_;
4687 	ValadocHtmlMarkupWriter* _tmp40_;
4688 	g_return_if_fail (self != NULL);
4689 	g_return_if_fail (node != NULL);
4690 	_tmp0_ = self->writer;
4691 	_tmp1_ = g_strdup ("class");
4692 	_tmp2_ = g_strdup (VALADOC_HTML_BASIC_DOCLET_css_style_content);
4693 	_tmp3_ = g_new0 (gchar*, 2 + 1);
4694 	_tmp3_[0] = _tmp1_;
4695 	_tmp3_[1] = _tmp2_;
4696 	_tmp4_ = _tmp3_;
4697 	_tmp4__length1 = 2;
4698 	valadoc_markup_writer_start_tag ((ValadocMarkupWriter*) _tmp0_, "div", _tmp4_, (gint) 2);
4699 	_tmp4_ = (_vala_array_free (_tmp4_, _tmp4__length1, (GDestroyNotify) g_free), NULL);
4700 	_tmp6_ = valadoc_api_node_get_name ((ValadocApiNode*) node);
4701 	_tmp7_ = _tmp6_;
4702 	if (_tmp7_ == NULL) {
4703 		gchar* _tmp8_;
4704 		_tmp8_ = g_strdup ("Global Namespace");
4705 		_g_free0 (_tmp5_);
4706 		_tmp5_ = _tmp8_;
4707 	} else {
4708 		gchar* _tmp9_;
4709 		_tmp9_ = valadoc_api_node_get_full_name ((ValadocApiNode*) node);
4710 		_g_free0 (_tmp5_);
4711 		_tmp5_ = _tmp9_;
4712 	}
4713 	_tmp10_ = self->writer;
4714 	_tmp11_ = g_strdup ("class");
4715 	_tmp12_ = g_strdup (VALADOC_HTML_BASIC_DOCLET_css_title);
4716 	_tmp13_ = g_new0 (gchar*, 2 + 1);
4717 	_tmp13_[0] = _tmp11_;
4718 	_tmp13_[1] = _tmp12_;
4719 	_tmp14_ = _tmp13_;
4720 	_tmp14__length1 = 2;
4721 	_tmp15_ = valadoc_markup_writer_start_tag ((ValadocMarkupWriter*) _tmp10_, "h1", _tmp14_, (gint) 2);
4722 	_tmp16_ = valadoc_markup_writer_text (_tmp15_, _tmp5_);
4723 	valadoc_markup_writer_end_tag (_tmp16_, "h1");
4724 	_tmp14_ = (_vala_array_free (_tmp14_, _tmp14__length1, (GDestroyNotify) g_free), NULL);
4725 	_tmp17_ = self->writer;
4726 	_tmp18_ = g_strdup ("class");
4727 	_tmp19_ = g_strdup (VALADOC_HTML_BASIC_DOCLET_css_hr);
4728 	_tmp20_ = g_new0 (gchar*, 2 + 1);
4729 	_tmp20_[0] = _tmp18_;
4730 	_tmp20_[1] = _tmp19_;
4731 	_tmp21_ = _tmp20_;
4732 	_tmp21__length1 = 2;
4733 	valadoc_markup_writer_simple_tag ((ValadocMarkupWriter*) _tmp17_, "hr", _tmp21_, (gint) 2);
4734 	_tmp21_ = (_vala_array_free (_tmp21_, _tmp21__length1, (GDestroyNotify) g_free), NULL);
4735 	_tmp22_ = self->writer;
4736 	_tmp23_ = g_strdup ("class");
4737 	_tmp24_ = g_strdup (VALADOC_HTML_BASIC_DOCLET_css_title);
4738 	_tmp25_ = g_new0 (gchar*, 2 + 1);
4739 	_tmp25_[0] = _tmp23_;
4740 	_tmp25_[1] = _tmp24_;
4741 	_tmp26_ = _tmp25_;
4742 	_tmp26__length1 = 2;
4743 	_tmp27_ = valadoc_markup_writer_start_tag ((ValadocMarkupWriter*) _tmp22_, "h2", _tmp26_, (gint) 2);
4744 	_tmp28_ = valadoc_markup_writer_text (_tmp27_, "Description:");
4745 	valadoc_markup_writer_end_tag (_tmp28_, "h2");
4746 	_tmp26_ = (_vala_array_free (_tmp26_, _tmp26__length1, (GDestroyNotify) g_free), NULL);
4747 	valadoc_html_basic_doclet_write_documentation (self, (ValadocApiNode*) node, parent);
4748 	_tmp29_ = self->writer;
4749 	_tmp30_ = g_strdup ("class");
4750 	_tmp31_ = g_strdup (VALADOC_HTML_BASIC_DOCLET_css_title);
4751 	_tmp32_ = g_new0 (gchar*, 2 + 1);
4752 	_tmp32_[0] = _tmp30_;
4753 	_tmp32_[1] = _tmp31_;
4754 	_tmp33_ = _tmp32_;
4755 	_tmp33__length1 = 2;
4756 	_tmp34_ = valadoc_markup_writer_start_tag ((ValadocMarkupWriter*) _tmp29_, "h2", _tmp33_, (gint) 2);
4757 	_tmp35_ = valadoc_markup_writer_text (_tmp34_, "Content:");
4758 	valadoc_markup_writer_end_tag (_tmp35_, "h2");
4759 	_tmp33_ = (_vala_array_free (_tmp33_, _tmp33__length1, (GDestroyNotify) g_free), NULL);
4760 	_tmp36_ = valadoc_api_node_get_name ((ValadocApiNode*) node);
4761 	_tmp37_ = _tmp36_;
4762 	if (_tmp37_ == NULL) {
4763 		ValadocApiItem* _tmp38_;
4764 		ValadocApiItem* _tmp39_;
4765 		_tmp38_ = valadoc_api_item_get_parent ((ValadocApiItem*) node);
4766 		_tmp39_ = _tmp38_;
4767 		valadoc_html_basic_doclet_write_child_namespaces (self, (ValadocApiNode*) G_TYPE_CHECK_INSTANCE_CAST (_tmp39_, VALADOC_API_TYPE_PACKAGE, ValadocApiPackage), parent);
4768 	} else {
4769 		valadoc_html_basic_doclet_write_child_namespaces (self, (ValadocApiNode*) node, parent);
4770 	}
4771 	valadoc_html_basic_doclet_write_children (self, (ValadocApiNode*) node, VALADOC_API_NODE_TYPE_INTERFACE, "Interfaces", parent);
4772 	valadoc_html_basic_doclet_write_children (self, (ValadocApiNode*) node, VALADOC_API_NODE_TYPE_CLASS, "Classes", parent);
4773 	valadoc_html_basic_doclet_write_children (self, (ValadocApiNode*) node, VALADOC_API_NODE_TYPE_STRUCT, "Structs", parent);
4774 	valadoc_html_basic_doclet_write_children (self, (ValadocApiNode*) node, VALADOC_API_NODE_TYPE_ENUM, "Enums", parent);
4775 	valadoc_html_basic_doclet_write_children (self, (ValadocApiNode*) node, VALADOC_API_NODE_TYPE_ERROR_DOMAIN, "Error domains", parent);
4776 	valadoc_html_basic_doclet_write_children (self, (ValadocApiNode*) node, VALADOC_API_NODE_TYPE_CONSTANT, "Constants", parent);
4777 	valadoc_html_basic_doclet_write_children (self, (ValadocApiNode*) node, VALADOC_API_NODE_TYPE_DELEGATE, "Delegates", parent);
4778 	valadoc_html_basic_doclet_write_children (self, (ValadocApiNode*) node, VALADOC_API_NODE_TYPE_METHOD, "Functions", parent);
4779 	valadoc_html_basic_doclet_write_children (self, (ValadocApiNode*) node, VALADOC_API_NODE_TYPE_FIELD, "Fields", parent);
4780 	_tmp40_ = self->writer;
4781 	valadoc_markup_writer_end_tag ((ValadocMarkupWriter*) _tmp40_, "div");
4782 	_g_free0 (_tmp5_);
4783 }
4784 
4785 void
valadoc_html_basic_doclet_write_package_content(ValadocHtmlBasicDoclet * self,ValadocApiPackage * node,ValadocApiNode * parent)4786 valadoc_html_basic_doclet_write_package_content (ValadocHtmlBasicDoclet* self,
4787                                                  ValadocApiPackage* node,
4788                                                  ValadocApiNode* parent)
4789 {
4790 	ValadocHtmlMarkupWriter* _tmp0_;
4791 	gchar* _tmp1_;
4792 	gchar* _tmp2_;
4793 	gchar** _tmp3_;
4794 	gchar** _tmp4_;
4795 	gint _tmp4__length1;
4796 	ValadocHtmlMarkupWriter* _tmp5_;
4797 	gchar* _tmp6_;
4798 	gchar* _tmp7_;
4799 	gchar* _tmp8_;
4800 	const gchar* _tmp9_;
4801 	const gchar* _tmp10_;
4802 	gchar* _tmp11_;
4803 	gchar** _tmp12_;
4804 	gchar** _tmp13_;
4805 	gint _tmp13__length1;
4806 	ValadocMarkupWriter* _tmp14_;
4807 	const gchar* _tmp15_;
4808 	const gchar* _tmp16_;
4809 	ValadocMarkupWriter* _tmp17_;
4810 	ValadocHtmlMarkupWriter* _tmp18_;
4811 	gchar* _tmp19_;
4812 	gchar* _tmp20_;
4813 	gchar** _tmp21_;
4814 	gchar** _tmp22_;
4815 	gint _tmp22__length1;
4816 	ValadocHtmlMarkupWriter* _tmp23_;
4817 	gchar* _tmp24_;
4818 	gchar* _tmp25_;
4819 	gchar** _tmp26_;
4820 	gchar** _tmp27_;
4821 	gint _tmp27__length1;
4822 	ValadocMarkupWriter* _tmp28_;
4823 	ValadocMarkupWriter* _tmp29_;
4824 	ValadocWikiPage* _tmp30_ = NULL;
4825 	ValadocApiTree* _tmp31_;
4826 	ValadocWikiPageTree* _tmp32_;
4827 	ValadocWikiPageTree* _tmp33_;
4828 	ValadocWikiPage* wikipage = NULL;
4829 	ValadocWikiPage* _tmp39_;
4830 	ValadocWikiPage* _tmp40_;
4831 	ValadocHtmlMarkupWriter* _tmp46_;
4832 	gchar* _tmp47_;
4833 	gchar* _tmp48_;
4834 	gchar** _tmp49_;
4835 	gchar** _tmp50_;
4836 	gint _tmp50__length1;
4837 	ValadocMarkupWriter* _tmp51_;
4838 	ValadocMarkupWriter* _tmp52_;
4839 	ValadocHtmlMarkupWriter* _tmp73_;
4840 	g_return_if_fail (self != NULL);
4841 	g_return_if_fail (node != NULL);
4842 	_tmp0_ = self->writer;
4843 	_tmp1_ = g_strdup ("class");
4844 	_tmp2_ = g_strdup (VALADOC_HTML_BASIC_DOCLET_css_style_content);
4845 	_tmp3_ = g_new0 (gchar*, 2 + 1);
4846 	_tmp3_[0] = _tmp1_;
4847 	_tmp3_[1] = _tmp2_;
4848 	_tmp4_ = _tmp3_;
4849 	_tmp4__length1 = 2;
4850 	valadoc_markup_writer_start_tag ((ValadocMarkupWriter*) _tmp0_, "div", _tmp4_, (gint) 2);
4851 	_tmp4_ = (_vala_array_free (_tmp4_, _tmp4__length1, (GDestroyNotify) g_free), NULL);
4852 	_tmp5_ = self->writer;
4853 	_tmp6_ = g_strdup ("class");
4854 	_tmp7_ = g_strdup (VALADOC_HTML_BASIC_DOCLET_css_title);
4855 	_tmp8_ = g_strdup ("id");
4856 	_tmp9_ = valadoc_api_node_get_name ((ValadocApiNode*) node);
4857 	_tmp10_ = _tmp9_;
4858 	_tmp11_ = g_strdup (_tmp10_);
4859 	_tmp12_ = g_new0 (gchar*, 4 + 1);
4860 	_tmp12_[0] = _tmp6_;
4861 	_tmp12_[1] = _tmp7_;
4862 	_tmp12_[2] = _tmp8_;
4863 	_tmp12_[3] = _tmp11_;
4864 	_tmp13_ = _tmp12_;
4865 	_tmp13__length1 = 4;
4866 	_tmp14_ = valadoc_markup_writer_start_tag ((ValadocMarkupWriter*) _tmp5_, "h1", _tmp13_, (gint) 4);
4867 	_tmp15_ = valadoc_api_node_get_name ((ValadocApiNode*) node);
4868 	_tmp16_ = _tmp15_;
4869 	_tmp17_ = valadoc_markup_writer_text (_tmp14_, _tmp16_);
4870 	valadoc_markup_writer_end_tag (_tmp17_, "h1");
4871 	_tmp13_ = (_vala_array_free (_tmp13_, _tmp13__length1, (GDestroyNotify) g_free), NULL);
4872 	_tmp18_ = self->writer;
4873 	_tmp19_ = g_strdup ("class");
4874 	_tmp20_ = g_strdup (VALADOC_HTML_BASIC_DOCLET_css_headline_hr);
4875 	_tmp21_ = g_new0 (gchar*, 2 + 1);
4876 	_tmp21_[0] = _tmp19_;
4877 	_tmp21_[1] = _tmp20_;
4878 	_tmp22_ = _tmp21_;
4879 	_tmp22__length1 = 2;
4880 	valadoc_markup_writer_simple_tag ((ValadocMarkupWriter*) _tmp18_, "hr", _tmp22_, (gint) 2);
4881 	_tmp22_ = (_vala_array_free (_tmp22_, _tmp22__length1, (GDestroyNotify) g_free), NULL);
4882 	_tmp23_ = self->writer;
4883 	_tmp24_ = g_strdup ("class");
4884 	_tmp25_ = g_strdup (VALADOC_HTML_BASIC_DOCLET_css_title);
4885 	_tmp26_ = g_new0 (gchar*, 2 + 1);
4886 	_tmp26_[0] = _tmp24_;
4887 	_tmp26_[1] = _tmp25_;
4888 	_tmp27_ = _tmp26_;
4889 	_tmp27__length1 = 2;
4890 	_tmp28_ = valadoc_markup_writer_start_tag ((ValadocMarkupWriter*) _tmp23_, "h2", _tmp27_, (gint) 2);
4891 	_tmp29_ = valadoc_markup_writer_text (_tmp28_, "Description:");
4892 	valadoc_markup_writer_end_tag (_tmp29_, "h2");
4893 	_tmp27_ = (_vala_array_free (_tmp27_, _tmp27__length1, (GDestroyNotify) g_free), NULL);
4894 	_tmp31_ = self->tree;
4895 	_tmp32_ = valadoc_api_tree_get_wikitree (_tmp31_);
4896 	_tmp33_ = _tmp32_;
4897 	if (_tmp33_ == NULL) {
4898 		_g_object_unref0 (_tmp30_);
4899 		_tmp30_ = NULL;
4900 	} else {
4901 		ValadocApiTree* _tmp34_;
4902 		ValadocWikiPageTree* _tmp35_;
4903 		ValadocWikiPageTree* _tmp36_;
4904 		const gchar* _tmp37_;
4905 		ValadocWikiPage* _tmp38_;
4906 		_tmp34_ = self->tree;
4907 		_tmp35_ = valadoc_api_tree_get_wikitree (_tmp34_);
4908 		_tmp36_ = _tmp35_;
4909 		_tmp37_ = self->priv->_wiki_index_name;
4910 		_tmp38_ = valadoc_wiki_page_tree_search (_tmp36_, _tmp37_);
4911 		_g_object_unref0 (_tmp30_);
4912 		_tmp30_ = _tmp38_;
4913 	}
4914 	_tmp39_ = _g_object_ref0 (_tmp30_);
4915 	wikipage = _tmp39_;
4916 	_tmp40_ = wikipage;
4917 	if (_tmp40_ != NULL) {
4918 		ValadocHtmlHtmlRenderer* _tmp41_;
4919 		ValadocHtmlHtmlRenderer* _tmp42_;
4920 		ValadocWikiPage* _tmp43_;
4921 		ValadocContentPage* _tmp44_;
4922 		ValadocContentPage* _tmp45_;
4923 		_tmp41_ = self->_renderer;
4924 		valadoc_html_html_renderer_set_container (_tmp41_, (ValadocDocumentation*) parent);
4925 		_tmp42_ = self->_renderer;
4926 		_tmp43_ = wikipage;
4927 		_tmp44_ = valadoc_wiki_page_get_documentation (_tmp43_);
4928 		_tmp45_ = _tmp44_;
4929 		valadoc_content_content_renderer_render ((ValadocContentContentRenderer*) _tmp42_, (ValadocContentContentElement*) _tmp45_);
4930 	}
4931 	_tmp46_ = self->writer;
4932 	_tmp47_ = g_strdup ("class");
4933 	_tmp48_ = g_strdup (VALADOC_HTML_BASIC_DOCLET_css_title);
4934 	_tmp49_ = g_new0 (gchar*, 2 + 1);
4935 	_tmp49_[0] = _tmp47_;
4936 	_tmp49_[1] = _tmp48_;
4937 	_tmp50_ = _tmp49_;
4938 	_tmp50__length1 = 2;
4939 	_tmp51_ = valadoc_markup_writer_start_tag ((ValadocMarkupWriter*) _tmp46_, "h2", _tmp50_, (gint) 2);
4940 	_tmp52_ = valadoc_markup_writer_text (_tmp51_, "Content:");
4941 	valadoc_markup_writer_end_tag (_tmp52_, "h2");
4942 	_tmp50_ = (_vala_array_free (_tmp50_, _tmp50__length1, (GDestroyNotify) g_free), NULL);
4943 	valadoc_html_basic_doclet_write_child_namespaces (self, (ValadocApiNode*) node, parent);
4944 	{
4945 		ValaList* _child_list = NULL;
4946 		ValaList* _tmp53_;
4947 		gint _child_size = 0;
4948 		ValaList* _tmp54_;
4949 		gint _tmp55_;
4950 		gint _tmp56_;
4951 		gint _child_index = 0;
4952 		_tmp53_ = valadoc_api_node_get_children_by_type ((ValadocApiNode*) node, VALADOC_API_NODE_TYPE_NAMESPACE, TRUE);
4953 		_child_list = _tmp53_;
4954 		_tmp54_ = _child_list;
4955 		_tmp55_ = vala_collection_get_size ((ValaCollection*) _tmp54_);
4956 		_tmp56_ = _tmp55_;
4957 		_child_size = _tmp56_;
4958 		_child_index = -1;
4959 		while (TRUE) {
4960 			gint _tmp57_;
4961 			gint _tmp58_;
4962 			ValadocApiNode* child = NULL;
4963 			ValaList* _tmp59_;
4964 			gpointer _tmp60_;
4965 			ValadocApiNode* _tmp61_;
4966 			const gchar* _tmp62_;
4967 			const gchar* _tmp63_;
4968 			_child_index = _child_index + 1;
4969 			_tmp57_ = _child_index;
4970 			_tmp58_ = _child_size;
4971 			if (!(_tmp57_ < _tmp58_)) {
4972 				break;
4973 			}
4974 			_tmp59_ = _child_list;
4975 			_tmp60_ = vala_list_get (_tmp59_, _child_index);
4976 			child = (ValadocApiNode*) _tmp60_;
4977 			_tmp61_ = child;
4978 			_tmp62_ = valadoc_api_node_get_name (_tmp61_);
4979 			_tmp63_ = _tmp62_;
4980 			if (_tmp63_ == NULL) {
4981 				ValadocApiNode* _tmp64_;
4982 				ValadocApiNode* _tmp65_;
4983 				ValadocApiNode* _tmp66_;
4984 				ValadocApiNode* _tmp67_;
4985 				ValadocApiNode* _tmp68_;
4986 				ValadocApiNode* _tmp69_;
4987 				ValadocApiNode* _tmp70_;
4988 				ValadocApiNode* _tmp71_;
4989 				ValadocApiNode* _tmp72_;
4990 				_tmp64_ = child;
4991 				valadoc_html_basic_doclet_write_children (self, _tmp64_, VALADOC_API_NODE_TYPE_INTERFACE, "Interfaces", parent);
4992 				_tmp65_ = child;
4993 				valadoc_html_basic_doclet_write_children (self, _tmp65_, VALADOC_API_NODE_TYPE_CLASS, "Classes", parent);
4994 				_tmp66_ = child;
4995 				valadoc_html_basic_doclet_write_children (self, _tmp66_, VALADOC_API_NODE_TYPE_STRUCT, "Structs", parent);
4996 				_tmp67_ = child;
4997 				valadoc_html_basic_doclet_write_children (self, _tmp67_, VALADOC_API_NODE_TYPE_ENUM, "Enums", parent);
4998 				_tmp68_ = child;
4999 				valadoc_html_basic_doclet_write_children (self, _tmp68_, VALADOC_API_NODE_TYPE_ERROR_DOMAIN, "Error domains", parent);
5000 				_tmp69_ = child;
5001 				valadoc_html_basic_doclet_write_children (self, _tmp69_, VALADOC_API_NODE_TYPE_CONSTANT, "Constants", parent);
5002 				_tmp70_ = child;
5003 				valadoc_html_basic_doclet_write_children (self, _tmp70_, VALADOC_API_NODE_TYPE_DELEGATE, "Delegates", parent);
5004 				_tmp71_ = child;
5005 				valadoc_html_basic_doclet_write_children (self, _tmp71_, VALADOC_API_NODE_TYPE_METHOD, "Functions", parent);
5006 				_tmp72_ = child;
5007 				valadoc_html_basic_doclet_write_children (self, _tmp72_, VALADOC_API_NODE_TYPE_FIELD, "Fields", parent);
5008 			}
5009 			_g_object_unref0 (child);
5010 		}
5011 		_vala_iterable_unref0 (_child_list);
5012 	}
5013 	valadoc_html_basic_doclet_write_child_dependencies (self, node, parent);
5014 	_tmp73_ = self->writer;
5015 	valadoc_markup_writer_end_tag ((ValadocMarkupWriter*) _tmp73_, "div");
5016 	_g_object_unref0 (wikipage);
5017 	_g_object_unref0 (_tmp30_);
5018 }
5019 
5020 void
valadoc_html_basic_doclet_write_file_header(ValadocHtmlBasicDoclet * self,const gchar * css,const gchar * js,const gchar * title)5021 valadoc_html_basic_doclet_write_file_header (ValadocHtmlBasicDoclet* self,
5022                                              const gchar* css,
5023                                              const gchar* js,
5024                                              const gchar* title)
5025 {
5026 	ValadocHtmlMarkupWriter* _tmp0_;
5027 	ValadocHtmlMarkupWriter* _tmp1_;
5028 	ValadocHtmlMarkupWriter* _tmp2_;
5029 	gchar* _tmp3_;
5030 	gchar* _tmp4_;
5031 	gchar** _tmp5_;
5032 	gchar** _tmp6_;
5033 	gint _tmp6__length1;
5034 	ValadocHtmlMarkupWriter* _tmp14_;
5035 	ValadocHtmlMarkupWriter* _tmp15_;
5036 	ValadocHtmlMarkupWriter* _tmp16_;
5037 	ValadocHtmlMarkupWriter* _tmp17_;
5038 	ValadocHtmlMarkupWriter* _tmp18_;
5039 	gchar* _tmp19_;
5040 	gchar* _tmp20_;
5041 	gchar** _tmp21_;
5042 	gchar** _tmp22_;
5043 	gint _tmp22__length1;
5044 	const gchar* _tmp23_ = NULL;
5045 	ValadocHtmlMarkupWriter* _tmp24_;
5046 	gchar* _tmp25_;
5047 	gchar* _tmp26_;
5048 	ValadocHtmlMarkupWriter* _tmp27_;
5049 	ValadocHtmlMarkupWriter* _tmp28_;
5050 	gchar* _tmp29_;
5051 	gchar* _tmp30_;
5052 	gchar** _tmp31_;
5053 	gchar** _tmp32_;
5054 	gint _tmp32__length1;
5055 	g_return_if_fail (self != NULL);
5056 	g_return_if_fail (css != NULL);
5057 	g_return_if_fail (js != NULL);
5058 	_tmp0_ = self->writer;
5059 	valadoc_markup_writer_start_tag ((ValadocMarkupWriter*) _tmp0_, "html", NULL, (gint) 0);
5060 	_tmp1_ = self->writer;
5061 	valadoc_markup_writer_start_tag ((ValadocMarkupWriter*) _tmp1_, "head", NULL, (gint) 0);
5062 	_tmp2_ = self->writer;
5063 	_tmp3_ = g_strdup ("charset");
5064 	_tmp4_ = g_strdup ("UTF-8");
5065 	_tmp5_ = g_new0 (gchar*, 2 + 1);
5066 	_tmp5_[0] = _tmp3_;
5067 	_tmp5_[1] = _tmp4_;
5068 	_tmp6_ = _tmp5_;
5069 	_tmp6__length1 = 2;
5070 	valadoc_markup_writer_simple_tag ((ValadocMarkupWriter*) _tmp2_, "meta", _tmp6_, (gint) 2);
5071 	_tmp6_ = (_vala_array_free (_tmp6_, _tmp6__length1, (GDestroyNotify) g_free), NULL);
5072 	if (title == NULL) {
5073 		ValadocHtmlMarkupWriter* _tmp7_;
5074 		ValadocMarkupWriter* _tmp8_;
5075 		ValadocMarkupWriter* _tmp9_;
5076 		_tmp7_ = self->writer;
5077 		_tmp8_ = valadoc_markup_writer_start_tag ((ValadocMarkupWriter*) _tmp7_, "title", NULL, (gint) 0);
5078 		_tmp9_ = valadoc_markup_writer_text (_tmp8_, "Vala Binding Reference");
5079 		valadoc_markup_writer_end_tag (_tmp9_, "title");
5080 	} else {
5081 		ValadocHtmlMarkupWriter* _tmp10_;
5082 		ValadocMarkupWriter* _tmp11_;
5083 		ValadocMarkupWriter* _tmp12_;
5084 		ValadocMarkupWriter* _tmp13_;
5085 		_tmp10_ = self->writer;
5086 		_tmp11_ = valadoc_markup_writer_start_tag ((ValadocMarkupWriter*) _tmp10_, "title", NULL, (gint) 0);
5087 		_tmp12_ = valadoc_markup_writer_text (_tmp11_, title);
5088 		_tmp13_ = valadoc_markup_writer_text (_tmp12_, " &ndash; Vala Binding Reference");
5089 		valadoc_markup_writer_end_tag (_tmp13_, "title");
5090 	}
5091 	_tmp14_ = self->writer;
5092 	valadoc_html_markup_writer_stylesheet_link (_tmp14_, css);
5093 	_tmp15_ = self->writer;
5094 	valadoc_html_markup_writer_javascript_link (_tmp15_, js);
5095 	_tmp16_ = self->writer;
5096 	valadoc_markup_writer_end_tag ((ValadocMarkupWriter*) _tmp16_, "head");
5097 	_tmp17_ = self->writer;
5098 	valadoc_markup_writer_start_tag ((ValadocMarkupWriter*) _tmp17_, "body", NULL, (gint) 0);
5099 	_tmp18_ = self->writer;
5100 	_tmp19_ = g_strdup ("class");
5101 	_tmp20_ = g_strdup (VALADOC_HTML_BASIC_DOCLET_css_site_header);
5102 	_tmp21_ = g_new0 (gchar*, 2 + 1);
5103 	_tmp21_[0] = _tmp19_;
5104 	_tmp21_[1] = _tmp20_;
5105 	_tmp22_ = _tmp21_;
5106 	_tmp22__length1 = 2;
5107 	valadoc_markup_writer_start_tag ((ValadocMarkupWriter*) _tmp18_, "div", _tmp22_, (gint) 2);
5108 	_tmp22_ = (_vala_array_free (_tmp22_, _tmp22__length1, (GDestroyNotify) g_free), NULL);
5109 	if (title == NULL) {
5110 		_tmp23_ = "";
5111 	} else {
5112 		_tmp23_ = title;
5113 	}
5114 	_tmp24_ = self->writer;
5115 	_tmp25_ = g_strdup_printf ("%s Reference Manual", _tmp23_);
5116 	_tmp26_ = _tmp25_;
5117 	valadoc_markup_writer_text ((ValadocMarkupWriter*) _tmp24_, _tmp26_);
5118 	_g_free0 (_tmp26_);
5119 	_tmp27_ = self->writer;
5120 	valadoc_markup_writer_end_tag ((ValadocMarkupWriter*) _tmp27_, "div");
5121 	_tmp28_ = self->writer;
5122 	_tmp29_ = g_strdup ("class");
5123 	_tmp30_ = g_strdup (VALADOC_HTML_BASIC_DOCLET_css_style_body);
5124 	_tmp31_ = g_new0 (gchar*, 2 + 1);
5125 	_tmp31_[0] = _tmp29_;
5126 	_tmp31_[1] = _tmp30_;
5127 	_tmp32_ = _tmp31_;
5128 	_tmp32__length1 = 2;
5129 	valadoc_markup_writer_start_tag ((ValadocMarkupWriter*) _tmp28_, "div", _tmp32_, (gint) 2);
5130 	_tmp32_ = (_vala_array_free (_tmp32_, _tmp32__length1, (GDestroyNotify) g_free), NULL);
5131 }
5132 
5133 void
valadoc_html_basic_doclet_write_file_footer(ValadocHtmlBasicDoclet * self)5134 valadoc_html_basic_doclet_write_file_footer (ValadocHtmlBasicDoclet* self)
5135 {
5136 	ValadocHtmlMarkupWriter* _tmp0_;
5137 	ValadocHtmlMarkupWriter* _tmp1_;
5138 	ValadocHtmlMarkupWriter* _tmp2_;
5139 	gchar* _tmp3_;
5140 	gchar* _tmp4_;
5141 	gchar** _tmp5_;
5142 	gchar** _tmp6_;
5143 	gint _tmp6__length1;
5144 	ValadocHtmlMarkupWriter* _tmp7_;
5145 	ValadocHtmlMarkupWriter* _tmp8_;
5146 	ValadocHtmlMarkupWriter* _tmp9_;
5147 	ValadocHtmlMarkupWriter* _tmp10_;
5148 	ValadocHtmlMarkupWriter* _tmp11_;
5149 	g_return_if_fail (self != NULL);
5150 	_tmp0_ = self->writer;
5151 	valadoc_markup_writer_end_tag ((ValadocMarkupWriter*) _tmp0_, "div");
5152 	_tmp1_ = self->writer;
5153 	valadoc_markup_writer_simple_tag ((ValadocMarkupWriter*) _tmp1_, "br", NULL, (gint) 0);
5154 	_tmp2_ = self->writer;
5155 	_tmp3_ = g_strdup ("class");
5156 	_tmp4_ = g_strdup ("site_footer");
5157 	_tmp5_ = g_new0 (gchar*, 2 + 1);
5158 	_tmp5_[0] = _tmp3_;
5159 	_tmp5_[1] = _tmp4_;
5160 	_tmp6_ = _tmp5_;
5161 	_tmp6__length1 = 2;
5162 	valadoc_markup_writer_start_tag ((ValadocMarkupWriter*) _tmp2_, "div", _tmp6_, (gint) 2);
5163 	_tmp6_ = (_vala_array_free (_tmp6_, _tmp6__length1, (GDestroyNotify) g_free), NULL);
5164 	_tmp7_ = self->writer;
5165 	valadoc_markup_writer_text ((ValadocMarkupWriter*) _tmp7_, "Generated by ");
5166 	_tmp8_ = self->writer;
5167 	valadoc_html_markup_writer_link (_tmp8_, "https://wiki.gnome.org/Projects/Valadoc", "<kbd>valadoc</kbd>", NULL);
5168 	_tmp9_ = self->writer;
5169 	valadoc_markup_writer_end_tag ((ValadocMarkupWriter*) _tmp9_, "div");
5170 	_tmp10_ = self->writer;
5171 	valadoc_markup_writer_end_tag ((ValadocMarkupWriter*) _tmp10_, "body");
5172 	_tmp11_ = self->writer;
5173 	valadoc_markup_writer_end_tag ((ValadocMarkupWriter*) _tmp11_, "html");
5174 }
5175 
5176 ValadocHtmlBasicDoclet*
valadoc_html_basic_doclet_construct(GType object_type)5177 valadoc_html_basic_doclet_construct (GType object_type)
5178 {
5179 	ValadocHtmlBasicDoclet * self = NULL;
5180 	self = (ValadocHtmlBasicDoclet*) valadoc_api_visitor_construct (object_type);
5181 	return self;
5182 }
5183 
5184 static void
valadoc_html_basic_doclet_class_init(ValadocHtmlBasicDocletClass * klass,gpointer klass_data)5185 valadoc_html_basic_doclet_class_init (ValadocHtmlBasicDocletClass * klass,
5186                                       gpointer klass_data)
5187 {
5188 	ValadocApiNodeType* _tmp0_;
5189 	valadoc_html_basic_doclet_parent_class = g_type_class_peek_parent (klass);
5190 	g_type_class_adjust_private_offset (klass, &ValadocHtmlBasicDoclet_private_offset);
5191 	((ValadocHtmlBasicDocletClass *) klass)->process = (void (*) (ValadocHtmlBasicDoclet*, ValadocSettings*, ValadocApiTree*, ValadocErrorReporter*)) valadoc_html_basic_doclet_real_process;
5192 	((ValadocHtmlBasicDocletClass *) klass)->get_img_path_html = (gchar* (*) (ValadocHtmlBasicDoclet*, ValadocApiNode*, const gchar*)) valadoc_html_basic_doclet_real_get_img_path_html;
5193 	((ValadocHtmlBasicDocletClass *) klass)->get_img_path = (gchar* (*) (ValadocHtmlBasicDoclet*, ValadocApiNode*, const gchar*)) valadoc_html_basic_doclet_real_get_img_path;
5194 	((ValadocHtmlBasicDocletClass *) klass)->get_icon_directory = (gchar* (*) (ValadocHtmlBasicDoclet*)) valadoc_html_basic_doclet_real_get_icon_directory;
5195 	((ValadocHtmlBasicDocletClass *) klass)->write_wiki_page = (void (*) (ValadocHtmlBasicDoclet*, ValadocWikiPage*, const gchar*, const gchar*, const gchar*, const gchar*)) valadoc_html_basic_doclet_real_write_wiki_page;
5196 	G_OBJECT_CLASS (klass)->get_property = _vala_valadoc_html_basic_doclet_get_property;
5197 	G_OBJECT_CLASS (klass)->set_property = _vala_valadoc_html_basic_doclet_set_property;
5198 	G_OBJECT_CLASS (klass)->finalize = valadoc_html_basic_doclet_finalize;
5199 	g_object_class_install_property (G_OBJECT_CLASS (klass), VALADOC_HTML_BASIC_DOCLET_LINKER_PROPERTY, valadoc_html_basic_doclet_properties[VALADOC_HTML_BASIC_DOCLET_LINKER_PROPERTY] = g_param_spec_object ("linker", "linker", "linker", VALADOC_HTML_TYPE_LINK_HELPER, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
5200 	g_object_class_install_property (G_OBJECT_CLASS (klass), VALADOC_HTML_BASIC_DOCLET_SETTINGS_PROPERTY, valadoc_html_basic_doclet_properties[VALADOC_HTML_BASIC_DOCLET_SETTINGS_PROPERTY] = g_param_spec_object ("settings", "settings", "settings", VALADOC_TYPE_SETTINGS, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
5201 	g_object_class_install_property (G_OBJECT_CLASS (klass), VALADOC_HTML_BASIC_DOCLET_WIKI_INDEX_NAME_PROPERTY, valadoc_html_basic_doclet_properties[VALADOC_HTML_BASIC_DOCLET_WIKI_INDEX_NAME_PROPERTY] = g_param_spec_string ("wiki-index-name", "wiki-index-name", "wiki-index-name", NULL, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
5202 	_tmp0_ = g_new0 (ValadocApiNodeType, 7);
5203 	_tmp0_[0] = VALADOC_API_NODE_TYPE_CONSTANT;
5204 	_tmp0_[1] = VALADOC_API_NODE_TYPE_PROPERTY;
5205 	_tmp0_[2] = VALADOC_API_NODE_TYPE_DELEGATE;
5206 	_tmp0_[3] = VALADOC_API_NODE_TYPE_STATIC_METHOD;
5207 	_tmp0_[4] = VALADOC_API_NODE_TYPE_METHOD;
5208 	_tmp0_[5] = VALADOC_API_NODE_TYPE_SIGNAL;
5209 	_tmp0_[6] = VALADOC_API_NODE_TYPE_FIELD;
5210 	valadoc_html_basic_doclet_inheritable_members = _tmp0_;
5211 	valadoc_html_basic_doclet_inheritable_members_length1 = 7;
5212 }
5213 
5214 static void
valadoc_html_basic_doclet_valadoc_doclet_interface_init(ValadocDocletIface * iface,gpointer iface_data)5215 valadoc_html_basic_doclet_valadoc_doclet_interface_init (ValadocDocletIface * iface,
5216                                                          gpointer iface_data)
5217 {
5218 	valadoc_html_basic_doclet_valadoc_doclet_parent_iface = g_type_interface_peek_parent (iface);
5219 	iface->process = (void (*) (ValadocDoclet*, ValadocSettings*, ValadocApiTree*, ValadocErrorReporter*)) valadoc_html_basic_doclet_process;
5220 }
5221 
5222 static void
valadoc_html_basic_doclet_instance_init(ValadocHtmlBasicDoclet * self,gpointer klass)5223 valadoc_html_basic_doclet_instance_init (ValadocHtmlBasicDoclet * self,
5224                                          gpointer klass)
5225 {
5226 	gchar* _tmp0_;
5227 	gchar* _tmp1_;
5228 	self->priv = valadoc_html_basic_doclet_get_instance_private (self);
5229 	_tmp0_ = g_strdup ("index.valadoc");
5230 	self->priv->_wiki_index_name = _tmp0_;
5231 	_tmp1_ = g_strdup ("../index.html");
5232 	self->package_list_link = _tmp1_;
5233 	self->priv->html_id_counter = (guint) 0;
5234 }
5235 
5236 static void
valadoc_html_basic_doclet_finalize(GObject * obj)5237 valadoc_html_basic_doclet_finalize (GObject * obj)
5238 {
5239 	ValadocHtmlBasicDoclet * self;
5240 	self = G_TYPE_CHECK_INSTANCE_CAST (obj, VALADOC_HTML_TYPE_BASIC_DOCLET, ValadocHtmlBasicDoclet);
5241 	_g_object_unref0 (self->priv->_linker);
5242 	_g_object_unref0 (self->priv->_settings);
5243 	_g_free0 (self->priv->_wiki_index_name);
5244 	_valadoc_api_tree_unref0 (self->tree);
5245 	_g_object_unref0 (self->_renderer);
5246 	_valadoc_markup_writer_unref0 (self->writer);
5247 	_g_object_unref0 (self->cssresolver);
5248 	_g_object_unref0 (self->image_factory);
5249 	_g_object_unref0 (self->reporter);
5250 	_g_free0 (self->package_list_link);
5251 	G_OBJECT_CLASS (valadoc_html_basic_doclet_parent_class)->finalize (obj);
5252 }
5253 
5254 static GType
valadoc_html_basic_doclet_get_type_once(void)5255 valadoc_html_basic_doclet_get_type_once (void)
5256 {
5257 	static const GTypeInfo g_define_type_info = { sizeof (ValadocHtmlBasicDocletClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) valadoc_html_basic_doclet_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (ValadocHtmlBasicDoclet), 0, (GInstanceInitFunc) valadoc_html_basic_doclet_instance_init, NULL };
5258 	static const GInterfaceInfo valadoc_doclet_info = { (GInterfaceInitFunc) valadoc_html_basic_doclet_valadoc_doclet_interface_init, (GInterfaceFinalizeFunc) NULL, NULL};
5259 	GType valadoc_html_basic_doclet_type_id;
5260 	valadoc_html_basic_doclet_type_id = g_type_register_static (VALADOC_API_TYPE_VISITOR, "ValadocHtmlBasicDoclet", &g_define_type_info, G_TYPE_FLAG_ABSTRACT);
5261 	g_type_add_interface_static (valadoc_html_basic_doclet_type_id, VALADOC_TYPE_DOCLET, &valadoc_doclet_info);
5262 	ValadocHtmlBasicDoclet_private_offset = g_type_add_instance_private (valadoc_html_basic_doclet_type_id, sizeof (ValadocHtmlBasicDocletPrivate));
5263 	return valadoc_html_basic_doclet_type_id;
5264 }
5265 
5266 GType
valadoc_html_basic_doclet_get_type(void)5267 valadoc_html_basic_doclet_get_type (void)
5268 {
5269 	static volatile gsize valadoc_html_basic_doclet_type_id__volatile = 0;
5270 	if (g_once_init_enter (&valadoc_html_basic_doclet_type_id__volatile)) {
5271 		GType valadoc_html_basic_doclet_type_id;
5272 		valadoc_html_basic_doclet_type_id = valadoc_html_basic_doclet_get_type_once ();
5273 		g_once_init_leave (&valadoc_html_basic_doclet_type_id__volatile, valadoc_html_basic_doclet_type_id);
5274 	}
5275 	return valadoc_html_basic_doclet_type_id__volatile;
5276 }
5277 
5278 static void
_vala_valadoc_html_basic_doclet_get_property(GObject * object,guint property_id,GValue * value,GParamSpec * pspec)5279 _vala_valadoc_html_basic_doclet_get_property (GObject * object,
5280                                               guint property_id,
5281                                               GValue * value,
5282                                               GParamSpec * pspec)
5283 {
5284 	ValadocHtmlBasicDoclet * self;
5285 	self = G_TYPE_CHECK_INSTANCE_CAST (object, VALADOC_HTML_TYPE_BASIC_DOCLET, ValadocHtmlBasicDoclet);
5286 	switch (property_id) {
5287 		case VALADOC_HTML_BASIC_DOCLET_LINKER_PROPERTY:
5288 		g_value_set_object (value, valadoc_html_basic_doclet_get_linker (self));
5289 		break;
5290 		case VALADOC_HTML_BASIC_DOCLET_SETTINGS_PROPERTY:
5291 		g_value_set_object (value, valadoc_html_basic_doclet_get_settings (self));
5292 		break;
5293 		case VALADOC_HTML_BASIC_DOCLET_WIKI_INDEX_NAME_PROPERTY:
5294 		g_value_set_string (value, valadoc_html_basic_doclet_get_wiki_index_name (self));
5295 		break;
5296 		default:
5297 		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
5298 		break;
5299 	}
5300 }
5301 
5302 static void
_vala_valadoc_html_basic_doclet_set_property(GObject * object,guint property_id,const GValue * value,GParamSpec * pspec)5303 _vala_valadoc_html_basic_doclet_set_property (GObject * object,
5304                                               guint property_id,
5305                                               const GValue * value,
5306                                               GParamSpec * pspec)
5307 {
5308 	ValadocHtmlBasicDoclet * self;
5309 	self = G_TYPE_CHECK_INSTANCE_CAST (object, VALADOC_HTML_TYPE_BASIC_DOCLET, ValadocHtmlBasicDoclet);
5310 	switch (property_id) {
5311 		case VALADOC_HTML_BASIC_DOCLET_LINKER_PROPERTY:
5312 		valadoc_html_basic_doclet_set_linker (self, g_value_get_object (value));
5313 		break;
5314 		case VALADOC_HTML_BASIC_DOCLET_SETTINGS_PROPERTY:
5315 		valadoc_html_basic_doclet_set_settings (self, g_value_get_object (value));
5316 		break;
5317 		case VALADOC_HTML_BASIC_DOCLET_WIKI_INDEX_NAME_PROPERTY:
5318 		valadoc_html_basic_doclet_set_wiki_index_name (self, g_value_get_string (value));
5319 		break;
5320 		default:
5321 		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
5322 		break;
5323 	}
5324 }
5325 
5326 static void
_vala_array_destroy(gpointer array,gint array_length,GDestroyNotify destroy_func)5327 _vala_array_destroy (gpointer array,
5328                      gint array_length,
5329                      GDestroyNotify destroy_func)
5330 {
5331 	if ((array != NULL) && (destroy_func != NULL)) {
5332 		gint i;
5333 		for (i = 0; i < array_length; i = i + 1) {
5334 			if (((gpointer*) array)[i] != NULL) {
5335 				destroy_func (((gpointer*) array)[i]);
5336 			}
5337 		}
5338 	}
5339 }
5340 
5341 static void
_vala_array_free(gpointer array,gint array_length,GDestroyNotify destroy_func)5342 _vala_array_free (gpointer array,
5343                   gint array_length,
5344                   GDestroyNotify destroy_func)
5345 {
5346 	_vala_array_destroy (array, array_length, destroy_func);
5347 	g_free (array);
5348 }
5349 
5350