1 /* linkhelper.c generated by valac, the Vala compiler
2  * generated from linkhelper.vala, do not modify */
3 
4 /* linkhelper.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 <glib.h>
28 #include <stdlib.h>
29 #include <string.h>
30 #include <glib-object.h>
31 
32 enum  {
33 	VALADOC_HTML_LINK_HELPER_0_PROPERTY,
34 	VALADOC_HTML_LINK_HELPER_ENABLE_BROWSABLE_CHECK_PROPERTY,
35 	VALADOC_HTML_LINK_HELPER_NUM_PROPERTIES
36 };
37 static GParamSpec* valadoc_html_link_helper_properties[VALADOC_HTML_LINK_HELPER_NUM_PROPERTIES];
38 #define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL)))
39 #define _g_free0(var) (var = (g_free (var), NULL))
40 #define _g_regex_unref0(var) ((var == NULL) ? NULL : (var = (g_regex_unref (var), NULL)))
41 #define _vala_assert(expr, msg) if G_LIKELY (expr) ; else g_assertion_message_expr (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, msg);
42 #define _vala_return_if_fail(expr, msg) if G_LIKELY (expr) ; else { g_return_if_fail_warning (G_LOG_DOMAIN, G_STRFUNC, msg); return; }
43 #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; }
44 #define _vala_warn_if_fail(expr, msg) if G_LIKELY (expr) ; else g_warn_message (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, msg);
45 
46 struct _ValadocHtmlLinkHelperPrivate {
47 	gboolean _enable_browsable_check;
48 };
49 
50 static gint ValadocHtmlLinkHelper_private_offset;
51 static gpointer valadoc_html_link_helper_parent_class = NULL;
52 
53 static gchar* valadoc_html_link_helper_real_get_package_link (ValadocHtmlLinkHelper* self,
54                                                        ValadocApiPackage* package,
55                                                        ValadocSettings* settings);
56 static gchar* valadoc_html_link_helper_real_from_package_to_package (ValadocHtmlLinkHelper* self,
57                                                               ValadocApiPackage* from,
58                                                               ValadocApiPackage* to);
59 static gchar* valadoc_html_link_helper_real_from_package_to_wiki (ValadocHtmlLinkHelper* self,
60                                                            ValadocApiPackage* from,
61                                                            ValadocWikiPage* to);
62 static gchar* valadoc_html_link_helper_real_from_package_to_node (ValadocHtmlLinkHelper* self,
63                                                            ValadocApiPackage* from,
64                                                            ValadocApiNode* to);
65 static gchar* valadoc_html_link_helper_real_from_wiki_to_package (ValadocHtmlLinkHelper* self,
66                                                            ValadocWikiPage* from,
67                                                            ValadocApiPackage* to);
68 static gchar* valadoc_html_link_helper_real_from_wiki_to_wiki (ValadocHtmlLinkHelper* self,
69                                                         ValadocWikiPage* from,
70                                                         ValadocWikiPage* to);
71 static gchar* valadoc_html_link_helper_real_from_wiki_to_node (ValadocHtmlLinkHelper* self,
72                                                         ValadocWikiPage* from,
73                                                         ValadocApiNode* to);
74 static gchar* valadoc_html_link_helper_real_from_node_to_package (ValadocHtmlLinkHelper* self,
75                                                            ValadocApiNode* from,
76                                                            ValadocApiPackage* to);
77 static gchar* valadoc_html_link_helper_real_from_node_to_wiki (ValadocHtmlLinkHelper* self,
78                                                         ValadocApiNode* from,
79                                                         ValadocWikiPage* to);
80 static gchar* valadoc_html_link_helper_real_from_node_to_node (ValadocHtmlLinkHelper* self,
81                                                         ValadocApiNode* from,
82                                                         ValadocApiNode* to);
83 static void valadoc_html_link_helper_finalize (GObject * obj);
84 static GType valadoc_html_link_helper_get_type_once (void);
85 static void _vala_valadoc_html_link_helper_get_property (GObject * object,
86                                                   guint property_id,
87                                                   GValue * value,
88                                                   GParamSpec * pspec);
89 static void _vala_valadoc_html_link_helper_set_property (GObject * object,
90                                                   guint property_id,
91                                                   const GValue * value,
92                                                   GParamSpec * pspec);
93 
94 static inline gpointer
valadoc_html_link_helper_get_instance_private(ValadocHtmlLinkHelper * self)95 valadoc_html_link_helper_get_instance_private (ValadocHtmlLinkHelper* self)
96 {
97 	return G_STRUCT_MEMBER_P (self, ValadocHtmlLinkHelper_private_offset);
98 }
99 
100 gboolean
valadoc_html_link_helper_get_enable_browsable_check(ValadocHtmlLinkHelper * self)101 valadoc_html_link_helper_get_enable_browsable_check (ValadocHtmlLinkHelper* self)
102 {
103 	gboolean result;
104 	g_return_val_if_fail (self != NULL, FALSE);
105 	result = self->priv->_enable_browsable_check;
106 	return result;
107 }
108 
109 void
valadoc_html_link_helper_set_enable_browsable_check(ValadocHtmlLinkHelper * self,gboolean value)110 valadoc_html_link_helper_set_enable_browsable_check (ValadocHtmlLinkHelper* self,
111                                                      gboolean value)
112 {
113 	gboolean old_value;
114 	g_return_if_fail (self != NULL);
115 	old_value = valadoc_html_link_helper_get_enable_browsable_check (self);
116 	if (old_value != value) {
117 		self->priv->_enable_browsable_check = value;
118 		g_object_notify_by_pspec ((GObject *) self, valadoc_html_link_helper_properties[VALADOC_HTML_LINK_HELPER_ENABLE_BROWSABLE_CHECK_PROPERTY]);
119 	}
120 }
121 
122 static gchar*
valadoc_html_link_helper_real_get_package_link(ValadocHtmlLinkHelper * self,ValadocApiPackage * package,ValadocSettings * settings)123 valadoc_html_link_helper_real_get_package_link (ValadocHtmlLinkHelper* self,
124                                                 ValadocApiPackage* package,
125                                                 ValadocSettings* settings)
126 {
127 	gboolean _tmp0_ = FALSE;
128 	gboolean _tmp1_;
129 	const gchar* _tmp2_;
130 	const gchar* _tmp3_;
131 	gchar* _tmp4_;
132 	gchar* result = NULL;
133 	g_return_val_if_fail (package != NULL, NULL);
134 	g_return_val_if_fail (settings != NULL, NULL);
135 	_tmp1_ = self->priv->_enable_browsable_check;
136 	if (_tmp1_) {
137 		_tmp0_ = !valadoc_api_node_is_browsable ((ValadocApiNode*) package, settings);
138 	} else {
139 		_tmp0_ = FALSE;
140 	}
141 	if (_tmp0_) {
142 		result = NULL;
143 		return result;
144 	}
145 	_tmp2_ = valadoc_api_node_get_name ((ValadocApiNode*) package);
146 	_tmp3_ = _tmp2_;
147 	_tmp4_ = g_build_filename (_tmp3_, "index.htm", NULL);
148 	result = _tmp4_;
149 	return result;
150 }
151 
152 gchar*
valadoc_html_link_helper_get_package_link(ValadocHtmlLinkHelper * self,ValadocApiPackage * package,ValadocSettings * settings)153 valadoc_html_link_helper_get_package_link (ValadocHtmlLinkHelper* self,
154                                            ValadocApiPackage* package,
155                                            ValadocSettings* settings)
156 {
157 	g_return_val_if_fail (self != NULL, NULL);
158 	return VALADOC_HTML_LINK_HELPER_GET_CLASS (self)->get_package_link (self, package, settings);
159 }
160 
161 static gpointer
_g_object_ref0(gpointer self)162 _g_object_ref0 (gpointer self)
163 {
164 	return self ? g_object_ref (self) : NULL;
165 }
166 
167 gchar*
valadoc_html_link_helper_get_relative_link(ValadocHtmlLinkHelper * self,ValadocDocumentation * from,ValadocDocumentation * to,ValadocSettings * settings)168 valadoc_html_link_helper_get_relative_link (ValadocHtmlLinkHelper* self,
169                                             ValadocDocumentation* from,
170                                             ValadocDocumentation* to,
171                                             ValadocSettings* settings)
172 {
173 	ValadocSettings* _tmp0_;
174 	gchar* result = NULL;
175 	g_return_val_if_fail (self != NULL, NULL);
176 	g_return_val_if_fail (from != NULL, NULL);
177 	g_return_val_if_fail (to != NULL, NULL);
178 	g_return_val_if_fail (settings != NULL, NULL);
179 	_tmp0_ = _g_object_ref0 (settings);
180 	_g_object_unref0 (self->_settings);
181 	self->_settings = _tmp0_;
182 	if (VALADOC_API_IS_PACKAGE (from)) {
183 		if (VALADOC_API_IS_PACKAGE (to)) {
184 			gchar* _tmp1_;
185 			_tmp1_ = valadoc_html_link_helper_from_package_to_package (self, G_TYPE_CHECK_INSTANCE_CAST (from, VALADOC_API_TYPE_PACKAGE, ValadocApiPackage), G_TYPE_CHECK_INSTANCE_CAST (to, VALADOC_API_TYPE_PACKAGE, ValadocApiPackage));
186 			result = _tmp1_;
187 			return result;
188 		} else {
189 			if (VALADOC_API_IS_NODE (to)) {
190 				gchar* _tmp2_;
191 				_tmp2_ = valadoc_html_link_helper_from_package_to_node (self, G_TYPE_CHECK_INSTANCE_CAST (from, VALADOC_API_TYPE_PACKAGE, ValadocApiPackage), G_TYPE_CHECK_INSTANCE_CAST (to, VALADOC_API_TYPE_NODE, ValadocApiNode));
192 				result = _tmp2_;
193 				return result;
194 			} else {
195 				if (VALADOC_IS_WIKI_PAGE (to)) {
196 					gchar* _tmp3_;
197 					_tmp3_ = valadoc_html_link_helper_from_package_to_wiki (self, G_TYPE_CHECK_INSTANCE_CAST (from, VALADOC_API_TYPE_PACKAGE, ValadocApiPackage), G_TYPE_CHECK_INSTANCE_CAST (to, VALADOC_TYPE_WIKI_PAGE, ValadocWikiPage));
198 					result = _tmp3_;
199 					return result;
200 				} else {
201 					_vala_assert (TRUE, "true");
202 				}
203 			}
204 		}
205 	} else {
206 		if (VALADOC_API_IS_NODE (from)) {
207 			if (VALADOC_API_IS_PACKAGE (to)) {
208 				gchar* _tmp4_;
209 				_tmp4_ = valadoc_html_link_helper_from_node_to_package (self, G_TYPE_CHECK_INSTANCE_CAST (from, VALADOC_API_TYPE_NODE, ValadocApiNode), G_TYPE_CHECK_INSTANCE_CAST (to, VALADOC_API_TYPE_PACKAGE, ValadocApiPackage));
210 				result = _tmp4_;
211 				return result;
212 			} else {
213 				if (VALADOC_API_IS_NODE (to)) {
214 					gchar* _tmp5_;
215 					_tmp5_ = valadoc_html_link_helper_from_node_to_node (self, G_TYPE_CHECK_INSTANCE_CAST (from, VALADOC_API_TYPE_NODE, ValadocApiNode), G_TYPE_CHECK_INSTANCE_CAST (to, VALADOC_API_TYPE_NODE, ValadocApiNode));
216 					result = _tmp5_;
217 					return result;
218 				} else {
219 					if (VALADOC_IS_WIKI_PAGE (to)) {
220 						gchar* _tmp6_;
221 						_tmp6_ = valadoc_html_link_helper_from_node_to_wiki (self, G_TYPE_CHECK_INSTANCE_CAST (from, VALADOC_API_TYPE_NODE, ValadocApiNode), G_TYPE_CHECK_INSTANCE_CAST (to, VALADOC_TYPE_WIKI_PAGE, ValadocWikiPage));
222 						result = _tmp6_;
223 						return result;
224 					} else {
225 						_vala_assert (TRUE, "true");
226 					}
227 				}
228 			}
229 		} else {
230 			if (VALADOC_IS_WIKI_PAGE (from)) {
231 				if (VALADOC_API_IS_PACKAGE (to)) {
232 					gchar* _tmp7_;
233 					_tmp7_ = valadoc_html_link_helper_from_wiki_to_package (self, G_TYPE_CHECK_INSTANCE_CAST (from, VALADOC_TYPE_WIKI_PAGE, ValadocWikiPage), G_TYPE_CHECK_INSTANCE_CAST (to, VALADOC_API_TYPE_PACKAGE, ValadocApiPackage));
234 					result = _tmp7_;
235 					return result;
236 				} else {
237 					if (VALADOC_API_IS_NODE (to)) {
238 						gchar* _tmp8_;
239 						_tmp8_ = valadoc_html_link_helper_from_wiki_to_node (self, G_TYPE_CHECK_INSTANCE_CAST (from, VALADOC_TYPE_WIKI_PAGE, ValadocWikiPage), G_TYPE_CHECK_INSTANCE_CAST (to, VALADOC_API_TYPE_NODE, ValadocApiNode));
240 						result = _tmp8_;
241 						return result;
242 					} else {
243 						if (VALADOC_IS_WIKI_PAGE (to)) {
244 							gchar* _tmp9_;
245 							_tmp9_ = valadoc_html_link_helper_from_wiki_to_wiki (self, G_TYPE_CHECK_INSTANCE_CAST (from, VALADOC_TYPE_WIKI_PAGE, ValadocWikiPage), G_TYPE_CHECK_INSTANCE_CAST (to, VALADOC_TYPE_WIKI_PAGE, ValadocWikiPage));
246 							result = _tmp9_;
247 							return result;
248 						} else {
249 							_vala_assert (TRUE, "true");
250 						}
251 					}
252 				}
253 			} else {
254 				_vala_assert (TRUE, "true");
255 			}
256 		}
257 	}
258 	result = NULL;
259 	return result;
260 }
261 
262 static glong
string_strnlen(gchar * str,glong maxlen)263 string_strnlen (gchar* str,
264                 glong maxlen)
265 {
266 	gchar* end = NULL;
267 	gchar* _tmp0_;
268 	gchar* _tmp1_;
269 	glong result = 0L;
270 	_tmp0_ = memchr (str, 0, (gsize) maxlen);
271 	end = _tmp0_;
272 	_tmp1_ = end;
273 	if (_tmp1_ == NULL) {
274 		result = maxlen;
275 		return result;
276 	} else {
277 		gchar* _tmp2_;
278 		_tmp2_ = end;
279 		result = (glong) (_tmp2_ - str);
280 		return result;
281 	}
282 }
283 
284 static gchar*
string_substring(const gchar * self,glong offset,glong len)285 string_substring (const gchar* self,
286                   glong offset,
287                   glong len)
288 {
289 	glong string_length = 0L;
290 	gboolean _tmp0_ = FALSE;
291 	gchar* _tmp3_;
292 	gchar* result = NULL;
293 	g_return_val_if_fail (self != NULL, NULL);
294 	if (offset >= ((glong) 0)) {
295 		_tmp0_ = len >= ((glong) 0);
296 	} else {
297 		_tmp0_ = FALSE;
298 	}
299 	if (_tmp0_) {
300 		string_length = string_strnlen ((gchar*) self, offset + len);
301 	} else {
302 		gint _tmp1_;
303 		gint _tmp2_;
304 		_tmp1_ = strlen (self);
305 		_tmp2_ = _tmp1_;
306 		string_length = (glong) _tmp2_;
307 	}
308 	if (offset < ((glong) 0)) {
309 		offset = string_length + offset;
310 		g_return_val_if_fail (offset >= ((glong) 0), NULL);
311 	} else {
312 		g_return_val_if_fail (offset <= string_length, NULL);
313 	}
314 	if (len < ((glong) 0)) {
315 		len = string_length - offset;
316 	}
317 	g_return_val_if_fail ((offset + len) <= string_length, NULL);
318 	_tmp3_ = g_strndup (((gchar*) self) + offset, (gsize) len);
319 	result = _tmp3_;
320 	return result;
321 }
322 
323 static gint
string_last_index_of_char(const gchar * self,gunichar c,gint start_index)324 string_last_index_of_char (const gchar* self,
325                            gunichar c,
326                            gint start_index)
327 {
328 	gchar* _result_ = NULL;
329 	gchar* _tmp0_;
330 	gchar* _tmp1_;
331 	gint result = 0;
332 	g_return_val_if_fail (self != NULL, 0);
333 	_tmp0_ = g_utf8_strrchr (((gchar*) self) + start_index, (gssize) -1, c);
334 	_result_ = _tmp0_;
335 	_tmp1_ = _result_;
336 	if (_tmp1_ != NULL) {
337 		gchar* _tmp2_;
338 		_tmp2_ = _result_;
339 		result = (gint) (_tmp2_ - ((gchar*) self));
340 		return result;
341 	} else {
342 		result = -1;
343 		return result;
344 	}
345 }
346 
347 static gchar*
string_replace(const gchar * self,const gchar * old,const gchar * replacement)348 string_replace (const gchar* self,
349                 const gchar* old,
350                 const gchar* replacement)
351 {
352 	gboolean _tmp0_ = FALSE;
353 	gboolean _tmp1_ = FALSE;
354 	GError* _inner_error0_ = NULL;
355 	gchar* result = NULL;
356 	g_return_val_if_fail (self != NULL, NULL);
357 	g_return_val_if_fail (old != NULL, NULL);
358 	g_return_val_if_fail (replacement != NULL, NULL);
359 	if ((*((gchar*) self)) == '\0') {
360 		_tmp1_ = TRUE;
361 	} else {
362 		_tmp1_ = (*((gchar*) old)) == '\0';
363 	}
364 	if (_tmp1_) {
365 		_tmp0_ = TRUE;
366 	} else {
367 		_tmp0_ = g_strcmp0 (old, replacement) == 0;
368 	}
369 	if (_tmp0_) {
370 		gchar* _tmp2_;
371 		_tmp2_ = g_strdup (self);
372 		result = _tmp2_;
373 		return result;
374 	}
375 	{
376 		GRegex* regex = NULL;
377 		gchar* _tmp3_;
378 		gchar* _tmp4_;
379 		GRegex* _tmp5_;
380 		GRegex* _tmp6_;
381 		gchar* _tmp7_ = NULL;
382 		GRegex* _tmp8_;
383 		gchar* _tmp9_;
384 		gchar* _tmp10_;
385 		_tmp3_ = g_regex_escape_string (old, -1);
386 		_tmp4_ = _tmp3_;
387 		_tmp5_ = g_regex_new (_tmp4_, 0, 0, &_inner_error0_);
388 		_tmp6_ = _tmp5_;
389 		_g_free0 (_tmp4_);
390 		regex = _tmp6_;
391 		if (G_UNLIKELY (_inner_error0_ != NULL)) {
392 			_g_free0 (_tmp7_);
393 			_g_regex_unref0 (regex);
394 			if (_inner_error0_->domain == G_REGEX_ERROR) {
395 				goto __catch0_g_regex_error;
396 			}
397 			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);
398 			g_clear_error (&_inner_error0_);
399 			return NULL;
400 		}
401 		_tmp8_ = regex;
402 		_tmp9_ = g_regex_replace_literal (_tmp8_, self, (gssize) -1, 0, replacement, 0, &_inner_error0_);
403 		_tmp7_ = _tmp9_;
404 		if (G_UNLIKELY (_inner_error0_ != NULL)) {
405 			_g_free0 (_tmp7_);
406 			_g_regex_unref0 (regex);
407 			if (_inner_error0_->domain == G_REGEX_ERROR) {
408 				goto __catch0_g_regex_error;
409 			}
410 			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);
411 			g_clear_error (&_inner_error0_);
412 			return NULL;
413 		}
414 		_tmp10_ = _tmp7_;
415 		_tmp7_ = NULL;
416 		result = _tmp10_;
417 		_g_free0 (_tmp7_);
418 		_g_regex_unref0 (regex);
419 		return result;
420 	}
421 	goto __finally0;
422 	__catch0_g_regex_error:
423 	{
424 		g_clear_error (&_inner_error0_);
425 		g_assert_not_reached ();
426 	}
427 	__finally0:
428 	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);
429 	g_clear_error (&_inner_error0_);
430 	return NULL;
431 }
432 
433 gchar*
valadoc_html_link_helper_translate_wiki_name(ValadocHtmlLinkHelper * self,ValadocWikiPage * page)434 valadoc_html_link_helper_translate_wiki_name (ValadocHtmlLinkHelper* self,
435                                               ValadocWikiPage* page)
436 {
437 	gchar* name = NULL;
438 	const gchar* _tmp0_;
439 	const gchar* _tmp1_;
440 	gchar* _tmp2_;
441 	gchar* _tmp3_;
442 	gchar* _tmp4_;
443 	gchar* _tmp5_;
444 	gchar* _tmp6_;
445 	gchar* _tmp7_;
446 	gchar* _tmp8_;
447 	gchar* result = NULL;
448 	g_return_val_if_fail (self != NULL, NULL);
449 	g_return_val_if_fail (page != NULL, NULL);
450 	_tmp0_ = valadoc_wiki_page_get_name (page);
451 	_tmp1_ = _tmp0_;
452 	_tmp2_ = g_strdup (_tmp1_);
453 	name = _tmp2_;
454 	_tmp3_ = string_substring (name, (glong) 0, (glong) string_last_index_of_char (name, (gunichar) '.', 0));
455 	_tmp4_ = _tmp3_;
456 	_tmp5_ = string_replace (_tmp4_, "/", ".");
457 	_tmp6_ = _tmp5_;
458 	_tmp7_ = g_strconcat (_tmp6_, ".htm", NULL);
459 	_tmp8_ = _tmp7_;
460 	_g_free0 (_tmp6_);
461 	_g_free0 (_tmp4_);
462 	result = _tmp8_;
463 	_g_free0 (name);
464 	return result;
465 }
466 
467 static gchar*
valadoc_html_link_helper_real_from_package_to_package(ValadocHtmlLinkHelper * self,ValadocApiPackage * from,ValadocApiPackage * to)468 valadoc_html_link_helper_real_from_package_to_package (ValadocHtmlLinkHelper* self,
469                                                        ValadocApiPackage* from,
470                                                        ValadocApiPackage* to)
471 {
472 	gboolean _tmp0_ = FALSE;
473 	gboolean _tmp1_;
474 	gchar* result = NULL;
475 	g_return_val_if_fail (from != NULL, NULL);
476 	g_return_val_if_fail (to != NULL, NULL);
477 	_tmp1_ = self->priv->_enable_browsable_check;
478 	if (_tmp1_) {
479 		ValadocSettings* _tmp2_;
480 		_tmp2_ = self->_settings;
481 		_tmp0_ = !valadoc_api_node_is_browsable ((ValadocApiNode*) to, _tmp2_);
482 	} else {
483 		_tmp0_ = FALSE;
484 	}
485 	if (_tmp0_) {
486 		result = NULL;
487 		return result;
488 	}
489 	if (from == to) {
490 		gchar* _tmp3_;
491 		_tmp3_ = g_strdup ("#");
492 		result = _tmp3_;
493 		return result;
494 	} else {
495 		const gchar* _tmp4_;
496 		const gchar* _tmp5_;
497 		gchar* _tmp6_;
498 		_tmp4_ = valadoc_api_node_get_name ((ValadocApiNode*) to);
499 		_tmp5_ = _tmp4_;
500 		_tmp6_ = g_build_filename ("..", _tmp5_, "index.htm", NULL);
501 		result = _tmp6_;
502 		return result;
503 	}
504 }
505 
506 gchar*
valadoc_html_link_helper_from_package_to_package(ValadocHtmlLinkHelper * self,ValadocApiPackage * from,ValadocApiPackage * to)507 valadoc_html_link_helper_from_package_to_package (ValadocHtmlLinkHelper* self,
508                                                   ValadocApiPackage* from,
509                                                   ValadocApiPackage* to)
510 {
511 	g_return_val_if_fail (self != NULL, NULL);
512 	return VALADOC_HTML_LINK_HELPER_GET_CLASS (self)->from_package_to_package (self, from, to);
513 }
514 
515 static gchar*
valadoc_html_link_helper_real_from_package_to_wiki(ValadocHtmlLinkHelper * self,ValadocApiPackage * from,ValadocWikiPage * to)516 valadoc_html_link_helper_real_from_package_to_wiki (ValadocHtmlLinkHelper* self,
517                                                     ValadocApiPackage* from,
518                                                     ValadocWikiPage* to)
519 {
520 	gboolean _tmp0_;
521 	gboolean _tmp1_;
522 	gchar* result = NULL;
523 	g_return_val_if_fail (from != NULL, NULL);
524 	g_return_val_if_fail (to != NULL, NULL);
525 	_tmp0_ = valadoc_api_package_get_is_package (from);
526 	_tmp1_ = _tmp0_;
527 	if (_tmp1_) {
528 		ValadocSettings* _tmp2_;
529 		const gchar* _tmp3_;
530 		gchar* _tmp4_;
531 		gchar* _tmp5_;
532 		gchar* _tmp6_;
533 		gchar* _tmp7_;
534 		_tmp2_ = self->_settings;
535 		_tmp3_ = _tmp2_->pkg_name;
536 		_tmp4_ = valadoc_html_link_helper_translate_wiki_name (self, to);
537 		_tmp5_ = _tmp4_;
538 		_tmp6_ = g_build_filename ("..", _tmp3_, _tmp5_, NULL);
539 		_tmp7_ = _tmp6_;
540 		_g_free0 (_tmp5_);
541 		result = _tmp7_;
542 		return result;
543 	} else {
544 		gchar* _tmp8_;
545 		_tmp8_ = valadoc_html_link_helper_translate_wiki_name (self, to);
546 		result = _tmp8_;
547 		return result;
548 	}
549 }
550 
551 gchar*
valadoc_html_link_helper_from_package_to_wiki(ValadocHtmlLinkHelper * self,ValadocApiPackage * from,ValadocWikiPage * to)552 valadoc_html_link_helper_from_package_to_wiki (ValadocHtmlLinkHelper* self,
553                                                ValadocApiPackage* from,
554                                                ValadocWikiPage* to)
555 {
556 	g_return_val_if_fail (self != NULL, NULL);
557 	return VALADOC_HTML_LINK_HELPER_GET_CLASS (self)->from_package_to_wiki (self, from, to);
558 }
559 
560 static gchar*
valadoc_html_link_helper_real_from_package_to_node(ValadocHtmlLinkHelper * self,ValadocApiPackage * from,ValadocApiNode * to)561 valadoc_html_link_helper_real_from_package_to_node (ValadocHtmlLinkHelper* self,
562                                                     ValadocApiPackage* from,
563                                                     ValadocApiNode* to)
564 {
565 	gboolean _tmp0_ = FALSE;
566 	gboolean _tmp1_;
567 	ValadocApiPackage* _tmp7_;
568 	ValadocApiPackage* _tmp8_;
569 	gchar* result = NULL;
570 	g_return_val_if_fail (from != NULL, NULL);
571 	g_return_val_if_fail (to != NULL, NULL);
572 	_tmp1_ = self->priv->_enable_browsable_check;
573 	if (_tmp1_) {
574 		gboolean _tmp2_ = FALSE;
575 		ValadocSettings* _tmp3_;
576 		_tmp3_ = self->_settings;
577 		if (!valadoc_api_node_is_browsable (to, _tmp3_)) {
578 			_tmp2_ = TRUE;
579 		} else {
580 			ValadocApiPackage* _tmp4_;
581 			ValadocApiPackage* _tmp5_;
582 			ValadocSettings* _tmp6_;
583 			_tmp4_ = valadoc_documentation_get_package ((ValadocDocumentation*) to);
584 			_tmp5_ = _tmp4_;
585 			_tmp6_ = self->_settings;
586 			_tmp2_ = !valadoc_api_node_is_browsable ((ValadocApiNode*) _tmp5_, _tmp6_);
587 		}
588 		_tmp0_ = _tmp2_;
589 	} else {
590 		_tmp0_ = FALSE;
591 	}
592 	if (_tmp0_) {
593 		result = NULL;
594 		return result;
595 	}
596 	_tmp7_ = valadoc_documentation_get_package ((ValadocDocumentation*) to);
597 	_tmp8_ = _tmp7_;
598 	if (from == _tmp8_) {
599 		gchar* _tmp9_;
600 		gchar* _tmp10_;
601 		gchar* _tmp11_;
602 		gchar* _tmp12_;
603 		gchar* _tmp13_;
604 		gchar* _tmp14_;
605 		_tmp9_ = valadoc_api_node_get_full_name (to);
606 		_tmp10_ = _tmp9_;
607 		_tmp11_ = g_strconcat (_tmp10_, ".html", NULL);
608 		_tmp12_ = _tmp11_;
609 		_tmp13_ = g_build_filename (_tmp12_, NULL);
610 		_tmp14_ = _tmp13_;
611 		_g_free0 (_tmp12_);
612 		_g_free0 (_tmp10_);
613 		result = _tmp14_;
614 		return result;
615 	} else {
616 		ValadocApiPackage* _tmp15_;
617 		ValadocApiPackage* _tmp16_;
618 		const gchar* _tmp17_;
619 		const gchar* _tmp18_;
620 		gchar* _tmp19_;
621 		gchar* _tmp20_;
622 		gchar* _tmp21_;
623 		gchar* _tmp22_;
624 		gchar* _tmp23_;
625 		gchar* _tmp24_;
626 		_tmp15_ = valadoc_documentation_get_package ((ValadocDocumentation*) to);
627 		_tmp16_ = _tmp15_;
628 		_tmp17_ = valadoc_api_node_get_name ((ValadocApiNode*) _tmp16_);
629 		_tmp18_ = _tmp17_;
630 		_tmp19_ = valadoc_api_node_get_full_name (to);
631 		_tmp20_ = _tmp19_;
632 		_tmp21_ = g_strconcat (_tmp20_, ".html", NULL);
633 		_tmp22_ = _tmp21_;
634 		_tmp23_ = g_build_filename ("..", _tmp18_, _tmp22_, NULL);
635 		_tmp24_ = _tmp23_;
636 		_g_free0 (_tmp22_);
637 		_g_free0 (_tmp20_);
638 		result = _tmp24_;
639 		return result;
640 	}
641 }
642 
643 gchar*
valadoc_html_link_helper_from_package_to_node(ValadocHtmlLinkHelper * self,ValadocApiPackage * from,ValadocApiNode * to)644 valadoc_html_link_helper_from_package_to_node (ValadocHtmlLinkHelper* self,
645                                                ValadocApiPackage* from,
646                                                ValadocApiNode* to)
647 {
648 	g_return_val_if_fail (self != NULL, NULL);
649 	return VALADOC_HTML_LINK_HELPER_GET_CLASS (self)->from_package_to_node (self, from, to);
650 }
651 
652 static gchar*
valadoc_html_link_helper_real_from_wiki_to_package(ValadocHtmlLinkHelper * self,ValadocWikiPage * from,ValadocApiPackage * to)653 valadoc_html_link_helper_real_from_wiki_to_package (ValadocHtmlLinkHelper* self,
654                                                     ValadocWikiPage* from,
655                                                     ValadocApiPackage* to)
656 {
657 	gboolean _tmp0_ = FALSE;
658 	gboolean _tmp1_;
659 	gboolean _tmp3_;
660 	gboolean _tmp4_;
661 	gchar* result = NULL;
662 	g_return_val_if_fail (from != NULL, NULL);
663 	g_return_val_if_fail (to != NULL, NULL);
664 	_tmp1_ = self->priv->_enable_browsable_check;
665 	if (_tmp1_) {
666 		ValadocSettings* _tmp2_;
667 		_tmp2_ = self->_settings;
668 		_tmp0_ = !valadoc_api_node_is_browsable ((ValadocApiNode*) to, _tmp2_);
669 	} else {
670 		_tmp0_ = FALSE;
671 	}
672 	if (_tmp0_) {
673 		result = NULL;
674 		return result;
675 	}
676 	_tmp3_ = valadoc_api_package_get_is_package (to);
677 	_tmp4_ = _tmp3_;
678 	if (_tmp4_) {
679 		const gchar* _tmp5_;
680 		const gchar* _tmp6_;
681 		gchar* _tmp7_;
682 		_tmp5_ = valadoc_api_node_get_name ((ValadocApiNode*) to);
683 		_tmp6_ = _tmp5_;
684 		_tmp7_ = g_build_filename ("..", _tmp6_, "index.htm", NULL);
685 		result = _tmp7_;
686 		return result;
687 	} else {
688 		gchar* _tmp8_;
689 		_tmp8_ = g_strdup ("index.htm");
690 		result = _tmp8_;
691 		return result;
692 	}
693 }
694 
695 gchar*
valadoc_html_link_helper_from_wiki_to_package(ValadocHtmlLinkHelper * self,ValadocWikiPage * from,ValadocApiPackage * to)696 valadoc_html_link_helper_from_wiki_to_package (ValadocHtmlLinkHelper* self,
697                                                ValadocWikiPage* from,
698                                                ValadocApiPackage* to)
699 {
700 	g_return_val_if_fail (self != NULL, NULL);
701 	return VALADOC_HTML_LINK_HELPER_GET_CLASS (self)->from_wiki_to_package (self, from, to);
702 }
703 
704 static gchar*
valadoc_html_link_helper_real_from_wiki_to_wiki(ValadocHtmlLinkHelper * self,ValadocWikiPage * from,ValadocWikiPage * to)705 valadoc_html_link_helper_real_from_wiki_to_wiki (ValadocHtmlLinkHelper* self,
706                                                  ValadocWikiPage* from,
707                                                  ValadocWikiPage* to)
708 {
709 	gchar* _tmp0_;
710 	gchar* result = NULL;
711 	g_return_val_if_fail (from != NULL, NULL);
712 	g_return_val_if_fail (to != NULL, NULL);
713 	_tmp0_ = valadoc_html_link_helper_translate_wiki_name (self, to);
714 	result = _tmp0_;
715 	return result;
716 }
717 
718 gchar*
valadoc_html_link_helper_from_wiki_to_wiki(ValadocHtmlLinkHelper * self,ValadocWikiPage * from,ValadocWikiPage * to)719 valadoc_html_link_helper_from_wiki_to_wiki (ValadocHtmlLinkHelper* self,
720                                             ValadocWikiPage* from,
721                                             ValadocWikiPage* to)
722 {
723 	g_return_val_if_fail (self != NULL, NULL);
724 	return VALADOC_HTML_LINK_HELPER_GET_CLASS (self)->from_wiki_to_wiki (self, from, to);
725 }
726 
727 static gchar*
valadoc_html_link_helper_real_from_wiki_to_node(ValadocHtmlLinkHelper * self,ValadocWikiPage * from,ValadocApiNode * to)728 valadoc_html_link_helper_real_from_wiki_to_node (ValadocHtmlLinkHelper* self,
729                                                  ValadocWikiPage* from,
730                                                  ValadocApiNode* to)
731 {
732 	gboolean _tmp0_ = FALSE;
733 	gboolean _tmp1_;
734 	ValadocApiPackage* _tmp7_;
735 	ValadocApiPackage* _tmp8_;
736 	gboolean _tmp9_;
737 	gboolean _tmp10_;
738 	gchar* result = NULL;
739 	g_return_val_if_fail (from != NULL, NULL);
740 	g_return_val_if_fail (to != NULL, NULL);
741 	_tmp1_ = self->priv->_enable_browsable_check;
742 	if (_tmp1_) {
743 		gboolean _tmp2_ = FALSE;
744 		ValadocSettings* _tmp3_;
745 		_tmp3_ = self->_settings;
746 		if (!valadoc_api_node_is_browsable (to, _tmp3_)) {
747 			_tmp2_ = TRUE;
748 		} else {
749 			ValadocApiPackage* _tmp4_;
750 			ValadocApiPackage* _tmp5_;
751 			ValadocSettings* _tmp6_;
752 			_tmp4_ = valadoc_documentation_get_package ((ValadocDocumentation*) to);
753 			_tmp5_ = _tmp4_;
754 			_tmp6_ = self->_settings;
755 			_tmp2_ = !valadoc_api_node_is_browsable ((ValadocApiNode*) _tmp5_, _tmp6_);
756 		}
757 		_tmp0_ = _tmp2_;
758 	} else {
759 		_tmp0_ = FALSE;
760 	}
761 	if (_tmp0_) {
762 		result = NULL;
763 		return result;
764 	}
765 	_tmp7_ = valadoc_documentation_get_package ((ValadocDocumentation*) to);
766 	_tmp8_ = _tmp7_;
767 	_tmp9_ = valadoc_api_package_get_is_package (_tmp8_);
768 	_tmp10_ = _tmp9_;
769 	if (_tmp10_) {
770 		ValadocApiPackage* _tmp11_;
771 		ValadocApiPackage* _tmp12_;
772 		const gchar* _tmp13_;
773 		const gchar* _tmp14_;
774 		gchar* _tmp15_;
775 		gchar* _tmp16_;
776 		gchar* _tmp17_;
777 		gchar* _tmp18_;
778 		gchar* _tmp19_;
779 		gchar* _tmp20_;
780 		_tmp11_ = valadoc_documentation_get_package ((ValadocDocumentation*) to);
781 		_tmp12_ = _tmp11_;
782 		_tmp13_ = valadoc_api_node_get_name ((ValadocApiNode*) _tmp12_);
783 		_tmp14_ = _tmp13_;
784 		_tmp15_ = valadoc_api_node_get_full_name (to);
785 		_tmp16_ = _tmp15_;
786 		_tmp17_ = g_strconcat (_tmp16_, ".html", NULL);
787 		_tmp18_ = _tmp17_;
788 		_tmp19_ = g_build_filename ("..", _tmp14_, _tmp18_, NULL);
789 		_tmp20_ = _tmp19_;
790 		_g_free0 (_tmp18_);
791 		_g_free0 (_tmp16_);
792 		result = _tmp20_;
793 		return result;
794 	} else {
795 		gchar* _tmp21_;
796 		gchar* _tmp22_;
797 		gchar* _tmp23_;
798 		gchar* _tmp24_;
799 		_tmp21_ = valadoc_api_node_get_full_name (to);
800 		_tmp22_ = _tmp21_;
801 		_tmp23_ = g_strconcat (_tmp22_, ".html", NULL);
802 		_tmp24_ = _tmp23_;
803 		_g_free0 (_tmp22_);
804 		result = _tmp24_;
805 		return result;
806 	}
807 }
808 
809 gchar*
valadoc_html_link_helper_from_wiki_to_node(ValadocHtmlLinkHelper * self,ValadocWikiPage * from,ValadocApiNode * to)810 valadoc_html_link_helper_from_wiki_to_node (ValadocHtmlLinkHelper* self,
811                                             ValadocWikiPage* from,
812                                             ValadocApiNode* to)
813 {
814 	g_return_val_if_fail (self != NULL, NULL);
815 	return VALADOC_HTML_LINK_HELPER_GET_CLASS (self)->from_wiki_to_node (self, from, to);
816 }
817 
818 static gchar*
valadoc_html_link_helper_real_from_node_to_package(ValadocHtmlLinkHelper * self,ValadocApiNode * from,ValadocApiPackage * to)819 valadoc_html_link_helper_real_from_node_to_package (ValadocHtmlLinkHelper* self,
820                                                     ValadocApiNode* from,
821                                                     ValadocApiPackage* to)
822 {
823 	gboolean _tmp0_ = FALSE;
824 	gboolean _tmp1_;
825 	ValadocApiPackage* _tmp3_;
826 	ValadocApiPackage* _tmp4_;
827 	gchar* result = NULL;
828 	g_return_val_if_fail (from != NULL, NULL);
829 	g_return_val_if_fail (to != NULL, NULL);
830 	_tmp1_ = self->priv->_enable_browsable_check;
831 	if (_tmp1_) {
832 		ValadocSettings* _tmp2_;
833 		_tmp2_ = self->_settings;
834 		_tmp0_ = !valadoc_api_node_is_browsable ((ValadocApiNode*) to, _tmp2_);
835 	} else {
836 		_tmp0_ = FALSE;
837 	}
838 	if (_tmp0_) {
839 		result = NULL;
840 		return result;
841 	}
842 	_tmp3_ = valadoc_documentation_get_package ((ValadocDocumentation*) from);
843 	_tmp4_ = _tmp3_;
844 	if (_tmp4_ == to) {
845 		gchar* _tmp5_;
846 		_tmp5_ = g_strdup ("index.htm");
847 		result = _tmp5_;
848 		return result;
849 	} else {
850 		const gchar* _tmp6_;
851 		const gchar* _tmp7_;
852 		gchar* _tmp8_;
853 		_tmp6_ = valadoc_api_node_get_name ((ValadocApiNode*) to);
854 		_tmp7_ = _tmp6_;
855 		_tmp8_ = g_build_filename ("..", _tmp7_, "index.htm", NULL);
856 		result = _tmp8_;
857 		return result;
858 	}
859 }
860 
861 gchar*
valadoc_html_link_helper_from_node_to_package(ValadocHtmlLinkHelper * self,ValadocApiNode * from,ValadocApiPackage * to)862 valadoc_html_link_helper_from_node_to_package (ValadocHtmlLinkHelper* self,
863                                                ValadocApiNode* from,
864                                                ValadocApiPackage* to)
865 {
866 	g_return_val_if_fail (self != NULL, NULL);
867 	return VALADOC_HTML_LINK_HELPER_GET_CLASS (self)->from_node_to_package (self, from, to);
868 }
869 
870 static gchar*
valadoc_html_link_helper_real_from_node_to_wiki(ValadocHtmlLinkHelper * self,ValadocApiNode * from,ValadocWikiPage * to)871 valadoc_html_link_helper_real_from_node_to_wiki (ValadocHtmlLinkHelper* self,
872                                                  ValadocApiNode* from,
873                                                  ValadocWikiPage* to)
874 {
875 	ValadocApiPackage* _tmp0_;
876 	ValadocApiPackage* _tmp1_;
877 	gboolean _tmp2_;
878 	gboolean _tmp3_;
879 	gchar* result = NULL;
880 	g_return_val_if_fail (from != NULL, NULL);
881 	g_return_val_if_fail (to != NULL, NULL);
882 	_tmp0_ = valadoc_documentation_get_package ((ValadocDocumentation*) from);
883 	_tmp1_ = _tmp0_;
884 	_tmp2_ = valadoc_api_package_get_is_package (_tmp1_);
885 	_tmp3_ = _tmp2_;
886 	if (_tmp3_) {
887 		ValadocSettings* _tmp4_;
888 		const gchar* _tmp5_;
889 		gchar* _tmp6_;
890 		gchar* _tmp7_;
891 		gchar* _tmp8_;
892 		gchar* _tmp9_;
893 		_tmp4_ = self->_settings;
894 		_tmp5_ = _tmp4_->pkg_name;
895 		_tmp6_ = valadoc_html_link_helper_translate_wiki_name (self, to);
896 		_tmp7_ = _tmp6_;
897 		_tmp8_ = g_build_filename ("..", _tmp5_, _tmp7_, NULL);
898 		_tmp9_ = _tmp8_;
899 		_g_free0 (_tmp7_);
900 		result = _tmp9_;
901 		return result;
902 	} else {
903 		gchar* _tmp10_;
904 		_tmp10_ = valadoc_html_link_helper_translate_wiki_name (self, to);
905 		result = _tmp10_;
906 		return result;
907 	}
908 }
909 
910 gchar*
valadoc_html_link_helper_from_node_to_wiki(ValadocHtmlLinkHelper * self,ValadocApiNode * from,ValadocWikiPage * to)911 valadoc_html_link_helper_from_node_to_wiki (ValadocHtmlLinkHelper* self,
912                                             ValadocApiNode* from,
913                                             ValadocWikiPage* to)
914 {
915 	g_return_val_if_fail (self != NULL, NULL);
916 	return VALADOC_HTML_LINK_HELPER_GET_CLASS (self)->from_node_to_wiki (self, from, to);
917 }
918 
919 static gchar*
valadoc_html_link_helper_real_from_node_to_node(ValadocHtmlLinkHelper * self,ValadocApiNode * from,ValadocApiNode * to)920 valadoc_html_link_helper_real_from_node_to_node (ValadocHtmlLinkHelper* self,
921                                                  ValadocApiNode* from,
922                                                  ValadocApiNode* to)
923 {
924 	gboolean _tmp0_ = FALSE;
925 	gboolean _tmp1_;
926 	ValadocApiPackage* _tmp7_;
927 	ValadocApiPackage* _tmp8_;
928 	ValadocApiPackage* _tmp9_;
929 	ValadocApiPackage* _tmp10_;
930 	gchar* result = NULL;
931 	g_return_val_if_fail (from != NULL, NULL);
932 	g_return_val_if_fail (to != NULL, NULL);
933 	_tmp1_ = self->priv->_enable_browsable_check;
934 	if (_tmp1_) {
935 		gboolean _tmp2_ = FALSE;
936 		ValadocSettings* _tmp3_;
937 		_tmp3_ = self->_settings;
938 		if (!valadoc_api_node_is_browsable (to, _tmp3_)) {
939 			_tmp2_ = TRUE;
940 		} else {
941 			ValadocApiPackage* _tmp4_;
942 			ValadocApiPackage* _tmp5_;
943 			ValadocSettings* _tmp6_;
944 			_tmp4_ = valadoc_documentation_get_package ((ValadocDocumentation*) to);
945 			_tmp5_ = _tmp4_;
946 			_tmp6_ = self->_settings;
947 			_tmp2_ = !valadoc_api_node_is_browsable ((ValadocApiNode*) _tmp5_, _tmp6_);
948 		}
949 		_tmp0_ = _tmp2_;
950 	} else {
951 		_tmp0_ = FALSE;
952 	}
953 	if (_tmp0_) {
954 		result = NULL;
955 		return result;
956 	}
957 	_tmp7_ = valadoc_documentation_get_package ((ValadocDocumentation*) from);
958 	_tmp8_ = _tmp7_;
959 	_tmp9_ = valadoc_documentation_get_package ((ValadocDocumentation*) to);
960 	_tmp10_ = _tmp9_;
961 	if (_tmp8_ == _tmp10_) {
962 		gchar* _tmp11_;
963 		gchar* _tmp12_;
964 		gchar* _tmp13_;
965 		gchar* _tmp14_;
966 		gchar* _tmp15_;
967 		gchar* _tmp16_;
968 		_tmp11_ = valadoc_api_node_get_full_name (to);
969 		_tmp12_ = _tmp11_;
970 		_tmp13_ = g_strconcat (_tmp12_, ".html", NULL);
971 		_tmp14_ = _tmp13_;
972 		_tmp15_ = g_build_filename (_tmp14_, NULL);
973 		_tmp16_ = _tmp15_;
974 		_g_free0 (_tmp14_);
975 		_g_free0 (_tmp12_);
976 		result = _tmp16_;
977 		return result;
978 	} else {
979 		ValadocApiPackage* _tmp17_;
980 		ValadocApiPackage* _tmp18_;
981 		const gchar* _tmp19_;
982 		const gchar* _tmp20_;
983 		gchar* _tmp21_;
984 		gchar* _tmp22_;
985 		gchar* _tmp23_;
986 		gchar* _tmp24_;
987 		gchar* _tmp25_;
988 		gchar* _tmp26_;
989 		_tmp17_ = valadoc_documentation_get_package ((ValadocDocumentation*) to);
990 		_tmp18_ = _tmp17_;
991 		_tmp19_ = valadoc_api_node_get_name ((ValadocApiNode*) _tmp18_);
992 		_tmp20_ = _tmp19_;
993 		_tmp21_ = valadoc_api_node_get_full_name (to);
994 		_tmp22_ = _tmp21_;
995 		_tmp23_ = g_strconcat (_tmp22_, ".html", NULL);
996 		_tmp24_ = _tmp23_;
997 		_tmp25_ = g_build_filename ("..", _tmp20_, _tmp24_, NULL);
998 		_tmp26_ = _tmp25_;
999 		_g_free0 (_tmp24_);
1000 		_g_free0 (_tmp22_);
1001 		result = _tmp26_;
1002 		return result;
1003 	}
1004 }
1005 
1006 gchar*
valadoc_html_link_helper_from_node_to_node(ValadocHtmlLinkHelper * self,ValadocApiNode * from,ValadocApiNode * to)1007 valadoc_html_link_helper_from_node_to_node (ValadocHtmlLinkHelper* self,
1008                                             ValadocApiNode* from,
1009                                             ValadocApiNode* to)
1010 {
1011 	g_return_val_if_fail (self != NULL, NULL);
1012 	return VALADOC_HTML_LINK_HELPER_GET_CLASS (self)->from_node_to_node (self, from, to);
1013 }
1014 
1015 ValadocHtmlLinkHelper*
valadoc_html_link_helper_construct(GType object_type)1016 valadoc_html_link_helper_construct (GType object_type)
1017 {
1018 	ValadocHtmlLinkHelper * self = NULL;
1019 	self = (ValadocHtmlLinkHelper*) g_object_new (object_type, NULL);
1020 	return self;
1021 }
1022 
1023 ValadocHtmlLinkHelper*
valadoc_html_link_helper_new(void)1024 valadoc_html_link_helper_new (void)
1025 {
1026 	return valadoc_html_link_helper_construct (VALADOC_HTML_TYPE_LINK_HELPER);
1027 }
1028 
1029 static void
valadoc_html_link_helper_class_init(ValadocHtmlLinkHelperClass * klass,gpointer klass_data)1030 valadoc_html_link_helper_class_init (ValadocHtmlLinkHelperClass * klass,
1031                                      gpointer klass_data)
1032 {
1033 	valadoc_html_link_helper_parent_class = g_type_class_peek_parent (klass);
1034 	g_type_class_adjust_private_offset (klass, &ValadocHtmlLinkHelper_private_offset);
1035 	((ValadocHtmlLinkHelperClass *) klass)->get_package_link = (gchar* (*) (ValadocHtmlLinkHelper*, ValadocApiPackage*, ValadocSettings*)) valadoc_html_link_helper_real_get_package_link;
1036 	((ValadocHtmlLinkHelperClass *) klass)->from_package_to_package = (gchar* (*) (ValadocHtmlLinkHelper*, ValadocApiPackage*, ValadocApiPackage*)) valadoc_html_link_helper_real_from_package_to_package;
1037 	((ValadocHtmlLinkHelperClass *) klass)->from_package_to_wiki = (gchar* (*) (ValadocHtmlLinkHelper*, ValadocApiPackage*, ValadocWikiPage*)) valadoc_html_link_helper_real_from_package_to_wiki;
1038 	((ValadocHtmlLinkHelperClass *) klass)->from_package_to_node = (gchar* (*) (ValadocHtmlLinkHelper*, ValadocApiPackage*, ValadocApiNode*)) valadoc_html_link_helper_real_from_package_to_node;
1039 	((ValadocHtmlLinkHelperClass *) klass)->from_wiki_to_package = (gchar* (*) (ValadocHtmlLinkHelper*, ValadocWikiPage*, ValadocApiPackage*)) valadoc_html_link_helper_real_from_wiki_to_package;
1040 	((ValadocHtmlLinkHelperClass *) klass)->from_wiki_to_wiki = (gchar* (*) (ValadocHtmlLinkHelper*, ValadocWikiPage*, ValadocWikiPage*)) valadoc_html_link_helper_real_from_wiki_to_wiki;
1041 	((ValadocHtmlLinkHelperClass *) klass)->from_wiki_to_node = (gchar* (*) (ValadocHtmlLinkHelper*, ValadocWikiPage*, ValadocApiNode*)) valadoc_html_link_helper_real_from_wiki_to_node;
1042 	((ValadocHtmlLinkHelperClass *) klass)->from_node_to_package = (gchar* (*) (ValadocHtmlLinkHelper*, ValadocApiNode*, ValadocApiPackage*)) valadoc_html_link_helper_real_from_node_to_package;
1043 	((ValadocHtmlLinkHelperClass *) klass)->from_node_to_wiki = (gchar* (*) (ValadocHtmlLinkHelper*, ValadocApiNode*, ValadocWikiPage*)) valadoc_html_link_helper_real_from_node_to_wiki;
1044 	((ValadocHtmlLinkHelperClass *) klass)->from_node_to_node = (gchar* (*) (ValadocHtmlLinkHelper*, ValadocApiNode*, ValadocApiNode*)) valadoc_html_link_helper_real_from_node_to_node;
1045 	G_OBJECT_CLASS (klass)->get_property = _vala_valadoc_html_link_helper_get_property;
1046 	G_OBJECT_CLASS (klass)->set_property = _vala_valadoc_html_link_helper_set_property;
1047 	G_OBJECT_CLASS (klass)->finalize = valadoc_html_link_helper_finalize;
1048 	g_object_class_install_property (G_OBJECT_CLASS (klass), VALADOC_HTML_LINK_HELPER_ENABLE_BROWSABLE_CHECK_PROPERTY, valadoc_html_link_helper_properties[VALADOC_HTML_LINK_HELPER_ENABLE_BROWSABLE_CHECK_PROPERTY] = g_param_spec_boolean ("enable-browsable-check", "enable-browsable-check", "enable-browsable-check", TRUE, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
1049 }
1050 
1051 static void
valadoc_html_link_helper_instance_init(ValadocHtmlLinkHelper * self,gpointer klass)1052 valadoc_html_link_helper_instance_init (ValadocHtmlLinkHelper * self,
1053                                         gpointer klass)
1054 {
1055 	self->priv = valadoc_html_link_helper_get_instance_private (self);
1056 	self->_settings = NULL;
1057 	self->priv->_enable_browsable_check = TRUE;
1058 }
1059 
1060 static void
valadoc_html_link_helper_finalize(GObject * obj)1061 valadoc_html_link_helper_finalize (GObject * obj)
1062 {
1063 	ValadocHtmlLinkHelper * self;
1064 	self = G_TYPE_CHECK_INSTANCE_CAST (obj, VALADOC_HTML_TYPE_LINK_HELPER, ValadocHtmlLinkHelper);
1065 	_g_object_unref0 (self->_settings);
1066 	G_OBJECT_CLASS (valadoc_html_link_helper_parent_class)->finalize (obj);
1067 }
1068 
1069 static GType
valadoc_html_link_helper_get_type_once(void)1070 valadoc_html_link_helper_get_type_once (void)
1071 {
1072 	static const GTypeInfo g_define_type_info = { sizeof (ValadocHtmlLinkHelperClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) valadoc_html_link_helper_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (ValadocHtmlLinkHelper), 0, (GInstanceInitFunc) valadoc_html_link_helper_instance_init, NULL };
1073 	GType valadoc_html_link_helper_type_id;
1074 	valadoc_html_link_helper_type_id = g_type_register_static (G_TYPE_OBJECT, "ValadocHtmlLinkHelper", &g_define_type_info, 0);
1075 	ValadocHtmlLinkHelper_private_offset = g_type_add_instance_private (valadoc_html_link_helper_type_id, sizeof (ValadocHtmlLinkHelperPrivate));
1076 	return valadoc_html_link_helper_type_id;
1077 }
1078 
1079 GType
valadoc_html_link_helper_get_type(void)1080 valadoc_html_link_helper_get_type (void)
1081 {
1082 	static volatile gsize valadoc_html_link_helper_type_id__volatile = 0;
1083 	if (g_once_init_enter (&valadoc_html_link_helper_type_id__volatile)) {
1084 		GType valadoc_html_link_helper_type_id;
1085 		valadoc_html_link_helper_type_id = valadoc_html_link_helper_get_type_once ();
1086 		g_once_init_leave (&valadoc_html_link_helper_type_id__volatile, valadoc_html_link_helper_type_id);
1087 	}
1088 	return valadoc_html_link_helper_type_id__volatile;
1089 }
1090 
1091 static void
_vala_valadoc_html_link_helper_get_property(GObject * object,guint property_id,GValue * value,GParamSpec * pspec)1092 _vala_valadoc_html_link_helper_get_property (GObject * object,
1093                                              guint property_id,
1094                                              GValue * value,
1095                                              GParamSpec * pspec)
1096 {
1097 	ValadocHtmlLinkHelper * self;
1098 	self = G_TYPE_CHECK_INSTANCE_CAST (object, VALADOC_HTML_TYPE_LINK_HELPER, ValadocHtmlLinkHelper);
1099 	switch (property_id) {
1100 		case VALADOC_HTML_LINK_HELPER_ENABLE_BROWSABLE_CHECK_PROPERTY:
1101 		g_value_set_boolean (value, valadoc_html_link_helper_get_enable_browsable_check (self));
1102 		break;
1103 		default:
1104 		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
1105 		break;
1106 	}
1107 }
1108 
1109 static void
_vala_valadoc_html_link_helper_set_property(GObject * object,guint property_id,const GValue * value,GParamSpec * pspec)1110 _vala_valadoc_html_link_helper_set_property (GObject * object,
1111                                              guint property_id,
1112                                              const GValue * value,
1113                                              GParamSpec * pspec)
1114 {
1115 	ValadocHtmlLinkHelper * self;
1116 	self = G_TYPE_CHECK_INSTANCE_CAST (object, VALADOC_HTML_TYPE_LINK_HELPER, ValadocHtmlLinkHelper);
1117 	switch (property_id) {
1118 		case VALADOC_HTML_LINK_HELPER_ENABLE_BROWSABLE_CHECK_PROPERTY:
1119 		valadoc_html_link_helper_set_enable_browsable_check (self, g_value_get_boolean (value));
1120 		break;
1121 		default:
1122 		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
1123 		break;
1124 	}
1125 }
1126 
1127