1 /* gtkdocrenderer.c generated by valac, the Vala compiler
2  * generated from gtkdocrenderer.vala, do not modify */
3 
4 /* gtkdocrenderer.vala
5  *
6  * Copyright (C) 2011 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 <glib.h>
28 #include <stdlib.h>
29 #include <string.h>
30 #include <glib-object.h>
31 #include <valagee.h>
32 
33 enum  {
34 	VALADOC_GTKDOC_RENDERER_0_PROPERTY,
35 	VALADOC_GTKDOC_RENDERER_CONTENT_PROPERTY,
36 	VALADOC_GTKDOC_RENDERER_NUM_PROPERTIES
37 };
38 static GParamSpec* valadoc_gtkdoc_renderer_properties[VALADOC_GTKDOC_RENDERER_NUM_PROPERTIES];
39 #define _valadoc_markup_writer_unref0(var) ((var == NULL) ? NULL : (var = (valadoc_markup_writer_unref (var), NULL)))
40 #define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL)))
41 #define _g_free0(var) (var = (g_free (var), NULL))
42 #define _g_regex_unref0(var) ((var == NULL) ? NULL : (var = (g_regex_unref (var), NULL)))
43 #define _vala_iterable_unref0(var) ((var == NULL) ? NULL : (var = (vala_iterable_unref (var), NULL)))
44 
45 struct _ValadocGtkdocRendererPrivate {
46 	ValadocGtkDocMarkupWriter* writer;
47 	gboolean separated;
48 };
49 
50 static gint ValadocGtkdocRenderer_private_offset;
51 static gpointer valadoc_gtkdoc_renderer_parent_class = NULL;
52 
53 static gchar* valadoc_gtkdoc_renderer_get_cname (ValadocGtkdocRenderer* self,
54                                           ValadocApiItem* item);
55 static void valadoc_gtkdoc_renderer_real_render (ValadocContentContentRenderer* base,
56                                           ValadocContentContentElement* element);
57 static void valadoc_gtkdoc_renderer_reset (ValadocGtkdocRenderer* self);
58 static void valadoc_gtkdoc_renderer_real_render_children (ValadocContentContentRenderer* base,
59                                                    ValadocContentContentElement* element);
60 static void valadoc_gtkdoc_renderer_real_visit_comment (ValadocContentContentVisitor* base,
61                                                  ValadocContentComment* element);
62 static void valadoc_gtkdoc_renderer_real_visit_embedded (ValadocContentContentVisitor* base,
63                                                   ValadocContentEmbedded* element);
64 static void valadoc_gtkdoc_renderer_real_visit_headline (ValadocContentContentVisitor* base,
65                                                   ValadocContentHeadline* element);
66 static void valadoc_gtkdoc_renderer_real_visit_wiki_link (ValadocContentContentVisitor* base,
67                                                    ValadocContentWikiLink* element);
68 static void valadoc_gtkdoc_renderer_write_string (ValadocGtkdocRenderer* self,
69                                            const gchar* content);
70 static void valadoc_gtkdoc_renderer_real_visit_link (ValadocContentContentVisitor* base,
71                                               ValadocContentLink* element);
72 static void valadoc_gtkdoc_renderer_real_visit_symbol_link (ValadocContentContentVisitor* base,
73                                                      ValadocContentSymbolLink* element);
74 static void valadoc_gtkdoc_renderer_real_visit_list (ValadocContentContentVisitor* base,
75                                               ValadocContentList* element);
76 static void valadoc_gtkdoc_renderer_real_visit_list_item (ValadocContentContentVisitor* base,
77                                                    ValadocContentListItem* element);
78 static void valadoc_gtkdoc_renderer_real_visit_page (ValadocContentContentVisitor* base,
79                                               ValadocContentPage* element);
80 static void valadoc_gtkdoc_renderer_real_visit_paragraph (ValadocContentContentVisitor* base,
81                                                    ValadocContentParagraph* element);
82 static void valadoc_gtkdoc_renderer_real_visit_warning (ValadocContentContentVisitor* base,
83                                                  ValadocContentWarning* element);
84 static void valadoc_gtkdoc_renderer_real_visit_note (ValadocContentContentVisitor* base,
85                                               ValadocContentNote* element);
86 static void valadoc_gtkdoc_renderer_real_visit_run (ValadocContentContentVisitor* base,
87                                              ValadocContentRun* element);
88 static void valadoc_gtkdoc_renderer_real_visit_source_code (ValadocContentContentVisitor* base,
89                                                      ValadocContentSourceCode* element);
90 static void valadoc_gtkdoc_renderer_real_visit_table (ValadocContentContentVisitor* base,
91                                                ValadocContentTable* element);
92 static void valadoc_gtkdoc_renderer_real_visit_table_cell (ValadocContentContentVisitor* base,
93                                                     ValadocContentTableCell* element);
94 static void valadoc_gtkdoc_renderer_real_visit_table_row (ValadocContentContentVisitor* base,
95                                                    ValadocContentTableRow* element);
96 static void valadoc_gtkdoc_renderer_real_visit_text (ValadocContentContentVisitor* base,
97                                               ValadocContentText* element);
98 static void valadoc_gtkdoc_renderer_finalize (GObject * obj);
99 static GType valadoc_gtkdoc_renderer_get_type_once (void);
100 static void _vala_valadoc_gtkdoc_renderer_get_property (GObject * object,
101                                                  guint property_id,
102                                                  GValue * value,
103                                                  GParamSpec * pspec);
104 static void _vala_array_destroy (gpointer array,
105                           gint array_length,
106                           GDestroyNotify destroy_func);
107 static void _vala_array_free (gpointer array,
108                        gint array_length,
109                        GDestroyNotify destroy_func);
110 
111 static inline gpointer
valadoc_gtkdoc_renderer_get_instance_private(ValadocGtkdocRenderer * self)112 valadoc_gtkdoc_renderer_get_instance_private (ValadocGtkdocRenderer* self)
113 {
114 	return G_STRUCT_MEMBER_P (self, ValadocGtkdocRenderer_private_offset);
115 }
116 
117 static gchar*
string_replace(const gchar * self,const gchar * old,const gchar * replacement)118 string_replace (const gchar* self,
119                 const gchar* old,
120                 const gchar* replacement)
121 {
122 	gboolean _tmp0_ = FALSE;
123 	gboolean _tmp1_ = FALSE;
124 	GError* _inner_error0_ = NULL;
125 	gchar* result = NULL;
126 	g_return_val_if_fail (self != NULL, NULL);
127 	g_return_val_if_fail (old != NULL, NULL);
128 	g_return_val_if_fail (replacement != NULL, NULL);
129 	if ((*((gchar*) self)) == '\0') {
130 		_tmp1_ = TRUE;
131 	} else {
132 		_tmp1_ = (*((gchar*) old)) == '\0';
133 	}
134 	if (_tmp1_) {
135 		_tmp0_ = TRUE;
136 	} else {
137 		_tmp0_ = g_strcmp0 (old, replacement) == 0;
138 	}
139 	if (_tmp0_) {
140 		gchar* _tmp2_;
141 		_tmp2_ = g_strdup (self);
142 		result = _tmp2_;
143 		return result;
144 	}
145 	{
146 		GRegex* regex = NULL;
147 		gchar* _tmp3_;
148 		gchar* _tmp4_;
149 		GRegex* _tmp5_;
150 		GRegex* _tmp6_;
151 		gchar* _tmp7_ = NULL;
152 		GRegex* _tmp8_;
153 		gchar* _tmp9_;
154 		gchar* _tmp10_;
155 		_tmp3_ = g_regex_escape_string (old, -1);
156 		_tmp4_ = _tmp3_;
157 		_tmp5_ = g_regex_new (_tmp4_, 0, 0, &_inner_error0_);
158 		_tmp6_ = _tmp5_;
159 		_g_free0 (_tmp4_);
160 		regex = _tmp6_;
161 		if (G_UNLIKELY (_inner_error0_ != NULL)) {
162 			_g_free0 (_tmp7_);
163 			_g_regex_unref0 (regex);
164 			if (_inner_error0_->domain == G_REGEX_ERROR) {
165 				goto __catch0_g_regex_error;
166 			}
167 			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);
168 			g_clear_error (&_inner_error0_);
169 			return NULL;
170 		}
171 		_tmp8_ = regex;
172 		_tmp9_ = g_regex_replace_literal (_tmp8_, self, (gssize) -1, 0, replacement, 0, &_inner_error0_);
173 		_tmp7_ = _tmp9_;
174 		if (G_UNLIKELY (_inner_error0_ != NULL)) {
175 			_g_free0 (_tmp7_);
176 			_g_regex_unref0 (regex);
177 			if (_inner_error0_->domain == G_REGEX_ERROR) {
178 				goto __catch0_g_regex_error;
179 			}
180 			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);
181 			g_clear_error (&_inner_error0_);
182 			return NULL;
183 		}
184 		_tmp10_ = _tmp7_;
185 		_tmp7_ = NULL;
186 		result = _tmp10_;
187 		_g_free0 (_tmp7_);
188 		_g_regex_unref0 (regex);
189 		return result;
190 	}
191 	goto __finally0;
192 	__catch0_g_regex_error:
193 	{
194 		g_clear_error (&_inner_error0_);
195 		g_assert_not_reached ();
196 	}
197 	__finally0:
198 	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);
199 	g_clear_error (&_inner_error0_);
200 	return NULL;
201 }
202 
203 static gchar*
valadoc_gtkdoc_renderer_get_cname(ValadocGtkdocRenderer * self,ValadocApiItem * item)204 valadoc_gtkdoc_renderer_get_cname (ValadocGtkdocRenderer* self,
205                                    ValadocApiItem* item)
206 {
207 	gchar* result = NULL;
208 	g_return_val_if_fail (self != NULL, NULL);
209 	g_return_val_if_fail (item != NULL, NULL);
210 	if (VALADOC_API_IS_METHOD (item)) {
211 		gchar* _tmp0_;
212 		_tmp0_ = valadoc_api_method_get_cname (G_TYPE_CHECK_INSTANCE_CAST (item, VALADOC_API_TYPE_METHOD, ValadocApiMethod));
213 		result = _tmp0_;
214 		return result;
215 	} else {
216 		if (VALADOC_API_IS_PARAMETER (item)) {
217 			const gchar* _tmp1_;
218 			const gchar* _tmp2_;
219 			gchar* _tmp3_;
220 			_tmp1_ = valadoc_api_node_get_name ((ValadocApiNode*) G_TYPE_CHECK_INSTANCE_CAST (item, VALADOC_API_TYPE_PARAMETER, ValadocApiParameter));
221 			_tmp2_ = _tmp1_;
222 			_tmp3_ = g_strdup (_tmp2_);
223 			result = _tmp3_;
224 			return result;
225 		} else {
226 			if (VALADOC_API_IS_CONSTANT (item)) {
227 				gchar* _tmp4_;
228 				_tmp4_ = valadoc_api_constant_get_cname (G_TYPE_CHECK_INSTANCE_CAST (item, VALADOC_API_TYPE_CONSTANT, ValadocApiConstant));
229 				result = _tmp4_;
230 				return result;
231 			} else {
232 				if (VALADOC_API_IS_PROPERTY (item)) {
233 					gchar* _tmp5_;
234 					_tmp5_ = valadoc_api_property_get_cname (G_TYPE_CHECK_INSTANCE_CAST (item, VALADOC_API_TYPE_PROPERTY, ValadocApiProperty));
235 					result = _tmp5_;
236 					return result;
237 				} else {
238 					if (VALADOC_API_IS_SIGNAL (item)) {
239 						gchar* name = NULL;
240 						gchar* _tmp6_;
241 						const gchar* _tmp7_;
242 						gchar* _tmp8_;
243 						_tmp6_ = valadoc_api_signal_get_cname (G_TYPE_CHECK_INSTANCE_CAST (item, VALADOC_API_TYPE_SIGNAL, ValadocApiSignal));
244 						name = _tmp6_;
245 						_tmp7_ = name;
246 						_tmp8_ = string_replace (_tmp7_, "_", "-");
247 						result = _tmp8_;
248 						_g_free0 (name);
249 						return result;
250 					} else {
251 						if (VALADOC_API_IS_CLASS (item)) {
252 							gchar* _tmp9_;
253 							_tmp9_ = valadoc_api_class_get_cname (G_TYPE_CHECK_INSTANCE_CAST (item, VALADOC_API_TYPE_CLASS, ValadocApiClass));
254 							result = _tmp9_;
255 							return result;
256 						} else {
257 							if (VALADOC_API_IS_STRUCT (item)) {
258 								gchar* _tmp10_;
259 								_tmp10_ = valadoc_api_struct_get_cname (G_TYPE_CHECK_INSTANCE_CAST (item, VALADOC_API_TYPE_STRUCT, ValadocApiStruct));
260 								result = _tmp10_;
261 								return result;
262 							} else {
263 								if (VALADOC_API_IS_INTERFACE (item)) {
264 									gchar* _tmp11_;
265 									_tmp11_ = valadoc_api_interface_get_cname (G_TYPE_CHECK_INSTANCE_CAST (item, VALADOC_API_TYPE_INTERFACE, ValadocApiInterface));
266 									result = _tmp11_;
267 									return result;
268 								} else {
269 									if (VALADOC_API_IS_ERROR_DOMAIN (item)) {
270 										gchar* _tmp12_;
271 										_tmp12_ = valadoc_api_error_domain_get_cname (G_TYPE_CHECK_INSTANCE_CAST (item, VALADOC_API_TYPE_ERROR_DOMAIN, ValadocApiErrorDomain));
272 										result = _tmp12_;
273 										return result;
274 									} else {
275 										if (VALADOC_API_IS_ERROR_CODE (item)) {
276 											gchar* _tmp13_;
277 											_tmp13_ = valadoc_api_error_code_get_cname (G_TYPE_CHECK_INSTANCE_CAST (item, VALADOC_API_TYPE_ERROR_CODE, ValadocApiErrorCode));
278 											result = _tmp13_;
279 											return result;
280 										} else {
281 											if (VALADOC_API_IS_DELEGATE (item)) {
282 												gchar* _tmp14_;
283 												_tmp14_ = valadoc_api_delegate_get_cname (G_TYPE_CHECK_INSTANCE_CAST (item, VALADOC_API_TYPE_DELEGATE, ValadocApiDelegate));
284 												result = _tmp14_;
285 												return result;
286 											} else {
287 												if (VALADOC_API_IS_ENUM (item)) {
288 													gchar* _tmp15_;
289 													_tmp15_ = valadoc_api_enum_get_cname (G_TYPE_CHECK_INSTANCE_CAST (item, VALADOC_API_TYPE_ENUM, ValadocApiEnum));
290 													result = _tmp15_;
291 													return result;
292 												} else {
293 													if (VALADOC_API_IS_ENUM_VALUE (item)) {
294 														gchar* _tmp16_;
295 														_tmp16_ = valadoc_api_enum_value_get_cname (G_TYPE_CHECK_INSTANCE_CAST (item, VALADOC_API_TYPE_ENUM_VALUE, ValadocApiEnumValue));
296 														result = _tmp16_;
297 														return result;
298 													}
299 												}
300 											}
301 										}
302 									}
303 								}
304 							}
305 						}
306 					}
307 				}
308 			}
309 		}
310 	}
311 	result = NULL;
312 	return result;
313 }
314 
315 void
valadoc_gtkdoc_renderer_write_docbook_link(ValadocGtkdocRenderer * self,ValadocApiItem * item)316 valadoc_gtkdoc_renderer_write_docbook_link (ValadocGtkdocRenderer* self,
317                                             ValadocApiItem* item)
318 {
319 	ValadocGtkDocMarkupWriter* _tmp0_;
320 	ValadocGtkDocMarkupWriter* _tmp49_;
321 	g_return_if_fail (self != NULL);
322 	g_return_if_fail (item != NULL);
323 	_tmp0_ = self->priv->writer;
324 	valadoc_markup_writer_set_wrap ((ValadocMarkupWriter*) _tmp0_, FALSE);
325 	if (VALADOC_API_IS_METHOD (item)) {
326 		ValadocGtkDocMarkupWriter* _tmp1_;
327 		ValadocMarkupWriter* _tmp2_;
328 		gchar* _tmp3_;
329 		gchar* _tmp4_;
330 		ValadocMarkupWriter* _tmp5_;
331 		_tmp1_ = self->priv->writer;
332 		_tmp2_ = valadoc_markup_writer_start_tag ((ValadocMarkupWriter*) _tmp1_, "function", NULL, (gint) 0);
333 		_tmp3_ = valadoc_api_method_get_cname (G_TYPE_CHECK_INSTANCE_CAST (item, VALADOC_API_TYPE_METHOD, ValadocApiMethod));
334 		_tmp4_ = _tmp3_;
335 		_tmp5_ = valadoc_markup_writer_text (_tmp2_, _tmp4_);
336 		valadoc_markup_writer_end_tag (_tmp5_, "function");
337 		_g_free0 (_tmp4_);
338 	} else {
339 		if (VALADOC_API_IS_PARAMETER (item)) {
340 			const gchar* _tmp6_ = NULL;
341 			const gchar* _tmp7_;
342 			const gchar* _tmp8_;
343 			ValadocGtkDocMarkupWriter* _tmp9_;
344 			ValadocMarkupWriter* _tmp10_;
345 			ValadocMarkupWriter* _tmp11_;
346 			_tmp7_ = valadoc_api_node_get_name ((ValadocApiNode*) G_TYPE_CHECK_INSTANCE_CAST (item, VALADOC_API_TYPE_PARAMETER, ValadocApiParameter));
347 			_tmp8_ = _tmp7_;
348 			_tmp6_ = _tmp8_;
349 			if (_tmp6_ == NULL) {
350 				_tmp6_ = "...";
351 			}
352 			_tmp9_ = self->priv->writer;
353 			_tmp10_ = valadoc_markup_writer_start_tag ((ValadocMarkupWriter*) _tmp9_, "parameter", NULL, (gint) 0);
354 			_tmp11_ = valadoc_markup_writer_text (_tmp10_, _tmp6_);
355 			valadoc_markup_writer_end_tag (_tmp11_, "parameter");
356 		} else {
357 			if (VALADOC_API_IS_CONSTANT (item)) {
358 				ValadocGtkDocMarkupWriter* _tmp12_;
359 				ValadocMarkupWriter* _tmp13_;
360 				gchar* _tmp14_;
361 				gchar* _tmp15_;
362 				ValadocMarkupWriter* _tmp16_;
363 				_tmp12_ = self->priv->writer;
364 				_tmp13_ = valadoc_markup_writer_start_tag ((ValadocMarkupWriter*) _tmp12_, "constant", NULL, (gint) 0);
365 				_tmp14_ = valadoc_api_constant_get_cname (G_TYPE_CHECK_INSTANCE_CAST (item, VALADOC_API_TYPE_CONSTANT, ValadocApiConstant));
366 				_tmp15_ = _tmp14_;
367 				_tmp16_ = valadoc_markup_writer_text (_tmp13_, _tmp15_);
368 				valadoc_markup_writer_end_tag (_tmp16_, "constant");
369 				_g_free0 (_tmp15_);
370 			} else {
371 				if (VALADOC_API_IS_PROPERTY (item)) {
372 					ValadocGtkDocMarkupWriter* _tmp17_;
373 					ValadocMarkupWriter* _tmp18_;
374 					ValadocApiItem* _tmp19_;
375 					ValadocApiItem* _tmp20_;
376 					gchar* _tmp21_;
377 					gchar* _tmp22_;
378 					ValadocMarkupWriter* _tmp23_;
379 					ValadocMarkupWriter* _tmp24_;
380 					gchar* _tmp25_;
381 					gchar* _tmp26_;
382 					gchar* _tmp27_;
383 					gchar* _tmp28_;
384 					_tmp17_ = self->priv->writer;
385 					_tmp18_ = valadoc_markup_writer_text ((ValadocMarkupWriter*) _tmp17_, "#");
386 					_tmp19_ = valadoc_api_item_get_parent (item);
387 					_tmp20_ = _tmp19_;
388 					_tmp21_ = valadoc_gtkdoc_renderer_get_cname (self, _tmp20_);
389 					_tmp22_ = _tmp21_;
390 					_tmp23_ = valadoc_markup_writer_text (_tmp18_, _tmp22_);
391 					_tmp24_ = valadoc_markup_writer_text (_tmp23_, ":");
392 					_tmp25_ = valadoc_api_property_get_cname (G_TYPE_CHECK_INSTANCE_CAST (item, VALADOC_API_TYPE_PROPERTY, ValadocApiProperty));
393 					_tmp26_ = _tmp25_;
394 					_tmp27_ = string_replace (_tmp26_, "_", "-");
395 					_tmp28_ = _tmp27_;
396 					valadoc_markup_writer_text (_tmp24_, _tmp28_);
397 					_g_free0 (_tmp28_);
398 					_g_free0 (_tmp26_);
399 					_g_free0 (_tmp22_);
400 				} else {
401 					if (VALADOC_API_IS_SIGNAL (item)) {
402 						ValadocGtkDocMarkupWriter* _tmp29_;
403 						ValadocMarkupWriter* _tmp30_;
404 						ValadocApiItem* _tmp31_;
405 						ValadocApiItem* _tmp32_;
406 						gchar* _tmp33_;
407 						gchar* _tmp34_;
408 						ValadocMarkupWriter* _tmp35_;
409 						ValadocMarkupWriter* _tmp36_;
410 						gchar* _tmp37_;
411 						gchar* _tmp38_;
412 						gchar* _tmp39_;
413 						gchar* _tmp40_;
414 						_tmp29_ = self->priv->writer;
415 						_tmp30_ = valadoc_markup_writer_text ((ValadocMarkupWriter*) _tmp29_, "#");
416 						_tmp31_ = valadoc_api_item_get_parent (item);
417 						_tmp32_ = _tmp31_;
418 						_tmp33_ = valadoc_gtkdoc_renderer_get_cname (self, _tmp32_);
419 						_tmp34_ = _tmp33_;
420 						_tmp35_ = valadoc_markup_writer_text (_tmp30_, _tmp34_);
421 						_tmp36_ = valadoc_markup_writer_text (_tmp35_, "::");
422 						_tmp37_ = valadoc_api_signal_get_cname (G_TYPE_CHECK_INSTANCE_CAST (item, VALADOC_API_TYPE_SIGNAL, ValadocApiSignal));
423 						_tmp38_ = _tmp37_;
424 						_tmp39_ = string_replace (_tmp38_, "_", "-");
425 						_tmp40_ = _tmp39_;
426 						valadoc_markup_writer_text (_tmp36_, _tmp40_);
427 						_g_free0 (_tmp40_);
428 						_g_free0 (_tmp38_);
429 						_g_free0 (_tmp34_);
430 					} else {
431 						if (VALADOC_API_IS_NAMESPACE (item)) {
432 							ValadocGtkDocMarkupWriter* _tmp41_;
433 							gchar* _tmp42_;
434 							gchar* _tmp43_;
435 							_tmp41_ = self->priv->writer;
436 							_tmp42_ = valadoc_api_node_get_full_name ((ValadocApiNode*) G_TYPE_CHECK_INSTANCE_CAST (item, VALADOC_API_TYPE_NAMESPACE, ValadocApiNamespace));
437 							_tmp43_ = _tmp42_;
438 							valadoc_markup_writer_text ((ValadocMarkupWriter*) _tmp41_, _tmp43_);
439 							_g_free0 (_tmp43_);
440 						} else {
441 							ValadocGtkDocMarkupWriter* _tmp44_;
442 							ValadocMarkupWriter* _tmp45_;
443 							gchar* _tmp46_;
444 							gchar* _tmp47_;
445 							ValadocMarkupWriter* _tmp48_;
446 							_tmp44_ = self->priv->writer;
447 							_tmp45_ = valadoc_markup_writer_start_tag ((ValadocMarkupWriter*) _tmp44_, "type", NULL, (gint) 0);
448 							_tmp46_ = valadoc_gtkdoc_renderer_get_cname (self, item);
449 							_tmp47_ = _tmp46_;
450 							_tmp48_ = valadoc_markup_writer_text (_tmp45_, _tmp47_);
451 							valadoc_markup_writer_end_tag (_tmp48_, "type");
452 							_g_free0 (_tmp47_);
453 						}
454 					}
455 				}
456 			}
457 		}
458 	}
459 	_tmp49_ = self->priv->writer;
460 	valadoc_markup_writer_set_wrap ((ValadocMarkupWriter*) _tmp49_, TRUE);
461 }
462 
463 ValadocGtkdocRenderer*
valadoc_gtkdoc_renderer_construct(GType object_type)464 valadoc_gtkdoc_renderer_construct (GType object_type)
465 {
466 	ValadocGtkdocRenderer * self = NULL;
467 	self = (ValadocGtkdocRenderer*) valadoc_content_content_renderer_construct (object_type);
468 	return self;
469 }
470 
471 ValadocGtkdocRenderer*
valadoc_gtkdoc_renderer_new(void)472 valadoc_gtkdoc_renderer_new (void)
473 {
474 	return valadoc_gtkdoc_renderer_construct (VALADOC_TYPE_GTKDOC_RENDERER);
475 }
476 
477 static void
valadoc_gtkdoc_renderer_real_render(ValadocContentContentRenderer * base,ValadocContentContentElement * element)478 valadoc_gtkdoc_renderer_real_render (ValadocContentContentRenderer* base,
479                                      ValadocContentContentElement* element)
480 {
481 	ValadocGtkdocRenderer * self;
482 	self = (ValadocGtkdocRenderer*) base;
483 	g_return_if_fail (element != NULL);
484 	valadoc_gtkdoc_renderer_reset (self);
485 	valadoc_content_content_element_accept (element, (ValadocContentContentVisitor*) self);
486 }
487 
488 void
valadoc_gtkdoc_renderer_render_symbol(ValadocGtkdocRenderer * self,ValadocContentComment * documentation)489 valadoc_gtkdoc_renderer_render_symbol (ValadocGtkdocRenderer* self,
490                                        ValadocContentComment* documentation)
491 {
492 	ValaList* _tmp0_;
493 	ValaList* _tmp1_;
494 	ValaList* _tmp2_;
495 	ValaList* _tmp3_;
496 	ValaList* _tmp4_;
497 	ValaList* _tmp5_;
498 	g_return_if_fail (self != NULL);
499 	valadoc_content_content_renderer_render ((ValadocContentContentRenderer*) self, (ValadocContentContentElement*) documentation);
500 	_tmp0_ = valadoc_content_comment_find_taglets (documentation, NULL, VALADOC_TAGLETS_TYPE_THROWS);
501 	_tmp1_ = _tmp0_;
502 	valadoc_gtkdoc_renderer_append_exceptions (self, _tmp1_);
503 	_vala_iterable_unref0 (_tmp1_);
504 	_tmp2_ = valadoc_content_comment_find_taglets (documentation, NULL, VALADOC_TAGLETS_TYPE_SEE);
505 	_tmp3_ = _tmp2_;
506 	valadoc_gtkdoc_renderer_append_see (self, _tmp3_);
507 	_vala_iterable_unref0 (_tmp3_);
508 	_tmp4_ = valadoc_content_comment_find_taglets (documentation, NULL, VALADOC_TAGLETS_TYPE_SINCE);
509 	_tmp5_ = _tmp4_;
510 	valadoc_gtkdoc_renderer_append_since (self, _tmp5_);
511 	_vala_iterable_unref0 (_tmp5_);
512 }
513 
514 static void
valadoc_gtkdoc_renderer_real_render_children(ValadocContentContentRenderer * base,ValadocContentContentElement * element)515 valadoc_gtkdoc_renderer_real_render_children (ValadocContentContentRenderer* base,
516                                               ValadocContentContentElement* element)
517 {
518 	ValadocGtkdocRenderer * self;
519 	self = (ValadocGtkdocRenderer*) base;
520 	g_return_if_fail (element != NULL);
521 	valadoc_gtkdoc_renderer_reset (self);
522 	valadoc_content_content_element_accept_children (element, (ValadocContentContentVisitor*) self);
523 }
524 
525 static void
valadoc_gtkdoc_renderer_reset(ValadocGtkdocRenderer * self)526 valadoc_gtkdoc_renderer_reset (ValadocGtkdocRenderer* self)
527 {
528 	ValadocGtkDocMarkupWriter* _tmp0_;
529 	g_return_if_fail (self != NULL);
530 	self->priv->separated = FALSE;
531 	_tmp0_ = self->priv->writer;
532 	valadoc_gtk_doc_markup_writer_reset (_tmp0_);
533 }
534 
535 const gchar*
valadoc_gtkdoc_renderer_get_content(ValadocGtkdocRenderer * self)536 valadoc_gtkdoc_renderer_get_content (ValadocGtkdocRenderer* self)
537 {
538 	const gchar* result;
539 	ValadocGtkDocMarkupWriter* _tmp0_;
540 	const gchar* _tmp1_;
541 	const gchar* _tmp2_;
542 	ValadocGtkDocMarkupWriter* _tmp7_;
543 	const gchar* _tmp8_;
544 	const gchar* _tmp9_;
545 	g_return_val_if_fail (self != NULL, NULL);
546 	_tmp0_ = self->priv->writer;
547 	_tmp1_ = valadoc_gtk_doc_markup_writer_get_content (_tmp0_);
548 	_tmp2_ = _tmp1_;
549 	if (g_str_has_prefix (_tmp2_, "\n")) {
550 		ValadocGtkDocMarkupWriter* _tmp3_;
551 		const gchar* _tmp4_;
552 		const gchar* _tmp5_;
553 		const gchar* _tmp6_;
554 		_tmp3_ = self->priv->writer;
555 		_tmp4_ = valadoc_gtk_doc_markup_writer_get_content (_tmp3_);
556 		_tmp5_ = _tmp4_;
557 		_tmp6_ = g_utf8_next_char (_tmp5_);
558 		result = _tmp6_;
559 		return result;
560 	}
561 	_tmp7_ = self->priv->writer;
562 	_tmp8_ = valadoc_gtk_doc_markup_writer_get_content (_tmp7_);
563 	_tmp9_ = _tmp8_;
564 	result = _tmp9_;
565 	return result;
566 }
567 
568 static void
valadoc_gtkdoc_renderer_real_visit_comment(ValadocContentContentVisitor * base,ValadocContentComment * element)569 valadoc_gtkdoc_renderer_real_visit_comment (ValadocContentContentVisitor* base,
570                                             ValadocContentComment* element)
571 {
572 	ValadocGtkdocRenderer * self;
573 	self = (ValadocGtkdocRenderer*) base;
574 	g_return_if_fail (element != NULL);
575 	valadoc_content_content_element_accept_children ((ValadocContentContentElement*) element, (ValadocContentContentVisitor*) self);
576 }
577 
578 static void
valadoc_gtkdoc_renderer_real_visit_embedded(ValadocContentContentVisitor * base,ValadocContentEmbedded * element)579 valadoc_gtkdoc_renderer_real_visit_embedded (ValadocContentContentVisitor* base,
580                                              ValadocContentEmbedded* element)
581 {
582 	ValadocGtkdocRenderer * self;
583 	ValadocGtkDocMarkupWriter* _tmp0_;
584 	const gchar* _tmp1_;
585 	const gchar* _tmp2_;
586 	ValadocGtkDocMarkupWriter* _tmp8_;
587 	ValadocGtkDocMarkupWriter* _tmp9_;
588 	ValadocMarkupWriter* _tmp10_;
589 	gchar* _tmp11_;
590 	const gchar* _tmp12_;
591 	const gchar* _tmp13_;
592 	gchar* _tmp14_;
593 	gchar** _tmp15_;
594 	gchar** _tmp16_;
595 	gint _tmp16__length1;
596 	ValadocMarkupWriter* _tmp17_;
597 	const gchar* _tmp18_;
598 	const gchar* _tmp19_;
599 	ValadocGtkDocMarkupWriter* _tmp27_;
600 	ValadocGtkDocMarkupWriter* _tmp28_;
601 	self = (ValadocGtkdocRenderer*) base;
602 	g_return_if_fail (element != NULL);
603 	_tmp0_ = self->priv->writer;
604 	valadoc_markup_writer_start_tag ((ValadocMarkupWriter*) _tmp0_, "figure", NULL, (gint) 0);
605 	_tmp1_ = valadoc_content_embedded_get_caption (element);
606 	_tmp2_ = _tmp1_;
607 	if (_tmp2_ != NULL) {
608 		ValadocGtkDocMarkupWriter* _tmp3_;
609 		ValadocMarkupWriter* _tmp4_;
610 		const gchar* _tmp5_;
611 		const gchar* _tmp6_;
612 		ValadocMarkupWriter* _tmp7_;
613 		_tmp3_ = self->priv->writer;
614 		_tmp4_ = valadoc_markup_writer_start_tag ((ValadocMarkupWriter*) _tmp3_, "title", NULL, (gint) 0);
615 		_tmp5_ = valadoc_content_embedded_get_caption (element);
616 		_tmp6_ = _tmp5_;
617 		_tmp7_ = valadoc_markup_writer_text (_tmp4_, _tmp6_);
618 		valadoc_markup_writer_end_tag (_tmp7_, "title");
619 	}
620 	_tmp8_ = self->priv->writer;
621 	valadoc_markup_writer_start_tag ((ValadocMarkupWriter*) _tmp8_, "mediaobject", NULL, (gint) 0);
622 	_tmp9_ = self->priv->writer;
623 	_tmp10_ = valadoc_markup_writer_start_tag ((ValadocMarkupWriter*) _tmp9_, "imageobject", NULL, (gint) 0);
624 	_tmp11_ = g_strdup ("fileref");
625 	_tmp12_ = valadoc_content_embedded_get_url (element);
626 	_tmp13_ = _tmp12_;
627 	_tmp14_ = g_strdup (_tmp13_);
628 	_tmp15_ = g_new0 (gchar*, 2 + 1);
629 	_tmp15_[0] = _tmp11_;
630 	_tmp15_[1] = _tmp14_;
631 	_tmp16_ = _tmp15_;
632 	_tmp16__length1 = 2;
633 	_tmp17_ = valadoc_markup_writer_simple_tag (_tmp10_, "imagedata", _tmp16_, (gint) 2);
634 	valadoc_markup_writer_end_tag (_tmp17_, "imageobject");
635 	_tmp16_ = (_vala_array_free (_tmp16_, _tmp16__length1, (GDestroyNotify) g_free), NULL);
636 	_tmp18_ = valadoc_content_embedded_get_caption (element);
637 	_tmp19_ = _tmp18_;
638 	if (_tmp19_ != NULL) {
639 		ValadocGtkDocMarkupWriter* _tmp20_;
640 		ValadocMarkupWriter* _tmp21_;
641 		ValadocMarkupWriter* _tmp22_;
642 		const gchar* _tmp23_;
643 		const gchar* _tmp24_;
644 		ValadocMarkupWriter* _tmp25_;
645 		ValadocMarkupWriter* _tmp26_;
646 		_tmp20_ = self->priv->writer;
647 		_tmp21_ = valadoc_markup_writer_start_tag ((ValadocMarkupWriter*) _tmp20_, "textobject", NULL, (gint) 0);
648 		_tmp22_ = valadoc_markup_writer_start_tag (_tmp21_, "phrase", NULL, (gint) 0);
649 		_tmp23_ = valadoc_content_embedded_get_caption (element);
650 		_tmp24_ = _tmp23_;
651 		_tmp25_ = valadoc_markup_writer_text (_tmp22_, _tmp24_);
652 		_tmp26_ = valadoc_markup_writer_end_tag (_tmp25_, "phrase");
653 		valadoc_markup_writer_end_tag (_tmp26_, "textobject");
654 	}
655 	_tmp27_ = self->priv->writer;
656 	valadoc_markup_writer_end_tag ((ValadocMarkupWriter*) _tmp27_, "mediaobject");
657 	_tmp28_ = self->priv->writer;
658 	valadoc_markup_writer_end_tag ((ValadocMarkupWriter*) _tmp28_, "figure");
659 }
660 
661 static void
valadoc_gtkdoc_renderer_real_visit_headline(ValadocContentContentVisitor * base,ValadocContentHeadline * element)662 valadoc_gtkdoc_renderer_real_visit_headline (ValadocContentContentVisitor* base,
663                                              ValadocContentHeadline* element)
664 {
665 	ValadocGtkdocRenderer * self;
666 	self = (ValadocGtkdocRenderer*) base;
667 	g_return_if_fail (element != NULL);
668 	g_assert_not_reached ();
669 }
670 
671 static void
valadoc_gtkdoc_renderer_real_visit_wiki_link(ValadocContentContentVisitor * base,ValadocContentWikiLink * element)672 valadoc_gtkdoc_renderer_real_visit_wiki_link (ValadocContentContentVisitor* base,
673                                               ValadocContentWikiLink* element)
674 {
675 	ValadocGtkdocRenderer * self;
676 	ValaList* _tmp0_;
677 	ValaList* _tmp1_;
678 	gint _tmp2_;
679 	gint _tmp3_;
680 	self = (ValadocGtkdocRenderer*) base;
681 	g_return_if_fail (element != NULL);
682 	_tmp0_ = valadoc_content_inline_content_get_content ((ValadocContentInlineContent*) element);
683 	_tmp1_ = _tmp0_;
684 	_tmp2_ = vala_collection_get_size ((ValaCollection*) _tmp1_);
685 	_tmp3_ = _tmp2_;
686 	if (_tmp3_ > 0) {
687 		valadoc_content_content_element_accept_children ((ValadocContentContentElement*) element, (ValadocContentContentVisitor*) self);
688 	} else {
689 		const gchar* _tmp4_;
690 		const gchar* _tmp5_;
691 		_tmp4_ = valadoc_content_wiki_link_get_name (element);
692 		_tmp5_ = _tmp4_;
693 		valadoc_gtkdoc_renderer_write_string (self, _tmp5_);
694 	}
695 }
696 
697 static void
valadoc_gtkdoc_renderer_real_visit_link(ValadocContentContentVisitor * base,ValadocContentLink * element)698 valadoc_gtkdoc_renderer_real_visit_link (ValadocContentContentVisitor* base,
699                                          ValadocContentLink* element)
700 {
701 	ValadocGtkdocRenderer * self;
702 	ValadocGtkDocMarkupWriter* _tmp0_;
703 	gchar* _tmp1_;
704 	const gchar* _tmp2_;
705 	const gchar* _tmp3_;
706 	gchar* _tmp4_;
707 	gchar** _tmp5_;
708 	gchar** _tmp6_;
709 	gint _tmp6__length1;
710 	ValadocGtkDocMarkupWriter* _tmp7_;
711 	self = (ValadocGtkdocRenderer*) base;
712 	g_return_if_fail (element != NULL);
713 	_tmp0_ = self->priv->writer;
714 	_tmp1_ = g_strdup ("url");
715 	_tmp2_ = valadoc_content_link_get_url (element);
716 	_tmp3_ = _tmp2_;
717 	_tmp4_ = g_strdup (_tmp3_);
718 	_tmp5_ = g_new0 (gchar*, 2 + 1);
719 	_tmp5_[0] = _tmp1_;
720 	_tmp5_[1] = _tmp4_;
721 	_tmp6_ = _tmp5_;
722 	_tmp6__length1 = 2;
723 	valadoc_markup_writer_start_tag ((ValadocMarkupWriter*) _tmp0_, "ulink", _tmp6_, (gint) 2);
724 	_tmp6_ = (_vala_array_free (_tmp6_, _tmp6__length1, (GDestroyNotify) g_free), NULL);
725 	valadoc_content_content_element_accept_children ((ValadocContentContentElement*) element, (ValadocContentContentVisitor*) self);
726 	_tmp7_ = self->priv->writer;
727 	valadoc_markup_writer_end_tag ((ValadocMarkupWriter*) _tmp7_, "ulink");
728 }
729 
730 static void
valadoc_gtkdoc_renderer_real_visit_symbol_link(ValadocContentContentVisitor * base,ValadocContentSymbolLink * element)731 valadoc_gtkdoc_renderer_real_visit_symbol_link (ValadocContentContentVisitor* base,
732                                                 ValadocContentSymbolLink* element)
733 {
734 	ValadocGtkdocRenderer * self;
735 	ValaList* _tmp0_;
736 	ValaList* _tmp1_;
737 	gint _tmp2_;
738 	gint _tmp3_;
739 	self = (ValadocGtkdocRenderer*) base;
740 	g_return_if_fail (element != NULL);
741 	_tmp0_ = valadoc_content_inline_content_get_content ((ValadocContentInlineContent*) element);
742 	_tmp1_ = _tmp0_;
743 	_tmp2_ = vala_collection_get_size ((ValaCollection*) _tmp1_);
744 	_tmp3_ = _tmp2_;
745 	if (_tmp3_ > 0) {
746 		ValadocGtkDocMarkupWriter* _tmp4_;
747 		ValadocGtkDocMarkupWriter* _tmp5_;
748 		ValadocGtkDocMarkupWriter* _tmp6_;
749 		_tmp4_ = self->priv->writer;
750 		valadoc_markup_writer_text ((ValadocMarkupWriter*) _tmp4_, "\"");
751 		valadoc_content_content_element_accept_children ((ValadocContentContentElement*) element, (ValadocContentContentVisitor*) self);
752 		_tmp5_ = self->priv->writer;
753 		valadoc_markup_writer_text ((ValadocMarkupWriter*) _tmp5_, "\" (");
754 		valadoc_gtkdoc_renderer_write_symbol_link (self, element);
755 		_tmp6_ = self->priv->writer;
756 		valadoc_markup_writer_text ((ValadocMarkupWriter*) _tmp6_, ")");
757 	} else {
758 		valadoc_gtkdoc_renderer_write_symbol_link (self, element);
759 	}
760 }
761 
762 void
valadoc_gtkdoc_renderer_write_symbol_link(ValadocGtkdocRenderer * self,ValadocContentSymbolLink * element)763 valadoc_gtkdoc_renderer_write_symbol_link (ValadocGtkdocRenderer* self,
764                                            ValadocContentSymbolLink* element)
765 {
766 	ValadocApiNode* _tmp0_;
767 	ValadocApiNode* _tmp1_;
768 	g_return_if_fail (self != NULL);
769 	g_return_if_fail (element != NULL);
770 	_tmp0_ = valadoc_content_symbol_link_get_symbol (element);
771 	_tmp1_ = _tmp0_;
772 	if (_tmp1_ == NULL) {
773 		ValadocGtkDocMarkupWriter* _tmp2_;
774 		const gchar* _tmp3_;
775 		const gchar* _tmp4_;
776 		_tmp2_ = self->priv->writer;
777 		_tmp3_ = valadoc_content_symbol_link_get_given_symbol_name (element);
778 		_tmp4_ = _tmp3_;
779 		valadoc_markup_writer_text ((ValadocMarkupWriter*) _tmp2_, _tmp4_);
780 	} else {
781 		ValadocApiNode* _tmp5_;
782 		ValadocApiNode* _tmp6_;
783 		_tmp5_ = valadoc_content_symbol_link_get_symbol (element);
784 		_tmp6_ = _tmp5_;
785 		valadoc_gtkdoc_renderer_write_docbook_link (self, (ValadocApiItem*) _tmp6_);
786 	}
787 }
788 
789 static void
valadoc_gtkdoc_renderer_real_visit_list(ValadocContentContentVisitor * base,ValadocContentList * element)790 valadoc_gtkdoc_renderer_real_visit_list (ValadocContentContentVisitor* base,
791                                          ValadocContentList* element)
792 {
793 	ValadocGtkdocRenderer * self;
794 	gchar* tag = NULL;
795 	gchar* _tmp0_;
796 	ValadocContentListBullet _tmp1_;
797 	ValadocContentListBullet _tmp2_;
798 	ValadocGtkDocMarkupWriter* _tmp37_;
799 	const gchar* _tmp38_;
800 	self = (ValadocGtkdocRenderer*) base;
801 	g_return_if_fail (element != NULL);
802 	_tmp0_ = g_strdup ("orderedlist");
803 	tag = _tmp0_;
804 	_tmp1_ = valadoc_content_list_get_bullet (element);
805 	_tmp2_ = _tmp1_;
806 	switch (_tmp2_) {
807 		case VALADOC_CONTENT_LIST_BULLET_NONE:
808 		{
809 			ValadocGtkDocMarkupWriter* _tmp3_;
810 			gchar* _tmp4_;
811 			gchar* _tmp5_;
812 			gchar** _tmp6_;
813 			gchar** _tmp7_;
814 			gint _tmp7__length1;
815 			gchar* _tmp8_;
816 			_tmp3_ = self->priv->writer;
817 			_tmp4_ = g_strdup ("mark");
818 			_tmp5_ = g_strdup ("none");
819 			_tmp6_ = g_new0 (gchar*, 2 + 1);
820 			_tmp6_[0] = _tmp4_;
821 			_tmp6_[1] = _tmp5_;
822 			_tmp7_ = _tmp6_;
823 			_tmp7__length1 = 2;
824 			valadoc_markup_writer_start_tag ((ValadocMarkupWriter*) _tmp3_, "itemizedlist", _tmp7_, (gint) 2);
825 			_tmp7_ = (_vala_array_free (_tmp7_, _tmp7__length1, (GDestroyNotify) g_free), NULL);
826 			_tmp8_ = g_strdup ("itemizedlist");
827 			_g_free0 (tag);
828 			tag = _tmp8_;
829 			break;
830 		}
831 		case VALADOC_CONTENT_LIST_BULLET_UNORDERED:
832 		{
833 			ValadocGtkDocMarkupWriter* _tmp9_;
834 			gchar* _tmp10_;
835 			_tmp9_ = self->priv->writer;
836 			valadoc_markup_writer_start_tag ((ValadocMarkupWriter*) _tmp9_, "itemizedlist", NULL, (gint) 0);
837 			_tmp10_ = g_strdup ("itemizedlist");
838 			_g_free0 (tag);
839 			tag = _tmp10_;
840 			break;
841 		}
842 		case VALADOC_CONTENT_LIST_BULLET_ORDERED:
843 		{
844 			ValadocGtkDocMarkupWriter* _tmp11_;
845 			_tmp11_ = self->priv->writer;
846 			valadoc_markup_writer_start_tag ((ValadocMarkupWriter*) _tmp11_, "orderedlist", NULL, (gint) 0);
847 			break;
848 		}
849 		case VALADOC_CONTENT_LIST_BULLET_ORDERED_NUMBER:
850 		{
851 			ValadocGtkDocMarkupWriter* _tmp12_;
852 			gchar* _tmp13_;
853 			gchar* _tmp14_;
854 			gchar** _tmp15_;
855 			gchar** _tmp16_;
856 			gint _tmp16__length1;
857 			_tmp12_ = self->priv->writer;
858 			_tmp13_ = g_strdup ("numeration");
859 			_tmp14_ = g_strdup ("arabic");
860 			_tmp15_ = g_new0 (gchar*, 2 + 1);
861 			_tmp15_[0] = _tmp13_;
862 			_tmp15_[1] = _tmp14_;
863 			_tmp16_ = _tmp15_;
864 			_tmp16__length1 = 2;
865 			valadoc_markup_writer_start_tag ((ValadocMarkupWriter*) _tmp12_, "orderedlist", _tmp16_, (gint) 2);
866 			_tmp16_ = (_vala_array_free (_tmp16_, _tmp16__length1, (GDestroyNotify) g_free), NULL);
867 			break;
868 		}
869 		case VALADOC_CONTENT_LIST_BULLET_ORDERED_LOWER_CASE_ALPHA:
870 		{
871 			ValadocGtkDocMarkupWriter* _tmp17_;
872 			gchar* _tmp18_;
873 			gchar* _tmp19_;
874 			gchar** _tmp20_;
875 			gchar** _tmp21_;
876 			gint _tmp21__length1;
877 			_tmp17_ = self->priv->writer;
878 			_tmp18_ = g_strdup ("numeration");
879 			_tmp19_ = g_strdup ("loweralpha");
880 			_tmp20_ = g_new0 (gchar*, 2 + 1);
881 			_tmp20_[0] = _tmp18_;
882 			_tmp20_[1] = _tmp19_;
883 			_tmp21_ = _tmp20_;
884 			_tmp21__length1 = 2;
885 			valadoc_markup_writer_start_tag ((ValadocMarkupWriter*) _tmp17_, "orderedlist", _tmp21_, (gint) 2);
886 			_tmp21_ = (_vala_array_free (_tmp21_, _tmp21__length1, (GDestroyNotify) g_free), NULL);
887 			break;
888 		}
889 		case VALADOC_CONTENT_LIST_BULLET_ORDERED_UPPER_CASE_ALPHA:
890 		{
891 			ValadocGtkDocMarkupWriter* _tmp22_;
892 			gchar* _tmp23_;
893 			gchar* _tmp24_;
894 			gchar** _tmp25_;
895 			gchar** _tmp26_;
896 			gint _tmp26__length1;
897 			_tmp22_ = self->priv->writer;
898 			_tmp23_ = g_strdup ("numeration");
899 			_tmp24_ = g_strdup ("upperalpha");
900 			_tmp25_ = g_new0 (gchar*, 2 + 1);
901 			_tmp25_[0] = _tmp23_;
902 			_tmp25_[1] = _tmp24_;
903 			_tmp26_ = _tmp25_;
904 			_tmp26__length1 = 2;
905 			valadoc_markup_writer_start_tag ((ValadocMarkupWriter*) _tmp22_, "orderedlist", _tmp26_, (gint) 2);
906 			_tmp26_ = (_vala_array_free (_tmp26_, _tmp26__length1, (GDestroyNotify) g_free), NULL);
907 			break;
908 		}
909 		case VALADOC_CONTENT_LIST_BULLET_ORDERED_LOWER_CASE_ROMAN:
910 		{
911 			ValadocGtkDocMarkupWriter* _tmp27_;
912 			gchar* _tmp28_;
913 			gchar* _tmp29_;
914 			gchar** _tmp30_;
915 			gchar** _tmp31_;
916 			gint _tmp31__length1;
917 			_tmp27_ = self->priv->writer;
918 			_tmp28_ = g_strdup ("numeration");
919 			_tmp29_ = g_strdup ("lowerroman");
920 			_tmp30_ = g_new0 (gchar*, 2 + 1);
921 			_tmp30_[0] = _tmp28_;
922 			_tmp30_[1] = _tmp29_;
923 			_tmp31_ = _tmp30_;
924 			_tmp31__length1 = 2;
925 			valadoc_markup_writer_start_tag ((ValadocMarkupWriter*) _tmp27_, "orderedlist", _tmp31_, (gint) 2);
926 			_tmp31_ = (_vala_array_free (_tmp31_, _tmp31__length1, (GDestroyNotify) g_free), NULL);
927 			break;
928 		}
929 		case VALADOC_CONTENT_LIST_BULLET_ORDERED_UPPER_CASE_ROMAN:
930 		{
931 			ValadocGtkDocMarkupWriter* _tmp32_;
932 			gchar* _tmp33_;
933 			gchar* _tmp34_;
934 			gchar** _tmp35_;
935 			gchar** _tmp36_;
936 			gint _tmp36__length1;
937 			_tmp32_ = self->priv->writer;
938 			_tmp33_ = g_strdup ("numeration");
939 			_tmp34_ = g_strdup ("upperroman");
940 			_tmp35_ = g_new0 (gchar*, 2 + 1);
941 			_tmp35_[0] = _tmp33_;
942 			_tmp35_[1] = _tmp34_;
943 			_tmp36_ = _tmp35_;
944 			_tmp36__length1 = 2;
945 			valadoc_markup_writer_start_tag ((ValadocMarkupWriter*) _tmp32_, "orderedlist", _tmp36_, (gint) 2);
946 			_tmp36_ = (_vala_array_free (_tmp36_, _tmp36__length1, (GDestroyNotify) g_free), NULL);
947 			break;
948 		}
949 		default:
950 		{
951 			g_assert_not_reached ();
952 		}
953 	}
954 	valadoc_content_content_element_accept_children ((ValadocContentContentElement*) element, (ValadocContentContentVisitor*) self);
955 	_tmp37_ = self->priv->writer;
956 	_tmp38_ = tag;
957 	valadoc_markup_writer_end_tag ((ValadocMarkupWriter*) _tmp37_, _tmp38_);
958 	_g_free0 (tag);
959 }
960 
961 static void
valadoc_gtkdoc_renderer_real_visit_list_item(ValadocContentContentVisitor * base,ValadocContentListItem * element)962 valadoc_gtkdoc_renderer_real_visit_list_item (ValadocContentContentVisitor* base,
963                                               ValadocContentListItem* element)
964 {
965 	ValadocGtkdocRenderer * self;
966 	ValadocGtkDocMarkupWriter* _tmp0_;
967 	ValadocGtkDocMarkupWriter* _tmp1_;
968 	self = (ValadocGtkdocRenderer*) base;
969 	g_return_if_fail (element != NULL);
970 	_tmp0_ = self->priv->writer;
971 	valadoc_markup_writer_start_tag ((ValadocMarkupWriter*) _tmp0_, "listitem", NULL, (gint) 0);
972 	valadoc_content_content_element_accept_children ((ValadocContentContentElement*) element, (ValadocContentContentVisitor*) self);
973 	_tmp1_ = self->priv->writer;
974 	valadoc_markup_writer_end_tag ((ValadocMarkupWriter*) _tmp1_, "listitem");
975 }
976 
977 static void
valadoc_gtkdoc_renderer_real_visit_page(ValadocContentContentVisitor * base,ValadocContentPage * element)978 valadoc_gtkdoc_renderer_real_visit_page (ValadocContentContentVisitor* base,
979                                          ValadocContentPage* element)
980 {
981 	ValadocGtkdocRenderer * self;
982 	self = (ValadocGtkdocRenderer*) base;
983 	g_return_if_fail (element != NULL);
984 	valadoc_content_content_element_accept_children ((ValadocContentContentElement*) element, (ValadocContentContentVisitor*) self);
985 }
986 
987 static void
valadoc_gtkdoc_renderer_real_visit_paragraph(ValadocContentContentVisitor * base,ValadocContentParagraph * element)988 valadoc_gtkdoc_renderer_real_visit_paragraph (ValadocContentContentVisitor* base,
989                                               ValadocContentParagraph* element)
990 {
991 	ValadocGtkdocRenderer * self;
992 	ValadocGtkDocMarkupWriter* _tmp0_;
993 	ValadocGtkDocMarkupWriter* _tmp1_;
994 	self = (ValadocGtkdocRenderer*) base;
995 	g_return_if_fail (element != NULL);
996 	_tmp0_ = self->priv->writer;
997 	valadoc_markup_writer_start_tag ((ValadocMarkupWriter*) _tmp0_, "para", NULL, (gint) 0);
998 	valadoc_content_content_element_accept_children ((ValadocContentContentElement*) element, (ValadocContentContentVisitor*) self);
999 	_tmp1_ = self->priv->writer;
1000 	valadoc_markup_writer_end_tag ((ValadocMarkupWriter*) _tmp1_, "para");
1001 }
1002 
1003 static void
valadoc_gtkdoc_renderer_real_visit_warning(ValadocContentContentVisitor * base,ValadocContentWarning * element)1004 valadoc_gtkdoc_renderer_real_visit_warning (ValadocContentContentVisitor* base,
1005                                             ValadocContentWarning* element)
1006 {
1007 	ValadocGtkdocRenderer * self;
1008 	ValadocGtkDocMarkupWriter* _tmp0_;
1009 	ValadocGtkDocMarkupWriter* _tmp1_;
1010 	self = (ValadocGtkdocRenderer*) base;
1011 	g_return_if_fail (element != NULL);
1012 	_tmp0_ = self->priv->writer;
1013 	valadoc_markup_writer_start_tag ((ValadocMarkupWriter*) _tmp0_, "warning", NULL, (gint) 0);
1014 	valadoc_content_content_element_accept_children ((ValadocContentContentElement*) element, (ValadocContentContentVisitor*) self);
1015 	_tmp1_ = self->priv->writer;
1016 	valadoc_markup_writer_end_tag ((ValadocMarkupWriter*) _tmp1_, "warning");
1017 }
1018 
1019 static void
valadoc_gtkdoc_renderer_real_visit_note(ValadocContentContentVisitor * base,ValadocContentNote * element)1020 valadoc_gtkdoc_renderer_real_visit_note (ValadocContentContentVisitor* base,
1021                                          ValadocContentNote* element)
1022 {
1023 	ValadocGtkdocRenderer * self;
1024 	ValadocGtkDocMarkupWriter* _tmp0_;
1025 	ValadocGtkDocMarkupWriter* _tmp1_;
1026 	self = (ValadocGtkdocRenderer*) base;
1027 	g_return_if_fail (element != NULL);
1028 	_tmp0_ = self->priv->writer;
1029 	valadoc_markup_writer_start_tag ((ValadocMarkupWriter*) _tmp0_, "note", NULL, (gint) 0);
1030 	valadoc_content_content_element_accept_children ((ValadocContentContentElement*) element, (ValadocContentContentVisitor*) self);
1031 	_tmp1_ = self->priv->writer;
1032 	valadoc_markup_writer_end_tag ((ValadocMarkupWriter*) _tmp1_, "note");
1033 }
1034 
1035 static void
valadoc_gtkdoc_renderer_real_visit_run(ValadocContentContentVisitor * base,ValadocContentRun * element)1036 valadoc_gtkdoc_renderer_real_visit_run (ValadocContentContentVisitor* base,
1037                                         ValadocContentRun* element)
1038 {
1039 	ValadocGtkdocRenderer * self;
1040 	gchar* tag = NULL;
1041 	ValadocContentRunStyle _tmp0_;
1042 	ValadocContentRunStyle _tmp1_;
1043 	const gchar* _tmp18_;
1044 	self = (ValadocGtkdocRenderer*) base;
1045 	g_return_if_fail (element != NULL);
1046 	tag = NULL;
1047 	_tmp0_ = valadoc_content_run_get_style (element);
1048 	_tmp1_ = _tmp0_;
1049 	switch (_tmp1_) {
1050 		case VALADOC_CONTENT_RUN_STYLE_BOLD:
1051 		{
1052 			ValadocGtkDocMarkupWriter* _tmp2_;
1053 			gchar* _tmp3_;
1054 			gchar* _tmp4_;
1055 			gchar** _tmp5_;
1056 			gchar** _tmp6_;
1057 			gint _tmp6__length1;
1058 			gchar* _tmp7_;
1059 			_tmp2_ = self->priv->writer;
1060 			_tmp3_ = g_strdup ("role");
1061 			_tmp4_ = g_strdup ("bold");
1062 			_tmp5_ = g_new0 (gchar*, 2 + 1);
1063 			_tmp5_[0] = _tmp3_;
1064 			_tmp5_[1] = _tmp4_;
1065 			_tmp6_ = _tmp5_;
1066 			_tmp6__length1 = 2;
1067 			valadoc_markup_writer_start_tag ((ValadocMarkupWriter*) _tmp2_, "emphasis", _tmp6_, (gint) 2);
1068 			_tmp6_ = (_vala_array_free (_tmp6_, _tmp6__length1, (GDestroyNotify) g_free), NULL);
1069 			_tmp7_ = g_strdup ("emphasis");
1070 			_g_free0 (tag);
1071 			tag = _tmp7_;
1072 			break;
1073 		}
1074 		case VALADOC_CONTENT_RUN_STYLE_ITALIC:
1075 		{
1076 			ValadocGtkDocMarkupWriter* _tmp8_;
1077 			gchar* _tmp9_;
1078 			_tmp8_ = self->priv->writer;
1079 			valadoc_markup_writer_start_tag ((ValadocMarkupWriter*) _tmp8_, "emphasis", NULL, (gint) 0);
1080 			_tmp9_ = g_strdup ("emphasis");
1081 			_g_free0 (tag);
1082 			tag = _tmp9_;
1083 			break;
1084 		}
1085 		case VALADOC_CONTENT_RUN_STYLE_UNDERLINED:
1086 		{
1087 			ValadocGtkDocMarkupWriter* _tmp10_;
1088 			gchar* _tmp11_;
1089 			gchar* _tmp12_;
1090 			gchar** _tmp13_;
1091 			gchar** _tmp14_;
1092 			gint _tmp14__length1;
1093 			gchar* _tmp15_;
1094 			_tmp10_ = self->priv->writer;
1095 			_tmp11_ = g_strdup ("role");
1096 			_tmp12_ = g_strdup ("underline");
1097 			_tmp13_ = g_new0 (gchar*, 2 + 1);
1098 			_tmp13_[0] = _tmp11_;
1099 			_tmp13_[1] = _tmp12_;
1100 			_tmp14_ = _tmp13_;
1101 			_tmp14__length1 = 2;
1102 			valadoc_markup_writer_start_tag ((ValadocMarkupWriter*) _tmp10_, "emphasis", _tmp14_, (gint) 2);
1103 			_tmp14_ = (_vala_array_free (_tmp14_, _tmp14__length1, (GDestroyNotify) g_free), NULL);
1104 			_tmp15_ = g_strdup ("emphasis");
1105 			_g_free0 (tag);
1106 			tag = _tmp15_;
1107 			break;
1108 		}
1109 		case VALADOC_CONTENT_RUN_STYLE_MONOSPACED:
1110 		{
1111 			ValadocGtkDocMarkupWriter* _tmp16_;
1112 			gchar* _tmp17_;
1113 			_tmp16_ = self->priv->writer;
1114 			valadoc_markup_writer_start_tag ((ValadocMarkupWriter*) _tmp16_, "blockquote", NULL, (gint) 0);
1115 			_tmp17_ = g_strdup ("blockquote");
1116 			_g_free0 (tag);
1117 			tag = _tmp17_;
1118 			break;
1119 		}
1120 		default:
1121 		{
1122 			break;
1123 		}
1124 	}
1125 	valadoc_content_content_element_accept_children ((ValadocContentContentElement*) element, (ValadocContentContentVisitor*) self);
1126 	_tmp18_ = tag;
1127 	if (_tmp18_ != NULL) {
1128 		ValadocGtkDocMarkupWriter* _tmp19_;
1129 		const gchar* _tmp20_;
1130 		_tmp19_ = self->priv->writer;
1131 		_tmp20_ = tag;
1132 		valadoc_markup_writer_end_tag ((ValadocMarkupWriter*) _tmp19_, _tmp20_);
1133 	}
1134 	_g_free0 (tag);
1135 }
1136 
1137 static void
valadoc_gtkdoc_renderer_real_visit_source_code(ValadocContentContentVisitor * base,ValadocContentSourceCode * element)1138 valadoc_gtkdoc_renderer_real_visit_source_code (ValadocContentContentVisitor* base,
1139                                                 ValadocContentSourceCode* element)
1140 {
1141 	ValadocGtkdocRenderer * self;
1142 	ValadocGtkDocMarkupWriter* _tmp0_;
1143 	ValadocMarkupWriter* _tmp1_;
1144 	ValadocGtkDocMarkupWriter* _tmp2_;
1145 	const gchar* _tmp3_;
1146 	const gchar* _tmp4_;
1147 	ValadocGtkDocMarkupWriter* _tmp5_;
1148 	ValadocMarkupWriter* _tmp6_;
1149 	self = (ValadocGtkdocRenderer*) base;
1150 	g_return_if_fail (element != NULL);
1151 	_tmp0_ = self->priv->writer;
1152 	_tmp1_ = valadoc_markup_writer_start_tag ((ValadocMarkupWriter*) _tmp0_, "example", NULL, (gint) 0);
1153 	valadoc_markup_writer_start_tag (_tmp1_, "programlisting", NULL, (gint) 0);
1154 	_tmp2_ = self->priv->writer;
1155 	_tmp3_ = valadoc_content_source_code_get_code (element);
1156 	_tmp4_ = _tmp3_;
1157 	valadoc_markup_writer_text ((ValadocMarkupWriter*) _tmp2_, _tmp4_);
1158 	_tmp5_ = self->priv->writer;
1159 	_tmp6_ = valadoc_markup_writer_end_tag ((ValadocMarkupWriter*) _tmp5_, "programlisting");
1160 	valadoc_markup_writer_end_tag (_tmp6_, "example");
1161 }
1162 
1163 static void
valadoc_gtkdoc_renderer_real_visit_table(ValadocContentContentVisitor * base,ValadocContentTable * element)1164 valadoc_gtkdoc_renderer_real_visit_table (ValadocContentContentVisitor* base,
1165                                           ValadocContentTable* element)
1166 {
1167 	ValadocGtkdocRenderer * self;
1168 	ValadocGtkDocMarkupWriter* _tmp0_;
1169 	gchar* _tmp1_;
1170 	gchar* _tmp2_;
1171 	gchar** _tmp3_;
1172 	gchar** _tmp4_;
1173 	gint _tmp4__length1;
1174 	ValadocGtkDocMarkupWriter* _tmp5_;
1175 	self = (ValadocGtkdocRenderer*) base;
1176 	g_return_if_fail (element != NULL);
1177 	_tmp0_ = self->priv->writer;
1178 	_tmp1_ = g_strdup ("align");
1179 	_tmp2_ = g_strdup ("center");
1180 	_tmp3_ = g_new0 (gchar*, 2 + 1);
1181 	_tmp3_[0] = _tmp1_;
1182 	_tmp3_[1] = _tmp2_;
1183 	_tmp4_ = _tmp3_;
1184 	_tmp4__length1 = 2;
1185 	valadoc_markup_writer_start_tag ((ValadocMarkupWriter*) _tmp0_, "table", _tmp4_, (gint) 2);
1186 	_tmp4_ = (_vala_array_free (_tmp4_, _tmp4__length1, (GDestroyNotify) g_free), NULL);
1187 	valadoc_content_content_element_accept_children ((ValadocContentContentElement*) element, (ValadocContentContentVisitor*) self);
1188 	_tmp5_ = self->priv->writer;
1189 	valadoc_markup_writer_end_tag ((ValadocMarkupWriter*) _tmp5_, "table");
1190 }
1191 
1192 static void
valadoc_gtkdoc_renderer_real_visit_table_cell(ValadocContentContentVisitor * base,ValadocContentTableCell * element)1193 valadoc_gtkdoc_renderer_real_visit_table_cell (ValadocContentContentVisitor* base,
1194                                                ValadocContentTableCell* element)
1195 {
1196 	ValadocGtkdocRenderer * self;
1197 	ValadocGtkDocMarkupWriter* _tmp0_;
1198 	gchar* _tmp1_;
1199 	gint _tmp2_;
1200 	gint _tmp3_;
1201 	gchar* _tmp4_;
1202 	gchar* _tmp5_;
1203 	gint _tmp6_;
1204 	gint _tmp7_;
1205 	gchar* _tmp8_;
1206 	gchar** _tmp9_;
1207 	gchar** _tmp10_;
1208 	gint _tmp10__length1;
1209 	ValadocGtkDocMarkupWriter* _tmp11_;
1210 	self = (ValadocGtkdocRenderer*) base;
1211 	g_return_if_fail (element != NULL);
1212 	_tmp0_ = self->priv->writer;
1213 	_tmp1_ = g_strdup ("colspan");
1214 	_tmp2_ = valadoc_content_table_cell_get_colspan (element);
1215 	_tmp3_ = _tmp2_;
1216 	_tmp4_ = g_strdup_printf ("%i", _tmp3_);
1217 	_tmp5_ = g_strdup ("rowspan");
1218 	_tmp6_ = valadoc_content_table_cell_get_rowspan (element);
1219 	_tmp7_ = _tmp6_;
1220 	_tmp8_ = g_strdup_printf ("%i", _tmp7_);
1221 	_tmp9_ = g_new0 (gchar*, 4 + 1);
1222 	_tmp9_[0] = _tmp1_;
1223 	_tmp9_[1] = _tmp4_;
1224 	_tmp9_[2] = _tmp5_;
1225 	_tmp9_[3] = _tmp8_;
1226 	_tmp10_ = _tmp9_;
1227 	_tmp10__length1 = 4;
1228 	valadoc_markup_writer_start_tag ((ValadocMarkupWriter*) _tmp0_, "td", _tmp10_, (gint) 4);
1229 	_tmp10_ = (_vala_array_free (_tmp10_, _tmp10__length1, (GDestroyNotify) g_free), NULL);
1230 	valadoc_content_content_element_accept_children ((ValadocContentContentElement*) element, (ValadocContentContentVisitor*) self);
1231 	_tmp11_ = self->priv->writer;
1232 	valadoc_markup_writer_end_tag ((ValadocMarkupWriter*) _tmp11_, "td");
1233 }
1234 
1235 static void
valadoc_gtkdoc_renderer_real_visit_table_row(ValadocContentContentVisitor * base,ValadocContentTableRow * element)1236 valadoc_gtkdoc_renderer_real_visit_table_row (ValadocContentContentVisitor* base,
1237                                               ValadocContentTableRow* element)
1238 {
1239 	ValadocGtkdocRenderer * self;
1240 	ValadocGtkDocMarkupWriter* _tmp0_;
1241 	ValadocGtkDocMarkupWriter* _tmp1_;
1242 	self = (ValadocGtkdocRenderer*) base;
1243 	g_return_if_fail (element != NULL);
1244 	_tmp0_ = self->priv->writer;
1245 	valadoc_markup_writer_start_tag ((ValadocMarkupWriter*) _tmp0_, "tr", NULL, (gint) 0);
1246 	valadoc_content_content_element_accept_children ((ValadocContentContentElement*) element, (ValadocContentContentVisitor*) self);
1247 	_tmp1_ = self->priv->writer;
1248 	valadoc_markup_writer_end_tag ((ValadocMarkupWriter*) _tmp1_, "tr");
1249 }
1250 
1251 static void
valadoc_gtkdoc_renderer_real_visit_text(ValadocContentContentVisitor * base,ValadocContentText * element)1252 valadoc_gtkdoc_renderer_real_visit_text (ValadocContentContentVisitor* base,
1253                                          ValadocContentText* element)
1254 {
1255 	ValadocGtkdocRenderer * self;
1256 	const gchar* _tmp0_;
1257 	const gchar* _tmp1_;
1258 	self = (ValadocGtkdocRenderer*) base;
1259 	g_return_if_fail (element != NULL);
1260 	_tmp0_ = valadoc_content_text_get_content (element);
1261 	_tmp1_ = _tmp0_;
1262 	valadoc_gtkdoc_renderer_write_string (self, _tmp1_);
1263 }
1264 
1265 static gchar
string_get(const gchar * self,glong index)1266 string_get (const gchar* self,
1267             glong index)
1268 {
1269 	gchar _tmp0_;
1270 	gchar result = '\0';
1271 	g_return_val_if_fail (self != NULL, '\0');
1272 	_tmp0_ = ((gchar*) self)[index];
1273 	result = _tmp0_;
1274 	return result;
1275 }
1276 
1277 static glong
string_strnlen(gchar * str,glong maxlen)1278 string_strnlen (gchar* str,
1279                 glong maxlen)
1280 {
1281 	gchar* end = NULL;
1282 	gchar* _tmp0_;
1283 	gchar* _tmp1_;
1284 	glong result = 0L;
1285 	_tmp0_ = memchr (str, 0, (gsize) maxlen);
1286 	end = _tmp0_;
1287 	_tmp1_ = end;
1288 	if (_tmp1_ == NULL) {
1289 		result = maxlen;
1290 		return result;
1291 	} else {
1292 		gchar* _tmp2_;
1293 		_tmp2_ = end;
1294 		result = (glong) (_tmp2_ - str);
1295 		return result;
1296 	}
1297 }
1298 
1299 static gchar*
string_substring(const gchar * self,glong offset,glong len)1300 string_substring (const gchar* self,
1301                   glong offset,
1302                   glong len)
1303 {
1304 	glong string_length = 0L;
1305 	gboolean _tmp0_ = FALSE;
1306 	gchar* _tmp3_;
1307 	gchar* result = NULL;
1308 	g_return_val_if_fail (self != NULL, NULL);
1309 	if (offset >= ((glong) 0)) {
1310 		_tmp0_ = len >= ((glong) 0);
1311 	} else {
1312 		_tmp0_ = FALSE;
1313 	}
1314 	if (_tmp0_) {
1315 		string_length = string_strnlen ((gchar*) self, offset + len);
1316 	} else {
1317 		gint _tmp1_;
1318 		gint _tmp2_;
1319 		_tmp1_ = strlen (self);
1320 		_tmp2_ = _tmp1_;
1321 		string_length = (glong) _tmp2_;
1322 	}
1323 	if (offset < ((glong) 0)) {
1324 		offset = string_length + offset;
1325 		g_return_val_if_fail (offset >= ((glong) 0), NULL);
1326 	} else {
1327 		g_return_val_if_fail (offset <= string_length, NULL);
1328 	}
1329 	if (len < ((glong) 0)) {
1330 		len = string_length - offset;
1331 	}
1332 	g_return_val_if_fail ((offset + len) <= string_length, NULL);
1333 	_tmp3_ = g_strndup (((gchar*) self) + offset, (gsize) len);
1334 	result = _tmp3_;
1335 	return result;
1336 }
1337 
1338 static void
valadoc_gtkdoc_renderer_write_string(ValadocGtkdocRenderer * self,const gchar * content)1339 valadoc_gtkdoc_renderer_write_string (ValadocGtkdocRenderer* self,
1340                                       const gchar* content)
1341 {
1342 	gunichar chr = 0U;
1343 	glong lpos = 0L;
1344 	gint i = 0;
1345 	ValadocGtkDocMarkupWriter* _tmp46_;
1346 	gchar* _tmp47_;
1347 	gchar* _tmp48_;
1348 	g_return_if_fail (self != NULL);
1349 	g_return_if_fail (content != NULL);
1350 	chr = (gunichar) string_get (content, (glong) 0);
1351 	lpos = (glong) 0;
1352 	i = 0;
1353 	{
1354 		gboolean _tmp0_ = FALSE;
1355 		i = 0;
1356 		_tmp0_ = TRUE;
1357 		while (TRUE) {
1358 			if (!_tmp0_) {
1359 				gint _tmp1_;
1360 				_tmp1_ = i;
1361 				i = _tmp1_ + 1;
1362 				chr = (gunichar) string_get (content, (glong) i);
1363 			}
1364 			_tmp0_ = FALSE;
1365 			if (!(chr != ((gunichar) '\0'))) {
1366 				break;
1367 			}
1368 			switch (chr) {
1369 				case '<':
1370 				{
1371 					ValadocGtkDocMarkupWriter* _tmp2_;
1372 					gchar* _tmp3_;
1373 					gchar* _tmp4_;
1374 					ValadocGtkDocMarkupWriter* _tmp5_;
1375 					_tmp2_ = self->priv->writer;
1376 					_tmp3_ = string_substring (content, lpos, i - lpos);
1377 					_tmp4_ = _tmp3_;
1378 					valadoc_markup_writer_raw_text ((ValadocMarkupWriter*) _tmp2_, _tmp4_);
1379 					_g_free0 (_tmp4_);
1380 					_tmp5_ = self->priv->writer;
1381 					valadoc_markup_writer_raw_text ((ValadocMarkupWriter*) _tmp5_, "&lt;");
1382 					lpos = (glong) (i + 1);
1383 					break;
1384 				}
1385 				case '>':
1386 				{
1387 					ValadocGtkDocMarkupWriter* _tmp6_;
1388 					gchar* _tmp7_;
1389 					gchar* _tmp8_;
1390 					ValadocGtkDocMarkupWriter* _tmp9_;
1391 					_tmp6_ = self->priv->writer;
1392 					_tmp7_ = string_substring (content, lpos, i - lpos);
1393 					_tmp8_ = _tmp7_;
1394 					valadoc_markup_writer_raw_text ((ValadocMarkupWriter*) _tmp6_, _tmp8_);
1395 					_g_free0 (_tmp8_);
1396 					_tmp9_ = self->priv->writer;
1397 					valadoc_markup_writer_raw_text ((ValadocMarkupWriter*) _tmp9_, "&gt;");
1398 					lpos = (glong) (i + 1);
1399 					break;
1400 				}
1401 				case '"':
1402 				{
1403 					ValadocGtkDocMarkupWriter* _tmp10_;
1404 					gchar* _tmp11_;
1405 					gchar* _tmp12_;
1406 					ValadocGtkDocMarkupWriter* _tmp13_;
1407 					_tmp10_ = self->priv->writer;
1408 					_tmp11_ = string_substring (content, lpos, i - lpos);
1409 					_tmp12_ = _tmp11_;
1410 					valadoc_markup_writer_raw_text ((ValadocMarkupWriter*) _tmp10_, _tmp12_);
1411 					_g_free0 (_tmp12_);
1412 					_tmp13_ = self->priv->writer;
1413 					valadoc_markup_writer_raw_text ((ValadocMarkupWriter*) _tmp13_, "&quot;");
1414 					lpos = (glong) (i + 1);
1415 					break;
1416 				}
1417 				case '\'':
1418 				{
1419 					ValadocGtkDocMarkupWriter* _tmp14_;
1420 					gchar* _tmp15_;
1421 					gchar* _tmp16_;
1422 					ValadocGtkDocMarkupWriter* _tmp17_;
1423 					_tmp14_ = self->priv->writer;
1424 					_tmp15_ = string_substring (content, lpos, i - lpos);
1425 					_tmp16_ = _tmp15_;
1426 					valadoc_markup_writer_raw_text ((ValadocMarkupWriter*) _tmp14_, _tmp16_);
1427 					_g_free0 (_tmp16_);
1428 					_tmp17_ = self->priv->writer;
1429 					valadoc_markup_writer_raw_text ((ValadocMarkupWriter*) _tmp17_, "&apos;");
1430 					lpos = (glong) (i + 1);
1431 					break;
1432 				}
1433 				case '&':
1434 				{
1435 					ValadocGtkDocMarkupWriter* _tmp18_;
1436 					gchar* _tmp19_;
1437 					gchar* _tmp20_;
1438 					ValadocGtkDocMarkupWriter* _tmp21_;
1439 					_tmp18_ = self->priv->writer;
1440 					_tmp19_ = string_substring (content, lpos, i - lpos);
1441 					_tmp20_ = _tmp19_;
1442 					valadoc_markup_writer_raw_text ((ValadocMarkupWriter*) _tmp18_, _tmp20_);
1443 					_g_free0 (_tmp20_);
1444 					_tmp21_ = self->priv->writer;
1445 					valadoc_markup_writer_raw_text ((ValadocMarkupWriter*) _tmp21_, "&amp;");
1446 					lpos = (glong) (i + 1);
1447 					break;
1448 				}
1449 				case '#':
1450 				{
1451 					ValadocGtkDocMarkupWriter* _tmp22_;
1452 					gchar* _tmp23_;
1453 					gchar* _tmp24_;
1454 					ValadocGtkDocMarkupWriter* _tmp25_;
1455 					_tmp22_ = self->priv->writer;
1456 					_tmp23_ = string_substring (content, lpos, i - lpos);
1457 					_tmp24_ = _tmp23_;
1458 					valadoc_markup_writer_raw_text ((ValadocMarkupWriter*) _tmp22_, _tmp24_);
1459 					_g_free0 (_tmp24_);
1460 					_tmp25_ = self->priv->writer;
1461 					valadoc_markup_writer_raw_text ((ValadocMarkupWriter*) _tmp25_, "&num;");
1462 					lpos = (glong) (i + 1);
1463 					break;
1464 				}
1465 				case '%':
1466 				{
1467 					ValadocGtkDocMarkupWriter* _tmp26_;
1468 					gchar* _tmp27_;
1469 					gchar* _tmp28_;
1470 					ValadocGtkDocMarkupWriter* _tmp29_;
1471 					_tmp26_ = self->priv->writer;
1472 					_tmp27_ = string_substring (content, lpos, i - lpos);
1473 					_tmp28_ = _tmp27_;
1474 					valadoc_markup_writer_raw_text ((ValadocMarkupWriter*) _tmp26_, _tmp28_);
1475 					_g_free0 (_tmp28_);
1476 					_tmp29_ = self->priv->writer;
1477 					valadoc_markup_writer_raw_text ((ValadocMarkupWriter*) _tmp29_, "&percnt;");
1478 					lpos = (glong) (i + 1);
1479 					break;
1480 				}
1481 				case '@':
1482 				{
1483 					ValadocGtkDocMarkupWriter* _tmp30_;
1484 					gchar* _tmp31_;
1485 					gchar* _tmp32_;
1486 					ValadocGtkDocMarkupWriter* _tmp33_;
1487 					_tmp30_ = self->priv->writer;
1488 					_tmp31_ = string_substring (content, lpos, i - lpos);
1489 					_tmp32_ = _tmp31_;
1490 					valadoc_markup_writer_raw_text ((ValadocMarkupWriter*) _tmp30_, _tmp32_);
1491 					_g_free0 (_tmp32_);
1492 					_tmp33_ = self->priv->writer;
1493 					valadoc_markup_writer_raw_text ((ValadocMarkupWriter*) _tmp33_, "&commat;");
1494 					lpos = (glong) (i + 1);
1495 					break;
1496 				}
1497 				case '(':
1498 				{
1499 					ValadocGtkDocMarkupWriter* _tmp34_;
1500 					gchar* _tmp35_;
1501 					gchar* _tmp36_;
1502 					ValadocGtkDocMarkupWriter* _tmp37_;
1503 					_tmp34_ = self->priv->writer;
1504 					_tmp35_ = string_substring (content, lpos, i - lpos);
1505 					_tmp36_ = _tmp35_;
1506 					valadoc_markup_writer_raw_text ((ValadocMarkupWriter*) _tmp34_, _tmp36_);
1507 					_g_free0 (_tmp36_);
1508 					_tmp37_ = self->priv->writer;
1509 					valadoc_markup_writer_raw_text ((ValadocMarkupWriter*) _tmp37_, "&lpar;");
1510 					lpos = (glong) (i + 1);
1511 					break;
1512 				}
1513 				case ')':
1514 				{
1515 					ValadocGtkDocMarkupWriter* _tmp38_;
1516 					gchar* _tmp39_;
1517 					gchar* _tmp40_;
1518 					ValadocGtkDocMarkupWriter* _tmp41_;
1519 					_tmp38_ = self->priv->writer;
1520 					_tmp39_ = string_substring (content, lpos, i - lpos);
1521 					_tmp40_ = _tmp39_;
1522 					valadoc_markup_writer_raw_text ((ValadocMarkupWriter*) _tmp38_, _tmp40_);
1523 					_g_free0 (_tmp40_);
1524 					_tmp41_ = self->priv->writer;
1525 					valadoc_markup_writer_raw_text ((ValadocMarkupWriter*) _tmp41_, "&rpar;");
1526 					lpos = (glong) (i + 1);
1527 					break;
1528 				}
1529 				case '\n':
1530 				{
1531 					ValadocGtkDocMarkupWriter* _tmp42_;
1532 					gchar* _tmp43_;
1533 					gchar* _tmp44_;
1534 					ValadocGtkDocMarkupWriter* _tmp45_;
1535 					_tmp42_ = self->priv->writer;
1536 					_tmp43_ = string_substring (content, lpos, i - lpos);
1537 					_tmp44_ = _tmp43_;
1538 					valadoc_markup_writer_raw_text ((ValadocMarkupWriter*) _tmp42_, _tmp44_);
1539 					_g_free0 (_tmp44_);
1540 					_tmp45_ = self->priv->writer;
1541 					valadoc_markup_writer_simple_tag ((ValadocMarkupWriter*) _tmp45_, "br", NULL, (gint) 0);
1542 					lpos = (glong) (i + 1);
1543 					break;
1544 				}
1545 				default:
1546 				break;
1547 			}
1548 		}
1549 	}
1550 	_tmp46_ = self->priv->writer;
1551 	_tmp47_ = string_substring (content, lpos, i - lpos);
1552 	_tmp48_ = _tmp47_;
1553 	valadoc_markup_writer_raw_text ((ValadocMarkupWriter*) _tmp46_, _tmp48_);
1554 	_g_free0 (_tmp48_);
1555 }
1556 
1557 static gpointer
_vala_iterable_ref0(gpointer self)1558 _vala_iterable_ref0 (gpointer self)
1559 {
1560 	return self ? vala_iterable_ref (self) : NULL;
1561 }
1562 
1563 static gpointer
_g_object_ref0(gpointer self)1564 _g_object_ref0 (gpointer self)
1565 {
1566 	return self ? g_object_ref (self) : NULL;
1567 }
1568 
1569 void
valadoc_gtkdoc_renderer_append_since(ValadocGtkdocRenderer * self,ValaList * taglets)1570 valadoc_gtkdoc_renderer_append_since (ValadocGtkdocRenderer* self,
1571                                       ValaList* taglets)
1572 {
1573 	g_return_if_fail (self != NULL);
1574 	g_return_if_fail (taglets != NULL);
1575 	{
1576 		ValaList* __taglet_list = NULL;
1577 		ValaList* _tmp0_;
1578 		gint __taglet_size = 0;
1579 		ValaList* _tmp1_;
1580 		gint _tmp2_;
1581 		gint _tmp3_;
1582 		gint __taglet_index = 0;
1583 		_tmp0_ = _vala_iterable_ref0 (taglets);
1584 		__taglet_list = _tmp0_;
1585 		_tmp1_ = __taglet_list;
1586 		_tmp2_ = vala_collection_get_size ((ValaCollection*) _tmp1_);
1587 		_tmp3_ = _tmp2_;
1588 		__taglet_size = _tmp3_;
1589 		__taglet_index = -1;
1590 		while (TRUE) {
1591 			gint _tmp4_;
1592 			gint _tmp5_;
1593 			ValadocContentTaglet* _taglet = NULL;
1594 			ValaList* _tmp6_;
1595 			gpointer _tmp7_;
1596 			ValadocTagletsSince* taglet = NULL;
1597 			ValadocContentTaglet* _tmp8_;
1598 			ValadocTagletsSince* _tmp9_;
1599 			gboolean _tmp10_ = FALSE;
1600 			ValadocTagletsSince* _tmp11_;
1601 			ValadocGtkDocMarkupWriter* _tmp16_;
1602 			ValadocGtkDocMarkupWriter* _tmp17_;
1603 			ValadocMarkupWriter* _tmp18_;
1604 			ValadocTagletsSince* _tmp19_;
1605 			const gchar* _tmp20_;
1606 			const gchar* _tmp21_;
1607 			ValadocGtkDocMarkupWriter* _tmp22_;
1608 			__taglet_index = __taglet_index + 1;
1609 			_tmp4_ = __taglet_index;
1610 			_tmp5_ = __taglet_size;
1611 			if (!(_tmp4_ < _tmp5_)) {
1612 				break;
1613 			}
1614 			_tmp6_ = __taglet_list;
1615 			_tmp7_ = vala_list_get (_tmp6_, __taglet_index);
1616 			_taglet = (ValadocContentTaglet*) _tmp7_;
1617 			_tmp8_ = _taglet;
1618 			_tmp9_ = _g_object_ref0 (VALADOC_TAGLETS_IS_SINCE (_tmp8_) ? ((ValadocTagletsSince*) _tmp8_) : NULL);
1619 			taglet = _tmp9_;
1620 			_tmp11_ = taglet;
1621 			if (_tmp11_ == NULL) {
1622 				_tmp10_ = TRUE;
1623 			} else {
1624 				ValadocTagletsSince* _tmp12_;
1625 				const gchar* _tmp13_;
1626 				const gchar* _tmp14_;
1627 				_tmp12_ = taglet;
1628 				_tmp13_ = valadoc_taglets_since_get_version (_tmp12_);
1629 				_tmp14_ = _tmp13_;
1630 				_tmp10_ = _tmp14_ == NULL;
1631 			}
1632 			if (_tmp10_) {
1633 				_g_object_unref0 (taglet);
1634 				_g_object_unref0 (_taglet);
1635 				continue;
1636 			}
1637 			if (self->priv->separated == FALSE) {
1638 				ValadocGtkDocMarkupWriter* _tmp15_;
1639 				_tmp15_ = self->priv->writer;
1640 				valadoc_markup_writer_text ((ValadocMarkupWriter*) _tmp15_, "\n");
1641 			}
1642 			_tmp16_ = self->priv->writer;
1643 			valadoc_markup_writer_set_wrap ((ValadocMarkupWriter*) _tmp16_, FALSE);
1644 			_tmp17_ = self->priv->writer;
1645 			_tmp18_ = valadoc_markup_writer_text ((ValadocMarkupWriter*) _tmp17_, "\nSince: ");
1646 			_tmp19_ = taglet;
1647 			_tmp20_ = valadoc_taglets_since_get_version (_tmp19_);
1648 			_tmp21_ = _tmp20_;
1649 			valadoc_markup_writer_text (_tmp18_, _tmp21_);
1650 			_tmp22_ = self->priv->writer;
1651 			valadoc_markup_writer_set_wrap ((ValadocMarkupWriter*) _tmp22_, TRUE);
1652 			self->priv->separated = TRUE;
1653 			_g_object_unref0 (taglet);
1654 			_g_object_unref0 (_taglet);
1655 			_vala_iterable_unref0 (__taglet_list);
1656 			return;
1657 		}
1658 		_vala_iterable_unref0 (__taglet_list);
1659 	}
1660 }
1661 
1662 void
valadoc_gtkdoc_renderer_append_see(ValadocGtkdocRenderer * self,ValaList * taglets)1663 valadoc_gtkdoc_renderer_append_see (ValadocGtkdocRenderer* self,
1664                                     ValaList* taglets)
1665 {
1666 	gboolean first = FALSE;
1667 	g_return_if_fail (self != NULL);
1668 	g_return_if_fail (taglets != NULL);
1669 	first = TRUE;
1670 	{
1671 		ValaList* __taglet_list = NULL;
1672 		ValaList* _tmp0_;
1673 		gint __taglet_size = 0;
1674 		ValaList* _tmp1_;
1675 		gint _tmp2_;
1676 		gint _tmp3_;
1677 		gint __taglet_index = 0;
1678 		_tmp0_ = _vala_iterable_ref0 (taglets);
1679 		__taglet_list = _tmp0_;
1680 		_tmp1_ = __taglet_list;
1681 		_tmp2_ = vala_collection_get_size ((ValaCollection*) _tmp1_);
1682 		_tmp3_ = _tmp2_;
1683 		__taglet_size = _tmp3_;
1684 		__taglet_index = -1;
1685 		while (TRUE) {
1686 			gint _tmp4_;
1687 			gint _tmp5_;
1688 			ValadocContentTaglet* _taglet = NULL;
1689 			ValaList* _tmp6_;
1690 			gpointer _tmp7_;
1691 			ValadocTagletsSee* taglet = NULL;
1692 			ValadocContentTaglet* _tmp8_;
1693 			ValadocTagletsSee* _tmp9_;
1694 			gboolean _tmp10_ = FALSE;
1695 			ValadocTagletsSee* _tmp11_;
1696 			ValadocTagletsSee* _tmp18_;
1697 			ValadocApiNode* _tmp19_;
1698 			ValadocApiNode* _tmp20_;
1699 			__taglet_index = __taglet_index + 1;
1700 			_tmp4_ = __taglet_index;
1701 			_tmp5_ = __taglet_size;
1702 			if (!(_tmp4_ < _tmp5_)) {
1703 				break;
1704 			}
1705 			_tmp6_ = __taglet_list;
1706 			_tmp7_ = vala_list_get (_tmp6_, __taglet_index);
1707 			_taglet = (ValadocContentTaglet*) _tmp7_;
1708 			_tmp8_ = _taglet;
1709 			_tmp9_ = _g_object_ref0 (VALADOC_TAGLETS_IS_SEE (_tmp8_) ? ((ValadocTagletsSee*) _tmp8_) : NULL);
1710 			taglet = _tmp9_;
1711 			_tmp11_ = taglet;
1712 			if (_tmp11_ == NULL) {
1713 				_tmp10_ = TRUE;
1714 			} else {
1715 				ValadocTagletsSee* _tmp12_;
1716 				ValadocApiNode* _tmp13_;
1717 				ValadocApiNode* _tmp14_;
1718 				_tmp12_ = taglet;
1719 				_tmp13_ = valadoc_taglets_see_get_symbol (_tmp12_);
1720 				_tmp14_ = _tmp13_;
1721 				_tmp10_ = _tmp14_ == NULL;
1722 			}
1723 			if (_tmp10_) {
1724 				_g_object_unref0 (taglet);
1725 				_g_object_unref0 (_taglet);
1726 				continue;
1727 			}
1728 			if (first) {
1729 				ValadocGtkDocMarkupWriter* _tmp15_;
1730 				ValadocMarkupWriter* _tmp16_;
1731 				_tmp15_ = self->priv->writer;
1732 				_tmp16_ = valadoc_markup_writer_start_tag ((ValadocMarkupWriter*) _tmp15_, "para", NULL, (gint) 0);
1733 				valadoc_markup_writer_text (_tmp16_, "See also: ");
1734 			} else {
1735 				ValadocGtkDocMarkupWriter* _tmp17_;
1736 				_tmp17_ = self->priv->writer;
1737 				valadoc_markup_writer_text ((ValadocMarkupWriter*) _tmp17_, ", ");
1738 			}
1739 			_tmp18_ = taglet;
1740 			_tmp19_ = valadoc_taglets_see_get_symbol (_tmp18_);
1741 			_tmp20_ = _tmp19_;
1742 			valadoc_gtkdoc_renderer_write_docbook_link (self, (ValadocApiItem*) _tmp20_);
1743 			first = FALSE;
1744 			_g_object_unref0 (taglet);
1745 			_g_object_unref0 (_taglet);
1746 		}
1747 		_vala_iterable_unref0 (__taglet_list);
1748 	}
1749 	if (first == FALSE) {
1750 		ValadocGtkDocMarkupWriter* _tmp21_;
1751 		_tmp21_ = self->priv->writer;
1752 		valadoc_markup_writer_end_tag ((ValadocMarkupWriter*) _tmp21_, "para");
1753 	}
1754 }
1755 
1756 void
valadoc_gtkdoc_renderer_append_exceptions(ValadocGtkdocRenderer * self,ValaList * taglets)1757 valadoc_gtkdoc_renderer_append_exceptions (ValadocGtkdocRenderer* self,
1758                                            ValaList* taglets)
1759 {
1760 	gboolean first = FALSE;
1761 	g_return_if_fail (self != NULL);
1762 	g_return_if_fail (taglets != NULL);
1763 	first = TRUE;
1764 	{
1765 		ValaList* __taglet_list = NULL;
1766 		ValaList* _tmp0_;
1767 		gint __taglet_size = 0;
1768 		ValaList* _tmp1_;
1769 		gint _tmp2_;
1770 		gint _tmp3_;
1771 		gint __taglet_index = 0;
1772 		_tmp0_ = _vala_iterable_ref0 (taglets);
1773 		__taglet_list = _tmp0_;
1774 		_tmp1_ = __taglet_list;
1775 		_tmp2_ = vala_collection_get_size ((ValaCollection*) _tmp1_);
1776 		_tmp3_ = _tmp2_;
1777 		__taglet_size = _tmp3_;
1778 		__taglet_index = -1;
1779 		while (TRUE) {
1780 			gint _tmp4_;
1781 			gint _tmp5_;
1782 			ValadocContentTaglet* _taglet = NULL;
1783 			ValaList* _tmp6_;
1784 			gpointer _tmp7_;
1785 			ValadocTagletsThrows* taglet = NULL;
1786 			ValadocContentTaglet* _tmp8_;
1787 			ValadocTagletsThrows* _tmp9_;
1788 			gboolean _tmp10_ = FALSE;
1789 			ValadocTagletsThrows* _tmp11_;
1790 			ValadocGtkDocMarkupWriter* _tmp19_;
1791 			ValadocGtkDocMarkupWriter* _tmp20_;
1792 			ValadocTagletsThrows* _tmp21_;
1793 			ValadocApiNode* _tmp22_;
1794 			ValadocApiNode* _tmp23_;
1795 			ValadocGtkDocMarkupWriter* _tmp24_;
1796 			ValadocGtkDocMarkupWriter* _tmp25_;
1797 			ValadocTagletsThrows* _tmp26_;
1798 			ValadocGtkDocMarkupWriter* _tmp27_;
1799 			ValadocGtkDocMarkupWriter* _tmp28_;
1800 			__taglet_index = __taglet_index + 1;
1801 			_tmp4_ = __taglet_index;
1802 			_tmp5_ = __taglet_size;
1803 			if (!(_tmp4_ < _tmp5_)) {
1804 				break;
1805 			}
1806 			_tmp6_ = __taglet_list;
1807 			_tmp7_ = vala_list_get (_tmp6_, __taglet_index);
1808 			_taglet = (ValadocContentTaglet*) _tmp7_;
1809 			_tmp8_ = _taglet;
1810 			_tmp9_ = _g_object_ref0 (VALADOC_TAGLETS_IS_THROWS (_tmp8_) ? ((ValadocTagletsThrows*) _tmp8_) : NULL);
1811 			taglet = _tmp9_;
1812 			_tmp11_ = taglet;
1813 			if (_tmp11_ == NULL) {
1814 				_tmp10_ = TRUE;
1815 			} else {
1816 				ValadocTagletsThrows* _tmp12_;
1817 				ValadocApiNode* _tmp13_;
1818 				ValadocApiNode* _tmp14_;
1819 				_tmp12_ = taglet;
1820 				_tmp13_ = valadoc_taglets_throws_get_error_domain (_tmp12_);
1821 				_tmp14_ = _tmp13_;
1822 				_tmp10_ = _tmp14_ == NULL;
1823 			}
1824 			if (_tmp10_) {
1825 				_g_object_unref0 (taglet);
1826 				_g_object_unref0 (_taglet);
1827 				continue;
1828 			}
1829 			if (first) {
1830 				ValadocGtkDocMarkupWriter* _tmp15_;
1831 				ValadocMarkupWriter* _tmp16_;
1832 				ValadocMarkupWriter* _tmp17_;
1833 				ValadocGtkDocMarkupWriter* _tmp18_;
1834 				_tmp15_ = self->priv->writer;
1835 				_tmp16_ = valadoc_markup_writer_start_tag ((ValadocMarkupWriter*) _tmp15_, "para", NULL, (gint) 0);
1836 				_tmp17_ = valadoc_markup_writer_text (_tmp16_, "This function may throw:");
1837 				valadoc_markup_writer_end_tag (_tmp17_, "para");
1838 				_tmp18_ = self->priv->writer;
1839 				valadoc_markup_writer_start_tag ((ValadocMarkupWriter*) _tmp18_, "table", NULL, (gint) 0);
1840 			}
1841 			_tmp19_ = self->priv->writer;
1842 			valadoc_markup_writer_start_tag ((ValadocMarkupWriter*) _tmp19_, "tr", NULL, (gint) 0);
1843 			_tmp20_ = self->priv->writer;
1844 			valadoc_markup_writer_start_tag ((ValadocMarkupWriter*) _tmp20_, "td", NULL, (gint) 0);
1845 			_tmp21_ = taglet;
1846 			_tmp22_ = valadoc_taglets_throws_get_error_domain (_tmp21_);
1847 			_tmp23_ = _tmp22_;
1848 			valadoc_gtkdoc_renderer_write_docbook_link (self, (ValadocApiItem*) _tmp23_);
1849 			_tmp24_ = self->priv->writer;
1850 			valadoc_markup_writer_end_tag ((ValadocMarkupWriter*) _tmp24_, "td");
1851 			_tmp25_ = self->priv->writer;
1852 			valadoc_markup_writer_start_tag ((ValadocMarkupWriter*) _tmp25_, "td", NULL, (gint) 0);
1853 			_tmp26_ = taglet;
1854 			valadoc_content_content_element_accept_children ((ValadocContentContentElement*) _tmp26_, (ValadocContentContentVisitor*) self);
1855 			_tmp27_ = self->priv->writer;
1856 			valadoc_markup_writer_end_tag ((ValadocMarkupWriter*) _tmp27_, "td");
1857 			_tmp28_ = self->priv->writer;
1858 			valadoc_markup_writer_end_tag ((ValadocMarkupWriter*) _tmp28_, "tr");
1859 			first = FALSE;
1860 			_g_object_unref0 (taglet);
1861 			_g_object_unref0 (_taglet);
1862 		}
1863 		_vala_iterable_unref0 (__taglet_list);
1864 	}
1865 	if (first == FALSE) {
1866 		ValadocGtkDocMarkupWriter* _tmp29_;
1867 		_tmp29_ = self->priv->writer;
1868 		valadoc_markup_writer_end_tag ((ValadocMarkupWriter*) _tmp29_, "table");
1869 	}
1870 }
1871 
1872 static void
valadoc_gtkdoc_renderer_class_init(ValadocGtkdocRendererClass * klass,gpointer klass_data)1873 valadoc_gtkdoc_renderer_class_init (ValadocGtkdocRendererClass * klass,
1874                                     gpointer klass_data)
1875 {
1876 	valadoc_gtkdoc_renderer_parent_class = g_type_class_peek_parent (klass);
1877 	g_type_class_adjust_private_offset (klass, &ValadocGtkdocRenderer_private_offset);
1878 	((ValadocContentContentRendererClass *) klass)->render = (void (*) (ValadocContentContentRenderer*, ValadocContentContentElement*)) valadoc_gtkdoc_renderer_real_render;
1879 	((ValadocContentContentRendererClass *) klass)->render_children = (void (*) (ValadocContentContentRenderer*, ValadocContentContentElement*)) valadoc_gtkdoc_renderer_real_render_children;
1880 	((ValadocContentContentVisitorClass *) klass)->visit_comment = (void (*) (ValadocContentContentVisitor*, ValadocContentComment*)) valadoc_gtkdoc_renderer_real_visit_comment;
1881 	((ValadocContentContentVisitorClass *) klass)->visit_embedded = (void (*) (ValadocContentContentVisitor*, ValadocContentEmbedded*)) valadoc_gtkdoc_renderer_real_visit_embedded;
1882 	((ValadocContentContentVisitorClass *) klass)->visit_headline = (void (*) (ValadocContentContentVisitor*, ValadocContentHeadline*)) valadoc_gtkdoc_renderer_real_visit_headline;
1883 	((ValadocContentContentVisitorClass *) klass)->visit_wiki_link = (void (*) (ValadocContentContentVisitor*, ValadocContentWikiLink*)) valadoc_gtkdoc_renderer_real_visit_wiki_link;
1884 	((ValadocContentContentVisitorClass *) klass)->visit_link = (void (*) (ValadocContentContentVisitor*, ValadocContentLink*)) valadoc_gtkdoc_renderer_real_visit_link;
1885 	((ValadocContentContentVisitorClass *) klass)->visit_symbol_link = (void (*) (ValadocContentContentVisitor*, ValadocContentSymbolLink*)) valadoc_gtkdoc_renderer_real_visit_symbol_link;
1886 	((ValadocContentContentVisitorClass *) klass)->visit_list = (void (*) (ValadocContentContentVisitor*, ValadocContentList*)) valadoc_gtkdoc_renderer_real_visit_list;
1887 	((ValadocContentContentVisitorClass *) klass)->visit_list_item = (void (*) (ValadocContentContentVisitor*, ValadocContentListItem*)) valadoc_gtkdoc_renderer_real_visit_list_item;
1888 	((ValadocContentContentVisitorClass *) klass)->visit_page = (void (*) (ValadocContentContentVisitor*, ValadocContentPage*)) valadoc_gtkdoc_renderer_real_visit_page;
1889 	((ValadocContentContentVisitorClass *) klass)->visit_paragraph = (void (*) (ValadocContentContentVisitor*, ValadocContentParagraph*)) valadoc_gtkdoc_renderer_real_visit_paragraph;
1890 	((ValadocContentContentVisitorClass *) klass)->visit_warning = (void (*) (ValadocContentContentVisitor*, ValadocContentWarning*)) valadoc_gtkdoc_renderer_real_visit_warning;
1891 	((ValadocContentContentVisitorClass *) klass)->visit_note = (void (*) (ValadocContentContentVisitor*, ValadocContentNote*)) valadoc_gtkdoc_renderer_real_visit_note;
1892 	((ValadocContentContentVisitorClass *) klass)->visit_run = (void (*) (ValadocContentContentVisitor*, ValadocContentRun*)) valadoc_gtkdoc_renderer_real_visit_run;
1893 	((ValadocContentContentVisitorClass *) klass)->visit_source_code = (void (*) (ValadocContentContentVisitor*, ValadocContentSourceCode*)) valadoc_gtkdoc_renderer_real_visit_source_code;
1894 	((ValadocContentContentVisitorClass *) klass)->visit_table = (void (*) (ValadocContentContentVisitor*, ValadocContentTable*)) valadoc_gtkdoc_renderer_real_visit_table;
1895 	((ValadocContentContentVisitorClass *) klass)->visit_table_cell = (void (*) (ValadocContentContentVisitor*, ValadocContentTableCell*)) valadoc_gtkdoc_renderer_real_visit_table_cell;
1896 	((ValadocContentContentVisitorClass *) klass)->visit_table_row = (void (*) (ValadocContentContentVisitor*, ValadocContentTableRow*)) valadoc_gtkdoc_renderer_real_visit_table_row;
1897 	((ValadocContentContentVisitorClass *) klass)->visit_text = (void (*) (ValadocContentContentVisitor*, ValadocContentText*)) valadoc_gtkdoc_renderer_real_visit_text;
1898 	G_OBJECT_CLASS (klass)->get_property = _vala_valadoc_gtkdoc_renderer_get_property;
1899 	G_OBJECT_CLASS (klass)->finalize = valadoc_gtkdoc_renderer_finalize;
1900 	g_object_class_install_property (G_OBJECT_CLASS (klass), VALADOC_GTKDOC_RENDERER_CONTENT_PROPERTY, valadoc_gtkdoc_renderer_properties[VALADOC_GTKDOC_RENDERER_CONTENT_PROPERTY] = g_param_spec_string ("content", "content", "content", NULL, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE));
1901 }
1902 
1903 static void
valadoc_gtkdoc_renderer_instance_init(ValadocGtkdocRenderer * self,gpointer klass)1904 valadoc_gtkdoc_renderer_instance_init (ValadocGtkdocRenderer * self,
1905                                        gpointer klass)
1906 {
1907 	ValadocGtkDocMarkupWriter* _tmp0_;
1908 	self->priv = valadoc_gtkdoc_renderer_get_instance_private (self);
1909 	_tmp0_ = valadoc_gtk_doc_markup_writer_new ();
1910 	self->priv->writer = _tmp0_;
1911 }
1912 
1913 static void
valadoc_gtkdoc_renderer_finalize(GObject * obj)1914 valadoc_gtkdoc_renderer_finalize (GObject * obj)
1915 {
1916 	ValadocGtkdocRenderer * self;
1917 	self = G_TYPE_CHECK_INSTANCE_CAST (obj, VALADOC_TYPE_GTKDOC_RENDERER, ValadocGtkdocRenderer);
1918 	_valadoc_markup_writer_unref0 (self->priv->writer);
1919 	_g_object_unref0 (self->settings);
1920 	G_OBJECT_CLASS (valadoc_gtkdoc_renderer_parent_class)->finalize (obj);
1921 }
1922 
1923 static GType
valadoc_gtkdoc_renderer_get_type_once(void)1924 valadoc_gtkdoc_renderer_get_type_once (void)
1925 {
1926 	static const GTypeInfo g_define_type_info = { sizeof (ValadocGtkdocRendererClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) valadoc_gtkdoc_renderer_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (ValadocGtkdocRenderer), 0, (GInstanceInitFunc) valadoc_gtkdoc_renderer_instance_init, NULL };
1927 	GType valadoc_gtkdoc_renderer_type_id;
1928 	valadoc_gtkdoc_renderer_type_id = g_type_register_static (VALADOC_CONTENT_TYPE_CONTENT_RENDERER, "ValadocGtkdocRenderer", &g_define_type_info, 0);
1929 	ValadocGtkdocRenderer_private_offset = g_type_add_instance_private (valadoc_gtkdoc_renderer_type_id, sizeof (ValadocGtkdocRendererPrivate));
1930 	return valadoc_gtkdoc_renderer_type_id;
1931 }
1932 
1933 GType
valadoc_gtkdoc_renderer_get_type(void)1934 valadoc_gtkdoc_renderer_get_type (void)
1935 {
1936 	static volatile gsize valadoc_gtkdoc_renderer_type_id__volatile = 0;
1937 	if (g_once_init_enter (&valadoc_gtkdoc_renderer_type_id__volatile)) {
1938 		GType valadoc_gtkdoc_renderer_type_id;
1939 		valadoc_gtkdoc_renderer_type_id = valadoc_gtkdoc_renderer_get_type_once ();
1940 		g_once_init_leave (&valadoc_gtkdoc_renderer_type_id__volatile, valadoc_gtkdoc_renderer_type_id);
1941 	}
1942 	return valadoc_gtkdoc_renderer_type_id__volatile;
1943 }
1944 
1945 static void
_vala_valadoc_gtkdoc_renderer_get_property(GObject * object,guint property_id,GValue * value,GParamSpec * pspec)1946 _vala_valadoc_gtkdoc_renderer_get_property (GObject * object,
1947                                             guint property_id,
1948                                             GValue * value,
1949                                             GParamSpec * pspec)
1950 {
1951 	ValadocGtkdocRenderer * self;
1952 	self = G_TYPE_CHECK_INSTANCE_CAST (object, VALADOC_TYPE_GTKDOC_RENDERER, ValadocGtkdocRenderer);
1953 	switch (property_id) {
1954 		case VALADOC_GTKDOC_RENDERER_CONTENT_PROPERTY:
1955 		g_value_set_string (value, valadoc_gtkdoc_renderer_get_content (self));
1956 		break;
1957 		default:
1958 		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
1959 		break;
1960 	}
1961 }
1962 
1963 static void
_vala_array_destroy(gpointer array,gint array_length,GDestroyNotify destroy_func)1964 _vala_array_destroy (gpointer array,
1965                      gint array_length,
1966                      GDestroyNotify destroy_func)
1967 {
1968 	if ((array != NULL) && (destroy_func != NULL)) {
1969 		gint i;
1970 		for (i = 0; i < array_length; i = i + 1) {
1971 			if (((gpointer*) array)[i] != NULL) {
1972 				destroy_func (((gpointer*) array)[i]);
1973 			}
1974 		}
1975 	}
1976 }
1977 
1978 static void
_vala_array_free(gpointer array,gint array_length,GDestroyNotify destroy_func)1979 _vala_array_free (gpointer array,
1980                   gint array_length,
1981                   GDestroyNotify destroy_func)
1982 {
1983 	_vala_array_destroy (array, array_length, destroy_func);
1984 	g_free (array);
1985 }
1986 
1987