1 /* gtkdocmarkupwriter.c generated by valac, the Vala compiler
2  * generated from gtkdocmarkupwriter.vala, do not modify */
3 
4 /* gtkdocmarkupwriter.vala
5  *
6  * Copyright (C) 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 
31 typedef struct _Block1Data Block1Data;
32 #define _g_string_free0(var) ((var == NULL) ? NULL : (var = (g_string_free (var, TRUE), NULL)))
33 #define _valadoc_markup_writer_unref0(var) ((var == NULL) ? NULL : (var = (valadoc_markup_writer_unref (var), NULL)))
34 
35 struct _ValadocGtkDocMarkupWriterPrivate {
36 	GString* builder;
37 };
38 
39 struct _Block1Data {
40 	int _ref_count_;
41 	ValadocGtkDocMarkupWriter* self;
42 	GString* builder;
43 };
44 
45 static gint ValadocGtkDocMarkupWriter_private_offset;
46 static gpointer valadoc_gtk_doc_markup_writer_parent_class = NULL;
47 
48 static Block1Data* block1_data_ref (Block1Data* _data1_);
49 static void block1_data_unref (void * _userdata_);
50 static void __lambda131_ (Block1Data* _data1_,
51                    const gchar* str);
52 static void ___lambda131__valadoc_markup_writer_write_func (const gchar* text,
53                                                      gpointer self);
54 static gboolean valadoc_gtk_doc_markup_writer_real_inline_element (ValadocMarkupWriter* base,
55                                                             const gchar* name);
56 static gboolean valadoc_gtk_doc_markup_writer_real_content_inline_element (ValadocMarkupWriter* base,
57                                                                     const gchar* name);
58 static void valadoc_gtk_doc_markup_writer_finalize (ValadocMarkupWriter * obj);
59 static GType valadoc_gtk_doc_markup_writer_get_type_once (void);
60 
61 static inline gpointer
valadoc_gtk_doc_markup_writer_get_instance_private(ValadocGtkDocMarkupWriter * self)62 valadoc_gtk_doc_markup_writer_get_instance_private (ValadocGtkDocMarkupWriter* self)
63 {
64 	return G_STRUCT_MEMBER_P (self, ValadocGtkDocMarkupWriter_private_offset);
65 }
66 
67 void
valadoc_gtk_doc_markup_writer_reset(ValadocGtkDocMarkupWriter * self)68 valadoc_gtk_doc_markup_writer_reset (ValadocGtkDocMarkupWriter* self)
69 {
70 	GString* _tmp0_;
71 	g_return_if_fail (self != NULL);
72 	((ValadocMarkupWriter*) self)->last_was_tag = TRUE;
73 	((ValadocMarkupWriter*) self)->current_column = (glong) 0;
74 	_tmp0_ = self->priv->builder;
75 	g_string_erase (_tmp0_, (gssize) 0, (gssize) -1);
76 	((ValadocMarkupWriter*) self)->indent = -1;
77 }
78 
79 const gchar*
valadoc_gtk_doc_markup_writer_get_content(ValadocGtkDocMarkupWriter * self)80 valadoc_gtk_doc_markup_writer_get_content (ValadocGtkDocMarkupWriter* self)
81 {
82 	const gchar* result;
83 	GString* _tmp0_;
84 	const gchar* _tmp1_;
85 	g_return_val_if_fail (self != NULL, NULL);
86 	_tmp0_ = self->priv->builder;
87 	_tmp1_ = _tmp0_->str;
88 	result = _tmp1_;
89 	return result;
90 }
91 
92 static Block1Data*
block1_data_ref(Block1Data * _data1_)93 block1_data_ref (Block1Data* _data1_)
94 {
95 	g_atomic_int_inc (&_data1_->_ref_count_);
96 	return _data1_;
97 }
98 
99 static void
block1_data_unref(void * _userdata_)100 block1_data_unref (void * _userdata_)
101 {
102 	Block1Data* _data1_;
103 	_data1_ = (Block1Data*) _userdata_;
104 	if (g_atomic_int_dec_and_test (&_data1_->_ref_count_)) {
105 		ValadocGtkDocMarkupWriter* self;
106 		self = _data1_->self;
107 		_g_string_free0 (_data1_->builder);
108 		_valadoc_markup_writer_unref0 (self);
109 		g_slice_free (Block1Data, _data1_);
110 	}
111 }
112 
113 static void
__lambda131_(Block1Data * _data1_,const gchar * str)114 __lambda131_ (Block1Data* _data1_,
115               const gchar* str)
116 {
117 	ValadocGtkDocMarkupWriter* self;
118 	self = _data1_->self;
119 	g_return_if_fail (str != NULL);
120 	g_string_append (_data1_->builder, str);
121 }
122 
123 static void
___lambda131__valadoc_markup_writer_write_func(const gchar * text,gpointer self)124 ___lambda131__valadoc_markup_writer_write_func (const gchar* text,
125                                                 gpointer self)
126 {
127 	__lambda131_ (self, text);
128 }
129 
130 ValadocGtkDocMarkupWriter*
valadoc_gtk_doc_markup_writer_construct(GType object_type)131 valadoc_gtk_doc_markup_writer_construct (GType object_type)
132 {
133 	ValadocGtkDocMarkupWriter* self = NULL;
134 	Block1Data* _data1_;
135 	GString* _tmp0_;
136 	_data1_ = g_slice_new0 (Block1Data);
137 	_data1_->_ref_count_ = 1;
138 	_tmp0_ = g_string_new ("");
139 	_data1_->builder = _tmp0_;
140 	self = (ValadocGtkDocMarkupWriter*) valadoc_markup_writer_construct (object_type, ___lambda131__valadoc_markup_writer_write_func, block1_data_ref (_data1_), block1_data_unref, FALSE);
141 	_data1_->self = valadoc_markup_writer_ref (self);
142 	self->priv->builder = _data1_->builder;
143 	block1_data_unref (_data1_);
144 	_data1_ = NULL;
145 	return self;
146 }
147 
148 ValadocGtkDocMarkupWriter*
valadoc_gtk_doc_markup_writer_new(void)149 valadoc_gtk_doc_markup_writer_new (void)
150 {
151 	return valadoc_gtk_doc_markup_writer_construct (VALADOC_TYPE_GTK_DOC_MARKUP_WRITER);
152 }
153 
154 static gboolean
valadoc_gtk_doc_markup_writer_real_inline_element(ValadocMarkupWriter * base,const gchar * name)155 valadoc_gtk_doc_markup_writer_real_inline_element (ValadocMarkupWriter* base,
156                                                    const gchar* name)
157 {
158 	ValadocGtkDocMarkupWriter * self;
159 	gboolean _tmp0_ = FALSE;
160 	gboolean _tmp1_ = FALSE;
161 	gboolean _tmp2_ = FALSE;
162 	gboolean _tmp3_ = FALSE;
163 	gboolean _tmp4_ = FALSE;
164 	gboolean _tmp5_ = FALSE;
165 	gboolean _tmp6_ = FALSE;
166 	gboolean _tmp7_ = FALSE;
167 	gboolean _tmp8_ = FALSE;
168 	gboolean _tmp9_ = FALSE;
169 	gboolean _tmp10_ = FALSE;
170 	gboolean _tmp11_ = FALSE;
171 	gboolean _tmp12_ = FALSE;
172 	gboolean result = FALSE;
173 	self = (ValadocGtkDocMarkupWriter*) base;
174 	g_return_val_if_fail (name != NULL, FALSE);
175 	if (g_strcmp0 (name, "para") != 0) {
176 		_tmp12_ = g_strcmp0 (name, "programlisting") != 0;
177 	} else {
178 		_tmp12_ = FALSE;
179 	}
180 	if (_tmp12_) {
181 		_tmp11_ = g_strcmp0 (name, "table") != 0;
182 	} else {
183 		_tmp11_ = FALSE;
184 	}
185 	if (_tmp11_) {
186 		_tmp10_ = g_strcmp0 (name, "example") != 0;
187 	} else {
188 		_tmp10_ = FALSE;
189 	}
190 	if (_tmp10_) {
191 		_tmp9_ = g_strcmp0 (name, "figure") != 0;
192 	} else {
193 		_tmp9_ = FALSE;
194 	}
195 	if (_tmp9_) {
196 		_tmp8_ = g_strcmp0 (name, "tr") != 0;
197 	} else {
198 		_tmp8_ = FALSE;
199 	}
200 	if (_tmp8_) {
201 		_tmp7_ = g_strcmp0 (name, "td") != 0;
202 	} else {
203 		_tmp7_ = FALSE;
204 	}
205 	if (_tmp7_) {
206 		_tmp6_ = g_strcmp0 (name, "mediaobject") != 0;
207 	} else {
208 		_tmp6_ = FALSE;
209 	}
210 	if (_tmp6_) {
211 		_tmp5_ = g_strcmp0 (name, "imageobject") != 0;
212 	} else {
213 		_tmp5_ = FALSE;
214 	}
215 	if (_tmp5_) {
216 		_tmp4_ = g_strcmp0 (name, "textobject") != 0;
217 	} else {
218 		_tmp4_ = FALSE;
219 	}
220 	if (_tmp4_) {
221 		_tmp3_ = g_strcmp0 (name, "listitem") != 0;
222 	} else {
223 		_tmp3_ = FALSE;
224 	}
225 	if (_tmp3_) {
226 		_tmp2_ = g_strcmp0 (name, "orderedlist") != 0;
227 	} else {
228 		_tmp2_ = FALSE;
229 	}
230 	if (_tmp2_) {
231 		_tmp1_ = g_strcmp0 (name, "itemizedlist") != 0;
232 	} else {
233 		_tmp1_ = FALSE;
234 	}
235 	if (_tmp1_) {
236 		_tmp0_ = g_strcmp0 (name, "title") != 0;
237 	} else {
238 		_tmp0_ = FALSE;
239 	}
240 	result = _tmp0_;
241 	return result;
242 }
243 
244 static gboolean
valadoc_gtk_doc_markup_writer_real_content_inline_element(ValadocMarkupWriter * base,const gchar * name)245 valadoc_gtk_doc_markup_writer_real_content_inline_element (ValadocMarkupWriter* base,
246                                                            const gchar* name)
247 {
248 	ValadocGtkDocMarkupWriter * self;
249 	gboolean _tmp0_ = FALSE;
250 	gboolean _tmp1_ = FALSE;
251 	gboolean _tmp2_ = FALSE;
252 	gboolean _tmp3_ = FALSE;
253 	gboolean _tmp4_ = FALSE;
254 	gboolean _tmp5_ = FALSE;
255 	gboolean result = FALSE;
256 	self = (ValadocGtkDocMarkupWriter*) base;
257 	g_return_val_if_fail (name != NULL, FALSE);
258 	if (g_strcmp0 (name, "para") == 0) {
259 		_tmp5_ = TRUE;
260 	} else {
261 		_tmp5_ = g_strcmp0 (name, "programlisting") == 0;
262 	}
263 	if (_tmp5_) {
264 		_tmp4_ = TRUE;
265 	} else {
266 		_tmp4_ = g_strcmp0 (name, "emphasis") == 0;
267 	}
268 	if (_tmp4_) {
269 		_tmp3_ = TRUE;
270 	} else {
271 		_tmp3_ = g_strcmp0 (name, "blockquote") == 0;
272 	}
273 	if (_tmp3_) {
274 		_tmp2_ = TRUE;
275 	} else {
276 		_tmp2_ = g_strcmp0 (name, "ulink") == 0;
277 	}
278 	if (_tmp2_) {
279 		_tmp1_ = TRUE;
280 	} else {
281 		_tmp1_ = g_strcmp0 (name, "listitem") == 0;
282 	}
283 	if (_tmp1_) {
284 		_tmp0_ = TRUE;
285 	} else {
286 		_tmp0_ = g_strcmp0 (name, "title") == 0;
287 	}
288 	result = _tmp0_;
289 	return result;
290 }
291 
292 static void
valadoc_gtk_doc_markup_writer_class_init(ValadocGtkDocMarkupWriterClass * klass,gpointer klass_data)293 valadoc_gtk_doc_markup_writer_class_init (ValadocGtkDocMarkupWriterClass * klass,
294                                           gpointer klass_data)
295 {
296 	valadoc_gtk_doc_markup_writer_parent_class = g_type_class_peek_parent (klass);
297 	((ValadocMarkupWriterClass *) klass)->finalize = valadoc_gtk_doc_markup_writer_finalize;
298 	g_type_class_adjust_private_offset (klass, &ValadocGtkDocMarkupWriter_private_offset);
299 	((ValadocMarkupWriterClass *) klass)->inline_element = (gboolean (*) (ValadocMarkupWriter*, const gchar*)) valadoc_gtk_doc_markup_writer_real_inline_element;
300 	((ValadocMarkupWriterClass *) klass)->content_inline_element = (gboolean (*) (ValadocMarkupWriter*, const gchar*)) valadoc_gtk_doc_markup_writer_real_content_inline_element;
301 }
302 
303 static void
valadoc_gtk_doc_markup_writer_instance_init(ValadocGtkDocMarkupWriter * self,gpointer klass)304 valadoc_gtk_doc_markup_writer_instance_init (ValadocGtkDocMarkupWriter * self,
305                                              gpointer klass)
306 {
307 	self->priv = valadoc_gtk_doc_markup_writer_get_instance_private (self);
308 }
309 
310 static void
valadoc_gtk_doc_markup_writer_finalize(ValadocMarkupWriter * obj)311 valadoc_gtk_doc_markup_writer_finalize (ValadocMarkupWriter * obj)
312 {
313 	ValadocGtkDocMarkupWriter * self;
314 	self = G_TYPE_CHECK_INSTANCE_CAST (obj, VALADOC_TYPE_GTK_DOC_MARKUP_WRITER, ValadocGtkDocMarkupWriter);
315 	VALADOC_MARKUP_WRITER_CLASS (valadoc_gtk_doc_markup_writer_parent_class)->finalize (obj);
316 }
317 
318 static GType
valadoc_gtk_doc_markup_writer_get_type_once(void)319 valadoc_gtk_doc_markup_writer_get_type_once (void)
320 {
321 	static const GTypeInfo g_define_type_info = { sizeof (ValadocGtkDocMarkupWriterClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) valadoc_gtk_doc_markup_writer_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (ValadocGtkDocMarkupWriter), 0, (GInstanceInitFunc) valadoc_gtk_doc_markup_writer_instance_init, NULL };
322 	GType valadoc_gtk_doc_markup_writer_type_id;
323 	valadoc_gtk_doc_markup_writer_type_id = g_type_register_static (VALADOC_TYPE_MARKUP_WRITER, "ValadocGtkDocMarkupWriter", &g_define_type_info, 0);
324 	ValadocGtkDocMarkupWriter_private_offset = g_type_add_instance_private (valadoc_gtk_doc_markup_writer_type_id, sizeof (ValadocGtkDocMarkupWriterPrivate));
325 	return valadoc_gtk_doc_markup_writer_type_id;
326 }
327 
328 GType
valadoc_gtk_doc_markup_writer_get_type(void)329 valadoc_gtk_doc_markup_writer_get_type (void)
330 {
331 	static volatile gsize valadoc_gtk_doc_markup_writer_type_id__volatile = 0;
332 	if (g_once_init_enter (&valadoc_gtk_doc_markup_writer_type_id__volatile)) {
333 		GType valadoc_gtk_doc_markup_writer_type_id;
334 		valadoc_gtk_doc_markup_writer_type_id = valadoc_gtk_doc_markup_writer_get_type_once ();
335 		g_once_init_leave (&valadoc_gtk_doc_markup_writer_type_id__volatile, valadoc_gtk_doc_markup_writer_type_id);
336 	}
337 	return valadoc_gtk_doc_markup_writer_type_id__volatile;
338 }
339 
340